일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Python
- docker
- Spring
- DispatcherServlet
- Java의정석
- 계층 쿼리
- 스프링 부트와 JPA
- 스프링입문
- 불친절한 SQL 프로그래밍
- 자바연습문제
- Numpy
- REGEXP_SUBSTR
- 서블릿
- 자바공부
- inflearn
- 자바의정석 연습문제
- 시큐어코딩
- 분석함수
- 불친절한SQL프로그래밍
- 스프링 핵심원리
- 제네릭
- Secure Coding
- 인프런
- 스프링
- java
- 스프링MVC
- JPA
- 이것이자바다
- 자바의정석
- 김영한
- Today
- Total
목록분류 전체보기 (118)
Continuous Challenge
HTTP HTTP 메시지에 모든 것을 전송 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 역사 HTTP/0.9 1991년 : GET 메서드만 지원, HTTP 헤더X HTTP/1.0 1996년 : 메서드, 헤더 추가 HTTP/1.1 1997년 : 가장 많이 사용, 우리에게 가장 중요한 버전 HTTP/2 2015년 : 성능 개선 HTTP/3 진행중 : TCP 대신에 UDP 사용, 성능 개선 기반 프로토콜 TCP : HTTP/1.1, HTTP/2 UDP : HTTP/3 현재 HTTP/1.1 주로 사용 HTTP/2, HTTP/3 도 점점 증가 클라이언트 서버 구조 Request ..
URI (Uniform Resource Identifier) URI는 로케이터(Loctor), 이름(Name) 또는 둘 다 추가로 분류될 수 있다. URI Uniform : 리소스 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것 (제한 없음) Identifier : 다른 항목과 구분하는 데 필요한 정보 URL, URN URL(Uniform Resource Locator) : 리소스가 있는 위치를 지정 URN(Uniform Resource Name) : 리소스에 이름을 부여 위치는 변할 수 있지만, 이름은 변하지 않는다. URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음 따라서, 앞으로는 URI를 URL과 같은 의미로 얘기하겠음. URL 전체 문법 s..
인터넷 네트워크 인터넷 통신 IP (Internet Protocol) TCP, UDP PORT DNS IP (Internet Protocol) 인터넷 프로토콜 역할 지정한 IP 주소 (IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 IP 프로토콜의 한계 비연결성 - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 - 중간에 패킷이 사라지면? (패킷 소실) - 패킷이 순서대로 안오면? (패킷 전달 순서 문제 발생) 프로그램 구분 - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면? TCP, UDP 인터넷 프로토콜 스택의 4계층 애플리케이션 계층 - HTTP, FTP 애플리케이션 전송 계층 - TCP, UDP OS 인터넷 계층 - I..
프록시 em.find() vs em.getReference() em.find() : 데이터베이스를 통해서 실제 엔티티 객체 조회 em.getReference() : 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 프록시 객체의 초기화 Member member = em.getReference(Member.class, "id1"); member.getName(); getName() 영속성 컨텍스트에 초기화 요청 DB 조회 실제 Entity 생성 target.getName() 프록시의 특징 프록시 객체는 처음 사용할 때 한 번만 초기화 프록시 객체를 초기화 할 때, 프록시 객체가 실제 엔티티로 바뀌는 것은 아님. 초기화되면 프록시 객체를 통해서 실제 엔티티에 접근 가능 프록시 객체는 원본 엔티티를 ..
상속관계 매핑 관계형 데이터베이스는 상속 관계 X 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법 각각 테이블로 변환 -> 조인 전략 통합 테이블로 변환 -> 단일 테이블 전략 서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 주요 어노테이션 @Inheritance(strategy=InheritanceType.XXX) - JOINED : 조인 전략 - SINGLE_TABLE : 단일 테이블 전략 - TABLE_PER_CLASS : 구현 클래스마다 테이블 전략 @DiscriminatorColumn(name="DTYPE") @DiscriminatorVa..
연관관계 매핑 시 고려사항 다중성 - 다대일 : @ManyToOne - 일대다 : @OneToMany - 일대일 : @OneToOne - 다대다 : @ManyToMany (실무에서 사용X) 단방향, 양방향 - 테이블 . 외래 키 하나로 양쪽 조인 가능 . 사실 방향이라는 개념이 없음 - 객체 . 참조용 필드가 있는 쪽으로만 참조 가능 . 한쪽만 참조하면 단방향 . 양쪽이 서로 참조하면 양방향 연관관계의 주인 - 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 - 객체 양방향 관계는 A->B, B->A 처럼 참조가 2군데. 둘 중 테이블의 외래 키를 관리할 곳을 지정해야 함. - 연관관계의 주인 : 외래 키를 관리하는 참조 - 주인의 반대편 : 외래 키에 영향을 주지 않음, 단순 조회만 가능 다대일(..
단방향 연관관계 객체를 테이블에 맞춰 데이터 중심으로 모델링하면 협력 관계를 만들 수 없다. 양방향 연관관계와 연관관계의 주인 객체의 양방향 관계 객체의 양방향 관계는 사실 양방향 관계가 아니라 다른 단방향 관계 2개다. 객체를 양방향으로 참조하려면 단방향 연관관계를 2개 만들어야 한다. 테이블의 양방향 연관관계 테이블은 외래 키 하나로 두 테이블의 연관관계를 분리 외래 키 하나로 양방향 연관관계 가짐 (양쪽으로 조인 가능) 연관관계의 주인(Owner) 양방향 매핑 규칙 객체의 두 관계 중 하나를 연관관계의 주인으로 지정 연관관계의 주인만이 외래 키를 관리(등록, 수정) 주인이 아닌 쪽은 읽기만 가능 주인은 mappedBy 속성 사용X 주인이 아니면 mappedBy 속성으로 주인 지정 외래 키가 있는 곳..
기본 키 매핑 어노테이션 @Id @GeneratedValue 기본 키 매핑 방법 직접 할당 : @Id만 사용 자동 생성 : @GeneratedValue - IDENTITY : 데이터베이스에 위임. MYSQL - SEQUENCE : 데이터베이스 시퀀스 오브젝트 사용. ORACLE . @SequenceGenerator 필요 - TABLE : 키 생성용 테이블 사용. 모든 DB에서 사용 . @TableGenerator 필요 - AUTO : 방언에 따라 자동 지정. 기본값 IDENTITY 전략 기본 키 생성을 데이터베이스에 위임 주로 MySQL, PostgreSQL, SQL Server, DB2 에서 사용 (ex. MySQL의 AUTO_INCREMENT) JPA는 보통 트랜잭션 커밋 시점에 INSERT SQL ..
필드와 컬럼 매핑 매핑 어노테이션 @Column : 컬럼 매핑 @Temporal : 날짜 타입 매핑 @Enumerated : enum 타입 매핑 @Lob : BLOB, CLOB 매핑 @Transient : 특정 필드를 컬럼에 매핑하지 않음(매핑 무시) @Column name : 필드와 매핑할 테이블의 컬럼이름(default : 객체의 필드 이름) insertable, updatable : 등록, 변경 가능 여부(default : TRUE) nullable(DDL) : null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null 제약조건이 붙는다. unique(DDL) : @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용..