[프로젝트 회고] 자격증 모의고사(CBT) 서비스 회고
·
회고
해당 프로젝트는 24.07.30.~24.12.13. 기간 동안 진행하였습니다. 기획부터 설계 개발 배포까지 거의 모든 과정을 혼자 해야 했기에 많은 어려움이 있었습니다. 개발하는 중간중간 기록을 하지 못했기에 프로젝트를 마친 지금 프로젝트를 하는 동안 있었던 어려움과 진행하며 아쉬웠던 점들이 망각되기 전에 프로젝트 과정을 돌아보고자 합니다.📢 프로젝트 소개프로젝트 명 : 자격증 모의고사 서비스링크 : 아이리포 CBT 둘러보기기술 스택FrontEnd : Vue.jsBackEnd : Spring Boot, JPA, QueryDSL, Redis, PostgreSQLInfra : KTCloud, Ubuntu, Docker, Nginx   📅 프로젝트 과정1. 기획현재 재직 중인 회사의 팀에서 팀장님과 자회사..
[Spring] firstResult/maxResults specified with collection fetch
·
트러블슈팅
❗️문제 상황(OneToMany 관계에서 fetchJoin과 페이징을 동시에 사용할 경우)OneToMany 관계에서 fetchJoin 하여 페이지네이션을 적용할 경우 HHH90003004: firstResult/maxResults specified with collection fetch; applying in memory Warning이 발생합니다.1. ERD팀 하나에 여러명의 멤버가 가입되어있을 수 있습니다.2. 예제코드예시로 서비스코드와 엔티티코드를 작성하겠습니다.Member.java@Getter@Entitypublic class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @C..
[JPA, PostgreSQL] PK컬럼이 아닌 컬럼에 Sequence 적용하기
·
BackEnd
원래 id 컬럼을 String(UUID)로 쓰고있었는데 질문을 작성하는 순서대로 넘버링을 할 필요성이 있어서 PK가 아닌컬럼에 시퀀스를 적용해보았습니다.1. JPA Table Mapping@Entity@Getterpublic class Question { @Id String id; // 저장 형식: question_randomUUID // 넘버링 컬럼 추가 @Column(unique = true, nullable = false, insertable = false, updatable = false) private int initOrder; ...}DB의 테이블과 매핑할 컬럼을 추가해줍니다. int, Long 둘 다 가능합니다.2. 테이블 생성// 테이블 새로 생성CREATE..