본문 바로가기

전체 글335

[TIL] #57. 231109 어제 목표 & 오늘 완료한 한 일 알고리즘 문제자바 종합 문법 복습 (3주차)스프링 숙련 강의 (1주차)스프링 숙력 강의 (2주차) ➡️ 진행중 내일 목표알고리즘 문제자바 종합 문법 복습 (3주차)스프링 숙련 강의 (2주차) 오늘 배운 내용알고리즘 2023.11.09 - [Coding Test] - 231109 [1차] 비밀지도 - Level 1 강의2023.11.08 - [내일배움캠프(Sparta)/Spring] - [Spring] JWT / 패스워드 암호화2023.11.09 - [내일배움캠프(Sparta)/Spring] - [Spring] Filter2023.11.09 - [내일배움캠프(Sparta)/Spring] - [Spring] Spring Security / Validation [Spring].. 2023. 11. 9.
[Spring] Spring Security / Validation 1) Spring Security : Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해주는 프레임워크 CSRF : 사이트 간 요청 위조 (Cross-site request forgery) 공격자가 인증된 브라우저에 저장된 쿠키의 세션 정보를 활용하여 웹 서버에 사용자가 의도하지 않은 요청을 전달함. CSRF 설정이 되어있는 경우 html에서 CSRF 토큰 값을 넘겨주어야 요청 수신 가능 쿠키 기반의 취약점을 이용한 공격이기 때문에 REST 방식의 API에서는 disable 가능 Spring Security - Filter Chain Spring에서 모든 호출은 DispatcherServlet을 통과하게 하고 이후에 각 요청을 담당하는 Cotroller로 분배되는데, 이 때 각 요청에 대.. 2023. 11. 9.
[Spring] Filter 1) Filter : 요청과 응답이 서버, 클라이언트에게 가기 전 그 사이에서 특정 작업을 수행하는 도구 웹 애플리케이션에서 관리되는 영역 클라이언트로부터 오는 요청과 응답에 대해서 최초, 최종 단계에 위치해 응답의 어떤 정보를 변경하거나 부가적인 기능 추가할 수 있음. 범용적으로 처리되는 작업들에 활용됨 (ex; Logging, 보안 처리, 인증/인가와 관련된 로직 처리) filter를 사용하면 인증, 인가와 관련된 로직들을 처리함으로써 비즈니스 로직과 인증/인가 로직을 분리하여 관리할 수 있다는 것이 장점. 필터는 하나만 있는 게 아니라 아래의 그림과 같은 형태로 여러 개가 체인 형식으로 묶여 처리되고 있음. LoggingFilter @Slf4j(topic = "LoggingFilter") @Comp.. 2023. 11. 9.
[Spring] JWT / 패스워드 암호화 1) JWT (JSON Web Token) : JSON 포맷을 이용해 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token 토큰의 한 종류 일반적으로 쿠키 저장소를 사용해 JWT 전달 JWT 사용 이유 1. 서버가 1대인 경우 Session1이 모든 Client의 로그인 정보를 소유하고 있음. 2. 서버가 2대 이상인 경우 대용량 트래픽 처리를 하기 위해서는 서버가 두 대 이상 운영이 필요함. 중간에서 클라이언트의 요청을 밸런스있게 나눠주는 중간 역할을 하는 Load Balancer가 존재해 Session마다 다른 Client 로그인 정보를 가지고 있을 수 있음. ex Session1 : Client1, Client2, Client3 Session2 : Client4 Session3 : Cl.. 2023. 11. 8.
[TIL] #56. 231108 어제 목표 & 오늘 완료한 한 일 알고리즘 문제 자바 종합 문법 복습 (3주차) 스프링 숙련 강의 (1주차) 내일 목표 알고리즘 문제 자바 종합 문법 복습 (3주차) 스프링 숙련 강의 (1주차) 스프링 숙련 강의 (2주차) 오늘 배운 내용 2023.11.08 - [내일배움캠프(Sparta)/Spring] - [Spring] Bean 2023.11.08 - [내일배움캠프(Sparta)/Spring] - [Spring] Authentication / Authorization / Cookie / Session 2023.11.08 - [내일배움캠프(Sparta)/Spring] - [Spring] JWT / 패스워드 암호화 [Spring] JWT / 패스워드 암호화 1) JWT (JSON Web Token) : .. 2023. 11. 8.
[Spring] Authentication / Authorization / Cookie / Session 1) Authentication & Authorization Authentication (인증) : 해당 유저가 실제 그 유저가 맞는지 확인하는 절차 (ex; 지문인식, 로그인 ..) Authorization (인가) : 해당 유저가 특정 리소스에 접근이 가능한지 허가를 확인하는 개념 (ex; 관리페이지 - 관리자 권한, 회원/비회원) 웹 애플리케이션 인증의 특수성 일반적으로 서버-클라이언트 구조로 되어있고, 실제로 이 서버-클라이언트는 아주 멀리 떨어져 있음 서버의 비용 및 부담을 줄이기 위해 HTTP 프로토콜을 이용해 비연결성(Connectionless)과 무상태(Stateless)로 이루어진 통신을 함 비연결성, 무상태 프로토콜에서 유저 인증에 대한 정보를 어떻게 유지하는 것일까? 인증 방식 1. .. 2023. 11. 8.
[Spring] Bean 1) Bean을 수동으로 등록하는 방법 🤔 Bean 수동 등록은 언제 사용이 될까? - 기술적인 문제나 공통적인 관심사를 처리할 때 사용하는 객체들은 수동으로 등록하는 것이 좋음. 🤔 어떤 것을 Bean으로 수동 등록 할까? - 기술 지원 Bean들을 주로 수동으로 등록 함. 수동 등록 장점 비즈니스 로직 Bean 보다는 그 수가 적기 때문에 수동으로 등록하기 부담스럽지 않음 수동등록된 Bean에서 문제가 발생했을 때 해당 위치를 파악하기 쉽다는 장점 존재 Bean 수동 등록하는 방법 Bean으로 등록하고자 하는 객체를 반환하는 메서드를 선언하고 해당 메서드 위해 @Bean annotation 추가 Bean을 등록하는 메서드가 속한 해당 클래스에 @Configuration 설정 Spring 서버가 뜰 때.. 2023. 11. 8.
[TIL] #55. 231107 어제 목표 & 오늘 완료한 한 일 알고리즘 문제(or SQL 문제)자바 종합 문법 복습 (3주차)스프링 입문 강의 (2주차)스프링 숙련 강의 (1주차) 내일 목표알고리즘 문제자바 종합 문법 복습 (3주차)스프링 숙련 강의 (1주차) 오늘 배운 내용2023.11.07 - [내일배움캠프(Sparta)/Spring] - [Spring] IoC / DI / Bean2023.11.07 - [내일배움캠프(Sparta)/Spring] - [Spring] ORM / JPA / Hibernate2023.11.07 - [내일배움캠프(Sparta)/Spring] - [Spring] Entity / Persistence Context / Transaction2023.11.07 - [내일배움캠프(Sparta)/Spring] -.. 2023. 11. 7.
[Spring] Spring Data JPA / JPA Auditing / Query Methods 1) Spring Data JPA : JPA를 쉽게 사용할 수 있게 만들어놓은 하나의 모듈 JPA를 추상화시킨 Repository 인터페이스 제공 Repository Interface : Hibernate와 같은 JPA 구현체를 사용해 구현한 클래스를 통해 사용 SimpleJpaRepository Spring Data JPA 에서 JpaRepository 인터페이스를 구현하는 클래스를 자동으로 생성해줌 Spring 서버가 뜰 때 JpaRepository 인터페이스를 상속받은 인터페이스가 자동으로 스캔이 되면, 해당 인터페이스의 정보르르 토대로 자동으로 SimpleJpaRepository 클래스를 생성해주고, 이 클래스를 Spring 'Bean'으로 등록 인터페이스의 구현 클래스를 직접 작성하지 않아도 J.. 2023. 11. 7.