오류 페이지에서 나아가 API 예외처리를 해야했다.스프링부트에서는 예외처리를 위해 기본 오류 방식을 제공한다. /error 동일한 경로를 처리하는 errorHtml() , error() 두 메서드를 확인할 수 있다 1.errorHtml() : produces = M
서블릿은 다음 2가지 방식으로 예외 처리를 지원.웹 브라우저에서 개발자 모드로 확인해보면 HTTP 상태 코드가 500으로 보인다.Exception 의 경우 서버 내부에서 처리할 수 없는 오류가 발생한 것으로 생각해서 HTTP 상태 코드 500을반환한다response.s
로그 사용시 장점쓰레드 정보, 클래스 이름 같은 부가 정보를 함께 볼 수 있고, 출력 모양을 조정할 수 있다.로그 레벨에 따라 개발 서버에서는 모든 로그를 출력하고, 운영서버에서는 출력하지 않는 등 로그를 상황에맞게 조절할 수 있다.시스템 아웃 콘솔에만 출력하는 것이
스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan 을 지원name: 서블릿 이름urlPatterns: URL 매핑HTTP 요청을 통해 매핑된 URL이 호출되면 서블릿 컨테이너는 다음 메서드를 실행한다.protected voi
회사테이블 , 직원테이블 있음회사(부서명, 지역별 회사(지역별로 나눠져있음 서울 부산 경기),사원번호)직원(사원번호,이름, 나이, 결혼여부, 전화번호, 부서, 이름)1\. //서울에 있는 사원이름을 찾아라. List result = queryFactory
*Fetch 종류 fetch() : 리스트 조회, 데이터 없으면 빈 리스트 반환 fetchOne() : 단 건 조회 결과가 없으면 : null 결과가 둘 이상이면 : com.querydsl.core.NonUniqueResultException fetchFirst()
어쨋든 JPA에서 많이 얘기가 나오고 다루는 N+1의문제.@XtoOne(fetch=LAZY)매번하기 너무 귀찮지않음? => 해결 : 패치조인 (지연로딩을 해도 loop돌때 결국 n+1이 발생한다.) or @BatchSize(Sizee=숫자)하면 post갯수의 쿼리 X
spring boot jpa가 제공해주는 JpaRepository로 jpa 가 제공하는 공통 인터페이스를 사용가능하다. 개발시에 대부분의 개발자들이 구현해야하는 여러 CRUD 기능을 인터페이스화 했다. 기존 Repository에는 모든 기능 구현 -> 이후 TEST
생성자 주입필드 주입수정자 주입 etc....@Autowired 어노테이션으로 의존성 주입setter 방식도 필드를 final로 선언할 수 없다.필드 주입과 마찬가지로 빈을 생성한 후에 주입하려는 빈을 찾아 주입한다.생성자 주입 방식 Spring에서 권장@Require
Spring에서 관리되는 객체임을 표시하기 위해 사용하는 가장 기본적인 annotation이다. 즉, scan-auto-detection과 dependency injection을 사용하기 위해서 사용되는 가장 기본 어노테이션이다.Web MVC 코드에 사용되는 어노테이션
\-자원을 이름으로 구분하여 해당 자원의 상태를 구분하는 것1.HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,2.HTTP Method(POST, GET, PUT, DELETE)를 통해3.해당 자원(URI)에
부모 클래스는 테이블과 매핑하지 않고 부모 클래스를 상속받는 자식 클래스에게 매핑 정보만 제공하고 싶으면 @MappedSuperclass를 사용하면 된다.BaseEntity에는 객체들이 주로 사용하는 공통 매핑 정보 정의자식 엔티티들은 상속을 통해 BaseEntity의
부모, 자식, 손자까지 기본 키를 전달하고 있다. 식별 관계에서 자식 테이블은 부모 테이블의 기본 키를 포함해서 복합 키를 구성해야 한다.아래와 같이 Child 엔티티의 parent 필드는 @Id 대신에 @MapsId를 사용하였다. @MapsId는 외래 키와 매핑한 연
식별 관계는 부모 테이블의 기본키를 내려 받아서 자식 테이블의 기본키와 외래키로 사용비식별 관계는 부모 테이블의 기본 키를 받아서 자식 테이블의 외래 키로만 사용하는 관계이다.\*필수적 비식별 관계\-외래 키에 NULL을 허용하지 않는다. 연관 관계를 필수로 맺어야 한
엔터티 각각을 테이블로 만들고 자식 테이블이 부모 테이블의 기본키를 받아서 pk+fk로 사용한다.\*주의 :객체는 타입으로 구분할 수 있지만 테이블은 타입의 개념이 없어서 Dtype 컬럼과 같이 타입을 구분하는 컬럼이 있어야함상속 매핑은 부모 클래스에 @Inherita
데이터베이스를 기준으로 다중성을 결정합니다.연관 관계는 대칭성을 갖습니다.일대다 ↔ 다대일일대일 ↔ 일대일다대다 ↔ 다대다게시판(Board)과 게시글(Post)의 관계로 예를 들겠습니다.하나의 게시판(1)에는 여러 게시글(N)을 작성할 수 있습니다.하나의 게시글은 하나
Entity Mapping은 jpa에서 기본적이면서도 가장 중요한 개념1.영속성 컨텍스트2.객체과 관계형 데이터베이스 매핑=> 객체와 테이블 사이의 관계와 속성을 지정할 수 있도록 매핑하는 것이다. =>관련된 어노테이션을 사용하여 테이블과 클래스, 필드와 속성등을 매핑
내부 톰캣 서버를 실행하는 진입점이라고 할 수 있는 @SpringBootApplication를 작성한 클래스는 패키지의 최상단 혹은 동일한 레벨에 위치해야 합니다. @SpringBootApplication은 여러가지 어노테이션 기능을 합친 어노테이션입니다. 그 중 하나
Ctrl + / : 선택한 라인 주석 처리(//로 주석처리)Ctrl + Shift + / : 선택한 영역만큼 주석 처리(/\* \*/ 로 주석처리)Ctrl + Y : 커서가 위치한 라인 삭제Ctrl + D : 현재 코드 복사하여 바로 밑에줄에 붙여넣기Alt + Ente