개발 이야기
소프트웨어 개발의 본질에 대하여
소프트웨어 개발의 본질에 대하여
2023.09.29소프트웨어 개발이 창조의 영역이라면 도로시 세이어즈의 관점에 따라 (1) 개념적 구조의 형성 (2) 실제 표현 수단으로 구현 (3) 실사용자와의 상호작용으로 이뤄질 것이다. 이 중 소프트웨어 개발자의 주된 업무는 (1)에 해당하는 현실 세계 문제를 해결하기 위해 소프트웨어 차원의 개념적 구조를 모델링하는 일과 (2)에 해당하는 프로그래밍 언어, 프레임워크, 인프라와 같은 기술적 요소를 사용해 모델링한 개념적 구조를 컴퓨터 시스템으로 구현하는 일이다. 나는 (1)에 해당하는 개념적 구조의 모델링을 소프트웨어 개발의 본질적인 부분으로 (2)에 해당하는 개념적 구조의 구현을 소프트웨어 개발의 부수적인 부분으로 나누고, 소프트웨어 개발이 어려운 이유는 본질적인 부분 때문임을 명확하게 하고자 한다. 개념적 구조의..
[개발 이야기] 다 빈치의 수태고지와 도메인 주도 설계(Domain-Driven Design)
[개발 이야기] 다 빈치의 수태고지와 도메인 주도 설계(Domain-Driven Design)
2023.09.03이탈리아 피렌체에 시뇨리아 광장에 가면 우피치 미술관이 있다. 르네상스 시대의 메디치 가문의 연출가였던 조르조 바사리가 설계했다. 빡빡한 도리아식 열주에서 절대주의 건축의 질서감이 느껴지는 공간이다. 이곳에는 레오나르도 다 빈치의 가 전시되어 있다. 는 서양 회화의 고전 주제로 예수의 잉태를 알리는 천사와 놀라는 마리아의 모습을 담고 있다. 섬세한 표정과 부드러운 채색, 밀도 있는 구도가 인상적인 그림이다. 가봤냐고? 물론 사진으로 봤다. 그런데 가면 보면 그림이 좀 이상하다. ‘원근법(perspective)’이 완전 엉망이다. 마리아의 오른팔이 왼팔에 비해 너무 길어 보이며, 마리아와 책상 사이의 거리는 부자연스럽게 멀리 떨어져 있다. 더 심각한 건 마리아의 뒤쪽 벽돌이다. 다시 한번 자세히 보자. 벽..