– 인턴 이정현
국민대학교 하계 현장실습 프로그램을 통해, 지난 8주 간 이노베이션 아카데미에서 인턴으로 근무하였다.
2달이라는 짧은 기간, 8명의 인턴 동기들과 피 땀 눈물을 흘리며 함께했던 뜻 깊은 시간을 글을 통해 남기려 한다.
멘토링 시스템
우리에게 떨어진 미션이었다.
기능, 범위, 서비스 대상 등 아무것도 정해지지 않은 채 ‘멘토링’ 이라는 한 단어만을 두고 처음 본 사람들과 프로젝트를 출발하려다보니,
처음엔 매우 삐걱거리고 불안하기 그지 없었다.
우리는 해당 서비스가 무엇을 위한 것인지 구체화를 먼저 진행할 필요를 느꼈고,
이호준멘토님의 도움을 받아 설계의 순서를 크게 4가지로 분리하였다.
- 서비스 정의
- 서비스 시퀀스
- 서비스 데이터
- 데이터 시퀀스 드리븐
우선 서비스의 정의이다.
멘토링 시스템이 무엇이지? 누가 사용하지? 어떤 서비스를 제공하지?
말 그대로 어떠한 서비스인지, 요구사항과 서비스 대상, 범위 등을 정의하는 것이다.


( 생애 살아오며 화이트보드 써본 횟수보다, 2달 인턴기간 동안 사용한 횟수가 더 많은 듯.,)
서비스 시퀀스 단계에서는 정의된 서비스가 어떠한 플로우로 클라이언트에게 제공될 것인지를 정의한다.
이 때 비즈니스 로직과 같이 변할 수 있는 부분은 블랙박스로 처리하고 상세 시퀀스를 분리하였다.
이 후, 서비스 데이터 단계에서 서비스와 시퀀스 흐름에서 필요로되는 데이터 후보군을 정의 하였고, 앞서 도출된 시퀀스에 데이터를 얹어 데이터 스퀀스 드리븐을 작성하였다.


데이터 시퀀스 드리븐까지 정의된 이 모든 과정은 우리가 흔히 보던 유즈케이스, 시퀀스 다이어그램 등의 설계가 어떤 흐름으로 만들어져야 하는지에 대해 정확히 알 수 있었던 시간이었다.
팀 빌딩 – 운영
본격적인 개발에 앞서 프론트엔드, 서비스(백엔드), 운영 세 개의 팀으로 개발을 분리하였다. 필자는 프론트도 백도 아닌 …. 운영(!)
운영? 운영관리? 뭐하는 팀이지
필자 또한 같은 의문을 가졌었다. 운영이 무엇일까.. 해당 프로젝트에서 어떤 역할을 하는것인가
모든 서비스는 관리자가 필요하다. 관리가 되지 않는 웹사이트는.. 상상이 되지 않는다.
운영관리는 서비스의 이용자 통계, 데이터 관리, 고객관리, 로그 관리 등의 운영 측면에서의 여러 기능들이 존재하며, 이는 실 사용자들이 아닌, 관리자를 위해서만 제공되어야 한다.
때문에 해당 서비스에서 운영 팀의 역할은 그를 위한 관리자 운영 페이지를 만드는 것이었다.
운영팀은 서비스팀과 DB 및 DAO 공유 등 몇몇 공통 모듈들이 존재 하므로, 협업하여 진행되어야 했으며, 운영페이지의 프론트엔드, 시퀀스, 로직 등은 독립적으로 개발을 시작하였다.




(격렬한 터치패드의 흔적 with PowerPoint)
운영페이지의 와이어프레임이다.
크게 사용자, 매칭(멘토링), 키워드, 알림, 로그 관리를 제공하며, 대부분의 기능이 CRUD에 한정되므로 정적페이지로 개발되었다.
코딩 컨벤션 정의
모든 기획 및 문서작업이 완료 되었으나, 협업개발에 빼먹고 가서는 안될 중요한 과정이 하나 남았다.
바로 코딩 컨벤션 정의.
함께 개발을 하는 여러 사람들이 각기 다른 스타일의 코드로 개발이 된다면, 추후 코드의 열람 및 유지보수에 혼란이 있을 것이다. 이를 줄이고 개발효율을 높이기 위해, 8명이서 작성한 코드가 한사람이 작성한 코드처럼 보이도록 우리는 코딩 컨벤션을 정의하였다.

코딩 스타일에는 정답이 없기 때문에.. 컨벤션을 정의하는 과정에서 많은 의견충돌이 있었지만, 주석부터 괄호, 띄어쓰기 하나까지 상세한 컨벤션을 명세 하였고 문서(증거)로 작성을 무사히 완료하였다.
이후 해당 컨벤션을 지키지 않은 팀원에겐 혹독한 벌이 있을 것이다.
개발
5주간의 길고 길었던 설계와 개발 전 과정이 완료가되었다.
프로젝트가 시작하고 한달이 넘는 기간동안, 코드 한줄 써보지 못하고 화이트보드 앞에서만 살았기에 눈이 돌아갈 지경 이었지만..
긴 시간 상세히 설계를 해둔 만큼, 개발은 수월하게 진행되었다.
작성된 시퀀스와 와이어프레임을 따라 개발을 시작하였고, 구현에 있어 잘못되었거나 불필요한 시퀀스 과정은 그 때마다 팀원들과 소통하여 수정하는 작업을 진행하였다.
(개발이 완료된 운영사이트 시연화면)
실제 서비스를 정의하고, 설계하며 개발하는 과정 속, 고난과 역경이 함께했지만
기존 학부 프로젝트에서는 얻지 못한 여러가지 경험과 지식을 얻어갈 수 있었다.
이호준 멘토님께서 항상 말씀하시던 ‘학생관성’이라는 것에서 어느정도 벗어났을까..
단순 코드만 치는 코더가 아닌, ‘돈’을 벌 수 있는 개발자가 될 수 있도록 좀 더 열심히 살아야겠다.
이상이다.