전체 글

코딩하는 뱁새 보셨어요?
Java/Spring

[Spring] 로그인과 무관한 API 호출 시 Session이 발급되는 현상

📌 문제상황 현재 SW마에스트로에서 개발한 앱에서 로그인 관련한 이슈가 다수 발생했다. 앱 실행했을 때 로그인 버튼이 안 나오거나, 세션이 만료되지 않았음에도 불구하고 앱을 껐다 키면 다시 로그인을 해야하는 문제가 있었다. 해당 문제를 해결하려고 하는 도중에 FE 개발자가 "쿠키에 아무것도 들어가지 않았는데 API가 호출이 된다."라는 말을 했다. 아마 클라이언트 단에서 쿠키를 캐싱하는 기능이 있나 했다... (이 부분에 대한 의문은 아직 풀지 못한 상태이다.) 일단 해당 현상을 재현하기 위해 Postman을 통해 Cookie에 아무것도 존재하지 않을 때 API를 호출했다. 그런데 이게 무슨 일인지, 세션을 발급해야 하는 API가 아님에도 불구하고 Cookie에 세션이 담겨 있는 것을 확인할 수 있었다...

Java

[Java] 이미지 리사이징을 통해 이미지 로딩 속도를 개선하자.

문제 상황 현재 앱을 개발하는 과정에 있으며, 어느 정도 개발이 완료된 상황에서 테스트를 진행할 수 있게 됐다. 테스트를 진행하면서 가장 먼저 직면한 문제는 이미지 로딩 속도가 너무 오래 걸린다는 문제였다. 우리 앱에서 이미지를 로딩하는 부분은 크게 두 가지가 있었다. 1. 챌린지 설명을 위한 이미지 로딩 2. 사용자가 인증한 챌린지 인증 이미지 로딩 특히 위 이미지들은 사용자가 가장 많이 보는 화면에 위치하고 있기 때문에, 이미지 로딩 속도는 사용자가 느끼는 앱 사용성에 직결되는 문제였다. 즉, 이미지 로딩 속도를 개선하는 것은 현재 우리에게 있어 필수적인 사항이다. 해결 방법 이미지 로딩 속도 개선을 위한 방법에는 어떤 것들이 있을까? 다음은 이미지 로딩 속도 개선 방법에 대한 ChatCPT의 답변이..

Web/HTTP

[Cookie] HTTP에서 Secure 플래그 설정 시 쿠키가 전송되지 않는 현상

문제 상황 로그인을 구현하는데 있어 인가(Authorization)를 위해 세션을 이용했다. 로컬에서 세션을 이용하는 경우 쿠키에 세션 정보가 저장되게 되는데, 나는 Secure 플래그를 SessionConfig에서 설정하지 않았음에도 불구하고 기본값인 false가 아닌 true가 출력됐다. Secure의 기본값은 false이다. 하단의 SessionConfig를 봤을 때, Secure에 대한 설정은 존재하지 않는다. @Configuration public class SessionConfig { @Bean public CookieSerializer cookieSerializer(){ DefaultCookieSerializer serializer = new DefaultCookieSerializer(); ..

Java/Spring

[Spring] spring_session 테이블의 expiry_time이 변경되지 않는 문제

문제 상황 앱을 개발하는 과정에서 로그인을 오랜 시간 유지 시키기 위해 spring_session 테이블에 저장되는 expiry_time을 변경해야 했다. 기본 값이 30분이었기 때문에 앱에서 로그인을 유지하기에는 시간이 매우 짧다고 생각했고 이를 더 길게 늘리고자 했다. 그래서 하단의 코드를 application.yml에 작성하여 세션 시간을 변경하고자 했다. spring: session: timeout: 2592000 하지만 위처럼 코드를 변경하여 다시 스프링 빌드를 하고 로그인 API를 실행시켰음에도 불구하고 expiry_time이 변경되지 않았다. 나는 이를 해결하고자 노력했으며, 노력하는데 꽤 오랜시간이 걸렸다... (문제를 해결하는 과정에서 멘토님의 도움을 받았으며, 공식문서를 꼭 읽어보자라는..

당찬 뱁새
코딩하는 뱁새