왜?
캐시를 활용할때 어떤 차이가 있으며, 어떤 효과를 지녔는지?
spring-cache + ehcachebuild.gradle123456//ehcacheimplementation 'org.springframework.boot:spring-boot-starter-cache'implementation 'org.ehcache:ehcache:3.10.0'// JSR-107 API를 사용하기 위함implementation 'javax.cache:cache-api...
왜?
AOP 등등 다양한 기술을 spring 에 접목하기위함
크게 5가지 기술과 디자인 패턴한다.
쓰레드 로컬
패턴들(템플릿 메서드 패턴, 콜백 패턴, 프록시 패턴, 데코레이터 패턴)
동적 프록시 기술
빈 후처리
AOP
로그추적기V0 (가장 단순한 구조) C-S-R123456789101112@RestController@RequiredArgsConstructorpublic class OrderControllerV0 { private final OrderServiceV0 orderService; @GetM...
2023년 목표 체크리스트 달성률개발 목표 달성률 (57%), 비개발 목표 달성률 (63%)
이젠, 내가 원하는 길을 정확히 걷는 느낌이다.2022년 정말 열심히 공부하여, java spring 백엔드 개발자로써 2023년 01월 엠앤XX를 합격하였다. 하지만 만족스럽지 못했다. 3개월 동안 RPA(코딩X, drag&drop), gitlab CI/CD 를 개발하며 단순히 코더가 된 느낌이였다. 내가 지금까지 공부한 java, CS, spring, docker, 아키택처, 알고리즘, 자료구조 등을 전혀 활용할 기회가 없었...
DB에 대한 전반적인 개념참조1참조2참조3참조4참조5참조6
왜?
DB에는 크게 SQL 과 no-SQL이있다는것을 알고있었지만, DB의 세부적인 구분과 각 DB의 장단점을 알아야 추후 프로젝트를 진행할때 필요하여 작성하게 되었다. DB를 자세히 알기전 용어정리후 큰그림부터 탑다운으로 내려가는 것으로 학습하였다.
먼저 RDB 위주의 개념 설명
추후: index, 쿼리, explain관련 내용 추가, marina db, progresql vacuum알아보기
RDB위주의 데이터 베이스(DB) 용어
관계형 데이터베이스(RDB): 여러...
왜?JPA 실전편 2편에서 계속 업그레이드하자..
JPA 지식이 부족하다
회원 등록 API
Entity와 DTO를 나누자..당연 (의존성 없애야함. 확장성도 필요)
당연히 Entity를 파라미터로 받아도안된다.
회원 수정 API
controller 단
12345678910@PutMapping("/api/v2/members/{id}")public UpdateMemberResponse saveMemberV2( @PathVariable("id") Long id, @RequestBod...
홈화면(thymeleaf)
DTO, Entity 는 반드시 분리하기 -> Entity는 완전 순수한 상태로만 쓰기
RestAPI 만들때는 Entity 절대 반환 금지 -> api 는 스펙이다. 엔티티가 계속 바뀌면 스펙이 바껴버림
변경 감지와 병합(merge)
em.save() 시에는
Entity.getId() 값이 없는 것 -> em.persist()
Entity.getId() 없는것은 em.merge() 가일어난다.
준영속 엔티티?영속성 컨텍스트가 더는 관리하지 않는 엔티티를 말한다. (여기서는 ...
상품 주문order Entity에서
객체는 자율적이여야한다.
따라서 필요한 create, remove, 자신의 주요 행동 메서드는 자신이 직접가지고있는것이 자율적이다.(캡슐화)
예시
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788package jpabook.jpashop.do...
참조강추) 책을 삽시다!
훨씬 좋은 내용이 많습니다. 많이 배웠습니다 감사합니다. 저자님
왜?객체 지향적으로 짠다는 것은 무엇을까? 한번 생각해 보는 시점이 되었다.
어떻게 하면 더 좋은 코드를 짤수있을까?
예를 들면, request.checkValidation() 를 하는것이 좋은것인가?, 아니면, checkValidation(request)의 형태를 만드는 것이 더 객체 지향 스러운것인가? 너무 궁금헀다. => 결과적으론 이 문제는 상황마다 다르다라는 것이 정답이였다.(꼭 객체 지향이 좋은것도아님)
객체의 자율성을 ...
해당 강의 이후부터는 내용 전부가 아닌 핵심 부분들만 분석해서 팁으로 남길예정이다.기능 요구사항회원 기능
회원 등록
회원 조회
상품 기능
상품 등록
상품 수정
상품 조회
주문 기능 상품 주문
주문 내역 조회
주문 취소
기타 요구사항
상품은 재고 관리가 필요하다.
상품의 종류는 도서, 음반, 영화가 있다.
상품을 카테고리로 구분할 수 있다.
도메인 모델과 테이블 설계
엔티티
회원 테이블
MTM은 결국 FK 두개가 모이는 테이블이 따로 생길수밖에없다
연관관계 주인만 데이터 변경가능, 하인은 조회만 가능...
JPA 실전 1편기본 설정
gradle 파일
java 11
Springbok 2.7.11
1234567891011121314151617181920212223242526272829303132333435363738plugins { id 'java' id 'org.springframework.boot' version '2.7.11' id 'io.spring.dependency-management' version '1.0.15.RELEASE'}group = 'jpabook'version = '0.0.1-SNA...