본문 바로가기

전체 글

(142)
[자바 ORM 표준 JPA 프로그래밍] 연관관계 매핑 기초 - 단방향 연관관계 ( 1/3 ) - 목표 객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래 키를 매핑 ※ 인프런 또는 유투브 강의를 보고 진행하는 것을 추천합니다. 이전 소스와 구분 가능하도록 주석 및 파일을 분리 했으나 보기 힘들 수 있습니다. - 객체를 테이블에 맞추어 데이터 중심으로 모델링할 경우, 협력 관계를 만들 수 없다. 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다. SELECT * FROM MEMBERRELATION M JOIN TEAM T ON M.TEAM_ID= T.TEAM_ID 객체는 참조를 사용해서 연관된 객체를 찾는다. 테이블과 객체 사이에는 이런 큰 간격이 있다. ... try ... // 객체를 테이블에 맞추어 데이터 중심으로 모델링 진행 Team team = new Team();..
[자바 ORM 표준 JPA 프로그래밍] 실전 예제1 - 요구사항 분석과 기본 매핑 ( 3/3 ) - 요구사항 분석 회원은 상품을 주문할 수 있다. 주문 시 여러 종료의 상품을 선택할 수 있다. - 기능 목록 회원 가능 회원등록 회원조회 상품 기능 상품등록 상품수정 상품조회 주문 기능 상품주문 주문내역조회 주문취소 - 도메인 모델 분석 회원과 주문의 관계 : 회원은 여러 번 주문할 수 있다. ( 일대다 ) 주문과 상품의 관계 주문할 때 여러 상품을 선택할 수 있다. 반대로 같은 상품도 여러 번 주문될 수 있다. 주문 상품이라는 모델을 만들어서 다애다 관계를 일대다, 다대일 관계로 풀어낼 수 있다. - 테이블 설계 - 엔티티 설계와 매핑 - 데이터중심 설계의 문제점 현재 방식은 객체 설계를 테이블 설계에 맞푼 방식 테이블의 외래키를 객체에 그대로 가져옴 객체 그래프 탐색이 불가능 참조가 없으므로 UML..
[자바 ORM 표준 JPA 프로그래밍] 엔티티 매핑 - 필드와 컬럼 매핑, 기본키 매핑 ( 2/3 ) - 테스트 요구사항 회원은 일반 회원과 관리자로 구분해야 한다. 회원 가입일과 수정일이 있어야 한다. 회원을 설명할 수 있는 필드가 있어야 한다. 이 필드는 길이 제한이 없다. - @Column - @Enumerated 다바 enum 타입을 매핑할 때 사용 주의! ORDINAL 사용 X STRING TYPE 권장 배열 순서가 변경될 수도 있음 - @Transient 필드 매핑 X 데이터베이스에 저장X, 조회X 주로 메모리상에만 임시로 어떤 값을 보관하고 싶을 때 사용 @Transient private Integer temp; - 기본 키 매핑 어노테이션 @Id @GeneratedValue @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long ..
[자바 ORM 표준 JPA 프로그래밍] 엔티티 매핑 - 객체와 테이블 매핑, DB 스키마 자동 생성( 1/3 ) - 엔티티 매핑 소개 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매피 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColumn 1:1, 1:다, 다:다 같은 매핑 - 객체와 테이블 매핑 1. @Entity @Entity가 붙은 클래스는 JPA가 관리, 엔티티 JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 주의 기본 생성자 필수(파라미터가 없는 public 또는 protcted 생성자) final 클래스, enum, interface, inner 클래스 사용 X 저장할 필드에 final 사용 X ※ 필드에 final을 사용할 수 없는 이유 엔티티 객체가 언제 변경되었는지 감지하기 위해 구현에서 런타임에 클래스를 하위 클래스..
[자바 ORM 표준 JPA 프로그래밍] 영속성 관리 - JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 Object Relational Mapping 영속성 컨텍스트(실제로 내부에서 어떻게 작동하는지?) - 엔티티 매니저 팩토리와 엔티티 매니저 - 영속성 컨텍스트 엔티티를 영구 저장하는 환경 EntityManager.persist(entity); '엔티티 객체를 DB에 저장하는 구나'라고 생각하고 있습니다. 하지만 실제로는 영속성 컨텍스트에 저장을 합니다. 논리적인 개념 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 - 엔티티의 생명주기 비영속 ( new / transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 // 객체를 생성한 상태 ( 비영속 ) Member member = new Member(); member.setI..
[AWS Technical Essentials 교육] AWS 탄력성 및 관리 도구 - CloudWatch, Auto Scaling(10) - Amazon CloudWatch 다른 AWS 리소스 모니터링 그래픽 및 통계 보기 경보 설정 - Amazon CloudWatch 아키텍쳐 - Auto Scaling - Auto Scaling의 이점 내결함성 향상 인스턴스가 비정상 상태일 때 이를 감지하여 종료한 다음 이를 대체할 인스턴스를 시작할 수 있습니다. 가용성 향상 애플리케이션이 현재 트래픽 요구를 처리할 수 있는 적절한 용량을 언제나 유지하도록 도와줄 수 있습니다. 비용 관리 개선 필요에 따라 용량을 동적으로 늘리고 줄일 수 있습니다. - 동적 확장 CloudWatch 경보를 사용하여 다음을 결정하도록 조정 정책을 생성할 수 있습니다. Auto Scaling 그룹이 언제 확장해야 하는지 Auto Scaling 그룹이 언제 축소해야하는지 경보..
[AWS Technical Essentials 교육] AWS 탄력성 및 관리 도구 - ELB(9) - Elastic Load Balancing(ELB) - 지원하는 로드 밸런서 Classic Load Ballancer 현재 권장하지 않습니다.(EC2 Classic, 아주 예전 방식, VPC를 쓰지 않음) Application Load Balancer OSI 7 Level(HTTP/HTTPS) 수준에서 동작 Network Load Balancer OSI 4 Level(TCP) Application Load Balancer보다 지원하는 기능은 적지만, 성능은 더 좋습니다. - 로드 밸런서 비교 https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html What is Elastic Load Bala..
[AWS Technical Essentials 교육] AWS DynamoDB - NoSQL(8) - Amazon DynamoDB 테이블은 항목의 모음이고, 각 항목은 속성의 모음입니다. 항목의 값 속석은 이름 값 페어입니다. 속성은 스칼라(단일 값), JSON 문서 또는 집합이 될 수 있습니다. 프로비저닝 모드 사용자가 읽기 및 쓰기에 필요한 프로비저닝된 퍼리량 용량을 지정합니다. 온디맨드 모드 Amazon DynamoDB는 필요한 머신 리소스를 할당하여 요건을 충족합니다. - Amazon RDS 및 Amazon DynamoDB 비교 - 데이터베이스 고려사항 - 지식 확인 Amazon Relational Database Service(Amazon RDS)의 기본 빌딩 블록은 무엇입니까? DB 인스턴스 Amazon RDS를 사용하여 복원력과 내구성을 갖춘 애플리케이션을 구축하고 있습니다. 백업이 안정..