본문 바로가기

분류 전체보기16

09장 JWT로 로그인/로그아웃 구현하기 학습 목표 : 토큰 기반 인증과 JWT, 리프레시 토큰의 개념을 이해하고 토큰 기반 인증인 JWT 토큰 서비스를 구현하고 적용한다. ** 목차 ** 9.1 사전 지식 : 토큰 기반 인증 9.2 JWT 서비스 구현하기 9.3 토큰 API 구현하기 9.1 사전 지식 : 토큰 기반 인증 1. 토큰 기반 인증 - 사용자가 서버에 접근할 때 이 사용자가 인증된 사용자인지 확인하는 방법은 다양함. - 대표적인 사용자 인증 확인 방법에는 서버 기반 인증과 토큰 기반 인증이 있음. - 스프링 시큐리티에서는 기본적으로 세션 기반 인증을 제공해줌. 8장에서는 기본적으로 제공해주는 세션 기반 인증을 사용해 사용자마다 사용자의 정보를 담을 세션을 생성하고 저장해서 인증을 함. - 토큰 기반 인증은 토큰을 사용하는 방법. - .. 2023. 11. 4.
08장 스프링 시큐리티로 로그인/로그아웃, 회원 가입 구현하기 학습 목표 : 스프링 기반의 애플리케이션의 보안(인증, 인가)을 담당하는 스프링 하위 프레임워크인 스프링 시큐리티를 사용해서 회원 가입, 로그인, 로그아웃 기능을 구현한다. ** 목차 ** 8.1 사전 지식 : 스프링 시큐리티 8.2 회원 도메인 만들기 8.3 시큐리티 설정하기 8.4 회원가입 구현하기 8.5 회원가입, 로그인 뷰 구현하기 8.6 로그아웃 구현하기 8.7 실행 테스트 하기 8.1 사전 지식 : 스프링 시큐리티 스프링 시큐리티 : 스프링 기반의 애플리케이션 보안(인증, 인가, 권한)을 담당하는 스프링 하위 프레임워크. - 인증과 인가 : 인증은 사용자의 신원을 입증하는 과정, 인가는 사이트의 특정 부분에 접근할 수 있는지에 권한을 확인하는 작업. - 필터 기반으로 동작하는 스프링 시큐리티 .. 2023. 11. 3.
06장 블로그 기획하고 API 만들기 학습 목표 : 블로그 글을 만들고(create), 조회하고(read), 업데이트하고(update), 삭제하는(delete) RESTful API를 만들고 스프링 부트 3와 JPA를 어떻게 사용하는지 알아보기 ** 목차 ** 6.1 사전지식 : API와 REST API 6.2 블로그 개발을 위한 엔티티 구성하기 6.3 블로그 글 작성을 위한 API 구현하기 6.4 블로그 글 목록 조회를 위한 API 구현하기 6.5 블로그 글 조회 API 구현하기 6.6 블로그 글 삭제 API 구현하기 6.7 블로그 글 수정 API 구현하기 - API 구현 순서 : 서비스 메서드 코드 작성 → 컨트롤러 메서드 코드 작성 → 실행테스트 → 테스트 코드 작성 6.1 사전지식 : API와 REST API 1. 식당으로 알아보는 .. 2023. 11. 2.
05장 데이터베이스 조작이 편해지는 ORM 5.1 데이터베이스 1. 데이터베이스 관리자, DBMS DBMS(database management system) : 데이터베이스를 관리하기 위한 소프트웨어, 관계형 데이터베이스는 많은 사람이 공유할 수 있어야 하므로 동시 접근을 할 수 있어야 함. - 관계형 DBMS (RDBMS) : 테이블 형태로 이루어진 데이터 저장소 ex) H2 : 자바로 작성되어 있는 RDBMS, 스프링 부트가 지원하는 인메모리 관계형 데이터베이스, 애플리케이션 자체 내부에 데이터를 저장하는 특징, 그래서 애플리케이션을 다시 실행하면 데이터는 초기화 됨. 간편 사용, 개발 시에 테스트 용도로 많이 사용 (스프링 부트 3 백엔드 개발자 되기 책에서도 개발 시에는 H2, 실제 서비스로 올릴 때는 MySQL을 사용) - 데이터베이스 .. 2023. 11. 1.
04장 스프링 부트 3와 테스트 4.1 테스트 코드 개념 익히기 1. 테스트 코드란? test 디렉토리에서 작업 - given-when-then 패턴 1. given : 테스트 실행을 준비하는 단계 2. when : 테스트를 진행하는 단계 3. then : 테스트 결과를 검증하는 단계 4.2 스프링 부트 3와 테스트 1. JUnit? : 자바 언어를 위한 단위 테스트 프레임워크 ※ 단위 테스트 : 작성한 코드가 의도대로 작동하는지 작은 단위로 검증하는 것을 의미함. 이때 단위는 보통 메서드 ** JUnit의 특징 ** 더보기 - 테스트 방식을 구분할 수 있는 애너테이션을 제공 - @Test 애너테이션으로 메서드를 호출할 때마다 새 인스턴스를 생성, 독립 테스트 가능 - 예상 결과를 검증하는 어설션 메서드 제공 - 사용 방법이 단순, 테.. 2023. 10. 31.
03장 스프링 부트 3 구조 이해하기 3.1 스프링 부트 3 구조 살펴보기 1. 카페와 빵집으로 이해하는 계층 스프링 부트에는 프레젠테이션, 비즈니스, 퍼시스턴스 계층이 있으며 이 계층이 서로 통신하며 프로그램을 구성함 프레젠테이션 계층(컨트롤러) ↔ 비즈니스 계층(서비스) ↔ 퍼시스턴스 계층(리포지토리) ↔ 데이터베이스 - 프레젠테이션 (Controller) : HTTP 요청을 받고 이 요청을 비즈니스 계층으로 전송하는 역할. 컨트롤러가 바로 프레젠테이션 계층의 역할을 함. 컨트롤러는 스프링 부트 내에 여러 개가 있을 수 있음 - 비즈니스 계층 (Service) : 모든 비즈니스 로직 처리. ※ 비즈니스 로직 : 서비스를 만들기 위한 로직, 서비스가 비즈니스 계층의 역할을 함. ex) 주문 서비스 - 주문 개수 등의 데이터를 처리하기 위한.. 2023. 10. 29.
02장 스프링 부트 3 시작하기 2.1 스프링과 스프링 부트 1. 스프링의 등장 - 엔터프라이즈 애플리케이션 : 대규모의 복잡한 데이터를 관리하는 애플리케이션 서버 성능, 안정성, 보안 매우 중요 엔터프라이즈 애플리케이션을 위한 개발 환경 제공 → 스프링 프레임워크 2. 스프링을 더 쉽게 만들어주는 스프링 부트 스프링, 설정 매우 복잡하다는 단점 → 스프링 부트 출시 - 스프링 부트 : 스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있도록 만들어주는 도구 빠르게 스프링 프로젝트 설정 가능, 의존성 세트라고 불리는 스타터를 사용해 간편하게 의존성 사용, 관리 가능 - 스프링 부트의 주요 특징 : 톰캣, 제티, 언더토우 같은 웹 애플리케이션 서버가 내장되어 있어서 따로 설치를 하지 않아도 독립적으로 실행할 수 있음 빌드 구성을 단순화하는 .. 2023. 10. 27.