[SSAFY] 2학기 특화프로젝트 : SSDC프로젝트 D5MI

작성:    

업데이트:

카테고리:

태그: ,

들어가기

프로젝트 정보


프로젝트 과정

팀 선정과 자기소개

자기 소개

사전에 모든 SSDC 교육생들을 온라인으로 한 데 모아서 서로 소개를 하는 시간을 가진다. 역시 전국에서 모은 인재들인만큼 이력은 상당했다. 알고리즘 부분에서도 백준 다이아가 2명이나 있고, SDS 프로 등급, 성적 우수상은 너무 흔해서 자랑거리도 아니었다.

아무튼 이 사이에서 나는 나대로 설명을 마쳤다. 어떻게 보면 공통 프로젝트 때와 마찬가지로 자기 어필 시간이었다고 본다.


SSAFY 서울캠퍼스

전국구 프로젝트인만큼 오프라인 모임은 보통 서울캠퍼스에서 이루어졌다.

발대식 당일 서울캠퍼스 1층 발대식 장소
image image

말로만 듣던 역삼 멀티캠퍼스. 20층 높이의 SSAFY의 본진을 갈 일이 있을 것이라 생각치 못했다. 마치 귀한 손님으로 맞아주셔서 정말 떨리기도 하고 기대가 되기도 했다.


팀 구성

SSDC는 MX사업부와 SR사업부 각각 한 가지 주제로 총 2개 주제, 주제당 3개 팀으로 구성된다. 서울 캠퍼스에 처음 모여서 발대식을 진행하고 어떤 사업부의 어떤 주제의 프로젝트에 참여하고 싶은 지 설문을 받고, 현장에서 조를 나눈다. 이 주제들은 사전에 뿌려져서 어떤 주제를 선택할지 미리 마음의 준비를 하게 된다. 인기가 많은 주제도 있고, 인기가 없는 주제도 있는데, 어찌됐든 한 팀, 한 주제이므로 현장에서 잘 조율이 되어 팀이 꾸려졌다.

나는 대전에서 같이 온 동기들이 이미 관심 주제가 같아서 미리 팀을 꾸렸는데, 현장에서 꽤나 혼선이 있어서 이를 조율하는 데에 앞장 섰더니 나는 팀장으로 적격이라고 인식되어 있었다. 음… 이왕 욕심 있는 누군가가 없다면 내가 팀장을 해도 상관이 없다는 주의였다. 이전 프로젝트에서 팀장을 했었던 경험을 바탕으로 잘 해나가보고 싶다는 생각이 들었다.


주제 선택

나는 MX사업부를 선택했다. SR사업부는 보다 더 연구직에 가까웠고, 이미 잘 갖춰진 프로젝트에서 기여하는 방식이었기 때문에 크게 매력을 느끼지 못했다. 반면 MX사업부는 SASM 프로젝트라는 신생 프로젝트에서 꽤나 메이저한 기능들을 개발해 기여할 수 있었기 때문에 이에 대한 호기심이 더 있었던 것 같다.


프로젝트 진행

팀명

우리는 SSDC 6개 팀 중 유일하게 남자들로만 구성된 팀이었다. 그래서 팀명을 정할 때 군대에서 본떠와서 N생활관이 어떤가 했고, 장난처럼 시작된 드립이 실제로 팀명으로 정해져서 즐거운 마음으로 임했던 것 같다. 그래서 멘토님들께 처음으로 우리와 아이디어를 소개할 때 아래처럼 재미있게 우리의 다짐들을 적어서 소개했고, 꽤나 반응이 좋았다.

1 3  팀 목표


아이템 선택

이전 프로젝트에서 첫 방향을 제대로 잡지 못해 삽질을 했던 경험을 겪으며, 이번에는 시간이 조금 들더라도 방향 설정을 확실히 하고 넘어가는 것이 낫겠다는 생각을 했다. 모두의 공감을 얻었고, 우리는 정말 오랜 시간 아이디어들을 브레인스토밍으로 제안했고, 구성원 모두가 동의할 수 있는 아이템들을 생각해보며 아이디어를 취합했다.

image


정말 많은 아이디어들이 나왔고, 몇 가지를 취합해서 구체화 후 멘토님들께 처음으로 소개했을 때, 거창하고 특별하지 않아도 되니 프로젝트 기간동안 완전히 끝낼 수 있으면서 실제로 사용이 가능한 아이디어들을 만들어보라고 피드백을 받아서 그에 맞춰 추가적으로 더 아이디어들을 모았다. 거의 2주 가까이를 아이템을 정하는 데에만 썼으니 더할 말이 없겠다.


정해진 아이템

SASM(Samsung Automation Studio for Mashup)에서 실제로 사용가능한 노드들을 만드는데, 5기의 당현아 코치님 팀이 제작한 행동인식 노드에 객체 인식 기능을 추가하여 같은 동작임에도 상황에 따라 다르게 활용할 수 있는 노드와 플로우를 개발하기로 했다. 또한 이러한 행동 패턴들을 기록해서 사용자가 기록하지 않아도 일상의 행동패턴들을 기록, 분석 후 사용자에게 시각화된 그래프로 보일 수 있도록 대시보드들을 추가했다.

또 한 가지는 SASM 에디터에서 공공 데이터를 활용한 노드의 데이터를 쉽게 포맷팅할 수 있는 데이터 필터 노드와 원하는 데이터 경로까지의 데이터를 GUI로 추출할 수 있는 데이터 추출 노드를 개발하는 것이었다. 중구난방식일 수 있지만 모두 삼성전자, SASM 측에서 실용 가능한 노드인 것으로 보여서 멘토님이 적극적으로 추진을 원하셨고, 3가지를 모두 취하기로 하였다.


프로젝트 진행

위의 3가지 컨셉으로 6명이 각각 2명씩 그룹을 나누어 개발을 진행했다. 나는 여러 Open API 또는 개인 API를 보다 더 편리하게 활용할 수 있는 Data Extraction 노드를 개발을 주로 맡고, 기타 팀 운영과 사이트 개발을 담당했다. 자세한 내용은 아래 회고 부분에서 더 자세히 다루겠다.


기억에 남는 점

닉네임 제도와 스크럼

image

공통프로젝트를 진행하면서 좋았던 팀 문화나 이번 팀에서도 가져가고 싶은 요소들을 제안하고, 제안받았다. 영웅이가 이전 팀에서 닉네임 제도를 사용했는데, 팀원들끼리 간극도 줄고 꽤 즐겁게 참여할 수 있었다고 하여 닉네임제도를 도입했고, 이게 익숙치 않았던 팀원들도 처음에는 주춤하는 듯 했지만, 다들 우수한 인재들답게 잘 적응해서 나중에는 사석에서도 별명으로 부르곤 했다. 3개 프로젝트 중에 유일하게 닉네임으로 진행했던 프로젝트라 더 기억에 남는다.


나 같은 경우 공통프로젝트에서 개인적으로 너무나 마음에 들었던 데일리 스크럼 제도를 제안해 도입했다. 특히 팀이 3그룹으로 나뉘어 각자의 일을 해야했던 만큼 서로간의 업무 진행에 대한 이해를 할 수 있다는 강점이 더욱 부각이 되었다. 그리고 역시나 별 건 아니더라도 상호간에 피드백과 반응을 달아주는 구조가 서로를 업무적인 팀원을 넘어 감정적인 교류까지 할 수 있게 하는 좋은 구조였다.


우리가 기성 서비스에 기여를?

갤럭시의 기성 서비스인 Samsung Smart Things에 실제 우리가 개발한 기능들을 활용해 여러 가지 사용 플로우들을 만들어내어 사용성을 증대할 수 있는 가능성을 연다는 것이 크나큰 영광이었다. 특히 갤럭시 유저로서 Samsung Smart Things를 그렇게까지 잘 활용해보지 못했는데, 이번에 사용해보면서 점차 많은 기능들, 그리고 편리한 기능들이 추가되고 추가된다면 이 서비스도 유저들의 일상에 깊게 자리잡을 수 있겠다고 느껴졌다.


멘토 피드백의 아쉬움

아무래도 멘토님이 삼성전자 현직자이시다보니 우리의 멘토링이 전업이 아니고, 꽤나 시간을 따로 들여야 하는 부업일 수 밖에 없었나보다. 그래서 우리 아이디어의 피드백이나, 여러 가상 IoT 기기들에 대한 지원이 시시각각 이루어지지 않아서 진행에 답답한 면도 있었다.


수원 디지털시티

수원역에서 전야제 수원 디지털시티 통행권
image image

프로젝트 기간 중에 한 번, 오프라인 멘토링을 겸해서 삼성전자 수원사업장을 방문한 적이 있었다. 아침 일찍부터 이루어지는 과정이었던만큼 전날에 팀원들끼리 모여 시간을 보내기도 하고, 이미 가기 이전부터 즐거운 추억들을 많이 쌓았다.


수원 사업장은 삼성디지털시티라는 이름으로 불리우는데, 그 내부에 수십층짜리 건물이 몇 개는 있고, 굉장히 넓고 커서 말 그대로 시티라는 이름에 걸맞는 규모였다. 심지어 직원들이 사용할 수 있는 병원과 응급 시스템도 있다고 하니…

처음으로 놀랐던 것은 입구에 톨게이트와 보안 사무실이 있어서 내부에서는 어떠한 사진도 찍을 수 없게 밀봉을 했던 점. 그래서 내부에서의 사진은 없다. 또다른 놀란 점은 복지 규모인데, 식당은 이름도 유명한 웰스토리에서 10가지 내외의 식사들 중 골라서 밥을 먹을 수 있었다. 역시나 규모는 상상초월. 직원들은 삼시세끼 이런 밥을 먹을 수 있다고 한다.

그리고 그 식당 건물에는 엄청난 크기의 헬스장, 클라이밍 암벽, 심지어 수영장까지 있었다. 이것이 삼성의 복지인가 싶었다. 내가 삼성전자에 다니는 것도 아닌데 이 안에 있는 것만으로도 엄청난 황홀감과 감동을 받았다. 삼성전자에 지원해 합격하고 싶다는 생각을 크게 하게 된 계기였다.(물론 지금은 아니지만)


회고

당시 프로젝트를 마치면서 개인적으로 생각했던 내용들과 함께 멘토님들과 코치님들께 드리는 감사를 남겼던 회고 글이다.


개요

우수한 교육생들의 장인 SSDC 프로젝트를 유의미한 성과로 마무리할 수 있었음에 다행이면서도 감사한 마음입니다. 소중한 경험이자 거름이 될 이번 프로젝트에 대한 회고를 남겨 좋은 부분은 잘 정제해서 취하고, 아쉬웠던 부분은 교훈을 취할 수 있도록 하고자 회고를 작성합니다.


프로젝트에서 담당한 개발 영역

저는 Object Detection의 주된 컨텐츠 외적으로, 여러 Open API 또는 개인 API를 보다 더 편리하게 활용할 수 있는 Data Extraction 노드를 개발했습니다. Data Extraction 노드는 Data Extractor와 Data Filter로 나뉘는데, Data Extractor는 bulk한 데이터에서 선택된 경로들의 유효 데이터들만 추출(Extraction)하는 노드이고, Data Filter는 역시 bulk한 데이터에서, 어떠한 참조경로의 값이 찾고자 하는 참조값인 경우 해당하는 경로 주변의 데이터 중 유효 데이터를 일부 선택해 추출하는 Filtering 노드입니다. 저는 비즈니스 로직 중 일부, 그리고 노드의 도움말 등의 주변 문서 작업을 제작했습니다.


어려움을 겪거나, 아쉬웠던 점

아무래도 기존에 공부해오던 Web의 방식과는 다른 Node-RED라는 웹 개발 플랫폼 내부에 적합하게 코드를 작성해야 했으므로, 나름의 컨벤션과 학습이 필요했던 점이 어려웠던 것 같습니다. 또한 SASM과 융합해서 Node-RED 상에서 연결하는 구조는 더더욱 복잡하므로 이런 외부 상황에 대한 적응과 학습이 필요했습니다. 이런 부분들이 어려웠습니다. 한편으로는 팀원들끼리 얼굴을 제대로 마주하지 못하고 온라인으로만 동질감을 쌓아가다 보니 물리적 접촉에 대한 아쉬움은 큰 것 같습니다. 그래도 한 팀이라는 유대감을 바탕으로 팀원들이 잘 따라주어서 팀장으로서는 한결 편했습니다.

또한 만들었던 Data Extraction의 다양한 기능들을 아예 소개하지 못하고 발표를 마무리했던 점이 아쉬웠습니다. 10분이라는 시간동안 정말 다양한 부분들을 보여야 하나보니 어쩔 수 없는 선택이었고, 적은 양이어도 핵심적인 기능을 제작해서 제안하거나, 내용을 더 정갈하게 정리해서 보는 이들로 하여금 보다 쉽게 받아들일 수 있도록 했어야 했다고 느낍니다.


프로젝트를 진행하며 느꼈던 점

저희는 영어를 사용할 수 있는 사용자는 어떻게든 쉽게 접근할 수 있어야 한다고 판단했습니다. 그래서 사용자가 보다 더 쉽게 활용하고 사용할 수 있도록 README나 문서화, 도움말 등을 확실하게 작성해 GitHub에 반영해두었습니다. 그리고 사용자의 편의를 더 많이 고려해서 제작했습니다. 예를 들면 Data Extraction에서 어렵게 복잡한 Data의 경로를 Tree형식으로 분석해서 한목에 추출하고자 하는 영역에 사용자가 더 쉽게 접근할 수 있도록 했습니다. 또한 하나의 서비스에 국한되지 않고, 많은 사용자가 공통적으로 사용하기 편한 범용적인 노드를 만들고자 했고, 이를 만족하는 것이 색이 강하지는 않지만 확실한 Data Extraction 노드였던 것입니다.


프로젝트 참여 감상

말로만 들었고, 상당히 막막한 존재였던 오픈소스에 개발 내용이 반영되어 적용되는 것이 너무나 신기했습니다. 더더욱 SASM은 Samsung의 이름을 걸고 진행하는 오픈소스 프로젝트인만큼 외부 코드에 대한 확인과 필터링이 더 필요했습니다. 매 과정이 결코 쉽지 않았지만, 잘 적응하고 어려움을 극복하며 좋은 결과를 낼 수 있음에 너무 감사한 마음입니다. 이 과정에서 전폭적으로 지원하고 지지해주신 삼성전자 김선학 멘토님과 이진규 멘토님, 그리고 최호근 컨설턴트님과 이정훈 교육프로님, 당현아, 이수림 실습코치님께 감사드립니다. 저희만의 힘으로는 결코 이정도 수준의 성과를 낼 수 없었을 것이라 확신합니다.


SSDC 당일

SSDC 프로젝트의 수명은 다했지만, 실제 SSDC에서 발표를 듣고, 우리 SSDC 프로젝트 중 최우수 프로젝트의 발표를 응원하는 SSDC 컨퍼런스 현장에도 다녀왔다.

image image
   

나름 소소하게 다양한 기술 부스들도 있어서 둘러볼 수 있었고, 특히 우리가 참여했던 Object Detection을 활용한 온라인 시험 감독 서비스들도 있어 관심 있게 볼 수 있었다. 우리가 개발 중에 겪어야 했던 다양한 기술적 한계에 대해 토의를 하기도 하고 또 한 번 고찰을 해볼 수도 있었던 의외의 기회였다.

좋은 의미였던 것은 SSDC 이후 마지막 자율 프로젝트로 바쁘기도 했고, 지역도 떨어져 있어 서로 얼굴 보기가 힘든 이전 팀원들을 만나 또 한 번 우정을 다졌다는 것이 컸다. 전국구 프로젝트의 애틋함이 있는 것 같다.

댓글남기기