일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- fetch join
- 수정자주입
- 스프링시큐리티
- Atomicity
- kotlin ::
- 비기능적 요구사항
- java predicate
- jpa lazy
- 그래프큐엘
- kotlin 리팩터링
- 스프링di
- 도커 이미지 빌드
- ioc컨테이너
- 생성자주입
- 소프트웨어의 품격
- 기능적 요구사항
- 스프링부트 도커
- Spring
- open-session-in-view
- 정적팩토리메서드
- 스프링
- method refetence
- jpa no session
- 토비의 스프링
- IOC
- 스프링 시큐리티 설정
- spring formatter
- 스프링 포매터
- 자바 필터
- 동적파라미터
- Today
- Total
목록JAVA (18)
공부기록
개요 핵심 로직을 건들지 않고, 부가적인 작업을 수행할 때 주로 사용되는 패턴이다. 예를 들어 Event가 생성될 때, 만들어진 시간을 콘솔에 기록하고 싶어졌다! 여기서 핵심 로직은 Event 를 생성하는 로직, 부가적인 로직은 만들어진 시간을 콘솔에 기록하는 코드다. 사용방법은 이렇다. 핵심로직을 수행하는 클래스와 부가적인 로직을 수행하는 클래스(프록시) 모두 같은 인터페이스를 참조하게끔한다. 클라이언트 코드에선 해당 인터페이스 타입을 사용하되, 실제 타입은 프록시 객체로 만든다. 프록시객체는 부가적인 로직을 수행한 뒤, 자신이 참조하고있는 핵심로직을 수행하는 객체를 사용한다. 구현 도메인 객체 public class Event { private String name; ...constructor..ge..
아래 내용은 책 모던 자바 인 액션(http://www.yes24.com/Product/Goods/77125987?scode=032&OzSrank=2) 을 정리한것임을 밝힙니다.코드의 점진적인 발진으로 동적파라미터를 이해해보자첫번째 요구사항.사과를 재배하는 농부 후안의 요구사항"제가 수확한 사과 중에 색깔이 "GREEN"인 사과만 수집해주세요FirstStep.class public static List filterGreenApples(List inventory) { List result = new ArrayList(); for (Apple apple : inventory) { if (GREEN.equals(apple.getColor())) { r..
아이템24. 멤버클래스는 되도록 static으로 만들라. 중첩클래스 다른 클래스 안에서 정의된 클래스. 자신을 감싼 바깥 클래스에서만 쓰여야한다. 그 외 쓰임새가 있다면 톱레벨 클래스로 선언할 것. 정적 멤버 클래스, (비정적)멤버클래스, 익명 클래스, 지역 클래스 등이 있다. 정적 멤버 클래스 다른 클래스 안에 선언되고, 바깥 클래스의 private 멤버에도 접근 가능을 제외하면 일반 클래스와 똑같음. 개념상 중첩 클래스의 인스턴스가 바깥 인스턴스와 독립적으로 존재할 수 있다면 정적멤버클래스로 만들 것. (비정적 멤버 클래스는 바깥 인스턴스 없이는 생성할 수 없다) 결론. 메서드 밖에서도 사용해야 하거나 메서드 안에 정의하기엔 너무 길다면 멤버클래스로 만들 것. 멤버클래스의 인스턴스 각각이 바깥 인스턴..
아이템 17. 변경가능성을 최소화하라. 불변클래스 인스턴스의 내부 값을 수정할 수 없는 클래스 불변 객체는 단순하다. 생성된 시점의 상태를 파괴될 때까지 그대로 간직한다. 스레드세이프하여 따로 동기화할 필요가 없다. 불변객체는 안심하고 공유할 수 있다. clone메서드나 복사 생성자는 제공하지 않는 게 좋다. 자유롭게 공유가 가능하고, 불변 객체끼리는 내부 데이터를 공유할 수 있다. 맵의 key와 set의 원소로 쓰기에 좋다. 실패 원자성을 제공한다 불변클래스를 만드는 법 객체의 상태를 변경하는 메서드를 제공하지않는다. 클래스를 확장할 수 없도록 한다. ( 대표적으로 클래스를 final로 선언) 모든 필드를 final로 선언한다 모든 필드를 private으로 선언한다. 자신 외에는 내부의 가변 컴포넌트에..