본문 바로가기

쉽게 풀어본 IT 기술

소프트웨어 설계 vs 건축물 설계

설계라는 것은 그림을 그리는 것이다. 건축물로 치면 설계도를 그리는 것이다. 설계도는 건축물을 만들기 위한 모든 것이 담겨져 있다. 그림으로 표시도 되어 있고, 수치로도 표시가 되어 있다. 어떤 건축물을 만들지를 알 수가 있다.

건축물에도 조망도가 있고, 상세하게 층마다 어떻게 지어질지가 나타나있는 세부 설계도가 있다. 건물을 보면 우리는 계단을 올라가서 보이는 공간이 다이지만, 사실 건물을 건축할 때 고려되어야 할 것은 대단히 많다. 전기 설비가 어떻게 될지, 선은 어떻게 들어갈지, 수도는 어떻게 배관되어야 할지, 공기는 어떤식으로 흘러가는지, 각 구역들은 어떤 식으로 사용이 될지 세부적으로 1mm까지 표시가 되어 있는 설계도 필요하다.

소프트웨서 설계에도 대략적으로 컨셉을 보여줄 수 있는 기획 문서가 있고, 설계서가 있고, 상세 화면 설계, 인터페이스 설계, 데이터베이스 설계등이 있다. 설계는 매우 정확해야 한다. 물론 설계를 하다보면 변경이 될 수도 있다. 하지만 설계도 상에서는 흐름이 완전해야 하고, 어떤 프로그램이 만들어질지가 명확해야 한다. 건축물의 전기나 물이 흘러가듯이 프로그램내에서도 내용이 어떻게 저장이 되어야 하는지, 외부와 어떤 방법으로 통신할지가 명확해야 한다.

사실은 프로그래머의 대부분은 이 단계를 싫어한다. 이 단계를 단순 문서 작업이라고 치부해버리기도 한다. 프로젝트 산출물을 만들기 위한 문서 작업이라고 생각한다면 그리고 그렇게 만들어진다면 정말 의미 없는 시간이 될 수도 있다. 하지만 프로그램을 정교하게 만들기 위한 구상의 단계를 실현화 하는 것이라면
의미가 있고, 중요하다. 개발자들이 싫어하지만, 이 단계를 즐길 수 있고, 좋아한다면 훌륭한 개발자가 될 수 있다. 개발자들이 싫어하는 것, 문서 만드는 것, 회의 하는 것, 정리하는 것, 대부분 개발자들은 만드는 것 자체를 재밌어 한다. 하지만 일로써 접근하고, 큰 프로젝트일수록, 표준화하고 정의 하는 것이 중요하다. 1인개발자를 꿈꾼다면 얘기는 달라질 수 있다. 하지만, 어느 순간에는 펜과 종이를 들고 무언가 자기 구성을 적고 있는 것을 발견할 수 있다. 이것이 설계이다. 이때 고민할 때 좀더 정교하게 잘 해둔다면 나중에 좋을 것이다.


 책처럼 전체를 보기를 원하시면 아래 링크를 클릭하시고 북마크 하셔서 보시면 편리합니다. 

https://wikidocs.net/22353