@ControllerAdvice
Lombok Getter 기능 사용시 boolean 필드에 isXxx로 필드명을 주었을 때 문제
N:M 관계 활용시 주의점
텍스트 에디터 라이브러리 사용
ec2 t2.micro 프리티어 => 빈약한 성능..
S3 객체 태그 이용
기존 로직 기존 로직의 서비스 코드이다. searchPosts는 동적으로 쿼리스트링으로 들어온 조건을 반영하여 post(게시글) 엔티티를 뽑아온다. 동적 쿼리를 구현하기 위해 Querydsl을 활용하여 손쉽게 구현할 수 있었다. 하지만 문제가 하나 있었는데, Paging 처리가 되어 있지 않아 특정 사용자가 1000개의 게시글을 가지고 있을 경우, 이를...
임시글, 공개글 구분 Post 엔티티의 writable필드로 하여금 임시글 공개글을 구분토록 하였다. 게시글 카드를 모아보는 개인 블로그 첫 페이지에서 게시글(태그 포함) 정보를 가져올때 writable이 true인 경우만 가져오도록 하였으며, writable이 false로 저장된 경우는 따로 임시글 탭에서 이를 확인할 수 있도록 하였다. 임시글을 클릭...
활용 프레임워크 Spring Data JPA Thymeleaf BootStrap5 SpringBoot 엔티티 구조 자기 자신을 연관관계로 맺는 parent필드가 존재하고 이를 양방향 연관관계로 확장하여 parent가 childrens로 하여금 자식 Comment를 알 수 있도록 하는 것이 중요 포인트다. parent, childrens로 하여금 트리 구...
Ehcache 도입
기술 선택 이전 사전조사
기존 처리율 제한 장치 구현 변경 이유 기존 처리율 제한 장치는 컨트롤러 메서드에 Spring AOP 애노테이션을 적용하여 과도한 요청을 제한하는 방식이었다. 📖 《가상 면접 사례로 배우는 대규모 시스템 설계 기초》 4장에서 다룬 처리율 제한 장치 설계를 참고하여
크롬 양식 자동완성
기존의 조회수 로직은 게시글이 조회될 때마다 해당 게시글의 외래키를 갖는 조회 엔티티를 생성하여 데이터베이스에 INSERT하는 방식이다. 이 방식에는 다음과 같은 문제점들이 존재한다.데이터베이스 부하 증가이다.게시글 조회가 발생할 때마다 INSERT 작업이 수행되므로,
배포 자동화 정리
문제 아래와 같은 ObjectOptimisticLockingFailureException 예외가 발생하였다. 해당 예외가 발생한 서비스 계층의 코드는 다음과 같다. 이 메서드는 두 가지 동작을 수행한다. sessionUser가 존재하는 경우 Contact 엔티티를 생성하여 저장 sessionUser가 존재하지 않는 경우 Contact 엔티티를 생성하...
Spring Boot @DataJpaTest가 H2를 강제로 사용하는 문제 해결 이때 동안 디폴트로 잘 사용하고 있던 테스트용 mem h2 db를 떼어내고 mysql을 붙이고자 하였다. 이에 따라 test 환경에 profile=test로 하여금의 applicatio
문제 상황 특정 컬럼들에 대해 위와 같은 예외가 발생하고 있었다. 서버는 정상 실행되며 ddl-auto : create-drop으로 하여금 테이블이 잘 생성되는지 테스트 중이었다. 세부적으로 보기 위해 서버를 실행시켜놓고 해당 테이블의 키를 조회했는데 다음과 같은
문제 상황 post_url에 대한 key가 두개나 뜨는 것을 볼 수 있었다. 세컨더리 인덱스로 지정하기 위해 @Index를 사용한 것과 유니크성을 확보하기 위해 @Column에 unique=true 설정을 준 것이 내부동작 이해를 제대로하지 못하여 키가 두개가 생성
현재는 'admin'@'%'의 계정을 어플리케이션-RDS 연결을 위한 계정으로 사용중이다. RDS를 처음 만들때 생성한 것으로, 권한을 확인해보자.참고로 사용중인 RDS의 mysql version은 8.0.39이다.USAGE 권한 → 로그인 가능하지만, 기본적으로 아무