-
정리해보기 객체지향 객체지향 : 분업화, 하나의 세상을 이루기위해서 하나의 존재만이 있는 것이 아니라 여러 존재들이 협업하면서 세상을 이룸, 협업이 필요하다면 필요한 객체가 다른 객체에 메세지를 보내 요청함, 파일로 코드를 분리한 것과는 전혀 다른 개념임(저장 공간만 달리할 뿐 하나로 처리하는건 마찬가지) 객체지향의 장점 : 역할 별로 객체를 나누다보니 어떤 한 기능을 수정할 때 담당 객체의 코드만 수정해주면 됨 - 변경점이 하나로 모임, 변경사항이 생기더라도 유연하게 대처할 수 있음(코드 간의 의존성이 적기때문에 - 물론 객체지향적인 프로그래밍을 했다면),...
-
Spring-data-JPA 상태 기본적으로 트랜잭션 내에서 JPA/Hibernate가 관리하냐 마냐의 상태 - 관리 대상이 아니면 영속화와는 상관없이 gc 대상 객체일 뿐, 중간 계층이 존재함(성능적인 장점이 있음 - 커넥트를 여러번 하지않음) transient : 관리한 적이 없는 상태, 일반 객체(ID가 없음) persistence : 관리하고 있는 상태, 1차 캐시 대상, 트랜잭션 내에서 얘를 찾으면 SELECT 쿼리 날리는 대신 캐시한 객체를 리턴해줌 detached : 트랜잭션이 끝나고 Persistence Context가 제거된 상태, 관리한 흔적으로 맵핑 데이터는 있으나 일반 객체 removed : 트랜잭션 내에서...
-
Stream API groupingBy Stream의 원소()들을 특정 기준에 따라 그룹핑하는 함수 : 리턴 타입 - Collector<T, ?, Map<K, List>> groupingBy는 인자로 Function 타입(함수형 인터페이스)을 받음 : T타입으로 받아서 R타입으로 리턴(R apply(T t)) public static void main(String[] args) { List<Item> items = Arrays.asList( new Item(SHOES, "nike shoes"), new Item(SHOES, "adidas shoes"), new Item(SHOES, "nike shoes2"), new Item(FOOD, "떡볶이"), new Item(FOOD, "연어"), new Item(CLOTHES, "hazzys"), new Item(CLOTHES, "polo") ); Map<String, List<Item>> groupItem = items.stream() .collect(groupingBy(Item::getItemKind)); groupItem.keySet() .stream() .map(itemKind...
-
Spring-data-JPA ORM을 쓰면 도메인 모델 개발 쿼리를 직접 생성하지않음(물론 아예 하지않는 것은 아님 - 필요에 의해 제공 기능으로 쿼리 생성까지 할 수 있음) : SQL 방언까지 신경쓰지않아도 됨(java-ims에서 prod/dev 환경에 따라 다른 RDBMS를 사용했지만 손쉽게 전환이 가능했던 이유) UserDao 혹은 UserRepository와 같이 데이터베이스 접근하는 역할을 만들어줌 : Connection 자원 할당, 해제 등 관리를 개발자가 하지않음 /* 도메인 모델 없이 개발하기 */ String url = "jdbc:postgresql://localhost:5432/springdata"; String username = "jinbro"; String password = "pass"; try (Connection...
-
스프링부트 환경설정 알아보고 dev/prod 환경에 따른 설정하기 외부에서 어플리케이션 환경설정하기 주로 사용되는 방법은 application.properties 파일에 설정을 함 key-value 형태로 정의해두면 어플리케이션 내에서 사용할 수 있음 : 설정값 가져오는 방법(1) - @Value로 다양한 외부에서 환경설정 방법이 있어서 적용 우선순위가 있음 스프링부트가 기본적으로 어플리케이션 구동 시 필요한 설정을 이미 해둔 것이 있음 : 우선순위가 가장 낮음 - 기본 설정된 key-value 살펴보기 jar 실행 시 커맨드라인으로도 환경설정을 할 수 있음 : properties 파일로 선언하는 것보다 적용 우선순위가 높음(훠어어얼씬...