자바

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. 원인application.yml을 각각 운영과 개발 환경으로 분리했을 경우 JUnit으로 테스트할 때, DB 접속정보가 운영환경으로 인식되었기 때문에, JPA 기능을 사용할 수 없는 경우 필자는 DB 접속정보를, 시크릿에다 등록해놓았기 때문에, application.yml에 DB접속 정보를 직접 넣지않고, 환경변수로 세팅해놓았다. 그러다보니, 모든 접속정보가 null로 들어오기 때문에 해당 오류가 발생한 것이다.  2. 해결방법2-1. @ActiveProfiles("profile 명")@ActiveProfiles 어노테이션으로 개발용 application에서 지정한 프로필명을 해당 테스트 클래스에 명시해주면 테스트 시 해당 profile의 application.yml로 인식한다.# applicati..
1. 개요자바 + 연산에 대해서 알아본다. 2. 본론2-1. int + int정수 + 정수 결과는 당연히 정수이다. 2-2. int + character정수 + 캐릭터 연산은 캐릭터형이 아스키코드로 변환되어 정수로 출력된다.int n = 10;char c = 'A'System.out.println(n + c); // 출력 : 75 2.3 boolean + intboolean + int 연산은 컴파일 에러가 발생한다. 2-4. 자료형 + String자료형 + String은 연산결과가 String이다. (문자열 concat)String s = "Hello! ";int n = 10;boolean = true;char c = 'A';String isNull = nullSystem.out.println(s + n..