본문 바로가기

Spring3

[JPA] JPA 변경 감지와 병합(merge) 준영속 엔티티란? 영속성 컨텍스트가 더는 관리하지 않는 엔티티를 말한다. 임의로 만들어낸 엔티티라도 기존 식별자를 가지고 있는 경우(JPA가 식별할 수 있는 id를 가지고 있는 경우)에는 준영속 엔티티라고 말한다. 준영속 엔티티를 수정하는 2가지 방법 1. 변경 감지 2. 병합(merge) 변경 감지 @Transactional public void update(Item itemParam){ // itemParam : 파라미터로 넘어온 준영속 상태의 엔티티 Item findItem = em.find(Item.class, itemParam.getId()); // 같은 엔티티를 조회한다. findItem.setPrice(itemPrice.getPrice()); // 데이터를 수정한다. } 영속성 컨텍스트에서 .. 2020. 1. 30.
[스프링] 오픈 api 사용해서 데이터 가져오기 (네이버 영화 검색 api) 네이버 오픈 api를 사용해서 영화를 검색하는 애플리케이션을 구현해보려고 한다. 오픈 api에 대한 정보를 네이버 오픈 api 검색 > 영화에 있다. 오픈 API 이용 신청 오픈 api를 사용하려면 보통 key가 필요하다. 아무나 막 가져다 쓰는 것을 막기 위해 보통 key를 api 호출 시 header에 넣어서 사용한다. key 발급을 위해 우선 api 이용 신청을 한다. 초록색 버튼의 [오픈 API 이용 신청]을 누르면 애플리케이션 등록 화면이 나오고 본인의 애플리케이션을 등록하면 된다. 등록을 마치면 내 애플리케이션 카테고리에서 Client ID와 Client Secret을 확인할 수 있다. 이 값이 위에서 말한 key 값이다. 코드를 구현하기 전에 Postman으로 테스트를 해보니 정상적으로 반환.. 2020. 1. 14.
[스프링] Spring 웹 계층 1. Web Layer 흔히 사용하는 컨트롤러(Controller)와 JSP/Freemarker 등의 뷰 템플릿 영역이다. 이외에도 필터(@Filter), 인터셉터, 컨트롤러 어드바이스(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역을 의미한다. 2. Service Layer @Service에 사용되는 서비스 영역이다. 일반적으로 Controller와 Dao의 중간 영역에서 사용된다. @Transactional이 사용되어야 하는 영역이기도 하다. 3. Repository Layer Database와 같이 데이터 저장소에 접근하는 영역이다. Dao(Data Access Object) 영역이라고 생각하면 된다. 4. Dtos Dto(Data Transfer Object)는 계층 .. 2020. 1. 3.