전체 글

· DEV/Database
데이터베이스 인덱싱이란? 데이터베이스 인덱싱은 데이터베이스 내에서 데이터를 효율적으로 검색하고 관리하기 위해 사용하는 데이터 구조이다. 인덱스는 테이블의 한 열(또는 열의 조합) 에 대한 데이터베이스 오브젝트로, 데이터를 빠르게 찾을 수 있도록 도와, 쿼리 성능을 크게 향상시킬 수있다. 간단한 비유로 일반적으로 책의 목차로 들 수 있다. '이것이 자바다' 라는 책에서 '컬렉션과 제네릭' 페이지를 읽고 싶을 때, 책의 목차가 없다면 첫 장부터 훑어야 할 것이다.목차가 있다면 몇 페이지인지 알고 있어 한 번에 찾아갈 수 있다.인덱싱의 원리인덱스는 일반적으로 다음과 같은 데이터 구조로 구현된다.B-트리(Balanced-Tree) : 가장 일반적인 인덱스 구조. 균형 잡힌 트리 구조를 유지하며, 노드 간 검색이..
강의를 들은 내용을 토대로 블로그를 작성. OAuth2.0 Client와 Spring Security 6 Framework를 활용하여 소셜로부터 인증을 받고 전달받은 유저 데이터를 활용하여 JWT를 발급하고 인가를 진행하는 내용을 코드와 함께 정리해볼 예정이다. 구현 방식은 API 서버 형태로 구현하고, 소셜서비스는 구글, 카카오, 애플 3개로 진행할 예정이다. 소셜 로그인 후 JWT를 발급받고, JWT를 통한 경로별 접근 권한과 인증 정보를 DB에 저장후 추가 정보를 기입하는 방식. 사용하는 버전과 의존성 Spring Boot 3.2.3 Spring Security 6.2.2 OAuth2 Client Lombok Spring Data JPA - MySQL JJWT 0.12.3 Gradle - Groov..
UserEntity에 @Getter 어노테이션 달아주기. CustomUserDetails 클래스 작성. CustomUserDetailsService 클래스 작성.
의존성 주석을 먼저 해제한다. 그 다음 IntelliJ Ultimate버전 사용자라면 Database 탭으로 가서 Mysql을 등록해 준다. 다음으로 Default Query Console을 열고, 아래처럼 database를 생성해 준다. 생성이 되었다면, application.properties 파일에 아래와 같이 작성한다. 이제 연동이 끝났다. 회원가입 Form 화면을 만들어 보자. 회원가입 로직 회원정보를 통해 인증 / 인가 작업을 진행하기 때문에 사용자로부터 회원가입을 진행한 뒤 데이터베이스에 회원 정보를 저장해야 한다. join.mustache 파일을 생성하고, 아래와 같이 작성한다. 다음으로, Controller도 작성한다. SecurityConfig도 회원가입 관련 경로 전부 허용 이제 회원..
스프링 시큐리티는 사용자 인증(로그인) 시 비밀번호에 대해 단방향 해시 암호화를 진행하여 저장되어있는 비밀번호와 대조한다. 따라서 회원가입시 비밀번호 항목에 대해서 암호화를 진행해야 한다. 단방향 / 양방향 암호화란? 양방향 - 대칭키 - 비대칭키 양방향 암호화는 입력된 데이터를 암호화해 출력값을 만드는 거랑 그 반대로 출력값을 다시 원본 데이터로 바꾸는 걸 할 수 있는 암호화 방식이다. 대표적으로 대칭키 알고리즘과 비대칭키 알고리즘이 있다. 단방향 - 해시 단방향 암호화는 입력된 데이터를 암호화해서 출력값(해시)를 만든다. 암호화된 데이터로부터는 원본 데이터를 찾을 수 없다고 한다. 주로 사용자의 비밀번호를 안전하게 저장하는 데 사용한다. 스프링 시큐리티는 암호화를 위해 BCrypt Password E..
기존에는 인가가 필요한 경로에 접근 시, 스프링 시큐리티에서 제공하는 로그인 폼을 통해 로그인 했어야 했다. 이 디폴트 로그인 폼을 내가 만든 로그인 폼으로 변경하는 작업을 해보자. login.mustache 파일을 아래와 같이 작성한다. 다음으로 로그인 컨트롤러도 하나 생성해 준다. 이전에는 설명을 못했었는데, @Controller와 @RestController의 차이가 뭐냐면, Rest한 Json데이터를 Return하는 형식이 아닌, 하나의 View를 return하는 방식이다. 우리는 mustache를 return 해주기 위해서 @Controller를 사용한 것. 이제 SecurityConfig파일에서 아래와 같이 작성하면 된다. 스프링 시큐리티에는 csrf라는 사이트 위변조 방지 시스템이 설정되어있..
wn1331
JONGHUN