본문 바로가기

Homo Faber/Techniques17

빌드 시간을 더 빠르게 하라 빌드의 통합은 형상관리도구, 워크스페이스의 소스코드 관리 도구, 배포 바이너리 버전 관리 도구 등을 통해서 상당 부분 자동화를 시킬 수 있다. 빌드는 단순히 형상관리에 있는 소스 코드들을 모두 가지고 와서 실행 파일로 컴파일을 만들어주는 의미만 포함되는 것은 아니다. 물론, 이러한 자동화 역시 전체 소스 코드의 깨짐 현상을 방지할 수 있고, 이를 지속적으로 반복적으로 수행한다면 소스 코드 깨짐 현상에 대한 위험은 줄일 수 있을 것이다. 문제는 전체 소스 코드의 크기가 적고, 어느 정도 인내할 수 있는 시간 동안 빌드를 한다면 괜찮겠지만, 소스 크기가 상당하고 많은 사람들이 만들어내는 소스 코드 (심지어 서로 다른 지역에 있는 사람들이 만들어내는 소스 코드와 같이 빌드하는 경우) 라면 상황이 달라진다. 실.. 2012. 5. 12.
신중하게 행동하라 - Seb Rose "무엇을 하든지 간에, 신중하게 행동하고 결과를 생각하라" Anon 어떠한 반복주기(iteration)든지 초반에는 일정이 편안하게 느끼게 됩니다. 하지만, 그렇다 할지라도 특정 시간에는 압박 상황을 피할 수는 없습니다. "올바르게 수행할 것"과 "빨리 수행할 것" 사이에서 선택하라고 하면 나중에 수행한 내용을 수정할 것이라는 생각에 "빨리 수행할 것"을 종종 선호하게 됩니다. 여러분 자신과 팀, 고객에게 지금 빨리 수행하고 이후에 수정할 것이라고 약속할 때에는 여러분은 분명 그러한 의도를 가지고 있습니다. 그러나 그 다음 반복주기에서는 새로운 문제가 나타나고 여러분은 이에 몰두하게 되는 일이 비일비재합니다. 이와 같이 지연된 작업과 같은 유형을 기술적인 빚(technical debt.. 2010. 6. 16.
Spring의 AOP로 구현한 테스트 스파이(Spy) 테스트 스파이는 테스트 더블(double) 의 한 유형으로, 대상 시스템 내의 특정 컴포넌트의 간접적인 결과 호출을 검증하기 위한 장치이다. 즉, 테스트 스파이는 해당 컴포넌트의 행위를 검증하기(behaviour verification) 위한 테스트 장치라고 볼 수 있다. 테스트 스파이는 다음과 같은 상황에서 사용된다. 대상 시스템의 간접적인 결과를 검증하고자 하지만, 사전에 모든 속성의 값들을 예상할 수 없는 경우 Mock 객체를 사용해서 충분하게 예상을 하지 못한다고 생각할때 이를 보여주기 위한 검증을 필요한 경우 동등성 비교와 같은 검증시 단정(assertion) 메소드를 사용해서 제어하지 못하는 경우 테스트 스파이에 대한 구현은 해당 로직을 대상 컴포넌트로 주입을 함으로써 비즈니스 로직 수행 중에.. 2009. 12. 4.
비즈니스 컴포넌트와 데이터 ownership 비즈니스 컴포넌트의 내부 구조는 레이어드 방식보다는 크로스 레이어드 방식을 선호한다. 그러한 성질로 인해서 컴포넌트 간의 의존관계는 상당히 중요한 정보로써 관리되어야 하며, 이는 컴포넌트 방식으로 중요 비즈니스 로직을 구성할 경우, 지속적으로 모니터링이 되어 해당 컴포넌트 간의 의존관계가 비즈니스적인 의미가 있게 구성되어야 한다. 따라서, 이를 위해서는 당연히 데이터에 대한 ownership 문제가 제기되지 않을 수 없으니, 논리적인 데이터 모델 뿐만 아니라, 물리적으로 무결성을 위해서 테이블 간에 많은 FK를 통해 연결된 데이터베이스 구조의 성격상 ownership을 나누기는 여간 불편한게 아닐게다. 컴포넌트의 의존관계를 관리할 수 있는 수준이라면, 당연히 데이터의 ownership을 지정하여 관리하도.. 2009. 10. 5.
반응형