[SSAFY 공통프로젝트 회고] 코드에 대한 고찰 (TMI 주의 ⚠️❗️🚫)

김준호·2020년 9월 1일
4

회고LOG

목록 보기
4/4
post-thumbnail

TMI 주의 ⚠️❗️🚫

이번 글은 다른 글과는 조금 다르게, 길게 풀어서 써보려고 한다. 사실 공통프로젝트에 대한 회고이긴하지만 내 대학 이야기까지 꺼내야될 것 같다. 제목이 코드에 대한 고찰인 이유"같은 코드를 짜더라도 효율적으로 짜려고 고민하고 가독성있게 구현하기위해서 노력했던 적이 있는가?"에 대한 생각이 나를 학부생 시절로 이끌었다. 나는 4년제 정보통신공학부를 졸업하고 지금까지 프로젝트를 진행하면서 회고라는것을 해본적이 없다. 어떻게 그럴수가 있냐고 말하는 사람들도 있겠지만, 나는 회고의 중요성을 모른채 살아왔다. 어떻게보면 모른채 살아왔다는 것이 발전하고자하는 모습이 없는 사람의 모습일 수도 있는데, 적어도 나에게 해당되는 말이었다.

"프로젝트를 제대로 안했냐?" 또는 "완성도가 높지 않았냐?"라고 묻는다면 절대 그렇지 않다고 대답할 수 있다. 하지만 "프로젝트를 하면서 어떤걸 배웠냐?"라고 묻는다면 극단적인 말로는 "잡기술을 배웠다"라고 대답 할 것 같다. 즉, 나는 개인이 발전하고 좀 더 의미있는 코드, 가독성있는 코드를 짜려고하지 않고 보여주기위한 코드를 짜왔다. 보여주기위한 코드를 짜게된 이유를 억지로(?) 찾아봤더니, 내 첫 프로젝트가 나에게 영향을 주지 않았나라는 생각이 든다.

대학교 2학년 1학기 내 첫 프로젝트는 c언어로 만든 런치패드 프로그램이었는데, 그냥 printf로 찍어서 UI를 만들고 특별한 구조나 로직없이 구현을 통해서 서비스를 제공하는 프로그램이었다. 이때가 본격적으로 코딩에 관심을 가지게되는 프로젝트였는데, 그래서 그런지 자료조사도 나름 많이하고 시간도 많이 쏟았었다. 문제는 현실적으로 구현가능한 범위를 판단하지 못했다는 것이다. 여기서 말하는 현실적으로 구현가능한 범위는 프로젝트를 알고 구현하자라는 의미다. 당시에는 "쓰레드를 사용하면 멋있겠지?" 또는 "핸들러를 통해서 저수준의 하드웨어를 컨트롤했다"라고 하면 멋있겠지? 라는 마음에 관련 기술들을 마구잡이로 넣어서 사용했다. 여기서 합당한 이유가 없는데 기술을 사용했다는 점과 모르고 사용했다는 점을 외면한채 그저 주위 사람들의 칭찬과 내 프로젝트의 완성도에 만족으로(지금 생각해보면 완성은 무슨..) 자만을 했었다.

그렇게 그저 긁어다가 쓴 것뿐인데, 그때부터 "프로젝트는 어떤 내용이 나와도 다 만들수있겠다"라는 자만이 생기고 내 지식이나 수준을 발전시키기 보다는 "어떤 프로젝트를 해야 성과가 좋을까?"라는 생각을 위주로 남은 학부생활을 보냈다. 실제로 몇몇 말할수있는 결과가 있을 정도로 결과면에서는 나쁘지 않았으나, 어느 시점부터 잘못된것을 깨달았다.

나는 가정 전력 관리 IOT라는 졸업작품을 2년동안 진행했는데, 1년이 지난시점에서 주변사람의 기대를 받고 새로운 기술을 도입시켜야 하는 상황에 놓여있었다. 그 때 "가정의 전력을 예측할 수있는 AI 기술을 넣어보자"라는 의견이 채택되어 서치를 하기 시작했었다. 결과적으로는 어떻게든 예측하는 모습을 보여주는 프로젝트가 완성되었지만, 기술이 어려워질수록 밤을 새서라도 동작만하는 코드를 찾기 위해서 시간투자를 하는 상황이 잦아진걸 발견했다. 이때부터 "우리가 만든건 버그인가 서비스인가?"라던지 "내가 구글없이 할수있는건 뭔가?", "난 진짜 아무것도 모르는구나"라는 복합적인 감정이나 생각이 들었었다.

지금까지 말한것 자체가 인프라 탓을 하는 변명이지만, 한번 더 탓을 하면서 새로운 인프라를 찾아나섰다. 그렇게 지금 소속되어있는 싸피에 들어오게 됐는데, 확실히 많은 정보들을 전보다 쉽게 얻을 수 있는 풀이 형성됐다는 것을 부정할 수는 없었다. 하지만 오늘 이 포스트를 통해서 궁극적으로 하고싶었던 말은 이제 프로젝트를 보여주기 위함이 아니라 회고라는 것을 통해서 나 자신을 발전시킬 차례라고 말하고 싶었다. 그럼에도 싸피 2학기 첫 프로젝트 Locker에서도 마찬가지로 "지난 나와는 다르다"라는 막연한 생각으로 프로젝트를 진행했는데, 지금 기획하고있는 프로젝트에서는 정확한 코드 컨벤션을 정하고 지킬 계획을 가지고있다. 또한 TDD에 대한 생각을 해보고 마찬가지로 규칙을 정해서 다른 사람이 나의 테스트 코드를 보면, 작성자가 어떤 기능을 구현하고 의도했는지 알 수 있도록 고민하며 코드를 짜보자..!

profile
https://junhok82.github.io/

8개의 댓글

comment-user-thumbnail
2020년 9월 10일

저는 1기 출신인데... 반갑네용..!

1개의 답글
comment-user-thumbnail
2020년 9월 15일

올해 6월에 모집할 때 지원안한게 아쉽네요 ㅎㅎ 한창 인턴쉽 하던 중이었고 가장 바빴을때라서 못했다는 핑계를 대봅니다.

1개의 답글
comment-user-thumbnail
2020년 9월 21일

공감이 되네요. 좋은 글 잘 봤습니다ㅎㅎ

1개의 답글