Spring Boot

· Spring Boot
0. 상황 설명여러가지 방법을 사용해서 로그인 기능을 구현하려 함공통인 기능과 코드는 이 게시글에서 모두 정리방법마다 다른 코드는 각 게시물에서 따로 정리 * 구현한 로그인 기능 프로젝트 *쿠키 로그인 https://blogan99.tistory.com/84세션 로그인 https://blogan99.tistory.com/86스프링 시큐리티 로그인 https://blogan99.tistory.com/87 JWT 로그인 https://blogan99.tistory.com/89구글 로그인 (OAuth 2.0) https://blogan99.tistory.com/90카카오 로그인 (OAuth 2.0) https://blogan99.tistory.com/91네이버 로그인 (OAuth 2.0) https://blo..
· Spring Boot
1. 페이징 (paging) 기능이란 ? 데이터를 일정한 크기로 나누어서 (페이지화 시켜서) 보여주는 기능 많은 양의 데이터를 한 번에 보여주는 것이 아니므로 스크롤을 내리는 등의 불편함, 긴 로딩시간 등을 해소 가능 페이징 기능에는 정렬, 검색 등의 기능이 포함되어 있으므로 함께 사용하면 사용자가 더 빠르고 정확하게 데이터를 찾을 수 있음 즉, 대량의 데이터를 효율적으로 관리하고 사용자에게 편리한 접근성을 제공하는 기능 2. 페이징 구현 방법 (Spring Boot) 스프링 부트에서는 페이징을 구현하는 방법 2가지 존재 컨트롤러 (Controller) 단에서 사용 => Pageable, PageRequest 레포지토리 (Repository), 서비스 (Service) 단 등에도 리턴 타입을 Page로 ..
1. 즉시로딩 @ManyToOne (fetch = FetchType.EAGER)// 즉시 로딩 전략 엔티티를 조회할 때 연관된 엔티티도 모두 즉시 조회 ex) 멤버가 팀에 속하는 관계 멤버 엔티티 조회할 때 팀 엔티티도 모두 조회됨 즉, 멤버와 팀 관련 select 쿼리가 모두 DB에 전송됨 이때 조회되는 팀은 프록시 객체가 아닌, Team 클래스 다대일 (N:1), 일대일 (1:1) 연관관계는 즉시로딩이 기본값 2. 지연로딩 @ManyToOne(fetch = FetchType.LAZY)// 지연 로딩 전략 엔티티를 조회할 때 연관된 엔티티는 프록시로 조회하고 실제 사용하는 시점에 초기화 됨 (DB 조회) ex) 멤버가 팀에 속하는 관계 멤버 엔티티 조회할 때 팀 엔티티는 조회되지 않음 (멤버 : DB에..
연관관계 매핑 관련 게시물 2023.12.18 - [JPA] - [JPA] 연관관계 매핑 - 단방향 매핑, 양방향 매핑 2023.12.18 - [JPA] - [JPA] 연관관계 매핑 - 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 상속관계 매핑 관계형 데이터베이스에는 상속관계가 존재하지 않는다. 대신 슈퍼타입, 서브타입이 존재하는데 이를 객체의 상속관계로 풀어내는 매핑이다. 공통 어노테이션 @Inheritance(strategy = InheritanceType.XXXX) @DiscriminatorColumn(name = "구별자 컬럼 이름") @DiscriminatorValue("구별자 값") 상속관계 매핑 - 조인 전략 서브타입에 해당하는 Album, Book, Movie 모두..
단방향, 양방향, 연관관계 주인에 대한 설명과 예시 엔티티, 테이블은 링크 참고 2023.12.18 - [JPA] - [JPA] 연관관계 매핑 - 단방향 매핑, 양방향 매핑 연관관계 매핑 시 고려사항 다중성 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany => JPA의 어노테이션은 모두 DB와 매핑위해 존재한다. 따라서 DB관점에서의 다중성을 기준으로 설정! 다대일, 일대다 등 명칭은 '대' 앞의 '다', '일' 등에 해당하는 엔티티가 테이블의 외래키를 관리한다(연관관계 주인)는 뜻 방향성 단방향 : 한쪽만 참조 양방향 : 양쪽 모두 참조 연관관계의 주인 양방향 관계의 경우 외래키가 존재하는 테이블에서의 참조를 연관관계의 주인으로 ..
연관관계 매핑 테이블에서는 외래키만을 통해 연관 테이블을 찾는다. 즉, 외래키만으로 양방향의 연관관계를 갖는다. (사실 테이블에는 방향 개념이 존재하지 않는다.) 그러나 객체에서는 참조를 통해서 연관 객체를 찾는다. 따라서 하나의 참조는 단방향만의 관계를 갖는다. 이와 같이 테이블과 객체는 연관관계에서의 차이점이 분명하다. 이러한 차이점을 최소화 시켜주는 것이 JPA에서의 연관관계 매핑이다. 연관관계 매핑은 객체의 참조와 테이블의 외래키를 매핑하는 것이다. 연관관계를 맺어주지 않는다면 객체의 참조가 아닌 테이블에서의 외래키를 그대로 사용한다. 이때는 외래키 식별자를 직접 다루기 때문에 객체지향스럽지 못하다. 또한 조회에서도 마찬가지로 연관관계가 없으므로 계속 DB에서 끄집어 내야 한다. 따라서 연관관계 ..
1. 객체 - 테이블 매핑 @Entity JPA가 관리하는 클래스 ( = 엔티티 ) DB의 테이블과 매핑할 클래스는 @Entity 필수 JPA는 내부적으로 동적으로 객체를 생성해야 한다. 따라서 기본 생성자가 반드시 필요함! @Entity public class Member{ public Member(){}// 기본 생성자 } - @Entity(name = " ") 엔티티의 이름을 지정 기본값 : 클래스의 이름과 동일하게 @Entity(name = "USER")// JPA 에서 해당 엔티티의 이름을 "USER"로 관리 public class Member{ public Member(){} } @Table 해당 엔티티 (클래스) 가 DB에서의 어떤 테이블과 매핑할 지를 결정 기본값 : 엔티티 이름과 동일한 ..
영속성 컨텍스트 영속성 컨텍스트는 JPA를 사용함에 있어서 가장 중요한 요소이다. 영속성 컨텍스트 (persistence-context) 는 엔티티를 영구 저장하는 환경이라는 뜻이며, 눈으로는 볼 수 없는 논리적인 개념이다. 앞서 생성한 엔티티 매니저를 통해서 영속성 컨텍스트에 접근한다. 2023.12.13 - [JPA] - [JPA] 엔티티 매니저 팩토리, 엔티티 매니저 하나의 엔티티 매니저가 하나의 영속성 컨텍스트와 매핑되지만 spring 프레임워크와 같은 컨테이너 환경에서는 여러개의 엔티티 매니저가 하나의 영속성 컨텍스트와 매핑된다. 영속성 컨텍스트와 관련하여 엔티티의 생명주기는 4가지가 있다. 엔티티의 생명주기 1 - 비영속 (new/transient) 비영속 상태란 단지 엔티티를 생성한 상태를 ..
공대생안씨
'Spring Boot' 카테고리의 글 목록 (6 Page)