설계하지마라.

토요일 C++ 코리아 세미나에서 비는 시간에 어느 학생분이 질문을 해왔다.
설계에 대해서 어떻게 생각하냐고…라기보다 설계를 어떻게 해야하느냐..에 가까웠던거 같은데..어쨌든.

딱 잘라서 말했다.

“설계하지 마세요.”
“그냥 졸라 프로그램을 짜세요.”
“같은 프로그램 세번쯤 만드세요.”

설계라는건그 도메인(나 이 말 정말 싫어한다.마땅한 표현이 없어서 적었다)에 대해서 훤히 알고 있고 코드를 짠 경험도 많을때나 하는거다.

소켓프로그래밍을 한번도 안해본 사람이 네트워크 라이브러리를 만들겠다고 다이어그램 그리고 기능이 하나도 없는 빈 클래스만 잔뜩 코딩하는거..이런게 아무짝에 쓸모없는 설계의 대표적인 케이스다.

경험이 부족한 상태에서 하는 설계라고 하는 것-나는 다이어그램이나 끄적거린다라고 표현한다-은 아무짝에 필요없는 시간 낭비다.
정말 아무짝에 쓸모없다.

충분한 생각?
왔다갔다 지하철/버스에서 생각하면 그걸로 충분하다.
컴퓨터 앞에 앉으면 코드를 짜야한다.

당연히 첫 코드는 바보같을 것이고 잘 안돌아갈 것이다. 일단 그리 해서 완성을 짓고 다시 만든다.
이전보단 낫겠지만 여전히 별로일 것이다. 또 다시 만든다.
세번째쯤엔 꽤 괜찮아져 있을것이다.
이 도메인의 코딩을 할때 무엇이 문제가 되는지 이제 대충 안다.
이제 설계를 할 수 있다.
이제 나름의 설계를 하고 진짜로 만들면 된다.
사실 별도의 설계과정 따위 없이 또 짜도 된다.
이쯤 되면 생각하는 과정이 필요해서 설계를 하는게 아니다. 협업을 위해 문서를 남기는 정도의 이유만 있다.
사실 3-4번째쯤 다시 만들면 눈감고 만들어도 그럴싸하게 나온다.
그런거다.

Posted in Pub

설계하지마라.”에 대한 답글 5개

  1. 이미 동작하는 코드에 대해, 3-4번째쯤 다시 작성하는 사람은 훌륭한 설계자에 진입했다고 봅니다.
    그러나, 현실은 동작하는 코드를 다시 작성하는 사람이 별로 없죠.

    좋아요

  2. 대학 다닐 때 교수가 설계를 엄청 강조했었습니다. 과제가 나오면 설계를 먼저 하고 코딩을 했지만 막상 코딩을 하면 설계와 코드가 따로 놀더군요.
    지금 생각해보면 경험이 없는데 당연한거 아닌가 싶습니다.
    설계할 시간에 문제파악하고 빨리 부딪혀 보는게 훨씬 도움되는거 같습니다.

    좋아요

    1. 설계를 나중엔 해도 되죠. 경험이 충분히 쌓인 다음에.. 그 교수님이 코드를 많이 안짜봤거나 자신의 올챙이 시절을 잊었거나 그랬을거 같네요.

      좋아요

  3. 안녕하세요 입문자인데요. 노트에 혼자 조건들을 적어보고 뭐하려고 했지?
    (비주얼 스튜디오만 키면 가끔 머리가 멍해져서….) 생각한 뒤에 제가 적은 노트를 읽으면서 소스를
    입력하고 문제가 생기면 다시 고민하고 수정하는 방식을 취하고 있는데, 효율적이지 못한 방법일까요?

    좋아요

    1. 효율적이란 방법이 따로 있다고 생각진 않습니다. 본인이 효율적이라고 느끼면 효율적인거죠. 저는 원노트에 할일을 죽 적어놓고 각 이슈별로 서브항목으로 필요한 내용을 정리합니다.

      좋아요

답글 남기기

댓글을 게시하려면 다음의 방법 중 하나를 사용하여 로그인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중