목록공부 (52)
공hannah부

목표 객체의 참조와 테이블의 외래 키를 매핑하는 것! 핵심 키워드 방향: 단방향, 양방향이 있다 다중성: 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)가 있다. 연관관계의 주인: 객체를 양방향 연관관계로 만들면 연관관계의 주인을 정해야한다. 객체 연관관계 vs 테이블 연관관계 객체는 참조(주소)로 연관관계를 맺는다 테이블은 외래 키로 연관관계를 맺는다 단방향 연관관계 다대일(N:1) 단방향 관계 상황 회원과 팀이 있다 회원은 하나의 팀에만 소속될 수 있다 회원과 팀은 다대일 관계다 객체 연관관계 객체는 참조를 통해 연관관계를 탐색하는데 이를 객체 그래프 탐색이라고 한다. Member member1 = new Member("memeber1","회원1"); Team team1 = ne..

@Entity Entity 속성 적용시 주의사항 기본 생성자 필수 final 클래스, enum, interface, inner 클래스에는 사용 X 저장할 필드에 final 사용 X @Table Table 속성 데이터베이스 스키마 자동 생성 이 속성을 추가하면 애플리케이션 실행 시점에 데이터베이스 테이블을 자동으로 생성한다. hibernate.hbm2ddl.auto 속성 DDL 생성기능 스키마 자동 생성하기를 통해 만들어지는 DDL에 제약조건 추가해보기 @Column(name = "NAME", nullable = false, length = 10) nullable속성 값을 false로 지정하면 자동 생성되는 DDL에 not null 제약 조건 추가됨 length 속성 값을 사용하면 자동 생성되는 DDL에 ..

엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저: 엔티티를 저장, 수정, 삭제, 조회하는 등 엔티티와 관련된 모든 일을 처리 엔티티를 저장하는 가상의 데이터 베이스 엔티티 매니저 팩토리: 엔티티 매니저를 만드는 공장 공장을 만드는 비용은 상당히 큼 → 한개만 만들어 애플리케이션 전체에서 공유하도록 설계 공장에서 엔티티 매니저를 생성하는 비용은 거의 들지 않음 영속성 컨텍스트 영속성 컨텍스트: 엔티티를 영구 저장하는 환경 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리함 em.persist(member); → 여기서 persist() 메소드는 엔티티 매니저를 사용해 회원 엔티티를 영속성 컨텍스트에 저장 엔티티의 생명주기 엔티티의 4가지 상태 비영속:..

이론 CI(Continuous Integratrion)란? 개발을 하면서 코드에 대한 통합을 지속적으로 진행함으로써 코드 품질을 유지하는 것 CD(Continous Delivery/Deploy)란? 배포를 자동화하여 지속적으로 배포하는 것 Github Actions + AWS CodeDeploy 아키텍쳐 구현 EC2 인스턴스 시작 EC2 tag 추가 IAM 역할 추가 - EC2 인스턴스에서 S3에 올려놓은 파일에 접근할 수 있도록 IAM(Identity and Access Management)는 AWS 리소스에 대해 엑세스를 안전하세 제어할 수 있는 웹 서비스이다. 이를 사용해 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어한다. EC2에 IAM 역할 추가 EC2에 CodeDeploy Agent 설..

Object 클래스 특징 java.lang 패키지에 포함되어있다. 모든 클래스의 슈퍼 클래스이다. 주요 메소드 boolean equals(Object obj) : obj가 가리키는 객체와 현재 객체를 비교하여 같으면 true 리턴 Class getClass() : 현 객체의 런타임 클래스 리턴 int hashCode() : 현 객체에 대한 해시코드값 리턴 String toString() : 현 객체에 대한 문자열 표현을 리턴 void notify() : 현 객체에 대해 대기하고 있는 하나의 스레드 깨움 void notify() : 현 객체에 대해 대기하고 있는 모든 스레드 깨움 void wait() : 다른 스레드가 깨울때까지 현재 스레드를 대기 객체 비교와 equals() ==연산자 : 두개의 레퍼런스..

메이븐과 사용 라이브러리 관리 메이븐 메이븐은 간단히 말해 라이브러리르 관리해주는 도구이다. pom.xml에 사용할 라이브러리를 적어주면 라이브러리를 자동으로 내려받아 관리해준다. pom.xml 에 사용할 라이브러리를 지정해 groupId + artifactId + version만 적어주면 라이브러리를 메이븐 공식 저장소에서 내려받아 추가해준다. 핵심 라이브러리: JPA, 하이버네이트, H2 데이터베이스 객체 매핑 시작 회원 테이블 만들기 CREATE TABLE MEMBER( ID VARCHAR(255) NOT NULL, NAME VARCHAR(255), AGE INTEGER, PRIMARY KEY(ID) ) 회원 클래스 만들기 + 어노테이션 추가 package jpabook.start; import j..

제네릭 프로그래밍 기본 일반적인 코드를 작성하고 이 코드를 다양한 타입의 객체에 대하여 재사용하는 프로그래밍 기법이다. 타입을 파라미터로 가지는 클래스와 인터페이스로 정의한다. 선언 시 클래스 또는 인터페이스 이름 뒤에 타입 파라미터 일반적으로 대문자 알파벳 하나로 표현한다. 제네릭을 사용하는 이유 컴파일 시 강한 타입 체크 가능 클래스의 구조와 연결관계가 복잡해지면서 타입 오류들이 발생할 수 있다. 이때 런타임-타입 에러가 나는 것을 방지한다. 타입명시 및 타입 변환 제거 가능 list에 일관된 타입의 정보를 저장하도록 명시한다. 제네릭 타입 사용 예시 클래스 선언시 타입 파라미터 사용 컴파일 시 타입 파라미터가 구체적인 타입으로 변경 public clss Box{ private T t; public ..

예외 처리 코드(try-catch-finally) - try 블록 예상되는 문제를 try 블록으로 설정한다. try{ 예외발생 가능 코드 } - catch 블록 catch 블록은 여러개 존재할 수 있으며, 최상위 예외는 가장 마지막에 위치시킨다. catch(Exception e){ 예외를 처리하는 코드 } -finally 블록 finally 블록은 예외 발생과 전달 여부에 관계없이 항상 실행되는 코드블록이다. 생략 가능하다. finally{ 항상 실행 } 예외 전달하기(throws) - catch와 달리 전달만 해서 예외 떠넘기기 라고도 한다. - 메소드 선언부 끝에 작성한다. 리턴타입 메소드명(매개변수,...) throws 예외클래스1, 예외클래스2,...{ } 사용자 정의 예외 - 자바 표준 API에..