Before 2024...
이번 연도부터 회고를 쓰게 된 관계로 2024년 이전을 간단하게만 돌아보겠습니다.
개발과는 상관이 없는 이야기가 많으니 넘어가실 분은 퇴사 및 새로운 도전부터 보셔도 좋을 것 같습니다.
고등학교 시절
고등학교 시절 저는 인문계였지만 공부에는 큰 흥미가 없었고, "이 상태로 어정쩡하게 대학에 가느니 차라리 빨리 취업할 수 있는 길을 알아보자"라고 생각했습니다. 당시 학교에서는 저 같은 학생들을 위해 3학년 부터 정규 수업이 아닌 직업학교에 위탁하여 교육을 받는 직업훈련이라는 제도를 운영 중이었고, 저는 그 중에서 시각디자인을 배우게 되었습니다.
시각디자인을 배우게 된 계기
저희 학교는 제가 입학할 시점에 고교 학점제라는 제도를 막 도입하던 과도기적인 시점이었습니다. 고교 학점제는 대학교 처럼 학생들이 원하는 과목을 수강하여 듣는 형태의 제도였습니다. 학생부 종합전형을 기반하여 학생이 진로와 관련된 비교과 활동을 하였다면 생활기록부(aka. 세부특기사항)에 적어주고, 대학 입시 때 이를 기반하여 내신 성적이 조금 떨어져도 관련 비교과 활동과 면접으로 대학을 진학하였습니다. 이런 특성상 학교 선생님들도 학생들에게 수행평가와 더불어 여러 활동들을 지원하셨습니다.
그 중 교과시간에 학생들의 진로와 관련되어 관심있어하는 주제에 대해 탐구하고 발표를 하는 활동이 많았었습니다. 저는 그 당시 주식투자를 하고 있어 자연스럽게 경제에 대한 관심이 높았었고, 경제학에 관련된 내용을 많이 발표했었습니다. 그렇게 발표를 하다보니 자연스럽게 어려운 내용을 정리하여 시청각자료를 만들고, 청자가 이해하기 쉽게 풀어서 설명하는 과정에 대해 흥미를 느꼈던 것 같습니다. 발표 후 친구들과 선생님들의 반응이 좋을 때마다 희열과 함께 엄청난 성취감이 느껴졌기 때문이었죠. 이 때의 경험들이 분야 선택에 많은 영향을 준 것 같습니다.
직업훈련
직업반에서는 시각디자인을 배우며 Adobe
사의 PhotoShop
, Illustrator
, InDesign
툴과 AutoDesk
사의 AutoCAD
, 3DMax
툴을 배웠습니다. 신기하게 설계와 3D 모델링도 같이 배우더군요. 개인적으로는 재밌게 했었던 것 같습니다. 커리큘럼에 따라 컴퓨터그래픽스운용기능사 자격증도 취득했고 포토샵, 일러스트 기능자격인 GTQ
와 ITQ 한글
, ITQ 파워포인트
, ITQ 엑셀
자격증도 취득했었습니다. 자격증 취득과 함께 나름의 포트폴리오도 만들어서 2020년 11~12월 정도 부터 여러 회사에 입사지원을 하게 되었습니다. 특이사항이 있다면 코로나 19로 인해 초기 2~3개월 정도는 원격으로 수업을 들었었네요.
첫 SI 회사 입사
첫 취업을 하는 과정이 순탄하지는 않았습니다. 군대를 다녀오지 않은 20대 초반 남자는 제약이 많았죠. 다른 직업반 친구들은 취업보다는 거의 전문대로 많이 진학했고, 고등학교 친구들도 일반 대학에 진학을 하니 혼자서 "내가 가려는 길이 잘못된 건가?" 라고 많이 방황했었던 것 같습니다.
그러다 기계로 벽화를 그리는 사업을 하는 5인 미만의 업체에서 처음 일을 시작하게 되었습니다. 대상 벽면의 치수를 재고 도면을 그려 단위 면적을 파악하고 도면에 맞게 벡터 그래픽을 기반으로 벽화를 디자인하는 업무를 했었죠. 1달 정도 일을 하다 계약 해지를 통보 받았습니다. 그 때가 설 바로 전날이었는데 조금 당황스럽긴 했었습니다. 조금 지나서 정산 받은 내역을 보니 최저임금법도 지키지 않았고 주휴수당, 4대 보험 등등 많이도 떼먹었더군요. 그 때는 아무것도 모르던 시절이어서 그냥 넘어갔었습니다. 😂
이후 한달동안 정말 무기력하게 살았었던 것 같습니다. 이제라도 대학에 가봐야하나? 난 이제 뭘 해야하지? 군대는 어떡하지? 군대는 사실 선택지에 없었긴 했습니다. 대학도 가지 않았는데 군대까지 가면 정말 복귀할 수 없을 것 같다는 생각이었죠. 하지만 다행이도 혼자 방황하고 있을 때 직업학교 담당 선생님께서 취업자리를 알선해주셨고, 2021년 3월부터 20인 미만의 SI 회사 입사하여 웹디자인 일을 시작하게 되었습니다. 직업학교 담당 선생님의 추천으로 일을 마친 후 전문대학교에서 컴퓨터정보계열 공업전문학사 학위 취득도 병행하게 되었습니다.
군 복무
21년도 신체검사 때 4급 보충역 판정을 받아 회사를 다니면서 사회복무요원(aka. 공익 근무)에 지원은 계속했었습니다. 만약 소집이 되더라도 취업자는 30세가 되기 전까지 2년씩 계속 미룰 수 있었고, 신청에서 떨어질 때마다 탈락 횟수가 집계되는데 1년에 2번씩 6~8번 정도가 누적되면 우선순위로 인해 거의 원하는 근무지를 선택하여 갈 수 있었습니다. 또한 신청한 시점부터 3~4년 정도가 지나도 소집이 되지 않으면 장기 대기로 분류되어 군 복무가 면제된다고 알고 있었습니다. (저는 당시 취득하고 있던 공업전문학사 학위로 인해 재학생의 자격을 가지고 있었고, 이 자격 때문에 탈락 년도는 누적되지 않았습니다.)
그래도 플랜B가 있었습니다. 산업기능요원(aka. 병역특례, 산업체)이었죠. 산업기능요원은 국가에서 육성이 필요한 산업의 영세한 업체들을 선정하여 해당업체(병역지정업체)에서 일정기간 근무하며 군 복무를 대체하는 제도입니다. 인력 수급의 개념이죠. 보통 저 같은 고졸 비전공자들은 생산직으로 근무하지만 해당 산업 중에는 정보처리분야도 포함되어있었습니다. 현역은 TO문제가 있지만 보충역은 TO가 거의 무제한이어서 해볼만 하다고 생각했고, 자격요건도 그렇게 어렵지 않아 보였습니다. 감사하게도 제가 입사할 당시 대표님께서 선정이 된다면 산업기능요원을 지원해주겠다고 하셔서 거의 이쪽방향으로 생각했던 것 같습니다. (결론적으로는 계속되는 병역지정업체 선정 실패로 인해 무산되었습니다. 😂)
나름의 성장
입사할 당시 저는 HTML
, CSS
는 물론 관련 도메인에 대한 지식을 하나도 몰랐엇고, 심지어는 웹디자인에 대해서도 잘 몰랐었습니다. 그리드 시스템, 컴포넌트, 시각 보정, 웹 접근성 등의 기초적인 내용도 몰랐었죠. 그렇기에 더 열심히 배워나갔던 것 같습니다. 회사에서는 따로 가르쳐주지 않으니 퇴근하고 혼자 독학한 후 다음날 프로젝트에 적용해보고를 반복했습니다. Adobe
사의 XD
라는 툴도 퇴근하고 공부하며 회사에 처음 도입했었습니다. 프로토타이핑과 공유 기능이 매력적이었죠. 화면 구현 단계를 이해해야 조금 더 완성도 있는 디자인을 할 수 있겠다는 생각에 디자인 뿐만아니라 HTML
, CSS
도 차근차근 배워나갔고, 웹디자인기능사 자격증을 취득하며 jQuery
로 처음 JS
진영에 발을 들였습니다.
어느정도 실력이 생겼다 생각이 들었을 때 회사와 상의하여 퍼블리싱까지 업무를 확장했습니다. 원래는 배너나 아이콘, 앱 UI
디자인 정도를 주로하다 처음으로 작은 프로젝트 하나를 맡게 되었습니다. 개발자 한 분과 함께 클라이언트와 미팅을 하며 처음 기획단계부터 디자인, 퍼블리싱까지 맡아서 진행했었죠. 처음으로 제가 만든 사이트가 웹에 올라간 순간이었습니다. (캬~ 🥂) 이때부터 회사에서 정말 이것저것 많은 일을 했었던 것 같습니다. 회사가 작아 항상 인력이 부족했었다 보니 디자인 업무는 물론 기획업무, 제안서 작성, 외부 미팅, 퍼블리싱, 유지보수 등 여러 가지 업무를 경험해 보게 되었습니다. SI 회사 특성상 정말 여러 가지 프로젝트를 경험해볼 수 있었습니다. 거의 3개월 단위로 새 프로젝트를 진행하며 유지보수 업무를 함께 했었죠. 확실히 실제 프로젝트를 진행하며 배우니 짧은 시간 동안 빠르게 성장할 수 있었던 것 같습니다.
업무 프로세스 개선
회사 분위기가 정말 좋았었습니다. 대부분 20대 분들이어서 잘 맞았던 것도 있었고, 따로 중간 관리자분도 없으셔서 이것저것 많이 시도해 볼 수 있었던 것 같습니다. 신입으로써 업무 프로세스를 개선해보는 경험을 언제 또 해볼 수 있을까요. 위에서 이야기한 XD
도입도 있었고, 구글 스프레드시트로 이슈트래커와 WBS
양식을 만들어 사용하기도 했었습니다. 시안 공유 및 버전 관리, 이슈 관리, 일정 산출, 업무 할당 등이 편해져서 일할 맛이 났었던 것 같아요. (회사에서 형상관리도구로 Git
을 사용했다면 Issue
탭을 사용했겠지만 그 당시 개발팀에서는 SVN
을 사용했습니다.)
예전부터 전해져 내려온 유지보수 건들도 많았었는데 거의 다 레거시 프로젝트들이었다 보니 히스토리를 알지 못한다면 접근 자체가 어려웠고, 심지어 정보들도 이곳저곳에 파편화 되어있는 경우가 많아서 저희 팀 전용으로 유지보수 문서를 새로 만들기도 하였습니다. (당시에는 잘 몰랐지만 Node.js v0.12
도 봤었습니다.)
위기와 성장
그렇게 평화?롭게 업무를 이어나가는 도중 회사에서 대형 사고가 벌어지게됩니다. 윗선에서 인력과 일정관리를 잘못하여 수주한 프로젝트에서 위약금을 물게 될 상황이었죠. 당시 대구에서 꽤 큰 SI 업체에서 하청받았던 대규모 프로젝트였고 거의 2달 동안 아침 9시 출근 밤 10~12시 퇴근이 이어졌습니다. 주말 특근은 당연했고 철야까지 한 적도 있었습니다. 1달쯤부터 사람이 피폐해지더군요.
문제는 화면 쳐내는 것도 바쁜데 원청에서 제시하는 기준 또한 정말 까다로웠습니다. 지금 생각해보면 당연한 웹 표준, 접근성, 호환성에 대한 내용들인데 당시에는 간과하고 있던 부분이었죠. 특히나 국가기관 관련된 프로젝트였어서 더욱 까다롭게 봤었던 것 같습니다. 이때 처음으로 팀의 중요성을 알게 되었습니다. 혼자서는 감당할 수 없는 일이 있었던 거죠. 하지만 각자가 2인분씩 해도 모자란 상황에서 뒤쳐지는 팀원이 있었습니다.
저는 팀원들과 성장을 도모하며 프로젝트를 완수하기 위해 함께 공부하며 프로젝트를 개선해 나갔습니다. 잘 따라오지 못하는 팀원은 뒤처지지 않게 최대한 케어하고 격려해주었죠. 결론적으로는 원청에서도 기술적인 지원을 해주었고, 팀원들도 잘 따라와 준 덕분에 실제로 퍼블리싱 쪽 이슈는 대부분 해결할 수 있었습니다. (저희 팀은 신입들로만 구성되어 있어서 그 중에서 제가 그나마 연차가 높았던 상황이었습니다.)
저는 원래 팀플레이 보다는 개인플레이를 조금 더 선호했었습니다. 혼자서 하면 커뮤니케이션 비용이 들지 않아 편한 부분이 많았죠. 하지만 일련의 경험을 통해 실질적으로 문제를 해결하는 데 있어 동료들과 팀워크의 중요성을 다시금 상기해 볼 수 있었고, 기술적으로 성장하는 것도 중요하지만 기술자이기 전 동료로서 내면적으로 성장하기 위한 소프트스킬을 발전시켜 함께 일하고 싶은 사람이 되기 위해 노력하게 되었던 것 같습니다.
새로운 인사체계
위의 상황에서는 몸이 조금 힘들었지 크게 퇴사하고 싶다는 생각은 들지 않았습니다. 대표님께서 따로 격려금도 챙겨주셨고, 원청의 기술지원 덕분에 많이 성장할 수 있었던 기회였기 때문이었죠. 하지만 일련의 사건들이 있고 난 후로 대표님께서 필요하다 느끼셨는지 중관 관리자 한 분이 팀에 합류하게 되었습니다. 저에게 있어서는 재앙이었죠. 지금껏 다양한 시도를 할 수 있었던 이유를 알게 되었습니다.
그분은 말도 안 되는 일정 산출과 업무 지시는 물론 이해할 수 없는 업무 프로세스를 도입하기 시작했습니다. 클라이언트에게 컨펌받은 시안을 본인 재량으로 엎어서 몇 번이나 다시 만든 적도 있었고, 시안 작업까지 다 끝마치고 제가 주관하고 있던 프로젝트에서 저를 배제하려고 한 적도 있었습니다. 물론 이유가 있었을 수도 있지만, 사람이 안 맞으니 회사를 다니는 게 힘들어지더군요. 최종적으로는 6개월 정도 버텨보다가 월급도 한두달씩 밀리게 되어 퇴사를 결정하였습니다. (사소하지만 사무실 이전과 주차문제도 있었습니다. 안 좋은 일들은 항상 같이 일어나는 것 같네요.)
퇴사 및 새로운 도전
2023년 9월, 2년 반의 긴 여정을 거쳐 2021년 3월부터 이어온 첫 SI 회사를 퇴사하게 되었습니다. 감회가 새로웠죠. 당장 회사 안가도 된다는 마음에 신나기도 했지만 다음을 생각했어야 했습니다. 당시 상황을 정리해보면 연 나이 23살에 군 복무를 하지 않았고(사회복무요원 지원은 6번하여 모두 떨어졌습니다), 웹디자이너 및 퍼블리셔로 일한 경력이 2년 반 정도 있는 상태였기에 선택지는 아래 3가지 정도로 추려졌던 것 같습니다.
- 퍼블리셔 직무로 산업기능요원 재취업 시도
- 개발 직무로 산업기능요원 직무전환 시도
- 사회복무요원 소집 대기
언제나 그래왔던 것 처럼 3번은 빠르게 넘겼습니다. 경력까지 생겼는데 더더욱 공백기를 만들 수는 없었어요. 아마 제가 책임질 것이 많았고 경제적으로 힘든 상황이었다면 주저하지 않고 1번으로 갔을 것 같지만 1번도 크게 고민하지 않았던 것 같습니다. 퍼블리싱 일을 해보면서 개발 직무의 매력에 빠지게 되었기 때문이었죠. 퍼블리싱이 무슨 개발이냐 하실수도 있지만 저에게는 그 조차도 신세계였습니다. 처음 스크립트 없이 HTML Input
과 CSS Selector
만을 이용해서 구현한 토글 메뉴부터 시작하여 제이쿼리로 Scroll-Linked
애니메이션을 구현하기까지의 모든 것이 정말 재밌었던 것 같습니다. 제가 생각하는 모든 것을 웹사이트에 표현해낼 수 있었기 때문이었죠. 고등학교 수행평가 때 발표를 하며 느꼈던 느낌을 여기서 비슷하게 받았던 것 같아요. 그렇게 저는 개발 직무에 도전해보고 싶어졌습니다.
개발 직무를 도전하게 된 배경
저는 처음 디자인 분야를 선택했던 이유도 남에게 제 작업물을 보여주는 것이 좋아서 선택했던 일이었습니다. 정확히는 막연히 제가 좋아하는 것 같은 분야를 선택했던 것이었죠. 하지만 회사에서 했던 몇가지 경험으로 인해 조금씩 제가 무엇을 좋아하는지 더욱 구체적으로 알게되었습니다.
일례로 자동차 부품 제조회사의 사내 임직원 평가 시스템을 구축하는 프로젝트에 투입되었던 적이 있었습니다. 해당 프로젝트는 회사에서 처음으로 기획 프로세스를 접해본 프로젝트였습니다. 동시에 처음으로 외부 미팅을 나가서 클라이언트와 직접적으로 소통해 본 프로젝트이기도 하죠. 담당 개발자분 2명과 직접 미팅을 다니며 요구사항을 분석한 후 기획 관련 문서 작성과 함께 UI 디자인을 담당했습니다. 당시 처음으로 와이어프레임이라는 산출물을 만들어 보았는데 신세계를 느꼈던 것 같습니다. 힘들게 분석한 요구사항으로 UI에 대한 설계서를 작성한 후 디자인을 통해 사용성을 더해나가는 프로세스를 거치고, 실제 앱으로 구현되어 사용자가 사용하며 실질적인 가치를 창출하는 과정에 매료되었죠. 하지만 아쉽게도 해당 프로젝트는 앱개발 파트에서 기술적인 문제가 많아 결과가 그렇게 좋지는 못했습니다.
아래는 처음 미팅나갔던 당시 회의실에서 대기하다 심심해서 찍었던 사진입니다. (코로나 시절이었습니다.)
이외에도 여러 프로젝트가 있었지만 돌아보면 클라이언트와 직접적으로 소통하며 문제를 분석하고, 그렇게 도출한 문제를 IT 기술을 통해 해결했을 때 일에서 보람을 많이 느꼈던 것 같습니다. 지금 생각해보면 디자인 일만 하지 않고 기획과 퍼블리싱 일도 종합적으로 했기에 가능했던 일들이었던 것 같네요. 하지만 회사에서는 한계가 명확했습니다. 아무리 기획을 하고 UI를 만들어도 기능이 없으면 쓰지를 못했죠. 기능을 직접 구현하지 못한다는 점이 너무 답답하기도 했고, 최종적으로는 혼자서도 애플리케이션을 온전히 만들어 낼 수 있는 사람이 되고 싶었기에 개발 직무에 도전하게 되었습니다.
구름톤 트레이닝 풀스택 6회차
처음에는 독학을 시도 했었습니다. 이미 HTML
, CSS
, JS
를 독학으로 배웠었고 무리 없이 사용했던 경험 때문이었죠. 당시 가지고 있었던 패스트캠퍼스의 Vue.js
강의를 봤었습니다. 강사님이 잘 가르쳐주셔서 개념 강의는 좋았었지만 클론 코딩 부분은 크게 의미가 없다고 느껴졌습니다. 이미 완성된 코드를 따라치는 수준 밖에 안됐었기 때문이었죠. 이때 독학의 한계를 조금 봤었던 것 같습니다. 물론 혼자 프로젝트를 진행하며 밀도 있게 공부할 수 있을 수도 있지만 효율이 좋지 않다고 느꼈습니다. 공백기를 길게는 가져가고 싶지 않아서 시간을 조금 더 의미 있게 보내고 싶기도 했었죠.
당시 제 생활권은 대구 수성구에서 북구 정도까지였습니다. 시내로 나가면 관련 교육기관이 조금 있었지만 다 가르치는 내용이 그렇게 좋아보이지는 않았었습니다. (당시에는 거의 대부분 국비지원 학원들이었고, JAVA
, Spring
, JSP
, jQuery
를 다뤘던 것으로 기억합니다.) 조금 더 양질의 교육을 받아보고 싶어 수도권으로 눈을 돌려 보았지만 교육을 위해 수도권에 가서 생활하는 건 당장에 현금 흐름이 없어 생계가 감당이 되지 않을 것 같았습니다. 그렇게 수도권에서 주관하며 온라인으로 진행되는 부트캠프 위주로 찾아보게 되었고, 구름톤 트레이닝 과정을 알게 되었습니다. 일부 행사를 제외하면 100% 온라인으로 진행되었고 정부에서 지원하는 KDT 사업의 자격요건에 해당되어 교육비도 무료였기에 하지 않을 이유가 없었던 것 같습니다. 저는 23년 12월 말 부터 시작하는 풀스택 6회차 과정 모집에 지원하였고, 다행이도 면접 전형을 통과하여 24년 1월 부터 본격적으로 개발 공부를 하게 되었습니다.
HTML, CSS, JS 복습
저는 트레이닝 과정을 시작한 1월부터 커리큘럼대로 제공되는 인프런 강의들을 통해 HTML
, CSS
, JS
를 복습하였습니다. 개인적으로는 이 기간을 조금 더 의미있게 사용하지 못한 것이 아쉬웠던 것 같습니다. 제공된 강의를 끝까지 완강하겠다는 집착 때문에 정작 저에게 있어 부족한 부분을 의미 있게 채우지 못했던 것 같습니다. 다시 돌아간다면 아마 웹 표준과 접근성, WAI-ARIA, 브라우저의 렌더링 과정, 자바스크립트 동작 원리 등 저에게 필요한 조금 더 심화된 내용을 위주로 공부할 것 같습니다.
알고리즘 스터디
구름톤 트레이닝에서는 공식적으로 1차, 2차 기간을 두어 플레이어 간의 주도적인 스터디 활동을 지원해 주었습니다. 주제가 고정된 건 아니었지만 대부분 알고리즘, CS 등의 주제로 많이들 진행하셨습니다. 저는 당시 스터디를 해보지 않아서 관련 프로세스가 생소했지만, 한번 도전해보자 라는 마인드로 스터디를 하나 만들었습니다. 처음 스터디 기획은 프론트엔드를 지망하는 사람들끼리 모여 자료구조와 알고리즘을 공부하고 비슷한 목표를 가진 사람들끼리 서로 도움이 될 수 있는 커뮤니티를 형성하는 것이었습니다. 당시 저는 남에게 공부한 내용을 전달해야할 때 학습이 잘 된다는 이야기를 실천해보려고 처음에는 제가 주체가 되어 1주일에 한 번씩 모여 발표 및 질의응답을 하는 형식으로 기획을 했었습니다. 하지만 구름에서는 활동 횟수를 많이 가져가는 것을 권장했고, 스터디원들도 동의하여 하루에 알고리즘 문제 1개씩 풀고 각자 발표하는 형태로 진행하게 되었습니다.
1차 스터디는 정말 유익했었습니다. 구름톤 트레이닝 과정에서 진행하는 PBL 과제 진행 후 어려웠던 점을 서로 공유하며 공부하기도 했었고, 구름 LMS 툴 활용법이나 플레이어 지원 같은 꿀팁들도 공유하여 초기에 순조롭게 적응할 수 있었던 것 같습니다. 알고리즘의 경우도 점진적으로 난이도를 올려가며 하루에 1문제씩 풀고 해설 강의 형식으로 발표와 질의응답을 하며 감을 잡아나갔습니다. 초기 의도대로 프론트엔드를 희망하시는 분들끼리 모여 활발하게 정보 공유와 커뮤니케이션을 할 수 있었고, 다들 너무 잘 따라와 주셔서 함께 시너지를 낼 수 있었던 것 같습니다.
하지만 사람들을 모아서 스터디를 진행한다는 것은 생각보다 힘든 일이었습니다. 인원이 너무 많을 경우 원활한 진행이 어렵다고 판단하여 모집 과정에서 저 포함 5명을 확정하였지만, 극 초기에 스터디 OT를 진행한 후 한 분이 자진 하차를 하셨고, 중간에는 또 한 분이 앱 개발이 적성에 맞는다고 하셔서 구름톤 트레이닝 과정을 하차하시게 되어 종래에는 저 포함 3명 밖에 남지 않았었습니다. 또한 회의록도 전부 혼자 작성하고 스터디 관리도 혼자 하며 피로감이 누적되기도 해서 결론적으로는 2차 스터디까지 이어나가지 못했고, 2차 스터디 기간 때는 프론트엔드 기술 공부에 조금 더 집중하고 싶기도 해서 완장을 내려놓고 초청 받은 다른 알고리즘 스터디에 가게 되었습니다.
아래는 진행했었던 내용들입니다. 이슈트래커는 만들었는데 딱히 활성화는 되지 않았던게 조금 아쉽네요.
PBL 과제
구름톤 트레이닝에서는 PBL 과제를 기반으로 플레이어의 주도적인 학습을 지원하였습니다. PBL(Problem Based Learning) 과제는 트레이닝 과정에서 플레이어들이 수행하게 되는 문제 해결 기반 학습을 의미합니다. 개인적으로는 정말 마음에 드는 학습 방식이었습니다. 보통 주제와 함께 요구사항을 받아 혼자 일정 기간 동안 처음부터 끝까지 구현한 후 멘토링을 통해 부족했던 부분을 보완하는 형식으로 진행하였습니다. 과제별로 새로운 기술 스택을 추가하는 식으로 구현 난이도를 점점 올리는 방식이였습니다. 다른 플레이어 분들은 보통 제공되는 짧은 동영상 형태의 구현 예시를 보고 그대로 따라 만드셨지만, 저는 디자인도 새로 하고 기능도 조금씩 더 추가하며 실제로 사용할 수 있는 프로젝트를 완성하는 것을 목표로 했습니다. 실제 프로젝트라고 생각하니 온전히 제 것이라는 느낌이 들어 잠을 줄여가며 몰입할 수 있었고, 덕분에 6개의 과제를 약 2달 정도 진행하며 빠른 시간 내에 정말 많이 성장할 수 있었던 것 같습니다.
특히 마지막 과제였던 노트 앱의 경우에는 macOS의 애플 노트 앱을 웹 환경의 SPA로 마이그레이션한다는 목표를 두고 실제 배포까지 진행하였습니다. 웹 기술을 사용해서 네이티브 풍의 UI를 구현하는 것을 경험할 수 있었고, 당시에는 시스템 설계에 대한 이해도가 다소 부족하여 핵심 로직을 여러 번 갈아엎기도 하며 다양한 시도를 한 덕분에 해당 프로젝트에서 또한 많이 성장할 수 있었던 것 같습니다. 당시 우연히 접한 데이터베이스 정규화에 대한 내용이 생각지도 못하게 설계에 도움이 많이 되어서 백엔드에도 관심을 갖게 되었습니다.
진행했던 PBL 과제 모음
순서 | 주제 | 기술 스택 | 링크 |
---|---|---|---|
1 | To Do List | Vanilla JS | GitHub |
2 | 깃허브 파인더 | Vanilla JS, GitHub API | GitHub |
3 | 스프레드 시트 | Vanilla JS | GitHub |
4 | 지출 계산기 | React, Chart, JS | GitHub |
5 | 쇼핑몰 앱 | React, Redux, JS, Open API | GitHub |
6 | 노트 앱 | React, Redux, TS | GitHub |
현직자 멘토링
구름톤 트레이닝에서는 오피스 아워를 통해 하루 30분에서 1시간 정도의 개인 멘토링을 지원하였습니다. 오피스 아워는 현직자 분들로 구성된 코치진 분들에게 신청을 통해 30분 정도의 멘토링을 받을 수 있는 제도였습니다. (당일에 다른 신청이 없다면 1시간 정도로 늘릴 수 있었습니다) 기본적으로는 1 대 1 로 진행되지만 스터디원들끼리 모여 단체로 코칭을 받기도 하였습니다. 구름톤 트레이닝을 하면서 가장 잘한 점을 꼽아보면 단연코 멘토링을 많이 받은 것일 듯합니다.
멘토링을 받으면서 정말 감명깊었던 경험이 있었는데 PBL 과제 중 리덕스로 장바구니 기능을 구현하는 것이 잘 안되어 멘토링을 받으러 갔었던 적이 있었습니다. 당시 장바구니에 상품을 담는 과정에서 Reducer
를 통해 새로운 액션을 받아 연산을 거친 후 새로운 상태를 반환하는 과정에서 상태가 의도한대로 갱신이 되지 않고 일부만 갱신되는 문제가 있었습니다. 과제 마감이 임박해오는 촉박한 시간 속에 해당 문제로 하루 종일 찾아봐도 답이 나오지 않아 처음으로 과제를 마치기 전에 멘토링을 받으러 갔었는데, 당시 백엔드 코치님께서 제 코드를 직접 로컬에서 실행까지 해가며 문제를 같이 찾아 주셨고, 그 덕분에 빠르게 문제를 해결할 수 있었던 것은 물론이고 그 과정에서 정말 많이 배울 수 있었던 것 같습니다. 저는 당시까지만 해도 혼자서 머리 싸매고 어떻게든 해결해 내는 것을 덕목으로 여겼었지만 다른 사람의 도움을 받을 수 있는 환경이라면 오히려 도움을 받아서라도 빠르게 해결 후 내 것으로 만들어 성장하는 것을 덕목으로 삼아야겠다는 생각을 하게 되었습니다.
아래 이미지는 당시 작성했었던 메모입니다.
(지금 보니 액션 함수명을 귀엽게 지어놨네요 ㅋㅋ)
모각코 스터디
여느 때와 같이 멘토링을 받고 돌아가는 길에 같은 6회차 플레이어 분(이하 어트랙션 팀장님)의 권유로 직접 운영하시는 모각코 스터디에 합류하게 되었습니다. 구름에서 지원하는 ZEP에서 정규 교육시간을 마친 후 저녁시간에 약 2시간 + ⍺ 의 시간 동안 모두 캠을 켜고 각자 할 일을 하며 동기 부여를 얻는 형식의 스터디였습니다. 한 달에 1번 다 같이 온라인에서 각자의 회고를 발표하며 피드백을 주고 받는 형식의 회고도 진행했고, 비정기적으로 오프라인 모각코와 세션 발표 행사도 진행했었습니다. 당시에는 이렇게 길게 갈 거라고는 생각을 못 했었지만 현재까지 1년 정도 꾸준히 참여하고 있습니다. 당시 만났던 인연들 덕분에 여러모로 공부에 도움도 많이 됐었고, 앞으로 다룰 여러 가지 활동에도 참여해 볼 수 있었던 것 같습니다. 스터디를 진행했던 기록은 모각코 스터디 관리 GitHub에 누적하고 있습니다.
Attraction
프론트엔드 개발자로 참여한 첫 팀 프로젝트이며, 동시에 가장 많은 아쉬움이 남는 프로젝트입니다.
프로젝트의 시작은 모각코 스터디 참여를 권유받았던 날이었습니다. 구름에서는 지원하는 스터디 기간이 끝나면 바로 1차와 2차로 나뉘어진 프로젝트 기간을 주었습니다. 1차 프로젝트는 구름에서 정한 주제인 WEB IDE 만들기 였고, 2차 프로젝트는 자유 주제였습니다. 저희 팀장님은 1차 프로젝트는 연습 느낌이기에 가볍게 넘기고 2차 프로젝트부터가 진짜 실전이니 일찍부터 준비해나가자는 나름의 획기적인 생각을 가지고 계셨습니다. 또한 서비스를 실제로 운영하며 유저의 피드백을 받고 제품을 개선해보는 것 까지를 목표로 잡았어서 당시 팀장님은 일찍부터 레퍼런스 수집과 함께 과정 내에서 열심히 하시는 분들을 찾으며 팀 빌딩을 해오고 계셨고, 디자이너 출신이라는 제 경력이 마음에 드셨는지 스카우트를 받게 되었습니다. 당시 트레이닝 과정 시작한지 2달 정도 되었는데 바로 마지막 프로젝트를 기획하는 시도는 저희 팀 뿐이었습니다.
모각코 스터디를 통한 약 2주간의 성실성 증명을 거쳐 팀에 합류하게 되었습니다. 물론 프로젝트를 일찍 시작하긴 했었지만 그렇다고 올인하는 느낌은 아니었기에 약 2달 정도의 기간 동안 개인 공부를 진행하며 프로젝트 레퍼런스를 수집하다가 24년 4월 부터 본격적인 기획과 함께 프로젝트를 시작하였습니다. 팀은 최종적으로 저 포함 6회차 5명, 7회차 1명으로 총 인원 6명에 프론트/백엔드 반반의 비율로 구성되었습니다. 물론 시작부터 쉽지 않긴 했었습니다. 사공이 많다보니 배가 산으로 갈 때가 많았죠. 그래도 나름 정석적으로 시도하려고 노력했던 것 같습니다. 기획도 피그잼을 활용해서 상황별 레퍼런스와 함께 시각적인 자료를 통해 설명하며 최대한 의견차이를 줄일려고 노력했고, 디자인은 제가 전부 전담하여 시안도 만들었습니다.
아래는 피그잼과 피그마를 활용하여 진행했었던 기획 단계와 디자인 단계의 산출물을 캡처한 이미지입니다. (제가 작업했던 것만 캡처했습니다.)
초기 기획에 많은 공을 들였고, 큰 포부로 시작했던 프로젝트이지만 아쉽게도 결과는 좋지 못하였습니다. 예상하지 못한 변수들이 너무 많았죠. 처음에는 기존 시장에서 가장 많은 파이를 가지고 있던 헤이버니라는 서비스를 참고하여 메일 서버를 구축하려고 했었습니다. 회원가입 후 저희 서비스에서 제공한 이메일을 통해 뉴스레터를 구독하면 해당 이메일으로 받은 뉴스레터 데이터들을 토대로 여러 편의 서비스를 제공할 계획이였죠. 하지만 가장 큰 문제는 메일 서버 운영 비용이었습니다. 당시 서비스 운영을 위한 비용처리로 인당 월에 2만원 정도를 상한선으로 두고 있었는데 그 상한선을 아득히 뛰어넘는 금액이 필요했던 것이었죠.
그 대안으로 찾았던 방법이 Gmail API였습니다. Naver 메일 API는 마찬가지로 비용 문제 때문에 사용하지 못했습니다. 서비스 방향성 자체를 Gmail 써드파티 서비스로 틀게 되었죠. 하지만 또 문제가 생겼었습니다. 저희 서비스는 사용자의 이메일에 대한 모든 접근 권한을 필요로 했었기 때문에 CASA Tier 2라는 클라우드 애플리케이션 보안 평가를 만족했어야 했습니다. 인증을 받지 않아도 서비스를 운영할 수는 있었지만 인증이 없을 경우 유저가 회원가입을 시도할 시 아래와 같은 UI를 마주하게 되었습니다.
B2C 서비스를 운영해야하는 입장에서 최악의 상황이었죠. 해결책을 찾아보니 등급을 받기 위해 직접 서버 측 코드를 요구사항대로 수정하거나 업체에 의뢰하는 방식을 추천하였습니다. 하지만 직접 요구사항을 만족시키는 것은 상당히 어려운 일이었습니다. 테스트 후 인증을 받는 평균 기간이 3~6개월 정도 걸리는 것도 큰 문제 중 하나였죠. 업체도 사실 고려할만한 수준이 아니었습니다. 비용으로 약 25,000달러를 요구했죠. 그래도 당시 할 수 있는 방법은 다 시도해봤었던 것 같습니다. 국내 개발자 분 중 링크드인에 인증을 완료한 후기를 적어주신 분이 있어 그 분과 컨택을 시도도 했었지만 답장은 오지 않았었습니다.
그렇게 마지막 프로젝트 발표와 함께 트레이닝 과정 수료 후 추가적인 개선 작업을 해오다 위의 이슈로 백엔드 측의 진척도가 줄어들며 가장 중요한 이슈를 해결하지 못해 프로젝트가 흐지부지 되었습니다. 결국 초기에 설정했던 목표인 서비스를 운영하며 유저의 피드백을 받아 제품을 개선해보는 것은 이루지 못했고 서비스 구축 선에서 끝나게 되었죠. 지금 와서 회고하자면 협업의 방식도 문제가 많았고, 기술적인 문제 또한 만만치 않게 많았던 것 같습니다. 개발 일정에 급급하여 문서화를 너무 등한시 하였고, 프로젝트를 관리해보고자 도입했던 지라는 티켓 발급기가 됐으며, 리뷰를 통한 제품 개선은 시도조차 못 했었습니다. 당연히 작성한 코드의 퀄리티는 심각했었죠. 그래도 지금 생각해 보면 당시의 실패가 있어서 협업은 어떻게 해야 하는구나의 생각이 어느 정도 정리된 것 같습니다.
여기서 다루지 못한 기술적인 내용은 어트랙션 서비스 운영 실패 회고글에서 따로 다뤄보도록 하겠습니다.
Synergy Meet 2024
한참 어트랙션 프로젝트 개선 작업을 하던 도중 어트랙션 팀장님께서 밋업 행사 기획을 하나 가져오셨습니다. 원래 진행하던 모각코 스터디의 오프라인 모각코 행사와 다르게 이번에는 구름의 지원을 받아 장소를 대여받고 참여자 모집도 따로 하여 이전에 진행했던 규모보다 조금 더 큰 규모의 밋업을 진행할 예정이라, 해당 행사의 기획과 함께 홍보용 랜딩 페이지 개발을 부탁하셨습니다. 행사의 주요 골자는 열심히 하시는 분들을 위주로 참가자 지원을 받아 세션 발표를 진행한 후 참여자들과 상호 피드백을 주고 받으며 성장할 수 있는 자리를 마련하고, 동시에 취업 준비 관련 정보도 상호 공유하는 목적이었습니다.
저는 기존에 좋아했었던 Scroll-Linked
애니메이션 기법을 활용한 인터랙티브 웹을 리액트로 구현해보고 싶기도 했었고, 다른 사람들 앞에서 발표를 진행해보는 것도 흔치 않은 기회인 것 같아 바로 수락했습니다. 당시 가용할 수 있는 시간도 얼마 없어서 바로 사이트 개발을 착수했었는데 결국 구름 측과의 원만한 협의를 하지 못해 대관에 실패했고, 그렇게 행사는 없던 일이 되었습니다. 상세한 내용은 해당 글에서 확인하실 수 있습니다.
우테코 프리코스 FE 7기
우연한 기회로 어트랙션 팀원들 중 일부와 함께 우테코 프리코스에 참여하게 되었습니다. 당시에는 준비에 시간을 더 쓰는 것 보다 포트폴리오를 정리하고 회사에 지원해보는게 더 도움이 될 것 같아 지원서를 작성하기 직전까지 조금 고민은 했었는데, 구름톤 트레이닝에서 부터 우테코 프리코스는 기회가 되면 한번 참여해보면 좋다는 얘기를 계속 들어서 왜 그런 말이 나오는지 궁금했던 것 같습니다.
우테코 프리코스는 기본적으로는 주차별 미션을 수행한 후 제출과 함께 회고를 작성하는 방식으로 진행되었습니다. 미션은 Node.js
환경에서 간단한 프로그램을 작성하는 것이었어요. 구현하기 전 요구사항을 주는데 프로그램에 대한 명세와 테스트 코드까지는 작성을 권장하였지만, 나머지는 개인의 판단에 맡기는 방식이었습니다. 이게 생각보다 도움이 되었던 것 같아요. 이제 껏 저는 되는대로 구현만 했었는데 설계를 먼저 수행한 후 작업하는 방식이 신선했던 것 같습니다.
각 주차별 미션이 끝나고 나서는 참여자들끼리 코드 리뷰를 주고 받고 회고를 공유하는 식으로 진행되었습니다. 이때 코드 리뷰도 처음 해보게 되었는데 조금 아쉬웠던 건 너무 적게 했던 것 같아요. 다시 생각해보니 불특정 다수를 대상으로 많이 리뷰를 주고 받을 수 있는 기회가 없었던 것 같습니다. 처음 어트랙션 팀장님께서 MVC 같은 유명한 패턴을 사용하여 코드를 작성하는 것이 추후 리뷰할 때 좋다고 하셔서 최대한 적용해보려 했었는데 생각보다 마음대로 안되더라구요. 당시에 조금 더 공부하며 했다면 더 좋은 결과가 있었을 것 같은데 해당 부분도 아쉬웠던 것 같습니다.
우테코는 평가의 관점에서 미션에 대한 결과는 크게 반영하지 않는 것 같았습니다. 자기소개서와 회고에서 들어나는 지원자의 성실함과 그에 대한 증명을 더 중요하게 보는 것 같아요. 아래 이미지 처럼 미션은 다 통과했지만 벼락치기로 자소서를 쓰고 회고도 제대로 작성하지 않은 저는 결국 떨어졌기 때문이죠. 😂
진행했던 미션 모음
테오의 스프린트 18기
우테코 프리코스가 끝나고 간단하게 지금까지 했던 프로젝트들을 리팩토링하고 있다가 어트랙션 팀장님의 추천으로 테오의 스프린트 18기에 합류하게 되었습니다. 어트랙션 프로젝트 초기 단계에 팀장님께서 해당 스프린트의 프로세스를 일부분 도입하셨어서 이전부터 관심을 가지고 있기도 했었고, 개인적으로도 협업경험이 너무 부족한 것 같아 보충할 수 있는 좋은 기회라고 생각하여 모집 공고를 보자마자 바로 신청했었던 것 같습니다. 빨리 신청한 덕분에 다행이도 마감 커트라인 안에 들어 12/03 부터 12/09 까지 약 1주일간의 스프린트를 시작할 수 있었습니다.
기획 및 설계 프로세스
테오의 스프린트에서는 다양한 방식의 기획 및 설계 프로세스를 배울 수 있었던 것 같습니다. 그런데 생각보다 많이 도움이 됐었던건 서비스에 대한 설계를 마친 후 작업 단위를 나누는 부분이었습니다. 스프린트를 통해 우선 순위 매트릭스를 사용하여 일정에 대한 기준을 수렴해 나가고, BDD(Behavior Driven Development), SDD(Schema Driven Development) 같은 여러 방법론들을 사용하여 시스템을 설계하는 경험을 해볼 수 있었습니다. 이전에 프로젝트를 할때는 항상 큰 생각없이 페이지 단위로 작업 단위를 나눴었는데 설계가 먼저 수반되니까 작업 단위를 더 상세하게 나눌 수 있었어요.
응원 참 잘하는 집
저희 팀이 스프린트를 통해서 만든 서비스는 디지털 부적 빌더였습니다. 미리 제공되는 템플릿을 통해 간단히 부적을 생성하고, 소장과 공유까지 해볼 수 있는 서비스를 1주일 동안 구축하였죠. 스프린트 초기에 각자 제출한 아이디어에 대한 평가를 기반으로 팀이 빌딩되었는데 아쉽게도 제 아이디어는 채택되지 않아 최대한 비슷한 아이디어에 지원했던 것 같아요. 당시 제가 제출했던 아이디어는 다목적 웹 이미지 빌더였는데 쉽게 말하면 템플릿을 제공해주는 파워포인트의 라이트한 버전이었습니다. 개인적으로 친구들과 채팅할 때 재밌는 밈들을 사용하는 것들을 좋아해서 여러 재밌는 짤들을 쉽고 빠르게 만들 수 있는 서비스를 구상했었어요.
하면서 아쉬웠던 점은 아무래도 팀이 프론트엔드만 5명으로 구성되어 처음 기대했었던 디자이너와의 협업을 경험해보지 못했던 것 같습니다. 기수에 디자이너 분들이 많이 없어서 디자이너가 지원한 팀은 경쟁률이 세더라구요. 결국 제가 전반적인 디자인을 맡게 되었습니다. 생각보다 구성원분들의 참여도가 조금 낮았던 것도 아쉬웠습니다. 스프린트는 5일 동안의 기획 및 설계 단계를 거친 후 실 개발은 주말에 몰아서 2일간 진행되었는데, 자진해서 신청했음에도 주말 이틀도 시간을 내지 못한다는 것은 조금 아쉬웠던 것 같아요. 저희 팀은 약 절반이 제대로 참여를 못했었습니다. 그래도 프론트엔드만 5명이라 기술에 대한 공감대가 잘 맞았던 건 좋았었던 것 같습니다.
해당 프로젝트에 대한 상세한 내용은 여기서 볼 수 있습니다.
2024년 총평
고등학교 졸업 후 계속 일만 하다 처음으로 긴 시간 동안 다른 준비 시간을 가져봤었던 것 같습니다. 덕분에 리프레시도 조금 된 것 같고, 이렇게 정리해보니 되게 많은 일을 한 것 같네요. 개인적인 생각으로는 전반적인 분야에서 많이 성장했다고 생각하지만 아쉬운 점들이 많이 보였던 것 같습니다. 부트캠프가 끝나고 나서는 계속 공부를 하긴 했었지만 다른 사람들과 교류 없이 혼자 진행하다 보니 나태해졌었던 것과 기록을 꾸준히 하지 않았던 것이 특히 아쉬웠던 것 같아요. 2024년의 아쉬운 점들을 보완해서 2025년 부터는 조금 더 열심히 해봐야할 것 같습니다.
2025년 목표
2025년에 꼭 이루고 싶은 목표들만 추려보았습니다.
1. 포트폴리오 사이트 오픈
현재 이력서, 블로그, 프로젝트들을 정리해둔 제 포트폴리오 사이트를 개발하고 있습니다. 사이트 개발 자체는 오래걸리진 않을 것 같은데 안에 들어가는 문서 정리에 애를 먹고 있습니다. 간단하게 노션에 정리해둔 문서들은 저만 보는 용도로 막 적어놔서 해석이 힘드네요. 앞으로는 조금 더 구체적으로 정리해두어야겠습니다.
포트폴리오 사이트 오픈은 부동의 1순위 목표입니다. 더 이상은 미룰 수 없을 것 같습니다.
2. 산업기능요원
현재 24년 6월 중순 쯤 소집된 사회복무요원 복무를 1년 정도 미뤄둔 상태입니다. 신청을 통해 1년 정도 더 미룰 수 있긴하지만 가용할 수 있는 시간이 얼마 되지 않아 2025년 부터는 본격적으로 산업기능요원으로의 전직을 노려봐야 할 것 같습니다. 안되면 할 수 없는 일이지만 주어진 시간 동안은 할 수 있는 최선을 다해보고 그래도 안된다면 다시 고향으로 돌아가서 사회복무요원 소집에 응해야 할 것 같습니다.
3. 서울 상경 및 자취
저는 지금까지 자취를 한 번도 해보지 않았습니다. 회사를 다닐 때도 본가에서 출퇴근했었구요. 그래서 그런지 타지에 집을 알아본다는 것이 이렇게 힘든 일인 줄은 몰랐습니다. 일단 관악구 쪽에 원룸형 고시원으로 찾아보고 나중에 회사가 정해지면 그때 다시 한번 집을 알아볼 계획입니다.
4. 백엔드 및 데이터베이스 공부 (+ 인프라)
프론트엔드도 잘 못하면서 갑자기 무슨 백엔드고 인프라냐 하실 수 있습니다만, 지금까지 프로젝트를 수행하며 느낀 제 단편적인 경험으로는 얕더라도 넓게 아는 것이 중요하다고 생각되었습니다. 프론트엔드 쪽은 그래도 1년 정도 하며 어느정도 감은 잡았다고 생각하지만 백엔드나 데이터베이스, 인프라 쪽은 아직 너무 많이 모른다는 생각이 들어 시간을 내서 얕게라도 공부해봐야할 것 같습니다.
마무리
한 번에 몰아서 회고를 적으니 너무 어렵네요. 앞으로는 제때제때 정리해야 할 것 같고, 기록하는 습관을 계속 들여나가야겠습니다.
긴 글 읽어주셔서 감사합니다. 😊