✅ 연관관계 매핑시 고려사항 3가지 다중성 단방향, 양방향 양방향일경우 연관관계의 주인 ✅ 다중성 다대일 : @ManyToOne 다대일 관계에서는 다 인 부분에 외래키를 설정한다 다음 그림은 회원과 팀간의 단방향 관계를 맺는 그림이다 하나의 멤버는 하나의 팀에 속한
✅ 상속관계 매핑 DB 즉 관계형 데이터베이스는 상속 관계라는 것이 없음 슈퍼타입 서브타입의 관계 가 자바의 객체 상속이라 비슷함 왼쪽 그림은 자바의 상속 상태를 나타내며 오른쪽 그림에서 Item은 슈퍼타입 Album, Movie, Book 은 서브타입을 의미
✅ @Entity : DB의 특정테이블과 연결되는 JAVA의 객체로 JPA가 관리하는 엔티티를 의미한다JPA를 사용해서 테이블과 매핑할 클래스는 반드시 @Entity 를 사용해야함@Entity 를 사용하려면 기본 생성자가 필수로 존재해야함선언부에 @Entity 어노테이
✅ 영속성 컨텍스트 : 자바에 등록된 엔티티를 영구 저장하는 환경 엔티티매니저 팩토리 는 하나만 생성해서 애플리케이션 전체에서 공유 고객의 요청이 들어올때마다 엔티티매니저를 생성함 엔티티매니저 를 생성시 한개의 영속성 컨텍스트 가 생성 ( 1 : 1 ) 엔티티매니저
✅ JPA (Java Persistence API)자바에서 ORM을 처리해주는 표준 API관계형 데이터베이스의 데이터와 java 객체를 mapping 하는 기술로 JDBC기반으로 구현✅ JPA 기능DB 설계 기반이 아닌, JAVA 클래스 설계를 기반으로 DB를 연동하
트랜잭션은 원자성 일관성 격리성 지속성 을 다 보장해야함 원자성 : 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공하거나 실패해야함 일관성 : 모든 트랜잭션은 일관성 있는 데이터베이스 상태로 유지해야함 격리성 : 동시에 실행되는 트랜잭션
설정 스프링부트 : 스프링을 편리하게 사용할 수 있도록 지원하는 프레임워크 ✅ (장점 1) 내장 서버 : 웹 서버를 내장하고 있어서 별도의 웹서버 설치 없이 main 만 실행하면 Tomcat 이 자동으로 실행됨 위의 코드가 결국 스프링 컨테이너 를 생성해주고 WA
위 문제를 해결하는 방법\-> 커넥션을 미리 생성해두고 재사용하는 커넥션 풀 이 있다커넥션 풀 : DB와 커넥션이 연결되어 있는 상태로 즉시 SQL을 DB에 전달 가능 커넥션 풀은 서버당 최대 커넥션 수를 제한할 수 있어서 DB를 보호해줌실무에서 항상 기본으로 사용됨대
정적 중첩 클래스 : static이 붙고 바깥 클래스의 인스턴스에 소속되지 않는다정적 중첩 클래스는 다른 클래스를 중첩해둔 것 뿐이며, 둘은 아무런 관계가 없다쉽게 말해서 클래스 2개를 따로 만든것과 같다그러므로 내부에 있는 객체만 생성해도됨유일한 차이점은 privat
java.util.Date : JDK 1.0java.util.Calendar : JDK 1.1Joda-Time : 외부라이브러리로 자바 표준에 포함되지 않아서, 프로젝트에 별도로 추가해야함java.time 패키지 : JDK 1.8(자바8)에서 위 Joda-Time 을
enumeration의 줄임말으로 열거 라는 뜻임자바는 타입 안전 열거형 패턴을 제공한다열거형을 정의할 때는 class 대신 enum 을 사용하고 원하는 상수의 이름을 나열한다위처럼 자바의 열거형으로 작성한 Grade는 다음 밑의 코드와 같다열거형도 클래스이다열거형은
✅ 불변 객체가 도입된 이유 객체를 공유할 수 있는 것을 막기 위해서 ✅ 불변 객체 객체의 상태(내부의 값, 필드, 멤버변수)가 변하지 않는 객체 만드는 방법 final 키워드를 붙인다. Setter 를 만들지 않는다. 💡 red
✅ Object 클래스 자바의 최상위 클래스 Object 클래스가 최상위인 이유? -> 객체의 정보, 비교, 확인 등 자주 사용하는 기본 기능들을 일일이 만들기 힘듬 -> 모든 객체에 필요한 공통기능을 편리하게 제공하기 위해서 만들어짐 ✅ 종류 toString()
지역 변수에 설정시 최초 한번만 할당 가능할당 이후 변수 값 변경시 컴파일 오류 발생매개변수에 final 붙으면, 메서드 내부에서 매개변수의 값을 변경할 수 없음\-> 메서드 호출 시점에 넘겨진 값이 끝까지 고정됨💡 static final , final 공통점 : 둘
기본형 : int, long, double, boolean 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입 참조형 : 객체 또는 배열과 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입 쉽게말해 기본형 변수에는 직접 사용할 수 있는 값이 들어
HTTP 메시지 = HTTP 헤더 + HTTP 바디 ✅ HTTP 헤더의 용도 HTTP 전송에 필요한 모든 부가정보가 담겨있음 EX) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보 등등 Content-Type : 표현 데이터의
✅ HTTP (HyperText Transfer Protocol)HTTP 메시지에는 모든 것을 전송\-> HTML, TEXT, 이미지, 음성, 영상, 파일, JSON, XML(API) 등 거의 모든 형태의 데이터를 전송HTTP의 역사HTTP/0.9 (1991년) : G
✅ IP (인터넷 프로토콜) 역할 지정한 IP 주소에 데이터 전달 패킷 이라는 통신 단위로 데이터 전달 ✅ IP 프로토콜의 한계 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 ex) 친구가 이사갔는지 안갔는지 모른상태로 편지보내는 것 비신뢰성
배포 -> 애플리케이션을 사용자가 사용할 수 있는 상태로 만드는 것 ✅ 개발 사이클 내에서의 배포 개발 서버를 배포 한 후 (개발서버에 여러가지 테스트 진행) 위에서 문제가 없다면 이제 운영서버에 배포를 진행 ✅ 배포 자동 배포 : 실무에서 많이 사용함 ex) J
빈 스코프 : 빈이 존재할 수 있는 범위 스프링 빈은 기본적으로 -> 싱글톤 스코프 로 생성해 줌 ✅ 스프링의 스코프들 싱글톤 스코프 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 프로토타입 스코프 : 스프링 컨테이너는 프로토