본문 바로가기

Backend9

[JPA] SQL 중심적인 개발의 문제점 SQL 중심 문제점 - 무한 반복, 지루한 코드 - 필드 추가에 경우 전체 쿼리를 바꿔야 함. 누락이 발생할 수도 있음 - 패러다임의 불일치 객체를 관계형 데이터베이스에 저장 객체와 관계형 데이터베이스의 차이 - 상속 - 연관관계 - 데이터 타입 2021. 12. 2.
[Security] OAuth2 Role 5 Roles User(Resource Ovewer) Mobile Device (User Agent) The Application (Client) - Oauth2 Spec에서 의미하는 Application은 API에 접근하는 Client를 의미한다. The API (Resource Server) Authorization Server 인가는 Authorization Server에서 담당하고, 토큰을 Client에 발급해준다. Client는 토큰을 통해 Resource 서버에 접근한다. OAuth2 Client 타입 두가지 Client 타입을 정의한다. client secret이 공개/비공개 여부에 따라 나뉜다. Confidential: Server에 client secret 저장 Public: client.. 2021. 11. 28.
[Security] Oauth2 개요 Oauth2란? Oauth2는 비밀번호를 사용하는 사이트에 직접 제공하지 않고 인가를 할 수 있는 industry-standard 프로토콜이다. Oauth2가 생기게 된 이유 기존에 Oauth2 방식의 표준이 생기기 전에는 Google 기능을 사용하기 위해 App에 id/password를 직접 제공하거나 각 사이트 별 인가 방식을 사용했다. 하지만 이런 방식은 보안에 취약하고 같은 문제를 여러 방식으로 풀게 되어 개발자들에게 혼란을 가져왔다. 도메인에 상관 없이 Auth에 대한 문제를 풀기위해 OAuth1 표준 스펙이 2007년에 나왔고 현재 OAuth2 표준으로 발전했다. Oauth2 기본 원리 Oauth2는 third-party app에 Google, Dropbox의 id/pwassword를 제공할 .. 2021. 11. 28.
[OOP] 좋은 객체 지향 설계 원칙 1. SRP(Single Responsibility Principle) 단일 책임의 원칙 한 클래스는 하나의 책임만 가져야 한다. 2. DIP(Dependency Inversion Principle) 의존관계 역전 원칙 추상화에 의존해야하며, 구체화에 의존하면 안된다. 3. OCP (Open Closed Principle) 개방 폐쇄 원칙 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 2021. 7. 20.
[JPA] 요구사항 분석과 기본 매핑 & 연관관계 매핑 기초 domain 패키지 생성 - Member - Order - OrderItem - Item 객체 지향적으로 만들 수 있음 데이터 중심 설계의 문제점 - 현재 방식은 객체 설계를 테이블 설계에 맞춘 방식 - 테이블의 외래키를 객체에 그대로 가져옴 - 객체 그래프 탐색이 불가능 - 참조가 없으므로 UML이 잘못됨 2020. 4. 13.
[JPA] 영속성 컨텍스트 JPA 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 영속성 컨텍스트 영속성 컨텍스트란 엔티티를 영구 저장하는 환경 EntityManager.persist(entity); => 엔티티를 영속성 컨텍스트에 저장을 함 엔티티의 생명주기 비영속: 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속: 영속성 컨텍스트에 관리되는 상태 준영속.. 영속성 컨텍스트의 이점 1차 캐시 동일성(identity) 보장 트랜잭션을 지원하는 쓰기 지연 변경 감지 지연 감지 2020. 4. 8.