전체 글

개발에 관련된 학습 내용들을 기록하는 공간입니다.
JPA/Base

JPA - 연관관계 매핑

객체와 관계형 DB가 지향하는 패러다임의 차이를 극복하는 방법. ✍연관관계 매핑 - 🌹 객체의 참조와 테이블의 외래 키를 매핑 - 🔮 객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다. - 테이블에 맞추어 모델링을 하면, 코드를 객체 지향스럽게 짤 수 없음. => 외래 키에 대한 참조가 있어야하는데, 테이블에 맞추어 설계하면 객체가 외래 키 식별자 값을 그대로 갖게 됨. => 따라서 다른 테이블에 접근할 때 외래 키 식별자로 계속 DB에 접근해야 한다. 테이블은 외래 키로 조인을 사용하여 연관된 테이블을 찾음 객체는 참조를 사용해서 연관된 객체를 찾음. ㆍ단방향 연관관계 @ManyToOne - 해당 Entity에서 다른 entity에 접근하기 위한 참조의 개념으로, N : 1 의 관계..

Spring

OAuth동작 방식과 스프링 컨테이너 정리 글

https://blog.naver.com/mds_datasecurity/222182943542 OAuth 2.0 동작 방식의 이해 OAuth 2.0(Open Authorization 2.0, OAuth2)은 인증을 위한 개방형 표준 프로토콜입니다. 이 프로토... blog.naver.com https://codevang.tistory.com/248 스프링(Spring) MVC 동작 구조 및 스프링 컨테이너 - Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 서블릿을 다루다 ..

JPA/Base

JPA - Entity Mapping

JPA의 핵심 - 영속성 컨텍스트나 내부 매커니즘 / 객체와 관계형 데이터베이스를 어떻게 매핑하는지 ✍엔티티 매핑 ㆍ객체와 테이블 매핑 객체 & 테이블 매핑 - @Entity @Table 필드와 컬럼 매핑 - @Column 기본 키 매핑 - @Id 연관관계 매핑 - @ManyToOne @JoinColumn @Entity - @Entity가 붙은 클래스는 JPA가 전담하여 관리. - 기본 생성자 필수 - final 클래스, enum, interface, inner 클래스 X - 저장할 필드에 final 사용 X @Table - name = 매핑할 테이블 이름 - uniqueConstraints = unique 제약조건을 걺 ㆍ데이터베이스 스키마 자동 생성 애플리케이션 로딩 시점에 자동으로 테이블을 생성 할..

JPA/Base

JPA - 영속성 컨텍스트

- EntityManagerFactory에서 Request가 올 때마다 EntityManager를 생성 -> 내부적으로 데이터베이스 Connection 사용한다. ✍영속성 - JPA를 이해하는데 가장 중요한 용어, 영속성 = "엔티티를 영구 저장하는 환경" 이라는 뜻 (application과 DB사이의 중간 계층). 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태. 영속 : 영속성 컨텍스트에 관리되는 상태. 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태. - EntityManager을 통해 영속성 컨텍스트에 접근. 영속성 컨텍스트와 트랜잭션의 생명 주기를 맞춰주는 것이 중요. 영속성 컨텍스트의 이점 1차 캐시 : 영속 컨텍스트 안에 1차 캐시가 존재. JPA에서 Entity객체를 영속성..

JPA/Base

JPA - introduction

✍ORM은 객체와 RDB 두 기둥위에 있는 기술이다. - JPA Java Persistence API, 자바 진영의 표준 ORM JPA는 인터페이스의 모음, JPA를 구현하는 대표적인 구현체로 Hibernate가 있다. ==> SQL 중심적인 개발 -> 객체 중심의 개발, 생산성, 유지보수 - ORM Object-relational mapping(객체 관계 매핑) 객체는 객체대로, 관계형 DB는 DB대로 설계 - DAO에서 Entity 객체를 보내면, JPA가 이를 분석하고 쿼리문을 생성해줌. 이후 JDBC API를 사용. => 패러다임 불일치 해결 - 패러다임 불일치 해결 상속 - 조회 연관관계, 객체 그래프 탐색 신뢰할 수 있는 엔티티, 계층 JPA 성능 1차 캐시와 동일성 보장 - 같은 트랜잭션 안..

Language/Principle

객체 지향 설계 5원칙 - SOLID

OOP (Object Oriented Programming)은 실세계의 '객체'라는 개념으로 프로그래밍하는, 프로그램 설계 방법론이자 개념의 일종이다. 이에 기반이 되는 대표적인 객체 지향 언어로 'Java'가 있다. 이러한 객체 지향 프로그램을 올바르게 설계해 나가는 방법, 원칙이 바로 객체 지향 설계의 5원칙 (SOLID) 이다. SOLID는 다음 다섯가지 원칙의 앞글자를 따서 부르는 이름으로, 원칙의 종류는 다음과 같다. SRP (Single Responsibility Principle) : 단일 책임 원칙 OCP (Open Closed Principle) : 개방 폐쇄 원칙 LSP (Liskov Substitution Principle) : 리스코프 치환 원칙 ISP (Interface Segre..

KAispread
기억의 정류장