Backend
-
[Spring] 웹 어플리케이션 보안 위협 요소Backend/Spring 2022. 8. 30. 17:38
웹 어플리케이션의 주요 보안 위협 요소 인증(Authentication) 절차 마비 인증(Authentication)은 인가(Authorization)와 함께 보안 관련 핵심 개념 중 하나이다. 사용자의 신원을 확인하는 과정은 아이디/패스워드 기반 로그인 방식, OAuth2.0 프로토콜을 통한 Social 인증이 있다. 보통 어플리케이션은 인증영역과 인증되지 않은 영역(익명영역)으로 나눌 수 있다. 익명역역 - 사용자의 신원과 무관한 기능들 사용자의 민감정보를 노출하지 않아야 한다. 시스템의 상태를 변경하거나 데이터를 관리할 수 있는 기능을 제공하지 않아야 한다. 인증 영역 - 사용자의 개인정보를 확인하고, 수정할 수 있음 인가(Authorization) 처리의 마비 적절한 권한이 부여된 사용자들만 특정..
-
[Spring] SpringDataJPABackend/Spring 2022. 8. 25. 17:57
SpringDataJPA 스프링에서 JPA를 편리하게 사용할 수 있도록 지원하는 프로젝트이다. 쿼리를 짜는데 집중하는 시간을 줄이고 어플리케이션 코드, 객체를 어떻게 매핑시키고 엔티티를 어떻게 다루는지 객체를 설계하고 개발하는데 많은 시간을 쓸 수 있게한다. 쿼리 지향 개발이 아닌 객체 지향 개발이 가능하도록 도와준다. AutoConfiguration 지원 데이터 소스 및 엔티티 매니저, 트랜잭션 매니저 설정을 자동으로 해준다. spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:~/order;DB_CLOSE_ON_EXIT=FALSE username: sa password: jpa: open-in-view: false hibernate: ..
-
[Spring] 프록시와 연관관계Backend/Spring 2022. 8. 25. 17:18
객체 그래프 탐색 객체는 객체 그래프로 연관된 객체를 탐색한다. order.getMember()나 member.getOrders()와 같이 가능하다. https://miraekwak.tistory.com/125 [Spring] 연관 관계 매핑 단일 엔티티 매핑 https://miraekwak.tistory.com/124 [Spring] 단일 엔티티 매핑 단일 엔티티 매핑 JPA는 엔티티 객체를 생성할 때, 기본 생성자 (Default Constructor)를 사용한다. @Entity : 영속성 컨텍스트에.. miraekwak.tistory.com Entity는 객체가 데이터베이스(RDB)와 매핑되어 있어서 자유롭게 객체를 탐색하는데 제한이 있다. order.getMember()를 하려고 한다면 order..
-
[Spring] 고급 매핑(상속관계매핑/@MappedSuperclass/식별자클래스)Backend/Spring 2022. 8. 25. 15:56
연관 관계 매핑 연관 관계 매핑은 단일 매핑의 데이터 중심 설계에서 벗어나 객체간의 참조를 설정하는 매핑 방식이다. 연관관계 매핑을 바탕으로 고급 매핑을 적용할 수 있다. https://miraekwak.tistory.com/125 [Spring] 연관 관계 매핑 단일 엔티티 매핑 https://miraekwak.tistory.com/124 [Spring] 단일 엔티티 매핑 단일 엔티티 매핑 JPA는 엔티티 객체를 생성할 때, 기본 생성자 (Default Constructor)를 사용한다. @Entity : 영속성 컨텍스트에.. miraekwak.tistory.com 고급 매핑 RDB의 테이블과 매핑된 객체(Entity)를 객체답게 사용할 수 있도록 JPA에서 제공하는 매핑 전략이다. 테이블 상속 관계 ..
-
[Spring] 연관 관계 매핑Backend/Spring 2022. 8. 25. 14:51
단일 엔티티 매핑 https://miraekwak.tistory.com/124 [Spring] 단일 엔티티 매핑 단일 엔티티 매핑 JPA는 엔티티 객체를 생성할 때, 기본 생성자 (Default Constructor)를 사용한다. @Entity : 영속성 컨텍스트에서 관리하는 객체임을 알림 속성 설명 name JPA에서 사용할 엔티티 이름을 지 miraekwak.tistory.com 단일 엔티티 매핑을 사용할 경우 데이터 중심 설계로 인해 잘못된 JPA 엔티티 객체를 사용하는 문제점이 발생한다. 이를 해결하는 것이 연관 관계 매핑! 연관 관계 매핑 객체 연관 관계 VS 테이블 연관 관계 테이블 연관 관계 create table member (id bigint not null, address varchar..
-
[Spring] 단일 엔티티 매핑Backend/Spring 2022. 8. 24. 17:40
단일 엔티티 매핑 JPA는 엔티티 객체를 생성할 때, 기본 생성자 (Default Constructor)를 사용한다. @Entity : 영속성 컨텍스트에서 관리하는 객체임을 알림 속성 설명 name JPA에서 사용할 엔티티 이름을 지정한다. @Table : 엔티티 객체와 RDB 테이블간의 매핑 속성 설명 name 매핑할 테이블 이름 @Table(name = "member") public class Member { @Id private Long id; private String name; private String nickName; private int age; private String address; private String description; // getter, setter } 데이터 베이스 스..
-
[Spring] 영속성 컨텍스트Backend/Spring 2022. 8. 22. 15:38
Entity, EntityManagerFactory, EntityManagerFactory Entity RDB의 Table과 매핑되는 객체이다. @Entity @Table(name = "customers") // table 명이 클래스명과 다를경우 public class Customer { @Id // Id PK private long id; private String firstName; private String lastName; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstNam..
-
[Spring] Spring Frameworks를 활용한 데이터 레이어(RDB) 접근 방법Backend/Spring 2022. 8. 19. 12:15
Spring Frameworks를 활용한 데이터 레이어(RDB) 접근 방법 JDBC JDBC Template 쿼리매퍼(Mybatis) ORM(JPA) JDBC 자바 어플리케이션은 JDBC API를 이용하여 데이터 계층과 통신한다. JDBC API 인터페이스는 각각 JDBC Driver라는 구현체를 통해서 동일한 인터페이스로 구현되어 있음 각 Database에 대해 구현해놓은 Driver 클래스 객체들을 사용해서 JDBC API 인터페이스를 통해서 통신 @Slf4j public class JDBCTest { static final String JDBC_DRIVER = "org.h2.Driver"; static final String DB_URL = "jdbc:h2:~/test"; static final S..