프로그래밍/기타

맨 땅에 헤딩하며 프로그램 개발하기 - 1 (계획)

Dibrary 2023. 7. 14. 09:50
반응형

안녕하세요, Dibrary입니다.

과거, 저는 개발업무를 할 때 맨땅에 헤딩을 하며 프로그램을 만들어 본 경험도 있고,
기본적인 코드가 완성된 회사에서 편의 혹은 유지보수코딩을 해본 경험도 있습니다.

 

그 중에! 맨 땅에 헤딩할 때가 가장 기억에 남고, 힘들었고, 가장 막막했었습니다. ㅠ.ㅜ

 

아마 원해서 자원하진 않겠지만, 내 생각과 다르게 이렇게 맨 땅에 헤딩하며 코딩을 해야 할 상황에 맞닥뜨릴 분들도 계시리라 봅니다. (아무렴 거지같은 중소기업이 없어지지 않는한 ... 이런 업무에 종사할 사람은 반드시 존재하기 마련이죠)

 

그런 분들을  위해 제가 경험했던 내용들을 정리해 올려보고자 합니다. 

물론, 이 방법이 항상 100% 정답이다고는 할 수 없지만, 적어도 '멘토'없는 개발환경 상황에서 어느정도 갈피를 잡는데 도움이 될 수는 있지 않을까 합니다. 

 


대부분 이런 상황에 놓인 분들은 아래와 같은 경우가 대다수 일 겁니다.

1. 지금 당장 XX기능을 하는 프로그램이 필요한데, 너가 제일 젊잖아? 인강이나 책 사줄테니까 너가 해봐

2. 예전에 간단한 거 해봤다매 or 컴공 출신이지? 이 정도는 쉽겠네. 너가 해봐

3. 막내니까 그냥 니가 해 (ㅠ.ㅜ;;)

정말 막막하죠. 만약 개발을 하던 사람이 이런 추가업무를 맡게 된다면 뭐... 귀찮음이 늘어난 것 뿐일텐데
관련 업무를 하지 않았는데 도맡게 된다면? 아주아주 막막합니다. ... 거의 혼자 개척하는 사람이 되는 것이죠.

 

그치만 막막해 할 시간이 없습니다! 그 시간에 '나에게 도움이 되게' 시간을 쓰는게 더 유익하니까요.

 

과거 제가 맨 땅에 헤딩 할 때는 멘토고 뭐고 아무것도 없어서 닥치는대로 책 보고 코딩 익히자마자 기능 구현하고 슉슈슉... 결과는 완성은 되었지만, 기능 수정은 '절.대.불.가' 한 상태가 되었죠.

 

 


기본적인 개발 흐름은 아래와 같습니다.

waterfall model

사실 프로세스모델은 여러가지가 있지만, 맨 땅에 헤딩을 해야 할 경우 '혼자' 진행해야 하므로 그 과정이 간단한 것이 좋습니다. 

만일 능력이 되신다면, 여기에 추가로 Agile 틱한 과정을 넣어주시면 됩니다. (이것도 차후에 설명해보겠습니다.)

 

 

제일먼저, 계획을 짜셔야 합니다.

계획 = 뭘 만들고 싶은건지, 현재 내가 속한 회사 및 업무의 환경은 어떤지, 필요한 것은 뭘지 등등 파악하기

 

1. 우선, 뭔 기능을 원하는지 '자세하게' 알아내야 합니다. 

걍 '~~ 되게 해봐' 이렇게 툭 던지면 꼬치꼬치 캐물어서 정확히 어떤 상황에서 어떻게 동작하는 기능을 말하는건지 확인해야 합니다.

 

 

2. 현재 그 프로그램이 어디에 쓰일 것이고, 그 쓰이는 곳의 환경은 어떤지, 어떤 업무를 주로 하는 지 등의 정보등을 가지고 있어야 합니다.

이걸 '도메인지식'이라고들 하는데, 걍 예를 들어보죠.

제품의 표면에 붙은걸 check 하는 프로그램을 만드는데, 이게 컨베이어벨트에서 동작하는 건지, 자동차가 통과하는 상황에서 동작하는건지 알아야 그에 맞게 개발을 하겠죠?

이런 '도메인'분야의 업무에 대해 이해가 되어 있어야 합니다.

 

3. 기본 기간 설정

우선 내가 코딩을 아예 모른다고 가정해보겠습니다.

1. 코딩을 우선 익혀야 한다. (책이든 인강이든)
2. 코딩으로 '구현'이라는 것을 할 수 있는지 체크해야 한다.
3. 구현을 할 시간이 필요하다.
4. 테스트도 해야 할 것 같다.

등등 이렇게 정해 나갈 수 있겠죠? 이 중에, 1번과 2번에까지 걸리는 기간(시간)을 '본인의 습관'에 비추어 정하셔야 합니다.

예를 들어, 내가 지식 습득력이 꽤나 괜찮다 싶으면 1번 구간에서 대략 3개월안에 끊을 수 있고, 2번이 대략 3개월 걸릴 듯 싶다. = 6개월

아니면 나는 1번은 6개월 정도 걸리고, 2번은 3개월이면 충분하다 = 9개월

 

대부분, 회사는 D-day를 촉박하게 주죠? 근데, 맨 땅에 헤딩하는 경우는 대부분 D-day가 없거나, 넉넉히 줍니다. (양심이 있어야죠)

그러면 우선 필요한 책이나 인강을 몇 개 본 후에 대략 내가 얼마안에 기본 개념과 2번까지는 끝내겠다는 일정이 잡힐 겁니다. 

 

그대로 정하고 보고를 하시고 진행하면 됩니다.

 

 

그리고, 가장 중요한 것은

내가 뭘 했는지, 그걸 왜 했는지에 대한 '근거'를 남겨놓는겁니다.

'문서화' 라고 하는데, 각 단계별로 '문서화'를 진행해야 나중에 책잡힐 일도 없고, 수정도 용이하고 그래요.

암튼 문서화는 꼭 해두세요!!!!

728x90
반응형