분류 전체보기103 [SpringBoot] 라이브러리 관리 스프링부트는 라이브러리들을 편리하게 사용할 수 있게 다양한 기능들을 제공한다고 합니다. 외부 라이브러리 버전 관리 스프링 부트 스타터 제공 이런 기능들이 없으면 수 많은 라이브러리를 직접 버전까지 골라서 선택해야 하고 라이브러리들 간에 서로 호환이 잘 되는지 확인도 해야하는 까다로운도 있다. dependencies { //2. 스프링 부트 라이브러리 버전 관리 //스프링 웹, MVC implementation 'org.springframework:spring-webmvc' //내장 톰캣 implementation 'org.apache.tomcat.embed:tomcat-embed-core' //JSON 처리 implementation 'com.fasterxml.jackson.core:jackson-dat.. 2023. 3. 11. [JPA] JPA 영속성 관리 JPA 구동 방식 영속성 컨텍스트 엔티티를 영구 저장하는 환경 EntityManager.persist(entity); 앤티티의 생명주기 비영속(new/transient) 영속성 컨텍스트와 관계가 없는 새로운 상태 //객체를 생성한 상태(비영속) Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); 영속(managed) 영속성 컨텍스트에 관리되는 상태 EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); //객체를 저장한 상태(영속) em.persist(member); 준영속 (detached) 영속성 컨텍스트에 저장되었다가 분리된 상.. 2023. 3. 5. [Java] HashMap Value 기준으로 정렬 먼저 map을 정렬하기 위해서 여러가지 방법이 있는데 저는 Collections.sort()를 사용하는 방법 3가지를 설명하겠습니다. Map map = new HashMap(); map.put("a", 1); map.put("b", 2); map.put("c", 3); List entryList = new LinkedList(map.entrySet()); Collections.sort()를 사용하기 위해서는 Map을 List형태로 변환해야 한다. Map.entrySet()을 이용하여 아래와 같이 Map의 Entry Set을 List 형태로 저장한다. 자바에서 Map.Entry 는 Map 형태의 인터페이스를 만드는데 사용하는데 Map을 For 문에서 돌려줄 경우 인터페이스 용도로 사용하거나 혹은스트림(St.. 2023. 1. 24. [Spring] AOP 프록시와 내부 호출 문제 해결 방안 3가지 프록시와 내부 호출 - 문제 스프링은 프록시 방식의 AOP를 사용한다. 따라서 AOP를 적용하려면 항상 프록시를 통해서 대상 객체(Target)을 호출해야 한다. 이렇게 해야 프록시에서 먼저 어드바이스를 호출하고, 이후에 대상 객체를 호출한다. 만약 프록시를 거치지 않고 대상 객체를 직접 호출하게 되면 AOP가 적용되지 않고, 어드바이스도 호출되지 않는 문제가 발생한다. AOP를 적용하면 스프링은 프록시를 스프링 빈으로 등록하고 의존관계 주입시 프록시 객체를 주입한다. 그래서 대상 객체를 직접 호출하는 문제는 잘 발생하지 않는다. 하지만 대상 객체에서 프록시를 거치치 않고 직접 대상 객체를 호출하는 경우가 있는데 그럴 경우 문제가 발생한다고 한다. 실무에서 반드시 한번은 만나서 고생하는 문제라고 한다. .. 2023. 1. 22. 이전 1 ··· 10 11 12 13 14 15 16 ··· 26 다음