Monday, December 17, 2012

Spring Tutorial

쉽고 간단한 스프링 튜토리얼. 강추


Friday, December 14, 2012

3장 템플릿 정리

DB에 CRUD과 같은 작업을 수행하기 위해서는 공통적으로 수행해야 하는 작업들이 있다. 시작할 때 커넥션을 열고 종료할 때 닫는 작업, 예외처리 등.

다음 코드는 비즈니스 로직을 둘러싼 이러한 "중복된 기술적 작업"을 보여준다.

이렇게 중복된 기술적 작업을 실제로 관심있는 비즈니스 로직과 분리하기 위한 방법으로 템플릿 메소드 패턴과 전략 패턴을 생각해볼 수 있다.

템플릿 메소드 패턴은 상속을 통해서 변하지 않는 부분을 수퍼클래스에 두고, 변하는 부분은 추상 메소드로 정의해서 서브클래스에서 오버라이드하여 새롭게 정의해 쓰는 것이다.

하지만 기본적으로 상속을 통해 클래스를 만들어야 하는 단점이 있고 확장 구조가 설계 시점에 고정되어 버리는 문제가 있다.

반면 전략 패턴은 확장에 해당하는 부분을 별도의 클래스로 만들어 추상화된 인터페이스를 통해 위임하는 방식이다.


이후 deleteAll() 메소드를 리팩토링해서 컨텍스트와 전략 생성을 분리하면 전략 부분을 DI 받도록 쓸 수 있게 될 것이다.
ff

Wednesday, November 14, 2012

git 을 이용한 branching & merging



마스터 브랜치에서 개별 작업(iss53)을 하기 위해 새로운 브랜치를 생성하고 커밋.


git checkout -b iss53
git commit


중간에 다른 hotfix 요청이 들어오면 또다른 브랜치를 생성하고 커밋.


git checkout -b hotfix
git commit


이제 hotfix 를 마스터에 머지하고, 해당 브랜치를 삭제


git checkout master
git merge hotfix
git checkout -d hotfix


iss53을 다시 불러와 작업

git checkout iss53
git commit


iss53을 마스터에 머지하고, 브랜치 삭제

git checkout master
git merge iss53
git checkout -d iss53