개발일지 15 - 로그인 풀림

tk7580·2025년 6월 16일

1. 문제 발생

애플리케이션은 정상적으로 실행되고, 홈 화면에서는 로그인 상태가 잘 유지되었다.
로그인된 상태에서 홈 화면의 작품 목록을 클릭하여 상세 페이지(/work/{id})로 이동하면 로그인 상태임에도 불구하고 '로그인해주세요' 문구가 나타남.

이 상태에서 뒤로가기로 홈 화면으로 돌아가면
로그인 상태가 정상적으로 유지되어 있다.

2. 원인 분석

  • 세션(Session) 문제 :
    홈 화면으로 돌아가면 로그인 상태가 유지되는 것으로 보아 아님

  • 컨트롤러-서비스 간의 호출 오류 :
    WorkControllerUserActivityService 특정 메소드를 호출 실패가 아닐까 추측,
    코드 오류는 없었음

  • 빌드(Build) 문제 :
    이전에도 있었던 수정한 코드가 실제 실행 파일에 제대로 반영되지 않는 빌드 문제를 의심
    빌드 파일 삭제 후 gradle에서 재빌드 했지만 동일한 결과

3. 원인 발견

Article.java

  1. 상세 페이지를 생성하기 위해 Work 엔티티를 조회하면 JPA는 이와 연관된 Series 엔티티 정보도 함께 조회된다.
    Series 엔티티는 Article 엔티티와 1:N 관계로 연결되어 있다 (@OneToMany).
  2. 전에 모든 DB 컬럼명을 camelCase (예: regDate)로 통일했지만Article 엔티티에 유일하게snake_case 설정(예: @JoinColumn(name = "member_id"))이 남아있었음.
  3. 명명 규칙이 다른 Article을 만나면서 서버 내부에서 Exception이 발생했다.
  4. Exception 때문에 요청의 처리가 중단,
    페이지가 깨지고 로그인 정보(SecurityContext)가 유실된 것처럼 보이는 현상 발생

4. 해결

  • 해결 : Article.java의 모든 컬럼명 어노테이션을 camelCase로 수정하여 전체의 명명 규칙 통일

0개의 댓글