Cache, HTTP Cache, E-tag, Spring Cache
✅ Cache 원래 데이터 소스보다 더 효율적으로 액세스 할 수 있는 임시 저장소 특정 API/아이템 20%가 전체 로직의 80%의 쿼리를 차지 이 API/아이템를 자주 쓰니까 어디 가까운 곳에 저장해 두면 좋을 것 같아 Key-value구조로 저장한다. Cache 저장소가 너무 커지면 임시 저장소 사용하는 의미가 없으니, 크기가 과하...
✅ 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: 요청을 처리하는 도...
✅ 순서 Repository interface, service bean 정의 REST API참고하여 Controller부터 요구사항 코드로 정의 DAO -> Service -> Controller순으로 구현 채우기 ✅ 유저 A가 선호하는 여행지의 왕복 항공권 여러개 발견 이 때 왕복 항공권은 출발지/도착지, 출국시간...
✅ Web Layer ☑️ Web Layer Class Controller DTO Exceptions Filter ✔️ Controller ✔️ DTO: Data Transfer Object 계층 간 데이터 교환을 위한 Java Beans 데이터를 전달하기 위한 객체 데이터베이스 레코드의 데이터를 매핑하기 위...