좋은 함수 만들기
좋은 함수 만들기 - 부작용과 거리두기 1. 좋은 함수 만들기 - 부작용과 거리두기 좋은 함수란 순수 함수 :::info 순수함수는 동일한 입력일 경우 항상 동일한 출력을 반환하며, 부작용이 없는 함수 ::: 리팩토링 될 함수 export async function s...
좋은 함수 만들기 - 부작용과 거리두기 1. 좋은 함수 만들기 - 부작용과 거리두기 좋은 함수란 순수 함수 :::info 순수함수는 동일한 입력일 경우 항상 동일한 출력을 반환하며, 부작용이 없는 함수 ::: 리팩토링 될 함수 export async function s...
7.6 스프링 3.1의 DI 스프링이 처음 등장한 이후 많은 변화를 겪은 것은 사실이지만 스프링이 근본적으로 지지하는 객체지향 언어인 자바의 특징과 장점을 극대화하는 프로그래밍 스타일과 이를 지원하는 도구로서의 스프링 정체성은 변하지 않았습니다. 자바 언어의 변화와 스프링 D...
7.5 DI를 이용해 다양한 구현 방법 적용하기 운영 중인 시스템에서 사용하는 정보를 실시간으로 변경하는 작업을 만들 때 동시성 문제가 가장 먼저 고려되어야 합니다. SqlRegistry 가 읽기전용으로 동작할 때는 동시성 문제가 발생할 일이 없습니다. 하지만 수정은 문제가 ...
7.4 인터페이스 상속을 통한 안전한 기능확장 서버가 운영 중인 상태에서 서버를 재시작하지 않고 긴급하게 애플리케이션이 사용 중인 SQL 을 변경해야 할 수도 있습니다. 지금까지의 SqlService 구현 클래스는 SQL 정보를 초기에 읽어서 메모리에 두고 사용합니다. SQL...
7.3 서비스 추상화 적용 JaxbXmlSqlReader 를 개선할 부분입니다. 필요에 따라 JAXB 외에 다른 기술로 바꿔서 사용할 수 있게 한다. XML 파일을 임의의 파일위치나 원격지 등 좀 더 다양한 소스에서 가져올 수 있게 한다. 7.3.1 OXM 서비스추...
7.2 인터페이스의 분리와 자기참조 빈 7.2.1 XML 파일 매핑 SQL 정보는 설정정보에 있기 보다는 SQL 을 저장해두는 전용 포맷을 가진 독립적인 파일을 이용하는 편이 바람직합니다. SQL 정보를 담는 XML 문서를 만들고, 이 파일에서 SQL 을 읽어뒀다가 DAO 에...
스프링의 3대 핵심 기술인 IoC/DI, 서비스 추상화, AOP 에 대해 간단히(?) 살펴보았습니다. 7장_ 스프링 핵심 기술의 응용, 557. 이번 장에서는 스프링이 제공하는 세 가지 기술을 필요에 따라 응용해보면서 스프링의 개발철학과 추구하는 가치에 대해 알아보겠...
6.8 트랜잭션 지원 테스트 6.8.1 선언적 트랜잭션과 트랜잭션 전파 속성 트랜잭션 전파 속성은 유용한 개념이다. REQUIRED 전파 속성은 진행 중인 트랜잭션이 있으면 참여하고 없으면 새로운 트랜잭션을 시작해주는 속성이다. 이를 통해 비즈니스 로직상 코드가 중복되는 일...
6.7 애노테이션 트랜잭션 속성과 포인트컷 세밀한 트랜잭션 속성의 제어가 필요한 경우를 위해 스프링이 제공하는 다른 방법이 있다. 직접 타깃에 트랜잭션 속성정보를 가진 애노테이션을 지정하는 방법이다. 6.7.1 트랜잭션 애노테이션 타깃에 부여할 수 있는 트랜잭션 애노테이션은...
6.6 트랜잭션 속성 TransacitonAdvice 의 트랜잭션 경계설정 코드를 다시 살펴보자 public Object invoke(MothodInvocation invocation) throws Throwable { TransactionStatus status = t...