목록좋은설계 (3)
잡동사니
안녕하세요. yeTi입니다. 오늘은 도메인 주도 설계 의 3부의 읽은 후기를 기록하려고 합니다. 3부는 내용이 많이서 2편으로 나눠서 기록합니다. 지속적인 리팩터링을 통해 심층모델로 도약할 수 있다. 리팩터링이란 소프트웨어의 기능을 수정하지 않고 설계를 다시 하는 것을 의미합니다. 관건은 사전에 모든 설계 결정을 내리기보다는 기존의 기능은 유지한 채 끊임없이 코드를 변경하면서 설계를 좀 더 유연하게 개선하거나 이해하기 쉽게 만드는 과정이라는 것이죠. #XP 에서는 점진적 설계를 말하고 #TDD 에서는 작은 목표를 기반으로한 지속적인 리팩토링을 말합니다. (모두 켄트 벡의 저서입니다.) DDD에서는 리팩터링의 수준에 대해 이야기 합니다. 리팩터링의 목표는 개발자가 단순히 코드가 수행하는 바를 이해하는 것뿐..
안녕하세요. yeTi입니다. 최근에 설계적 관점에 대해서 트리거를 받은 계기가 있어 스스로 가지고 있는 개념에 대해 공유해보고자 합니다. (feat. 소프트웨어 설계 20년 해보고 깨달은 '좋은 설계'의 조건) 좋은 설계 사실 좋다라는 단어는 상대적인 용어입니다. 저에게 있어서 좋은 설계란 실용적으로 활용할 수 있는의 의미가 큰 거 같습니다. 좋은 설계하기 (feat. 의사소통) 편에서도 공유했듯이 저에게 있어서 설계란, 표현에 그치는 수단이었고 문서작업이었으며 신뢰할 수 없는 정보였습니다. 그래서 어떻게하면 유의미하고 쓰임새있는 설계를 할 수 있을지가 항상 숙제였고, 우연치 않은 계기로 나름대로의 개념을 잡아나갈 수 있었다고 생각합니다. 설계의 의미 IT서비스를 만들어나감에 있어서 궁극적..
안녕하세요. yeTi입니다. 오늘은 설계하는 시각을 바꾸게된 경험을 공유하려고 합니다. 지난 날 지난 시간동안 저에게 설계를 한다는 것은 매우 어려운 일 중 하나였습니다. 폭포수 모델기반 설계 폭포수 모델기반 프로젝트를 진행할 때 UML 을 활용하여 산출물 이라는 것들을 만들곤 했는데요. UML 을 어떻게 활용해야 유의미한 설계가 되는지는 이해하지 못했습니다. 왜냐하면 설계문서 작성 배정을 받은 다음 검토라는 단계가 없이 승인 및 구현에 들어가 피드백을 받을 수 없었습니다. 또한 구현시에 설계의 부족한 부분이 확인되더라도 설계문서의 수정없이 개발 효율만을 생각하며 개발을 하는 환경이었고, 프로젝트 마지막에 산출물 현행화라는 방식으로 설계문서를 현행화하는 시간을 가졌습니다. 설계는 산출물을 위한 것인가 그..