개발37 Spring Converter 흐름, 구조 Converter 뭘까? 예를들어 요청/응답을 Json응답을 해줘야 하는데 개발자 입장에서는 객체 단위로 관리하고 전송할 떄 만 Json으로 바꿔주는게 편리할것이다. 이때 Convert 해주는것을 의미한다!! Converter 는 누가 호출하는건가? Spring은 FrontController Design Pattern 이라 Converter 처럼 공통작업을 한군데서 처리할 수 있고 이 작업은 실제 Handler를 실행하는 Adapter 쪽에서 담당하고 있다. Class List HandlerMethodArgumentResolverComposite HandlerMethodArgumentResolver 모아두고 관리하는 기능을 담당. 자주들어오는 Spring Request 유형인 경우 cache를 통해 접근.. 2022. 9. 9. Spring MVC 구조 Reference mvc 패턴과 관심사 분리 mvc 패턴과 관심사 분리 MVC 패턴?? 서비스/컨트롤러 계층에서 만든 데이터를 담아두는 곳(M), HTML 렌더링 해주는 부분(V), 요청이 들어오면 실행되어 데이터를 실제 만드는 곳(C) 관심사를 분리하여 코드보기가 쉬워지고 ehaakdl.tistory.com 어댑터 패턴(Adapter Pattern) 무엇인가? 어댑터 패턴(Adapter Pattern) 무엇인가? 어댑터 패턴 A, B 규격이 다른걸 호환되게 중간에서 작업해주는 것을 어댑터 패턴이라고 한다. UML Diagram 예제코드 interface Fish { void swim(); } class Shark implements Fish{ @Override public void swi.. ehaak.. 2022. 9. 7. 어댑터 패턴(Adapter Pattern) 무엇인가? 어댑터 패턴 A, B 규격이 다른 인터페이스를 서로 호환되게 중간에서 작업해주는 것을 어댑터 패턴이라고 한다. UML Diagram 예제코드 interface Fish { void swim(); } class Shark implements Fish{ @Override public void swim() { System.out.println("나는 상어 수영중이다."); } } interface Bird { void fly(); } class Egle implements Bird{ @Override public void fly() { System.out.println("나는 독수리 날고있다."); } } interface Movement{ void move(String type); } class Moveme.. 2022. 9. 6. equals, hashcode, == 분석 나는 Member 클래스에 equals 메소드를 재정의 안했다. [예제코드] Member member = new Member(); Member member1 = new Member(); System.out.println("member address:" + member); System.out.println("member1 address:" + member1); System.out.println("member equals member1:" + member.equals(member1)); System.out.println("member equals member:" + member.equals(member)); System.out.println("member == member1:" + (member == mem.. 2022. 7. 16. 영속 상태, 준영속 상태, 변경감지 에 대해서 알아보자 [ 영속상태 ] 영속상태는 영속성 컨텍스트인 엔티티매니저에서 관리되는 개체들을 애기한다. [ 준 영속상태 ] 준영속 상태는 이전에 식별자를 기준으로 영속성 상태로 관리되어 디비에 들어간적 있지만 지금은 더이상 영속성 상태로 관리되지 않은 상태를 애기한다. [ 변경 감지] 1. entityManager에서 가져온 이 entity는 영속 상태로 Transaction이 끝날때 원래 entity를 비교한 다음 바뀐 부분에 대한 쿼리를 날려 수정을 한다. @Transactional public void updateItem(Long itemId, String name, int price, int stockQuantity) { Item item = itemRepository.findOne(itemId); item.s.. 2022. 7. 9. 연관관계는 지연로딩 하자 [ EAGER 적용 후 출력된 쿼리 ] @OneToMany(mappedBy = "member",fetch = FetchType.EAGER) private List orders = new ArrayList(); EAGER 일때 출력된 쿼리 [ LAZY 적용 후 쿼리 출력 ] [ 결론 ] EAGER로 했을 때 연관관계에 있는 데이터를 한꺼번에 조회한다. 성능에 당연히 부담될꺼고.. 쓰지말자.. LAZY해주자!!! 2022. 7. 2. 이전 1 2 3 4 ··· 7 다음