팀 프로젝트를 하면서 테스트 코드 작성에 문제가 발생하였다. 협업을 위해 도메인별로 파트를 나눴었고, 내가 맡은 도메인은 여러 도메인과 얽혀있어 독립적이지 않았다. 따라서 내가 맡은 도메인 제외, 연관 관계에 있는 모든 엔터티들을 구현하고 실제로 jpa reposi
프로젝트에서 헤어샵과 날짜별로 예약 가능 시간들을 포함한 디자이너 리스트를 출력하는 기능이 필요했다. 디자이너와 예약이 일 대 다 관계이고 lazy fetch type을 사용하였으며, request와 response는 다음과 같다. 일반적인 방법으로 디자이너를 조회
Jmeter로 대량의 HTTP request를 보내는 부하 테스트를 진행하던 중, 10000개의 스레드가 동시 요청할 때 HikariCP connection-timeout 설정 값을 넘기게 되어 에러가 발생하였다. 처음에는 Connection의 개수가 부족해서 발생한
결론부터 말하자면 값이 보장되지 않으면 fetch join에서 on절을 사용할 수 없다. > with-clause not allowed on fetched association 사용하려고 한다면 위와 같은 에러를 마주하게 된다. on절을 사용하고자 한 이유 헤어
진행 중인 프로젝트에는 폴더마다 여러개의 태그가 존재한다. 또한 태그에는 대분류, 소분류가 존재하여 RootTag와 Tag로 나뉜다. 필자는 태그로 폴더 검색 기능을 구현하던 중, 다음과 같은 문제를 겪었다. 위와 같은 쿼리를 사용하면 검색을 위해 사용된 태그만 가
프로젝트에서 Spring Security와 JWT를 사용한 인증, 인가 부분을 담당하게 되었다. 구현이 완료되어서 간략하게나마 벨로그에 정리해보고자 한다. (코드 양이 많아서 전체 코드는 올리지 못할 것 같다) JWT 구현에는 java-jwt 라이브러리를 사용하였다. User 엔터티 User 엔터티에서 필요한 것은 권한에 필요한 컬럼이다. (모든 회...
GitHub Actions와 Docker를 사용하여 Spring Boot 코드를 수정 후 main에 push 하면 자동으로 EC2 서버에 자동으로 도커 이미지가 실행되는 CD를 구축하고자 한다. EC2 서버는 Ubuntu 20.04 프리티어를 사용했다. CD 흐름은 다음과 같다. >Spring Boot 프로젝트 최상단에 Dockerfile 작성 -> ...
PR 시 테스트를 검사하는 CI를 구축하고자 한다. Java 11, Gradle 환경이다. 테스트에 성공하더라도 빌드가 성공할 수 있는지는 별개라서, test가 아닌 build를 사용하는 것이 좋을 것 같다. yaml을 살펴보자. .github/workflows/build.yml > main에 PR 시 -> ubuntu 22.04에서 -> 체크아웃...
꾸준히 노력한 나에게 박수를! 🙏 부트캠프 수강 시작과 함께 네이버 블로그에서 벨로그로 이전하고, 비슷한 시점부터 채용을 위해 코테를 준비하기 시작했다. 개강이 올해 3월이었으니, 7개월 동안 꾸준히 한 셈이다. 그리고 오늘, 블로그 포스팅과 코테 풀이 각 200개를 돌파했다. 따라서 기념으로 회고를 작성하고자 한다. 노력은 배신하지 않는다. 우...