삼성 청년 소프트웨어 아카데미 6기 1차 프로젝트 회고록

류기탁·2022년 3월 10일
1

사담

목록 보기
3/6

삼성 청년 소프트웨어 아카데미 6기 부울경 캠퍼스에서 교육을 받고 있다. 값진 시간이다. 현업에서 사용하는 기술을 실전 박치기 형식으로 배우고 있다. 2학기엔 총 3개의 프로젝트를 진행하는데, 그 중 첫 번째 프로젝트가 끝났다. 사실 종료한지 꽤 되었는데, 우수 프로젝트에 선정되어서 발표를 준비하느라 이것저것 하다가 회고록은 지금 쓰게 되었다. 아. 결과는 지역 프로젝트 1등했다. 히히

https://github.com/AlwaysRYU/INCRIME

프로젝트를 진행하면서..

좋은 결과를 얻었지만, 그 과정은 쉽지 않았다. 프로젝트를 시작하고 2주 정도 지났을 때, 팀장님이 취업에 성공하셨다. 그래서 깃 허브에 기술 되어있는 내역할이 '팀장(신)' 이다.

무엇을 배웠나요?

Node.JS (Express)로 서버를 만드는 법, 소켓 통신 구현 법, 그걸 또 유니티 프로젝트와 어떻게 통신하도록 하는지, Web으로 빌드해서 실행하는 법, 유니티에서 사용하는 프리팹과 같은 개념들........ 등등 기술적인 면은 정말 많지만!!
이런 것은 제외하고 내가 내면적으로 깨달은 것을 나열하면 다음과 같다.

  1. 나는 새로운 것을 배우는 것이 빠른 편이다.
  2. 예쁜 코드를 작성하자.
  3. 오류를 발견했을 때 모른 척 할 수 없구나.

1

유니티. 해본적없다. NodeJS. 역시 해본적없다. 1학기 프로젝트에서는 SpringBoot를 사용해서 서버를 만들었니까. 그런데 생각보다 빠른 시간 내 유니티에 전반적인 이해를 했고, 서버는 만들 때 솔직히 재밌었다. 나는 서버 담당이었다. 유니티를 새로 배워서 하는 것은 짧은 시간의 프로젝트 진행에 도움이되지 않을 것 같아 서버에 스스로 지원했다. 하지만, 서버를 만들면 유니티 오브젝트와 통신을 주고 받아야하므로 어차피 유니티에 대해서도 이해를 필요로 했다. 허허.. 그렇게 나는 씬에다가 오브젝트를 배치하는 것 보다 이 오브젝트를 C# 스크립트를 통해 어떻게 다뤄야 하는지를 먼저 배웠다. 결국 서버도 알고, 유니티 프로젝트를 사용하는 법도 어느정도 이해하게 됐다. 여기서 배우는 속도가 빨랐던 것 같다. 그렇게 유니티 팀과 서버팀을 조율하고 서로 가르켜주는 것이 나의 역할 중 하나가 됐다. 프로젝트의 종합적인 이해를 하고있는 나는 결국 이러한 이유로 나중에 발표를 하게 된다.

2

코딩을 잘하는 팀원 한 명이 있었다. 이 친구가 작성한 코드를 보게 되었다. 함수 위 주석한 줄. 통일된 함수명. 그리고 엄청 모듈화가 잘된 코드였다. 중복을 최소로 줄인 정말 깔끔한 코드였다. 그 후 내가 작성한 코드를 봤다. 부끄러웠다. 지금까지 내가 겪은 팀 프로젝트는, 팀 프로젝트임에도 불구하고 코딩을 혼자했던 경우가 많았다. 그래서 내 마음 대로 변수 이름을 정하고, 불규칙적인 코딩을 하는 것이 습관화 되었던 것이다. 혼자 하면 못 보는 나의 안 좋은 습관을 발견했다. 예쁜 코드, 클린 코드는 현업에 필수라고 생각이 들었다. 코드를 지저분하게 짜는 사람과 누가 같이 일하고 싶겠는가! 그 후 내 코드를 싹 갈아 엎었고, 보기 좋게 예쁘게 만들었다. '그러니까 한 번에 잘 짜자!' 라고 생각하게 됐다. 개발 전 프로젝트 설계가 역시 중요하다.

3

팀원 중 한명이 게임 중 투표 기능을 구현했다. 그런데 테스트 할 때마다 자꾸 오류가 난다는 것이다. 각 클라이언트에서 간헐적으로 투표 결과를 출력하지 않을 때가 있었다. 그 팀원은 다른 할 일을 하러갔고, 다른 팀원들도 필수적 기능 구현에 바빴다. 나도 해야할 일이 있었지만 이 것은 치명적인 오류라고 나는 생각했다. 이 기능은 게임 진행에 필수적인 기능이니까 오류가 있어서는 안된다고 생각했다. 나는 일단 내가 하던 일을 미루고 투표 코드를 들여다봤다. 문제의 원인은 동시성이었다. 서버에서 투표 결과를 보여주라고 호출하는 타이밍이 클라이언트마다 달라서, 호출을 받는 시점이 다 달라서 생기는 오류였다. 이것도 거의 대부분 코드를 다시 짜야 했는데, 시간이 꽤 걸렸다. 이 일을 한다고 다른 일들이 미뤄졌는데, 때문에 나의 시간을 많이 포기해야했다. 과연 내가 직장인이었다면 어땠을까. 다른 팀원들이 관심이 없는 큰 오류를 발견했을 때 나는 과연 내 할 일을 미루고 그 오류를 수정했을까. 아마 같은 선택을 했을 것 같다.

TMI : 프로젝트 발표

내가 프로젝트 발표를 했다. 평소에 발표할 때 별로 긴장하는 타입이 아니라고 생각했는데, 유달리 그날 따라 긴장이 엄청되었다. 생각해보면 준비한 발표내용이 스스로 만족스럽지 않았던 것 같다. 역시 그날의 발표는 매끄럽지 못했다. 자기 전에 이불을 발로 뻥뻥찼다. 고생한 팀원들의 결과물을 잘 전달하지 못한 것같아 팀장으로써, 발표자로써도 팀원들에게 미안했다. 허허.. 그런데 다음 날, 반 우수 프로젝트로 선정이 되었다. 발표를 전국 단위로 한번 더 한다는 것이다! '두번째 기회'라고 생각했다. 그 날의 실패를 만회할 수 있는 단 한 번의 추가기회! 진짜 열심히 준비했다. 또 발표내용을 여러 번 갈아 엎었다. 발표하는 당일 아침에도 피드백을 받고 내용을 수정했다. 역할게임이라 프로젝트를 시연할 때 팀원들의 과몰입 연기가 있으면 좋을 것 같다라는 의견을 받아들여주고 흔쾌히 해준 팀원들에게 감사하다. 덕분에 발표내용이 풍성해졌다. 그 날 발표는 다른 어느 때보다 만족스러웠다. 물론 하기전까지 긴장이 됐지만, 시작하니까 떨리지 않았다. 자칫 트라우마가 될 뻔한 경험을 스스로 발전하게되는 경험이 되었다. 모든 것에 감사하다.

profile
오늘도 행복한 하루!

0개의 댓글