1. EntityManagerFactory와 EntityManager를 먼저 알아보자 EntityManager란 사용자의 요청에 대하여 커넥션 풀에서 커넥션을 얻고 DB에 접근하는 역할을 한다. EntityManagerFactory란 말 그대로 사용자의 요청마다 EntityManger를 만들어내는 공장이다. 2. 영속성 컨텍스트가 뭘까 그래서 간단하게 엔티티의 Life Cycle을 관리하는 저장소이다. EntityManager가 생성될 때 PersistenceContext가 같이 자동으로 생성된다. 3. Entity Life Cycle 비영속(new/transient): 영속성 컨텍스트와 관계없는 새로운 상태 영속(managed): 영속성 컨텍스트에 의해 관리되고 있는 상태 준영속(detached): 원..
전체 글
단계별로 성장하자!간단하게 말하면 개발자 팀에 의해 만들어진 결과물에 대해 지속적인 통합(CI)과 지속적인 배포(CD)를 하는 프로세스이다. 1. CI (Continuous Integration) CI란 작업된 코드의 빌드, 테스트, 패키징 작업의 자동화 과정의 단계이다. 작은 단위로 여러번 지속적으로 통합하여 빌드, 테스트 되어서 여러 개발자가 공유하는 레퍼지토리에 통합되므로 여러 개발자가 같은 코드에 대해서 작업할 경우 발생할 수 있는 충돌 문제를 해결할 수 있다. 2. CD Continuous Delivery와 Continuous Deployment 두 가지 의미가 있다. (1) Continuous Delivery CI를 통해서 얻은 통합된 결과물이 고객에게 배포되기 전에 검증하고 수동적으로 배포 전달하는 단계이다...
이번에 진행하고 있는 프로젝트에서 파일을 업로드하는 기능이 필요해서 공부하게 되었다. 1. 두 가지 전송 방식 HTML Form의 데이터 전송 방식은 크게 1. x-www-form-urlencoded Http Body에 bookname=jpabook&quantity=31 와 같이 key-value형식을 &로 연결지어 문자를 전송한다. 2. multipart/form-data 바이너리 데이터와 문자 데이터를 동시에 전송할 수 있는 방법이다. multipart/form-data에 대해서 더 알아보자. 2. multipart/form-data 폼 데이터가 서버로 submit 될 때 인코딩 되는 방식을 지정하는 enctype(encryptiontype)을 해당 방식으로 설정한다. 그렇게 아래와 같은 형식으로 H..
1. 기본 키 할당 방법 (1) 직접 할당의 경우 @Id private Long id; (2) 자동 생성 할당의 경우 @Id @GeneratedValue(strategy = GenerationType.IDENTITY OR AUTO OR SEQUNCE OR TABLE) private Long id; 2. 자동 생성 할당 전략 (1) IDENTITY PK 생성을 DB에 위임한다. DB가 알아서 AUTO INCREMENT로 관리해준다. entityManger.persist()가 실행되는 시점에 즉시 INSERT 쿼리가 실행되어 DB에 반영되고 DB에서 PK를 생성해서 자동 할당하며 영속성 컨텍스트의 1차 캐시에 값을 저장한다. 이걸 알면 같은 트랜잭션 내에서도 persist()이후에는 SELECT 쿼리로 ID..
2022년 08 05일 (금요일) 오늘 한 일 08:00 기상 08:30 ~ 10:30 헬스장 운동 11:00 ~ 03:00 스프링 부트와 JPA를 함께 활용하여 예제 프로젝트 실습 오늘부터 실전!스프링 부트와 JPA활용1편 강의를 듣기 시작했다. 아직 JPA에 대해서 제대로 공부하지는 않은 상태로 한번 전체적인 개발 사이클을 경험하고 싶어서 듣게 되었다. 도메인 주도 개발 개념을 이용하여 개발을 진행하였고 아직 주문 도메인 개발과 웹 계층 개발이 남아서 주말에 진행할 예정이다.
Spring MVC에 대해서 공부하던 중 DispatcherServlet에서 Handler를 매핑하는건 알겠는데 언제 url까지 매핑해서 해당 method를 실행하는거지? 라고 궁금증이 들어서 알아보게 되었습니다! 위의 과정을 이해하려면 먼저 FrontController의 역할을 하는 먼저 DispatcherServlet의 doDispatch()를 보겠습니다. (1) DispatcherServlet의 doDispatch() 위의 파란줄을 보면 getHandler() 를 통해 request에 맞는 handler를 가져오는 것 같은데 한번 확인해보겠습니다. (2) DispatcherServlet의 getHandler() 우선 HandlerExecutionChain을 return하며 HandlerMapping..