Spring Security 프레임워크 이해하기
·
Spring
Spring Security "Spring Security" 프레임워크는 Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 준다. WebSecurityConfig@Configuration@EnableWebSecurity // Spring Security 지원을 가능하게 함public class WebSecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // CSRF 설정 http.csrf((csrf) -> csrf.disable()); http.authorizeHttpReq..
Spring의 Filter 이해하기 및 구현하기
·
Spring
Filter Filter란 Web 애플리케이션에서 관리되는 영엽으로 Client로 부터 오는 요청과 응답에 대해 최초/최종 단계의 위치이며 이를 통해 요청과 응답의 정보를 변경하거나 부가적인 기능을 추가 할 수 있다.  주로 범용적으로 처리해야 하는 작업들, 예를 들어 로깅 및 보안 처리, 인증, 인가 등에 활용 한다. Filter를 사용하면 인증/인가와 관련된 로직을 비즈니스 로직과 분리하여 관리 할 수 있다는 장점이 있다. Filter Chain  Filter는 한 개만 존재하는 것이 아니라 이렇게 여러 개가 Chain 형식으로 묶여서 처리될 수 있다. 📍 요청 URL의 인가 처리 및 인증 처리를 진행할 수 있는 Filter 구현 + 요청 URL을 로깅해주는 Filter 구현 Request URL ..
Spring에서 JWT 이해하기 + 쿠키와 세션 개념까지
·
Spring
쿠키와 세션 쿠키와 세션 모두 HTTP에 상태 정보를 유지하기 위해 사용된다. 이를 통해 서버는 클라이언트 별로 인증 및 인가를 할 수 있다.사용 예시 > 사이트 팝업의 "오늘 다시 보지 않기" 정보 저장 쿠키클라이언트에 저장될 목적으로 생성한 작은 정보를 담은 파일구성요소Name 이름 : 쿠키를 구별하는데 사용되는 키 (중복 될 수 없음)Value 값 : 쿠키의 값Domain : 쿠키가 저장되는 도메인Path : 쿠키가 사용되는 경로Expires : 쿠키의 만료기한 (만료기한이 지나면 삭제 됨) 세션서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용 됨.서버에서 클라이언트 별로 유일무이한 '세션 ID'를 부여한 후 클라이언트 별 필요한 정보를 서버에 저장 함.사용 예시 > 로그인 정보 저장  ..
Spring의 JPA와 Entity 이해하기
·
Spring
👇🏻 이전 글2024.08.06 - [Spring] - Spring의 IoC(제어의 역전), DI(의존성 주입) 이해하기  ORM과 JPA ORM : Object-Relational Mapping 객체와 데이터베이스를 매핑해주는 도구  JPA는 자바 ORM 중 대표적인 표준 명세이다.JPA는 애플리케이션과 JDBC 사이에서 동작되며 DB 연결 과정을 자동으로 처리해주고, 객체를 통해 간접적으로 DB 데이터를 다룰 수 있어 DB 작업을 보다 쉽게 처리 할 수 있다.  Entity Entity란 JPA에서 관리되는 객체. Entity는 DB의 테이블과 매핑되어 JPA에 의해 관리 됨. Memo Entity@Entity // JPA가 관리할 수 있는 Entity 클래스 지정@Table(name = "mem..
Spring의 IoC(제어의 역전), DI(의존성 주입) 이해하기
·
Spring
👇🏻이전 글2024.08.06 - [Spring] - Spring을 3 Layer Architecture로 역할 분리하기 IoC(제어의 역전)와 DI(의존성 주입)란? 좋은 코드, 즉 중복을 제거하고 표현이 명확한 코드, 처음 보는 사람도 쉽게 이해하고 수정할 수 있는 코드, 새로운 기능을 추가하더라도 구조에 큰 변화가 없는 코드를 만들기 위해서는 결합도와 의존성을 최소화 해야 한다.메모장 프로젝트 속 제어의 흐름은 Controller → Service → Repository 순서로 흐르게 되는데 이 때문에 한 부분에서의 코드 추가나 수정이 연쇄적으로 다른 부분들과도 이어져 개발에 있어 피로함과 비효율성을 일으킨다. 의존성 주입을 사용해 역순으로 흐르게 하면 결합도와 의존성이 최소화되어 이러한 문제를..
Spring을 3 Layer Architecture로 역할 분리하기
·
Spring
👇🏻 이전 글2024.08.05 - [Spring] - Spring과 MySQL로 CRUD 기능이 있는 메모장 만들기 Spring 프로젝트를 3 Layer Architecture로 역할 분리하기 3 Layer Architecture 란 처리 과정을 크게 Controller, Service, Repository 로 나누는 것을 뜻함.Controller : 클라이언트에서 온 요청을 받아 Service로 넘겨주고 처리 완료된 결과를 클라이언트에게 보여주는 역할Service : 사용자의 요구 사항을 처리. 비즈니스 로직 구현하는 곳. DB 저장 및 조회가 필요한 경우 Repository에 요청.Repository : DB 관리. CRUD 작업 처리.  Controller에서 Service 분리하기 Contr..
Spring과 MySQL로 CRUD 기능이 있는 메모장 만들기
·
Spring
스파르타 코딩의 를 수강하며 스프링 입문 강의에 나와있는 메모장 프로젝트에 대해 정리. MySQL 설치 및 Spring 프로젝트에 연결 후 테이블 생성하기https://dev.mysql.com/downloads/mysql/ 접속 후 자신의 OS에 맞는 버전을 다운 받아 설치터미널을 열어  cd /usr/local/mysql/bin  입력하여 위치로 이동  ./mysql -u root -p  입력 후  MySQL 설치 시 설정한 비밀 번호로 접속 CREATE DATABASE memo;  로 memo 테이블 생성 후  show databases;  명령어로 잘 생성되었는지 확인Intellij 오른쪽 상단의 DB 누른 후 + 버튼 → Data Source → MySQL 선택 → DB 아이디와 비밀번호 및 테..