목록트러블슈팅 (3)
공부하는 블로그

프로젝트에서 인증/인가를 사용하기 위해 JWT를 구현하면서 JWT 필터를 작성했다. JWT 필터는1. 요청 URI가 퍼블릭이라면 필터 통과2. 아니라면 인증 헤더가 올바른지 확인3. JWT 토큰 파싱, 검증4. 인증 정보를 SecurityContext에 담고 필터를 통과순서로 진행되게 로직이 구성돼있다. private boolean isPublicUri(String uri) { return uri.startsWith("퍼블릭URI"); }if (isPublicUri(request.getRequestURI())) { filterChain.doFilter(request, response); return; } 그리고 코드리뷰를 하다가 이 코드에서 두 가지 문제점이 제기되었다.1. SecurityC..

프로젝트를 진행하면서 엔티티를 삭제할 때 실제로 레코드가 삭제되는 물리 삭제 방식이 아닌 삭제 플래그를 활성화하는 논리 삭제를 도입했다. 때문에 어떤 엔티티를 조회할 일이 있으면 WHERE절에 is_deleted=FALSE 조건을 항상 추가해줘야했다. 그런데 자주 사용하는 칼럼에 인덱스를 적용하면 쿼리 성능이 좋아진다는 것을 듣고 실험을 해보았다.먼저 더미 카드 데이터를 100만개 만들고, 내가 지금 만든 서비스에서 날리는 쿼리문을 50회씩 각각 날려보면서 평균 실행시간을 측정했다.SELECT c.card_id, c.title, COUNT(DISTINCT m.id) AS manager_countFROM card cLEFT JOIN manager m ON m.card_id = c.card_id AND m..

AWS S3을 이용해서 프로필 이미지 업로드 관련 기능을 구현하려고 하던 중, 자꾸 Region을 못 찾겠다는 메세지를 뱉어냈다. SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region. 분명 Bean을 등록할 때 Region을 함께 설정해줬는데 말이다.. @Bean public S3Client s3Client() { AwsBasicCredentials awsBasicCredentials = AwsBasicCredentials.create(accessKey..