1. build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.1.5' id 'io.spring.dependency-management' version '1.1.3' } group = 'practice' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '21' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data..
All Categories
2024.01.07 - [Spring Boot] - [Spring Boot] 로그인 기능 구현 (0) - 공통 기능, 코드 구현 [Spring Boot] 로그인 기능 구현 (0) - 공통 기능, 코드 구현 0. 상황 설명 여러가지 방법을 사용해서 로그인 기능을 구현하려 함 공통인 기능과 코드는 이 게시글에서 모두 정리 방법마다 다른 코드는 각 게시물에서 따로 정리 1. 프로젝트 버전 정보 / DB 스 blogan99.tistory.com 1. 스프링 시큐리티 (Spring Security) 란 ? 스프링에서 제공하는 프레임워크, 애플리케이션에 인증, 인가 기능을 제공함 동작 원리 로그인 시도 시, 인증 필터가 작동하여 사용자의 id, 비밀번호를 가져옴 인증 필터는 id, 비밀번호를 Authenticati..
2024.01.07 - [Spring Boot] - [Spring Boot] 로그인 기능 구현 (0) - 공통 기능, 코드 구현 [Spring Boot] 로그인 기능 구현 (0) - 공통 기능, 코드 구현 0. 상황 설명 여러가지 방법을 사용해서 로그인 기능을 구현하려 함 공통인 기능과 코드는 이 게시글에서 모두 정리 방법마다 다른 코드는 각 게시물에서 따로 정리 1. 프로젝트 버전 정보 / DB 스 blogan99.tistory.com 1. 세션 (Session) 이란 ? 웹사이트를 이용할 때 쓰는 프로토콜인 HTTP는 stateless '무상태' 임 stateless : 서버로 전달되는 모든 request는 이전 request와는 독립적으로 다뤄짐 (관계없음) 따라서 request가 끝나면 서버는 클..
2024.01.07 - [Spring Boot] - [Spring Boot] 로그인 기능 구현 (0) - 공통 기능, 코드 구현 [Spring Boot] 로그인 기능 구현 (0) - 공통 기능, 코드 구현 0. 상황 설명 여러가지 방법을 사용해서 로그인 기능을 구현하려 함 공통인 기능과 코드는 이 게시글에서 모두 정리 방법마다 다른 코드는 각 게시물에서 따로 정리 1. 프로젝트 버전 정보 / DB 스 blogan99.tistory.com 1. 쿠키란 ? 사이트에 방문 시, 브라우저는 서버에 request 보냄 서버는 이에 응답 (response) 해서 데이터와 페이지 정보등을 넘김 => response에는 브라우저에 저장하고자 하는 쿠키 존재 가능 서버가 생성한 쿠키는 브라우저로 전달되고 클라이언트는 ..
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..
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.28 - [CI,CD] - [CI/CD] Docker로 프로젝트 배포 및 중단 [CI/CD] Docker로 프로젝트 배포 및 중단 2023.12.28 - [CI,CD] - [CI/CD] AWS EC2 인스턴스 SSH 접속 + Docker 설치 [CI/CD] AWS EC2 인스턴스 SSH 접속 + Docker 설치 2023.12.28 - [CI,CD] - [CI/CD] AWS EC2 인스턴스 생성 방법 [CI/CD] AWS EC2 인스턴스 생성 방법 1. 기본 blogan99.tistory.com 1. Github Actions로 CI/CD 파이프라인 구축 방법 이전 게시글에서 생성해 둔 레포지토리와 샘플 프로젝트 사용 1-1. Github Actions 시작 레포지토리에 들어가서 Acti..