클래스를 설계할 때 모든 인스턴스에서 공통된 값을 유지해야하는 필드에 static을 붙인다.static메서드에서는 인스턴스 변수를 사용할 수 없다.메서드에서 인스턴스 변수를 사용하지 않는다면, static을 붙이는 것을 고려한다.

String 변수를 생성할때는 두 가지 방법이 있다. 리터럴을 이용한 방식, new 연산자를 이용한 방식. 리터럴을 사용하게 되면 Heap영역의 String Constant Pool에 존재하게 되고, new를 통해 String을 생성하면 Heap영역에 존재하게 된다.불

순서가 있는 집합. 데이터의 중복을 허용한다.구현 클래스ArrayList LinkedList Stack key, value 쌍으로 구성된 집합. 순서는 유지되지 않는다.key는 중복되지 않고 value는 중복을 허용한다.구현 클래스 HashMap TreeMap

OS에 종속받지 않고 CPU가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터 Java 소스코드->Java bytecode->binary code(기계어)Java Compiler가 .java파일을 .class라는 Java bytecode로 변환한다.그리고 JVM이
YYYY-MM-DD 날짜를 저장하는 타입YYYY-MM-DD HH:mm:ss 날짜와 시간을 저장하는 타입, ‘1970-01-01 00:00:01’ UTC부터 ‘2038-01-19 03:14:07’ UTC까지JPA에서 LocalDateTime이 이 형식으로 매칭된다.DAT
group by절에 기술된 컬럼값으로 반드시 1의 집합을 가지게 됨(컬럼이 유니크해짐).select절에는 group by절에 기술된 컬럼과 집계함수만 사용될 수 있음.count, sum, avg, max, min집계함수는 Null을 계산하지 않음max, min의 경우
한 번에 표시될 데이터의 최대 개수LIMIT 10은 한 페이지에 최대 10개의 데이터를 표시하겠다는 의미시작점을 지정OFFSET 10은 첫 10개의 데이터를 건너뛰고 그 다음 11번쨰 데이터부터 시작하겠다는 의미
1:M 조인 시 결과 집합은 M집합의 레벨을 그대로 유지1의 의미 = unique, 고유하게 있다M의 의미 = 중복되어 있다.집합의 레벨집합 = 테이블(단일 테이블, 조인의 결과, Group by의 결과)레벨 = 특정 컬럼으로의 유일성이 어떤 레벨이냐를 의미M집합의 레
스프링 데이터 JPA가 구현 클래스 대신 생성 = 구현 코드가 필요없음Generic - <T: Entity 타입, ID: PK 타입>@Repository 애노테이션 생략 가능save(S)-S : 새로운 엔티티는 저장하고 이미 있는 엔티티는 병합한다.delete(T
예외가 WAS(=서블릿)까지 전달되거나 response.sendError()가 호출되면,WAS는 오류 페이지 정보를 확인한다. (ErrorMvcAutoConfiguration 클래스가 오류 페이지를 자동으로 등록하는 역할을 한다.)오류정보 -> new ErrorPage

예외는 폭탄 돌리기와 같다. 잡아서 처리하거나, 처리할 수 없으면 밖으로 던져야한다.기본적으로 언체크(런타임) 예외를 사용하자.컴파일러가 체크한다. - SQLException, IOExceptionException 을 상속받으면 체크 예외가 된다.예외를 잡아서 처리하지
자바 표준 검증 어노테이션주로 Request Body를 검증하는데 사용된다. 기본적으로 컨트롤러에서만 동작MethodArgumentNotValidException 발생Spring에서 제공하는 기능으로, AOP 기반으로 메소드의 요청을 가로채서 유효성을 검증하는 어노테이
예외 만들기@RestControllerAdvice@ExceptionHandler@ResponseStatusBoardExceptionPostNotFoundExceptionController

외부 트랜잭션이 수행중인데, 내부 트랜잭션이 추가로 수행됨외부 트랜잭션과 내부 트랜잭션이 하나의 물리 트랜잭션으로 묶인다.외부 트랜잭션 : 처음 시작된 트랜잭션내부 트랜잭션 : 외부에 트랜잭션이 수행되고 있는 도중에 호출된 트랜잭션물리 트랜잭션, 논리 트랜잭션물리 트랜
초기의 웹서버는 정적페이지만 제공할 수 있었다.웹서버에 프로그램(서블릿)을 붙여서 동적인 페이지 생성동적인 페이지를 만들기 위해 웹서버에 붙이는 프로그램서버의 기능을 확장하는 데 사용되는 자바 클래스. Java 서블릿 기술은 HTTP 전용 서블릿 클래스를 정의합니다.서
HttpHeader + HttpBodyHttpEntity 클래스를 상속받아 구현한 RequestEntity, ResponseEntityHTTP 요청에 대한 Status, Headers, Body를 제어하는데 사용하는 클래스이다.

1\. Executable Jar 생성1-1) Intellij에서 하는 방법 : 우측 Gradle-Tasks/build/bootJar1-2) Terminal에서 하는 방법빌드된 파일은 build/libs에 위치한다.2\. jar 파일 실행2-1) 기본적인 실행2-2)
로그 레벨LEVEL : TRACE > DEBUG > INFO > WARN > ERROR로그 레벨 설정application.properties개발 서버는 debug운영 서버는 info올바른 로그 사용법log.debug("data={}", data) \*\*Olog.deb
빈이 존재할 수 있는 범위싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프웹 관련 스코프 \- req