Spring Security 이론
✅ Spring Security JAVA 기반 보안 프레임워크 Authentication Authorization Session Control CSRF 크로스 사이트 요청 위조 방지 placed in front of DispatcherServelt as filter before request ...
✅ Spring Security JAVA 기반 보안 프레임워크 Authentication Authorization Session Control CSRF 크로스 사이트 요청 위조 방지 placed in front of DispatcherServelt as filter before request ...
✅ HTTP stateless 무상태성 HTTP는 우리를 기억하지 못한다. 따라서 HTTP의 모든 요청은 별개의 요청이다. 내가 로그인해서 이 서비스에 가입된 것을 증명해도, HTTP는 나를 기억하지 못함! ➡️ 따라서 HTTP 요청 떄마다 누군가 보내거나 보관하고 있어야 한다. Cookie: client가 정보 가지고 있음 S...
✅ Cache 원래 데이터 소스보다 더 효율적으로 액세스 할 수 있는 임시 저장소 특정 API/아이템 20%가 전체 로직의 80%의 쿼리를 차지 이 API/아이템를 자주 쓰니까 어디 가까운 곳에 저장해 두면 좋을 것 같아 Key-value구조로 저장한다. Cache 저장소가 너무 커지면 임시 저장소 사용하는 의미가 없으니, 크기가 과하...
✅ Test Code 반복적인 검증 과정을 줄이기 위한 코드 test 단워: 클래스의 단위가 이상적인 단위 또는 메서드 단위 Unit Test: 코드 일부분 테스트 Integration Test Acceptance Test ☑️ how to use ✔️ JAVA Test JUNIT Annotation @ Test @Be...
✅ JPA mapping, JPQL은 PSA를 따른다. PSA(Portable Service Abstraction)는 특정 기술에 얽매이지 않는것이다. 예를 들어 JAVA에서 oracle, mysql을 쓰든 oracle, mysql의 문법에 얽매이지 않고 문제 없이 쓰고 싶음. 그래서 JPA, JPQL을 통해서 DB문법에 얽매이지 않는 JAVA코드를...
에러가 생길 부분을 미리 예측하여 catch, throw하고 만약 client에게까지 보여져야 하는 error이라면 controller에까지 반영한다. ✅ ExceptionControllerAdvice는 AOP를 기반으로 한다. AOP는 서로 비슷한 코드를 여러번 반복해서 입력하는 것이 아니라 반복되는 코드끼리 모듈화해서 advice로 만들어 침...
✅ ORM 👎🏻 기존 코드의 한계: SQL을 JAVA안에 삽입해야 하고, rowMapper넣어야 했음 ORM: Object Relational Mapping maps java object and RDB makes object into a DB table 영속화: ORM을 적용한 Entity를 구성하는 것을 객체의 table 영...
👎🏻 기존 코드 한계: DTO, Entity를 무조건 다른 클래스로 구현하다보니, 사실 두 파일 간 겹치는 부분이 많은데…두 클래스 간 코드가 비슷함. 또 두 파일 간 생성자가 비슷함. 👌🏻 Mapstruct으로 해결! 🕵🏻♂️ Mapstruct은 runtime meta programming annotation 프로세서가 컴파일 이후 ...
👎🏻 기존 코드 한계: getter 생성자, bean 주입 생성자, Entity Equals, setter, hash…매번 생성하다보니 코드가 길어지고 반복됨 👌🏻 Lombok으로 해결! 🕵🏻♂️ Lombok runtime meta programming annotation 프로세서가 컴파일 이후 자동으로 코드를 생성해준다. 🌶️ Lomb...
✅ Logging Log: 서버가 수행한 작업/상태에 대한 기록 🙏🏻 Logging 필요성 java 콘솔로 출력하다보면 내부 정보(어떤 스레드, 만들어진 시간 등)까지는 기록하지 못하고, 애플리케이션이 꺼졌다 켜지면 사라짐, 파일로 생성하고 싶음 로그 제어, 필터링 하고 싶음 ☑️ 로그 레벨 ERROR: 요청을 처리하는 도...