목차
1. 퇴사
저는 비전공자 출신 개발자입니다. 2020년 여름(8월로 기억합니다)에 국비지원과정(JAVA기반 웹 개발)을 마치고 2020년 10월에 취업하여 첫 개발자로서 시작을 하게 됩니다.
그 후 2년 8개월을 다니고, 2023.5.25일 부로 퇴사하기로 협의 하였습니다.
이직을 바로 하는 것은 아니고, 첫 회사를 다니면서 배웠던 다양한 경험들을 거름삼아 저만의 작은 서비스를 만들고, 사업자 등록까지 해보고 싶은 마음이 커 퇴사를 결심하였습니다.
2. 했던 일들
회사를 다니면서 했던 일들도 정리하고, 기록도 남길 겸 그간의 회사 생활을 간결하게 작성해 보았습니다.
2.1 구성원으로서
- 팀원
- 첫 입사시에는 연구소장님, 과장님, 선배사원님, 저 이렇게 4명의 개발자가 있었습니다. 초반에 제일 많이 한 일은 메모인 것 같습니다. 개발뿐 아니라 업무, 메일 등 회사생활 전반에서 쓰이는 용어들이 처음엔 당최 무슨말인지 몰라 무작정 받아적고 검색해가며 익혔습니다.
회의가 끝난 후 회의록도 공유해야 했는데, 첫 회의록은 회의에 나오는 모든 말을 들리는데로 타이핑 해두고, 정리하는 시간만 3시간 정도 걸렸던 것 같습니다. 시간이 지나면서 업무 용어도 익숙해지고 업무에 대한 내용도 파악이 되니 머릿속으로 정리하면서 작성이 가능했습니다.
- 이 시기에는 개발 실력도 많이 향상된것 같습니다. 소장님께서 각 구성원의 실력에 맞게 개발 업무 할당을 해 주셔서 진행하였습니다. 막히는 부분에서는 이리저리 검색도 해보고 그래도 안될때는 선배 사원 분에게, 그분도 모를때는 소장님께 여쭤봤었습니다. 비록 공식적인 코드 리뷰 까지는 아니었지만, 제가 모르는 부분이나 제가 짰던 코드에 대해서 핵심적이면서도 간단한 피드백을 해주셨던 감사한 기억이 있습니다.
- 첫 입사시에는 연구소장님, 과장님, 선배사원님, 저 이렇게 4명의 개발자가 있었습니다. 초반에 제일 많이 한 일은 메모인 것 같습니다. 개발뿐 아니라 업무, 메일 등 회사생활 전반에서 쓰이는 용어들이 처음엔 당최 무슨말인지 몰라 무작정 받아적고 검색해가며 익혔습니다.
- 팀장
- 2년을 채울때 쯤인 2022년 10월에 대리 및 팀장이 되었습니다. 저희 팀은 저 포함하여 3인 이었으며 주 업무는 영화와 관련된 여러 업무였습니다. 자사 기술, 서비스 개발 및 정부과제, 타사 협업 제안을 목표로 진행 하였습니다. 팀원 두 분의 업무에 대해 좀 더 자세히 파악하고 있어야 했고 회의도 더 많이 참석하게 됐습니다.
- 이 시기부터는 개발 외의 업무도 점점 많아졌습니다. JS의 콜백헬에 필적할 만한 정부과제헬에 빠졌던 적도 있습니다.(기존에도 정부과제는 하고 있었지만 두세개 정도 였으며 관련 문서도 저는 작성하지 않았었습니다.) 팀원분들과 함께 여러 곳에 사업계획서(기술 파트) 및 중간 발표자료, 최종 발표자료, 스크립트 등을 작성하면서 개발도 하고, 붙은 과제도 많지만 떨어졌을때 팀원들과 아쉬워 했던 기억이 있습니다.
- 영화 도메인에 적용할 수 있는 기술(개인화 추천 및 메타데이터 생성)로 관련 회사들에게 협업 이나 기술도입 제안도 진행하였습니다. 대표님, 소장님과 함께 출장도 다니면서 발표도 하고 유명 학교와 기술교류회도 진행하였습니다. (팀장 하면서 부터는 명함을 많이 주고받은 것 같습니다.)
- 독서토론회장
- 2개월 단위로 독서 토론회를 진행하였으며 회장을 맡게 되었습니다. 대상은 대리,사원 분들 이었으며 토론 도서는(책 읽는 습관 생성 + 대표님이 가려는 방향을 구성원이 간접적으로 느끼도록) 대표님께서 강제하였습니다. 대신에 각자 사고싶은 개인 도서도 함께 구매하였습니다. 정기적으로 어쨌든(?) 책을 읽게 돼서 도움이 됐습니다.
2.2 협업자로서
- 팀 내부
- 팀원일때는 주로 선배님, 과장님과 소통을 했는데 신기하게도 함께 모여 회의한 자리여도 각자 이해한 내용이 다른 경우가 있었습니다. 개발에서는 추상화가 중요하지만, 회의록에는 자세하고 명확하게 의견을 나누고 정리하는게 좋다고 느꼈고 서로 오해가 낮아지도록 개선하려 했습니다.
- 팀장일때는 팀원분들의 업무 파악을 하며 프로젝트를 진행해야 했는데, 이게 제 일을 하면서 팀원분들의 업무를 추적하고 할당하는게 쉽지 않은 일이었습니다. 소장님이 연구소 전체 인원의 업무를 파악하는게 말이 안되는구나 싶었고, 중간자 역할을 잘 해야겠다고 느꼈습니다.
- 타 부서
- 타 부서와는 교류가 엄청 잦진 않았습니다. 주로 기술적인 부분에 대해 문의를 주시면 답변을 했습니다.
- 타 회사
- 타 회사와의 교류는 장단이 많다고 느꼈습니다. 우리 회사에 도입했으면 하는 효율적인 업무 프로세스나 개발 문화, 기술, 프로 정신등에 대해 알 수 있었고, 무조건 안된다 하거나 떠넘기는 등 저렇게 하면 안되겠다고 느낀 경우도 있었습니다.
- 학교
- 유명 학교 두 군데의 AI 분야 연구소와 기술 교류를 주로 하였는데, 방문해서 회사의 방향과 기술을 어떻게 접목시킬지 교류 하거나, 학교에서 개발한 기술들을 이전받아 개발에 활용하기도 하였습니다. 학교와교류 내용은 대체로 AI 관련 내용이었고 교수님,석박사 분들이기에 제가 전문적으로 따라가기엔 벅찼습니다. 추후 AI 인력이 들어오면서 함께 교류하니 좀 더 능동적으로 요구가 가능했습니다.
2.2 개발자로서
- 챗봇 (~1년 반)
- 처음에는 당시 진행 하고있던 구글의 AoG(Actions on Google)의 SDK와 자연어 이해 플랫폼인 Dialogflow를 활용한 음성기반 대화 앱(보이스 챗봇)을 개발을 하였습니다. 회사내에 템플릿이 있어서 적응하는데 수월했습니다. 특이하게 AoG로 개발한 앱은Google Assistant 생태계에 올라가는 앱이었어서, 출시를 해도 많은 사용자가 유입되지는 않았습니다.
- 그래서 AoG를 이용하지 않고 웹앱기반으로 만들어 보자고 하여, 이 때 부터는 SDK가 아닌 GCP(Google Cloud Platform)관련 라이브러리를 받아와 Dialogflow와 통신할 수 있도록 개발을 진행하였습니다. (AoG에 대한 더 자세하게 작성해놓은 글은 https://devdavelee.tistory.com/161)에서 확인 가능합니다.)
- 📌1년이 되는 시점 후로 개발 실력과 스펙트럼이 많이 증가한 것 같습니다. 타사 SDK, 라이브러리 등을 활용해서 개발하거나 백엔드(Java + Springboot), 프론트엔드(Vanila JS) 가릴 것 없이 다 했었습니다. JPA 및 ORM도 써보고, Spring Security 도 얕게나마 배웠습니다.
CLI환경(Ubuntu)에서 빌드, 깃 등을 진행도 하고, 웹서버(Apache2)나 웹앱서버(Tomcat)관련 설정, DB 구축 및 설정,방화벽이나 VPN, SSL 등의 설정도 진행하였습니다. NAS 설정, 호스팅, 메일 관련 업무도 맡게 되어 이후에 입사자 분들이 생기면 제가 담당하여 계정관련 설정들을 진행하였습니다.
- 영화 도메인 관련 개발 (~2년 반)
- PoC (Proof of Concept)
- 영화의 속성 추출/가중치 부여 및 분류하고, 영화간 유사도를 측정하거나 개인화 추천, 자연어 기반 검색 등 많은 기술을 활용하여 영화 도메인에 적용한 첫번째 프로젝트 였습니다.
여기서는 Java/Springboot, Python/Flask 를 활용하였습니다. 이 때 Python을 처음 써보면서 동적 타입핑언어가 적응이 안됐지만 추후엔 편의성 및 데이터, AI 관련 강점을 보고 감탄을 하게됐습니다.
- 영화의 속성 추출/가중치 부여 및 분류하고, 영화간 유사도를 측정하거나 개인화 추천, 자연어 기반 검색 등 많은 기술을 활용하여 영화 도메인에 적용한 첫번째 프로젝트 였습니다.
- B2B
- 첫번째 프로젝트에서 나왔던 개선점들을 적용하여 진행한 두 번째 프로젝트입니다. 초점은 영화의 속성을 생성하는 AI 기술에 대한 설명을 하는 사이트로 맞춰서 개발하였고(B2B 또는 IR 발표용)
저는 React를 활용 하여 FrontEnd 개발을 진행하였습니다.(Hook, Axios, IntersectionObserving, Canvas,…) 등 해보고싶은 개발을 할 수 있어서 좋았습니다. 다만 기한이 앞당겨져 자잘한 버그 수정과 성능개선, 모바일화면을 개발하지 못하고 끝난 것은 아쉽습니다. 링크
Backend는 팀원분들이 Python/Django 를 활용하여 개발하였습니다.
- 배포단계에서는 Django에 빌드하는 방식에서 Nginx와 uwsgi 환경으로 바꾸는 것을 진행하였고, 완료되기 전에 인수인계를 하였습니다.
- 첫번째 프로젝트에서 나왔던 개선점들을 적용하여 진행한 두 번째 프로젝트입니다. 초점은 영화의 속성을 생성하는 AI 기술에 대한 설명을 하는 사이트로 맞춰서 개발하였고(B2B 또는 IR 발표용)
저는 React를 활용 하여 FrontEnd 개발을 진행하였습니다.(Hook, Axios, IntersectionObserving, Canvas,…) 등 해보고싶은 개발을 할 수 있어서 좋았습니다. 다만 기한이 앞당겨져 자잘한 버그 수정과 성능개선, 모바일화면을 개발하지 못하고 끝난 것은 아쉽습니다. 링크
- PoC (Proof of Concept)
- AI (~현재)
- 자연어 처리를 중점적으로 활용하여 프로젝트를 진행 하였습니다. 문서 요약, 자연어 검색, 추천 기술 등 기술 이전으로 받은 코드를 제가 직접 수정하거나 할 순 없지만, Conda 가상환경을 구성하고 실행하는데 까지는 가능한 정도이며 이리저리 교류하다 보니 어깨너머 익힌 얕은 지식이 생겼습니다.
- 이제 개발에서 AI는 뗄레야 뗄 수 없을 것 같습니다. 그 중에서도 생성형 AI가 현재 핫하며 , 인터넷이 처음 나왔을때의 파급력이 있을것이다 라고 평가하는 분도 계셨습니다.
- 프롬프트 엔지니어링
- 회사에서는 ChatGPT를 중점적으로 AI 인력들이 주가 되어 Prompt 엔지니어링을 진행하고 사내 개발자 전체가 활용하여 사내 프로젝트에 활용하는 중입니다.(자세한 사항은 적지 않겠습니다)
- 단점은 ChatGPT는 2021년 까지의 데이터들로 학습하였기 때문에 최신화가 비교적 느리고, 질문에 대해서 모른다고 하지 않고 지어내는 경우도 있습니다.
또한 사내에서 딥하게 활용하게 되면, Open AI에 중요한 데이터가 제공될 수 있습니다. 최근에는 다른 오픈 LLM(Large Language Model)이 공개되고 있기에 파인튜닝하여 쓰는 방안도 있습니다.
3. 좋았던 점
- 개발에서 제가 주력으로 배웠던 Java/Springboot 뿐 아니라 다양한 언어, 라이브러리, 프레임워크를 다뤄보았던 점이 좋았고, 더 나아가 서버와 관련한 업무도 배우고 계속 담당을 했던 것이 더 넓은 시야를 트일 수 있게 된 것 같습니다.
또한 사업계획서나 협업, 제안 준비등으로 포지션에 한정되지 않고 프로젝트의 시작과 끝을 경험할 수 있어서 좋았습니다.
그리고 무엇보다 특정 시기에 함께하는 사람들이 좋았습니다. 어느 시점 부터는 인원이 많아져서 그때 만큼의 시너지를 내는 타이밍이 많이 없어졌지만 그 시기에 많은 성장을 한 것 같습니다.
4. 하고픈 일들
- 프로젝트
- 제가 좋아하는 취미와 관련한 서비스를 만들고 사업자 등록까지 하려 합니다. 분야는 헬스, 그 중에서 피트니스 이며 커뮤니티 입니다. 커뮤니티 형태나 규모는 국내외 시장조사를 먼저 한 후 정할것 같습니다. (김칫국 이지만 잘 되면 의류나 식품 사업까지 확장하고픈 마음입니다)
- 개발
- 클라우드 : 회사에서는 물리서버에 하이퍼바이저를 설치하고 가상머신에 서버를 구축하였기에, 클라우드 특히 AWS에 대한 경험이 적습니다. 이전에 개인적으로는 프리티어로 우분투 인스턴스만 생성해보았습니다. 회사에서는 GCP(Google Cloud Platform)를 썼었지만 서버구축에 활용한 것은 아닙니다. AWS생태계에 대해 공부하고 활용할 수 있는 부분은 많이 활용하여 개발 효율성을 늘리고자 합니다.
- 도커 및 쿠버네티스 : 도커 컨테이너에 대해 개념정도만 알고 써보진 않아서 진행해 보려 합니다.
- QueryDSL : JPA + ORM을 활용하여 작은 개발을 했었습니다. 김영한님 책을 통해 QueryDSL까지 적용하려 합니다.
- Java 및 JVM 관련하여 도서를 사놓고 모셔만 뒀어서, 이제는 시간내어 공부하고자 합니다.
- 생성형 AI : 앞으로 만들 서비스의 콘텐츠에 다양한 형태로 활용할 수 있기에 이미지, 자연어 관련하
- +@ 결제 기능
5. 결론
앞서 보셔서 아시겠지만, 저는 백엔드 업무만 한 것은 아닙니다.
한 우물만 파는것과 , 조금 얕더라도 다양한 경험을 하는것 둘 중 어느것이 더 좋은지는 모르지만 현재의 환경에서 최선을 다 하는것은 두 상황 모두 중요하기에 따지지 않고 묵묵히 하려 합니다.
회사에서 배웠던 경험들을 잘 활용하여 서비스를 만들어야 겠습니다. ( 만들면서도 알고리즘이나 기술관련하여 공부 예정입니다.)
추가로 올해는 회사일과 별개로도 열심히 산 것 같습니다.
- 자격증 : 3개를 목표로 정보처리기사(가채점은 합격), SQLD(접수 완료), 리눅스마스터 1 or 2급(예정)에 대해서 진행중 입니다.
- 전공 공부 : 저는 공업디자인 학위를 취득했기에, 방송통신대학교에 진학해 컴퓨터과학과 수업을 듣고있습니다.
- 운동 : 퇴근 후 헬스장 출석을 하고 있고, 2분할에서 현재는 3분할로 꾸준히 진행하고 있습니다. (하지만 3대 는 360kg 정도입니다🙂 )
그리고 앞으로도 열심히 살아야 겠습니다.
댓글