요즘 내 주변에는 자신의 경험을 글로 작성하는 사람들을 많다. 지금까지는 막연히 대단하다고만 생각했지만 나도 얼마 전부터 조금씩 블로깅하는 습관을 들이기 시작했다. 물론 바쁘다 바빠 현대사회에서 글을 꾸준히 작성한다는 것은 대단한 일이지만, 막상 또 엄청나게 힘든 일은 아닐 거라고 믿는다. 그래서 이번에는 나도 주변 사람들을 따라 월별 회고를 시작해보려고 한다.
대학생에게 있어 3월은 누가 뭐래도 개강 시즌이다. 나도 방학동안 열심히 잡고 있던 코마를 살짝 내려놓으면서 개강을 맞이했다. 이번 학기에는 나에게 학교 생활에 있어 큰 변화점이 있었는데, 바로 자취에서 통학으로 바꾸었다는 것이다. 다들 자취가 좋다고 하는데(실제로 좋았지만) 돈이 너무 많이 들어서 이번 학기는 통학을 해보기로 했다. 개강 전에는 통학에 대해 일찍 일어날 수 있을까 하는 걱정이 많았는데, 실제로 개강하니 정말 예상치 못한 변화가 일어났다.
통학을 하니 늘 점심시간까지 자던 내가 통학 버스에 타기 위해 매일 7시에 칼같이 기상하고 있다. 익숙해지니 수면 패턴도 안정화되어 일찍 자고 일찍 일어나는 착한 대학생이 되었다. 덕분에 요즘은 아침 시간이 여유로워지고 개인 공부를 할 시간이 늘어서 좋다.

동아리 선배의 도움으로 네이버에서 재직중인 선배님들을 찾아뵙는 기회를 얻었다. 실제로 이름만 들어도 누구나 아는 대기업에 방문해 본 것은 처음이었는데, 복지도 너무 좋고 건물이 너무 커서 놀랐다. 선배님들과의 커피챗 시간을 가지면서 유익한 내용을 많이 들을 수 있어서 좋았다.
(네이버는 커피가 300원이라더라..)

개강을 하고 신규 동아리 부원들도 들어오니 동아리 선배는 모두의 도메인 이해 관계를 일치시키기 위해 이벤트 스토밍을 제안했다. 현재 동아리 서비스는 크게 8개의 도메인을 운영중이다. 원래는 하나의 도메인에 대해 진행하는 것이라고 하지만 이번에는 "도메인 이해 관계 일치"라는 목적을 가졌기에 한 번에 여러 도메인을 동시에 진행했다. 이벤트 스토밍을 진행하고 나니 확실히 도메인에 대해 이해도를 높일 수 있었고, 모두의 이해도가 어느 정도 일치되는 느낌을 받을 수 있었다.
이벤트 스토밍이 궁금하다면 이 곳으로
https://www.youtube.com/watch?v=gihxS6eE1DM&t=4s

이번 달에는 동아리 활동 양식에도 큰 변화가 찾아왔다. 각 트랙별로 작업 내용을 트랙장에게 보고하고 트랙장이 임원진 회의에서 공유하는 기존 구조의 단점을 보완하고자 트랙 단위 체제에서 팀 단위 체제로 개발 팀 구조가 바뀌었다. 앞서 진행했던 이벤트 스토밍 결과 중에서 자신이 개발하고 싶은 도메인 팀으로 들어가는 식으로 개발팀이 짜여졌다.
나는 동아리 회장으로써는 동아리에 기여한 일이 별로 없었지만, 이번에 개편된 팀에 대해서는 누구보다 팀장 역할을 잘해낼 자신이 있었다. 지금까지 팀원으로써의 일만 해왔기에 이제는 리더의 역할도 맡아보고 싶다는 생각이 들기도 했다. 이에 팀장을 맡고 싶다는 다른 팀원이 있었지만 강하게 어필하여 내가 팀장을 맡을 수 있었다. (감사합니다.. ㅎㅎ)
우리 팀은?
우리 팀은 campus 팀으로 학교 식단, 버스, 커뮤니티 도메인을 맡고 있다. 나는 솔직히 다른 도메인에는 큰 관심이 없었고, 식단 도메인의 발전 가능성을 보고 이 팀에 지원했다. 다른 팀으로는 시간표와 유저, 설정 및 관리를 담당하는 user 팀과, 주변 상점, 복덕방, 사장님 플랫폼을 담당하는 business 팀이 있다.
이벤트 스토밍이 정말 유익하다는 것을 체감한 우리는 개발팀 첫 주간 공유 시간에 2차 이벤트 스토밍을 진행했다. 시간이 부족하여 모든 도메인에 대해 이벤트 스토밍을 진행할 수는 없었고, 이번에 작업하게 될 영양사 페이지에 대해서만 이벤트 스토밍을 진행했다. 머릿 속으로 구상만 했던 영양사 페이지에 대해 이벤트 스토밍을 진행하니 지금 당장 어떤 작업을 시작해야 할 지 구체화되어 개발에 많은 도움이 되었다. (영양사 페이지에 대해서는 "대학교 학생처장님 미팅"에서 후술하겠다.)

팀장이 된 나는 맡은 역할에 성실히 임하여 팀원들의 작업 환경을 최적화시켜주고 싶었다. 그래서 애자일 책을 사서 아직까지 읽어보고 있다(물론 뒤에는 동아리의 지원이 있었다). 나는 지금까지 애자일이라고는 블로그 글 하나 읽어본 것이 전부였기에, 현재 팀의 운영 방식이 애자일이라고 생각했다. 하지만 스크럼 방법론에 대한 책을 읽어보니 읽으면 읽을수록 팀 운영 방식은 애자일과 거리가 멀다는 생각이 들었다. 스크럼 방법론은 알면 알수록 흥미로웠고, 어서 개발팀에 적용시켜보고 싶었다. 하지만 이를 적용시키는 것은 현실적으로 불가능했다. 회사에서도 잘 돌아가기 힘든 것이 애자일이라는데, 대학교에서 학업을 병행하며 동아리 부원들이 애자일을 따라간다는 것은 힘들 것이라고 생각했다. 많은 고민을 한 결과, 부원들의 참여 의지를 파악하는 것이 선행되어야 한다는 결론을 내릴 수 있었다.

지난 번에 동아리 선배의 도움으로 우테코 코치님께서 열어주신 초록 스터디에 참여했던 적이 있다. 그런데 이번에는 그 선배의 도움으로 코치님들께서 직접 우리 학교로 방문해주셨다. 약 4시간 가량의 커피챗이 진행되었고, 유익할 것이라고 생각했던 이 시간은 내 예상보다 훨씬 더 굉장히 많은 인사이트를 제공해주었다.
내가 주로 했던 질문은 앞서 언급한 애자일 프로세스와 스크럼 방법론에 대한 이야기였다. 어떻게 하면 동아리에 스크럼을 적용시킬 수 있을지, 팀원들은 잘 따라와줄지, 팀 활동에 긍정적인 영향을 미칠 수 있을지 등 많은 이야기를 주고 받았다. 그렇게 내린 최종 결론은 "팀원들의 의사를 먼저 물어보아야 한다"였다. 팀원들이 적극적이라면 개발 방법론은 어떤 것을 들이밀어도 효과적으로 작용할 것이라고 했다. 또한 애자일을 한 번에 전부 도입하려 하지 말고, 팀에 상황에 맞게 조금씩 들여오며 변형해 사용하는 것을 추천해주셨다.
코치님들의 조언은 전부 와닿는 말들뿐이었다. 커피챗 내용은 정말 유익했지만 너무 많아서 여기에 모두 담을 수 없는 것이 아쉽다.

우리 동아리에서 개발중인 교내 커뮤니티 서비스인 코인은 마지막 배포로부터 2년이나 지났다. 그 사이에 백엔드는 API 명세부터 DB 구조까지 싹 다 바뀌어버렸고, 클라이언트 대응 시간이 걸려 미뤄져왔다. 이번에 드디어 2년묵힌 배포를 진행했는데, 역시 큰 문제들을 많이 마주했다. 지금 생각하면 크게 생각나는 문제는 아래 3가지 정도였다.
작년에 개발된 사장님 서비스가 이번 코인 배포와 함께 드디어 배포되었다.
코인에서는 주변 상점 정보를 제공하고 있는데, 사장님들께 연락이 오면 우리가 직접 정보를 수정하는 식으로 운영하고 있었다. 하지만 이 부분은 사장님도 접근성이 떨어지고 우리도 불편하였기에 사장님께서 직접 자신의 가게 정보를 수정할 수 있도록 사장님 서비스를 개발했다.
또한 인원을 나눠 사장님 가게에 직접 방문하기도 했다. 가서 서비스 사용 매뉴얼을 드리고, 서비스 회원가입을 옆에서 도우며 많은 피드백을 받을 수 있었다. 아직 고쳐야 할 부분이 많아 보였기에 많이 보완해야겠다는 생각이 들었다.
우리 동아리에서는 2월부터 인터널 프로젝트를 시작했다. 동아리 내부적으로 필요한 서비스를 짧은 간격으로 빠르게 개발해내는 것을 목적으로 하는 프로젝트다. 나는 2월에 1차 스프린트를 진행하는 것을 보고 흥미로워서 3월에 2차 스프린트를 참여했다.
인터널은 아직 해보지 않았지만 해커톤 같은 느낌이 아닐까 싶다. 평소에는 백엔드끼리 논의를 거쳐 깔끔한 코드를 완성시키는 것이 목표였다면 인터널에서는 타 분야 인원들과의 직접적인 소통을 통해 별도의 논의 없이 빠르게 기능을 구현하는 것을 목표로 작업했다. 그 결과 코드의 질이 높아지지는 않았지만 빠르게 쳐내는 개발과 다른 분야 팀원들과의 소통을 해볼 수 있는 좋은 경험이 되었다.
우리 학교 학생처장님께서 동아리로 연락을 주셨다. 여러 아이디어를 주셨는데, 그 중 영양사 페이지 건에 대해 질문해보았고, 긍정적인 답변을 받을 수 있었다.
영양사 페이지란?
우리 학교 식단은 인기가 많으면 일부 메뉴가 다른 메뉴로 대체되거나 품절되는 일이 종종 생긴다. 하지만 학교 홈페이지에는 식단 메뉴만 제공하고 품절 정보는 제공하지 않는다(메뉴 변경은 실시간으로 수정한다고 하나 홈페이지 반영에 시간이 걸린다고 한다).이 부분에 대해 1, 2차 이벤트 스토밍에서 아이디어를 구체화시켰다. 영양사 페이지를 별도로 구성하여 영양사님께서 직접 식단 정보를 실시간으로 제공할 수 있도록 하는 것이다. 품절된 메뉴가 있다면 코인을 통해 품절 여부를 제공해주고, 메뉴가 변경되면 코인 서버에서 실시간으로 파악하여 클라이언트에게 제공해준다. 마지막으로 식단 이미지를 코인에 업로드할 수 있도록 하여 학생들의 학식에 대한 니즈를 충족시키고자 했다.
영양사 페이지에 대한 구체화가 어느 정도 진행된 이후, 이번에는 학생식당 관계자 분들과의 미팅에 학생처장님 주선으로 참여했다. 관계자분들은 이 안건에 대해 긍정적으로 말씀해주셨고, 우리 팀에서는 2달안에 영양사 페이지를 배포하는 것으로 목표로 잡게 되었다.
우리 학교에는 운영체제 명강의로 유명한 교수님이 계신다. 하지만 하필이면 내가 해당 과목을 수강할 수 있는 해에 해당 교수님께서 안식년이어서 수강이 힘들어졌다. 그래도 그 교수님은 진행했던 강의를 녹화하여 유튜브로 업로드해주셨는데, 그 내용으로 동아리 부원들과 함께 스터디를 진행하기로 했다.
강의를 들으면서 운영체제가 어렵다는 것을 깨달았다. 너무 어려워서 이걸 공부한 사람들이 대단하게 보이기도 한다. 다음 주에는 이걸로 발표도 해야 하는데 찾아도 한글로는 안나온다... 그래도 확실히 유익한 내용이니 열심히 공부해봐야 겠다.

코마에서 DB 구조를 일부 수정해야 하는 일이 생겨 flyway를 도입하게 되었다. 다만 기존 코인에서 사용중이던 flyway를 전부 날려버리고 V1부터 새로 시작하려고 했기에 flyway_schema_history 테이블을 DROP하기로 했다.
기존에는 DB와 flyway 모두 구버전을 사용중이었는데, 스프링 부트로 코마를 시작하면서 flyway 구버전이 호환되지 않게 되었다. 그런데 또 flyway 최신 버전에서는 또 MySQL 구버전을 지원하지 않았다. 결국 코마에 flyway를 적용하려다가 DB 버전업까지 진행하게 되었다.
프로덕션 구조도 스테이지와 같기에 이번과 동일한 과정으로 진행할 예정이라고 한다.
이번 달은 유독 바쁘게 지낸 것 같다. 회고를 작성하기 위해 캘린더를 보며 지난 일정들을 하나 하나 나열해보니 생각보다 내가 한 일이 정말 많아서 놀랐다. 회고를 작성하지 않았다면 이 좋은 경험들을 대부분 잊어버렸을 것 같은데 회고를 완성해서 나름 뿌듯하다. 다음 달은 중간고사 기간인데 동아리 활동을 잘 할 수 있을지 모르겠다. 4월도 화이팅~
선권님의 한달이 1년같네요
남은 기간도 화이팅~~