웹 개발 공부 : Back-end

1. 개요JPA 프로젝트를 진행하며 한가지 의문이 들었다. 'fetch = FetchType.EAGER' 와 'fetch-join (@Entity-graph)' 둘 다 진짜 객체를 한번에 조회할 수 있도록 하는 것인데.. 왜 'fetch-join (@Entity-graph)'의 성능이 더 좋은 것일까? 이 의문을 풀기 위해 공부한 내용을 포스팅 하려한다.   2. 공통점두 개념은 모두 가짜 객체를 사용하지 않고, 엔티티를 조회할때 모두 진짜 객체로 가져와 한꺼번에 조회할 수 있도록 하는 기능을 가진다.   3. 차이점 이 둘의 차이점이 이번 포스팅의 핵심 내용이 될 것이다. 차이점을 하나하나 살펴보자.  3-1. fetch = FetchType.EAGER이 코드는 엔티티 클래스 내부의 연관관계 어노테이션..
1. 개요게시판 조회 쿼리(네이티브 쿼리)를 작성하고 여러 ROW 건수를 DTO를 활용하여 리턴할 때 마주한 에러이다. 이 에러를 해결한 사례를 포스팅한다. 2. 원인쿼리 조회 결과와 DTO 간의 매핑이 제대로 되지 않아 생긴 오류이다. 3. 해결방법네이티브 쿼리를 사용하고, 다중 건수의 DTO로 리턴하기 위해선 DTO를 class로 만들지 않고, interface로 생성한다.// as-is@Data@NoArgsConstructorpublic class MyDto { private String A; private String B; // ... }// to-bepublic interface MyDto { String getA(); String getB(); ..
1. 개요사이드 프로젝트를 진행하며 세션을 활용한 기능을 구현하게 됐다. 세션을 다루다보면 꼭 생각나는 것이 '세션과 쿠키는 어떤 점이 다른가?' 인 것 같다. 신입 면접 단골 질문이기도 하고! 그런 점에서 개념을 정리하기 위해 포스팅한다. 세션과 쿠키는 사용자 정보를 저장하고 관리하는 방법임은 동일하다. 이 두 기술은 사용자의 상태유지 및 개인 접속정보를 토대로 개인화된 경험을 제공하는 중요한 기술이다. 서로 어떤 점이 다른지 알아보자.  2. 세션 (Session)세션 (Session)은 서버 측에서 사용자 정보를 저장한다. 사용자가 서비스에 접속하면 서버에서 사용자마다 고유의 세션ID를 생성한다. 이 세션ID는 사용자의 PC나 브라우저에 기록되고, 사용자가 서비스의 다른 페이지나 요청할 경우 기록된..
1. 원인application.yml을 각각 운영과 개발 환경으로 분리했을 경우 JUnit으로 테스트할 때, DB 접속정보가 운영환경으로 인식되었기 때문에, JPA 기능을 사용할 수 없는 경우 필자는 DB 접속정보를, 시크릿에다 등록해놓았기 때문에, application.yml에 DB접속 정보를 직접 넣지않고, 환경변수로 세팅해놓았다. 그러다보니, 모든 접속정보가 null로 들어오기 때문에 해당 오류가 발생한 것이다.  2. 해결방법2-1. @ActiveProfiles("profile 명")@ActiveProfiles 어노테이션으로 개발용 application에서 지정한 프로필명을 해당 테스트 클래스에 명시해주면 테스트 시 해당 profile의 application.yml로 인식한다.# applicati..
Developer KTU
'웹 개발 공부 : Back-end' 카테고리의 글 목록