프로젝트를 진행하면서 조회 로직들의 개선이 필요하다는 생각이 들었습니다. 그 과정에서 겪은 시행착오와 고민들을 공유하고자 기록을 남깁니다. 개발환경 - spring boot 3.2.0- gradle 8.5- QueryDSL- EC2- Docker- MySQL 8.0.32- RedisJMeter를 이용한 성능테스트 진행 먼저 현재 구현한 로직의 조회속도를 파악해야 했습니다. 저는 자바 오픈 소스 툴인 JMeter를 선택했는데요, 설치와 사용법이 쉽고, HTML 형식의 보고서를 제공해 주는 장점이 있어 선택하게 되었습니다. JMeter를 설치하고 본격적으로 성능테스트를 진행했습니다. 몇 명의 사용자가 접근할지 Thread Group을 설정하고, 테스트하고자 하는 메서드의 HTTP Request를 설정했습니..
Spring
개발환경 - spring boot 3.2.0 - gradle 8.5 - ec2 - Docker - Github Actions 프로젝트의 개발서버를 구축하면서 CI/CD 과정을 진행하는 도중 문제가 발생했습니다. 사소한 실수였고, 다시 반복하지 않고자 기록을 남깁니다. 우선 개발 서버의 배포 과정은 다음과 같습니다. ec2에 docker 환경 구성 ec2에서 MySQL 컨테이너 실행 로컬에서 spring boot 프로젝트 clean build > docker image로 만들어 docker hub에 push ec2에서 docker hub에 올린 이미지를 컨테이너로 만들고 실행 (docker run -d -p 8080:8080 [환경변수들] [hub계정명]/[이미지명]) 이렇게 수동으로 웹 애플리케이션 서버..
개발환경 - java17 - spring boot 3.2.0 - spring data JPA - Gradle 8.5 - MySQL 진행 중인 프로젝트에서는 회원의 탈퇴 여부를 soft delete로 구현했습니다. 서버가 클라이언트로부터 회원탈퇴 요청을 전달받으면, 실제로 테이블에서 해당 회원을 삭제하지 않고 boolean 타입의 deleted 칼럼으로 삭제 여부를 저장했습니다. @Column(name = "deleted") @ColumnDefault("false") private Boolean deleted; 또한 회원과 관련된 sql 생성 시 where절을 통해 deleted 칼럼이 0(=false)인 경우만 조회할 수 있도록 select 조건을 제한했습니다. @SQLDelete(sql = "UPDAT..