본문 바로가기

프로젝트일지

(3)
[Inside] failed to lazily initialize a collection of role 해결 개발 도중 로그인 후에 아래와 같은 오류가 발생했다. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: unannn.inside.domain.user.User.applications, could not initialize proxy - no Session 원인을 찾아보니, 한 트랜잭션에서 생성된 엔티티 객체에서 트랜잭션이 종료된 후 지연로딩을 통해 연관 데이터에 접근하려고 했기 때문이라고 한다. 그리고 대부분의 글에서 연관관계에 있는 엔티티의 fetch = FetchType.LAZY 설정을 FetchType.EAGER 로 변경, 즉 지연로딩을 즉시 로딩으로 바꿔서 문제를 해결하라고 말했다...
[Inside] Spring Security formLogin 사용 시 입력값 검증 프로젝트의 로그인 방식은 두가지로 이루어진다. 아이디와 패스워드를 입력하는 Form 로그인 방식 Google, 네이버를 활용한 소셜 로그인 방식 Form 로그인 방식에서는 아래와 같이 Spring Security 에서 formLogin 을 사용해 인증을 수행하고 있다. 인증을 통해 권한을 얻지 못한 상태에서 권한이 필요한 URL로 접근하면 loginPage()에서 매개변수로 지정한 URL로 리다이렉트 시키고 로그인 페이지를 출력한다. 로그인 페이지의 구성은 아래와 같다. 여기서 회원가입한 아이디와 비밀번호를입력하고 로그인 버튼을 누르면, SecurityConfig에서 loginProcessingUrl("/login")으로 등록한 Url로 Post요청이 이루어진다. 여기서, Spring Security의 ..
[프로젝트 'Inside'] 기본 도메인 설계와 개발 과정, 느낀 점 프로젝트 기획 배경 올해 초 몇 개의 동아리에 지원하면서 지원서를 작성할 일이 몇 번 있었다. 보통 구글 폼을 통해 많이 모집했고, 자체적인 동아리 홈페이지 내에서 지원서를 직접 받는 경우도 있었다. 구글 폼의 경우 손쉽게 지원서 양식을 만들고 누구나 쉽게 사용할 수 있다는 장점이 있지만, 결국 설문조사를 목적으로 만들어진 서비스이기 때문에 지원서 기능에 특화시킬 수 있는 부분들이 몇가지 있어보였다. 그래서 처음에는 아래를 목표로 프로젝트를 기획하게 되었다. 내가 쓴 글과 모집자가 확인 하는 글의 시각적인 불일치를 해결해보자 모집자가 더 편하게 지원서 확인할 수 있도록 만들기 먼저 시각적 불일치는 내가 입력한 글이 시각적인 부분에서 그대로 모집자에게 전달될 것이라고 보장하지 않는 문제를 말한다. 예를 들..