spring boot4 [팀 프로젝트] queryDsl 도입과 테스트 코드 들어가며팀 프로젝트에서 CQRS 패턴을 적용하게 되면서, 조인과 같은 JPQL을 손쉽게 사용함과 직접적인 도메인 노출을 피하기 위해 queryDsl 을 도입하고 query 계층을 사용하기로 하였습니다. 따라서 이에 맞게 queryDsl 코드를 작성함과 동시에 그에 따른 테스트 코드를 작성하는 과정을 기록하기 위해 글을 작성하게 되었습니다.@ElementCollection 을 사용함에 따른 불편함!@ElementCollection @CollectionTable(name = "member_hobbies", joinColumns = @JoinColumn(name = "member_id")) @Column(name = "hobby_id") private Set hobbyIds = new Hash.. 2025. 1. 21. [Kong's Blog] 프로젝트 회고와 리팩토링 (1) - 로그인/로그아웃 들어가며개인 블로그 프로젝트를 구현하기 위한 코드들을 뒤돌아보며 겸사겸사 리팩토링 과정을 담기위해 글을 작성하게 되었습니다.이번 글은 로그인/로그아웃이라고 하였지만, 사실상 Token Filter 를 리팩토링 하는 글입니다!관련 포스트 : https://kongdevlog.tistory.com/9 JWT 로그인 방식 구현과 생각 정리들어가며인턴을 하던 시절에 세션을 적용해보았던 것을 빼면, 한번도 세션 방식의 로그인을 구현해보지 않았습니다. 그저 관성적으로 (대부분의 로그인 방식으로 JWT를 사용하니..) 토큰 방식의kongdevlog.tistory.com 구현 코드 (JwtFilter.class)protected void doFilterInternal(HttpServletRequest request, .. 2025. 1. 12. JWT 로그인 방식 구현과 생각 정리 들어가며인턴을 하던 시절에 세션을 적용해보았던 것을 빼면, 한번도 세션 방식의 로그인을 구현해보지 않았습니다. 그저 관성적으로 (대부분의 로그인 방식으로 JWT를 사용하니..) 토큰 방식의 로그인을 구현해왔던 것 같습니다. 따라서 JWT 방식의 로그인 구현 과정(Kong's Blog)을 정리하면서 그 과정 속에서 세션과의 차이점을 정리하고자 글을 작성하게 되었습니다! 해당 내용은 저의 생각을 정리하면서 작성한 것이기 때문에 잘못된 내용이 있을 수 있습니다! (댓글 남겨주시면 감사하겠습니다..)토큰 만들기 (JwtProvider)public class UserJwtProvider { private String secret = "this-is-secret-key-value-at-least-128-byt.. 2025. 1. 11. Github Actions + EC2(.pem) with Nginx, Spring CI/CD 구축 도입 배경이번 팀 프로젝트에서는 단위 테스트(서비스 계층의 함수)를 의무적으로 작성하는 것을 목표로 하였습니다.CI/CD를 구현하지 않는다면, 각 팀원들이 맡은 기능을 구현한 PR이 올라오면, 이를 main 브랜치에 병합한 후 수동으로 EC2에 접속하여 테스트 및 빌드를 매번 수행해야 했기때문에 CI/CD를 도입하고자 하였습니다.왜 GithubActions?물론 Github Actions 말고 또 다른 많은 툴이 존재하지만, Github Actions를 선택한 가장 큰 이유는 CI/CD를 수행하기 위한 별도의 서버가 없어도 된다는 것이었습니다. 현재 프로젝트에서 할당된 서버는 EC2 1개의 프리티어 인스턴스 뿐이었기 때문에, 웹서버의 역할 뿐만 아니라 CI/CD를 함께 수행한다면 리소스가 충분하지 않을 .. 2025. 1. 10. 이전 1 다음