소프트웨어마이스터고 학생으로 살아가며 느낀 모든 점을 회고해볼까 한다.
글이 매우 길기 때문에 (약 18000자) 챕터별로 보고 싶은 내용만 집어서
보는 것을 추천한다^^..
필자는 현재 전국에 4곳 있는 소마고 중, 부산에 위치한 부산소프트웨어마이스터고(이하 부산소마고)
에 2023년 기준 2학년으로 재학하고 있다. 지금의 내가 생각하는 관점에서 입시 준비 때로 돌아가보자.
먼저, 이 학교 입시를 준비하게 된 계기부터 설명해볼까한다.
당시 학기 초 3월, 중학교 3학년이었던 나는 학년에 250명 정도 있던 학교에서 110등 정도의 중위권에 있던 학생이었다.
그때 난 일반 인문계 고등학교에 진학하여 대학을 간다고 했을 때 좋은 대학을 갈 성적도 아니었으며,
그 당시 경제적 형편으로 인해 대학을 다녀도 여러가지 아르바이트를 병행하며 학비를 내야하는 상황이었다.
그렇다고 해서 공업/상업 쪽이 내 관심사 밖이라서 공고나 상고에 가기도 썩 내키지 않는 상황이었다.
그 때 같은 반 사회 경제에 빠삭한 친구에게 내 성적으로 갈 수 있는 괜찮은 학교가 없을지 물어보았고,
친구는 여러가지의 학교를 추천해주었는데, 그 때 한 곳이 바로 부산소프트웨어마이스터고등학교였다.
신설 학교여서 깔끔한데다가, 사진으로만 보아도 학교 시설이 정말 고급지고 세련되어있었다.
또 4차 산업 혁명인 프로그래밍을 가르치는 학교라고 하니 이 학교에 진학한다면 취업과 관련해서
여러가지 걱정을 하지 않아도 될 것 같았다.
그래서 코딩의 ㅋ자도 몰랐던 나는 계속 학교에 대해 알아보며 이 학교에 들어가야겠다고 마음먹었다.
이런저런 고민 끝에 이 학교에 들어가야겠다고 마음 먹은 나는, 부모님과 담임 선생님, 진로 상담 선생님께
학교에 대해 말씀드리고 내 주관을 설명드렸다. 세 분 모두 학교에 대해 매우 긍정적으로 생각하셨으며,
무엇보다도 담임 선생님께서 제일 학교에 관심이 많으셨다.
진로 상담 선생님과 상담을 하던 도중, 성적 이야기가 나오게 되었는데, 선생님께서 알아보신 뒤 내 성적으로는
가능은 하지만 약간 애매한 성적이라고 말씀하셨다. 마이스터고는 특성상 2학년 1학기와 2학기, 3학년 1학기의 성적을
요구하고 3학년 2학기는 성적을 보지 않는다. 그래서 나는 다가오는 1학기 중간고사와 기말고사에 목숨을 걸어서
성적을 올리고, 고등학교 문을 박차고 들어가자고 마음먹었다.
그렇게 시험기간 한 달간, 학원 없이 오후 4시에 하교하면 바로 휴대폰 전원을 끄고 오후 11시까지 공부를 한 다음,
휴대폰을 켜 30분 정도의 자유시간을 가지다가 잠을 자는 일상을 반복했다.
당시 다른 과목들은 전부 커버가 가능했지만, 수학과 영어는 정말 학원 없이는 너무나도 처참한 정도였다.
내 친구들이 학원에 가 서너시간 동안 수업을 듣고 개념을 이해할 때, 그리 똑똑하지 않았던 나는 혼자서
똑같은 내용을 이해하는데 여서일곱시간을 소요해야했기 때문이었다.
그렇게 나름 열심히 공부해서 받았던 등수는 57등이었다. 열심히 했는데도 내 위에 50명이나 있다는 게 나를 허탈하게 만들었다.
당시 정말 친하게 지내던 2명이 있었는데, 나를 포함해 차례대로 56등, 57등, 58등을 받아 약간 신기할 따름이었다.
허나 그 두 명은 학원을 다니며 공부를 했던 친구들이기에, 친구들에게 학원비를 아꼈다면서 장난을 치고 놀리기도 했다.
하지만 결국 학원을 다니고 안다니고, 열심히 하고 안하고를 떠나 내 노력이 숫자 두 자리로 치부된다는 점이 참 비참했었다.
살아생전 몇 달 밖에 노력해본 적이 없으면서, 학원을 다니면 2등급이다 같은 말을 했던 나 자신이 정말 어리석고 찌질해보였다.
인문계 고등학교에 갔다면 비슷한 평범한 성적을 받았을 것이고, 평범한 대학에 진학해 평범한 인생을 살았을 거라고 생각했다.
그래도 비록 등수는 낮았지만, 어찌저찌 부산소마고에 들어갈 성적은 만들었으니 기분이 썩 나쁘지는 않았다.
이제 본격적으로 3학년 2학기 때는 인문 공부를 하지 않고 학교 입시를 준비했다.
학교에서도 입시 준비하는 학생들을 반기듯, 때마침 입학 설명회가 진행되었다. 당시 코로나가 유행하던 시절이라
온라인 줌 미팅으로 입학 설명회가 진행되었었는데, 당시 학교에 많은 관심이 있던 나는 5번 진행된 입학 설명회 중,
학부모/교사 입학설명회를 제외한 4번의 설명회를 모두 참석했다.
학교의 시설 사진과 급식, 가르치는 커리큘럼과 운영하는 제도 들을 새겨들으면 새겨들을 수록 학교에 대한 정이 많이 갔다.
친구들에게 어떻게 학교가 이렇게 카페같이 생길 수 있냐며 입학하지도 않았는데 자랑하기도 했고, 정말 학교가 좋아보였다.
제일 좋았던 점은 학교에서 거의 모든 비용을 무료로 해준다는 것이었다. 급식비 무료, 기숙사도 무료 제공에 심지어 코딩을
할 수 있는 노트북까지 무료로 제공하고, 현장체험학습 등을 갈 때에도 모두 학교에서 비용을 내준다는 것이었다.
그렇게 열심히 면접을 준비헀던 나는, 주변 어른들에게 도움을 받으며 지원서를 작성하고 내 성적과 지원서가 담긴 서류를 보냈다.
결과는 1차 합격이었다. 기쁜 마음도 잠시, 바로 2차 면접인 대면 면접과 NCS 시험을 준비했다.
마이스터고 면접 준비와 관련된 모든 것을 담은 책을 하나 구입해서 공부했는데, 막상 시험을 칠 때 딱히 도움이 되진 않았다.
시험을 치기 위해 학교에 도착했는데, 시설이 정말 좋았다. 책상과 의자는 바퀴가 달려있으며, 중학교 때 사용하던 책상보다 1.5배는
넓어보였고, 의자에도 시트가 달려있으며 칠판도 정말 넓었다.
면접을 보러 온 학생들은 하나같이 모범생같아보였고, 칼같은 자세로 앉아 시험을 치루었다. 당시 난 내 앞에 면접을 보러 온 친구에게
굉장히 기죽었었는데, 진짜 정말 완전 모범생같아보였기 때문에... 추후에 알고보니 그 친구가 우리 기수 수석 입학자였다..
뭐 어쨌든 그래서 갑자기 학교에 면접을 보러 오자마자 이 학교에 대한 정이 확 떨어졌다. 왜냐하면 하나같이 나보다 공부 잘할 것 같았기
때문...^^.. 입학해서 본전만 챙기고 괜찮은 기업 들어가서 효도하자는 생각이었는데, 이 친구들이랑 같이 있으면 완전 바닥에서 길 것만
같은 느낌이었다.
NCS 시험을 마치고 점심시간이 되었는데, 당시 코로나로 인한 문제도 있고 해서 점심은 각자 챙겨오는 것이었다. 근데 당시 너무 긴장했던
나는 까먹고 밥을 챙겨오지 않아서.. 그냥 있기도 좀 그래서 면접 준비하는 척 하면서 노트에 쓸데없는 낙서 끄적거렸다..
그렇게 면접 시간이 다가오고, 준비했던 질문들을 다시 생각해보며 면접실에 들어갔다. 면접은 생각보다 간단했는데, 커피챗 느낌이 아니라
준비된 질문에 제한 시간 동안 내 생각을 답하는 형식이었다. 내가 준비한 질문들과 너무 다른 질문들이 나와 정말 많이 당황했지만,
나는 숨을 가다듬고 생각을 정리하며 질문에 대한 답변을 하나하나 차례대로 했다.
딱히 특별한 사항은 없었고, 면접이 끝난 후 니코틴, 알코올 검사를 했다. 거기서 잘못 걸리면 퇴학처리한다고 그러더라.. 난 넘어갔다.
그렇게 집에 와서 머리가 엄청 띵해졌다. 그래서 갑자기 인문계 가고 싶어져서 학교에 가서 담임 선생님께 급하게 여쭤보았다.
붙어도 인문계 갈 수 있냐고... 그래서 알아봤는데 복학하면 갈 수 있다고 그러더라^^.. 눈물...
그렇게 마음을 다지고 "괜찮아! 얘네가 잘하니까 내가 배우면서 크면 되지!"란 마인드로 합격 결과를 기다리며 살았다.
합격했다. 딱히 감흥은 없었다. 붙어도, 떨어지더라도 별 감흥이 없었을 것 같다. 그렇게 붙은 겸 이제 열심히 살아가야겠다고 다짐했다.
하지만^^.. 당시 10월, 11월 즈음이었을까, 아무런 목표가 없었던 나는 친구들과 흥청망청 놀다가 2월 즈음에야 위기감을 느꼈다.
학생들의 패기에 한껏 주눅들어있었던 나는, 입학 전에 코딩을 미리 배워야겠다고 생각하고 여러 학원을 찾아보았다.
그렇게 알아본 곳이 HTML/CSS/JS를 가르치는 학원과 C언어를 가르치는 학원이었는데, 둘 다 수업을 한 번 들어보고 결정했었다.
먼저 간 C언어 학원은 동시에 학생들은 많지만 선생님 한 분이서 개별로 코치를 해주시는 알고리즘을 가르치는 학원이었고,
HTML을 가르치는 학원은 어눌한 대학생 정도 되어보이는 사람이 따라치라면서 코드를 따라치고, 설명하는 그런 맥없는 학원이었다.
그래서 난 C언어 학원만 꾸준히 다니기로 했고, 2월에서 3월 중순 약 두 달간 학원을 다니며 C언어를 공부했다.
그래서 학교에서 배우는 수업들은 전부 학원에서 배웠던 것들이었기에, 학원을 끊기 전까지는 C언어 수업만은 그리 벅차지 않았었다.
학교는 정말 신기했다. 아이들은 노는 아이들 없이 하나 다 착한 아이들밖에 보이지 않았고, 선배들은 정말 멋져보였다.
시설은 보았던 사진과 같이 정말 고급지고 세련되며, 배정받은 기숙사 방의 침대도 너무 푹신했다.
부모님 없이 룸메이트와 두 명이서 생활하는 점, 아침에 일어났을 때 낯선 천장이 보이고 기상송을 통해 일어나는 점 등,
내게 어색한 부분은 정말 많았지만, 그래도 더할 나위 없이 행복했다.
솔직히 말하면 정말 힘들었다. 정보처리산업기사 과정평가형 자격증을 이수하려면 500시간의 훈련시간이 필요했는데,
우리 학교에서는 내 기수인 2기를 대상으로 1학년에 500시간을 모두 채워 바로 자격증을 이수시키겠다는 계획이었다.
그래서 집에 귀가하는 금요일을 제외하고 월,화,수,목 빠지지않고 8교시부터 11교시까지 방과후 수업을 전교생이 이수했다.
오전 6시에 일어나 일과를 시작하고, 9시에 수업을 시작해 오후 9시까지 12시간 동안 수업을 들은 후, 오후 11시에 일과를 마쳤다.
진짜 정말 지옥같았는데, 수업이 쉽고 어렵고를 떠나 몸이 남아나질 않았다. 너무 피곤하고 힘들었으며, 주말에 오후 4시쯤
집에 도착할 때마다 잠깐 침대에 눈을 붙이고 뜨면 다음날 아침이 되기 마련이었다.
아는 친구가 한 명도 없는 새로운 환경에서 적응하고 새로운 친구를 사귀는 것조차 체력을 소모하는 일이었으며, 안전을 위해서 기숙사 복도에
CCTV가 설치되어있었기에 내가 친구들과 어떤 일을 하는지 다 감시받는다는 느낌이 들어 피곤하기도 했다.
3월달엔 개인적인 친구와의 문제로 인해 정신적으로도 힘들었으나, 4월달이 되자 한 달 쯤 이 생활에 몸이 적응하니 나름
정신도 차려지고 몸도 버틸만 했다. 코딩을 점점 배우니 소프트웨어공학적인 사고력이 내 머리에 들어와 안착하기 시작했다.
지금은 잘 이해가 안가지만 컴퓨터에 오라클을 설치할 때 정말 많은 시련이 있었는데.. 오류가 터지고 설치 프로그레스 바가 역주행하는 등
말도 아니었다. 그러던 중 블루스크린에 걸린 컴퓨터가 3시간 동안 조작해보았는데도 똑같은 스크린을 띄워 멘탈이 터져버린 상태였다.
당시 진짜 너무 화나서 노트북 360도로 접고 망치로 부순다음에 자퇴하고 싶은 마음이 들었는데, 그날 저녁 임베디드과의 한 선배님이
블루스크린이 뜬 이유를 분석해주시고 공장 초기화를 통해 내 노트북을 살려주신 다음, 오라클을 설치해주셨다. 진짜 사랑고백하고싶었다.
부산소마고에서는 여러가지 자격증을 학교에서 지원해주고 가르친다. 대표적으로는 SQLD, 정보처리산업기사, AZ-900등이 있다.
당시 1학년 4월 말 즈음에, AZ-900이라는 난이도가 낮은 클라우드 자격증을 학교에서 지원해주었고, 나는 코피가 나도록 밤을 새가며
미친듯이 공부를 했었다.
결과는 좋았다. 1000점 만점에 904점을 받았었는데, 받은 점수가 선배들까지 통틀어 1기, 2기 통합 전교 1등이었다.
904점이든 700점이든 똑같은 자격증이었지만, 이 학교에서 내가 노력해서 무언가를 이루어냈다는 점이 정말 뿌듯했다.
당시 C언어 수업시간에 한 달에 한 번 격으로 배웠던 개념들을 다루는 코딩 테스트를 한 시간마다 치루었다.
처음 코딩 테스트 수행평가를 치루었을 당시.. 나는 기억상 10문제 중 7문제 정도를 풀었던 것 같다.
코딩 테스트 1등을 정말 하고 싶었는데 3문제나 못 풀다니.. 자책하며 한 7~8등 정도 하겠구나 라고 생각했다.
그렇게 테스트가 끝나고 결과를 보니 1등이었다. 왜지? 약간 어리둥절하면서도 행복했다.
그 당시에는 내가 우러러보던 이 학교 학생들을 꺾었다는 사실이 너무나도 행복했던 것 같다. 그래서 당시
오만방자했던 그 우물 안의 개구리는 자신의 동네 친구들에게까지 자랑질을 하고 다니며 찌질한 삶을 살았다^^..
그 때도 내가 너무 오만방자했던 것 같단 생각이 들어서, 첫 수행평가 이후로는 딱히 남들에게 자랑을 하지 않고
언급하지도 않으며 1등을 했다는 티를 내지도 않았다.
그 후에도 1등을 유지하고 싶어 열심히 공부했고, 그렇게 1학년 동안은 코딩 테스트에서 한 번 2등한 것을 제외하고
반 내에서는 1등을 뺏겨본 적이 없었던 것 같다. 1학년 전교에서는 최종 2등 정도 했던 걸로 기억한다.
한번은 선생님께서 코딩테스트로 내신 12문제를 50분 중 20분을 남기고 다 푼 적이 있었다.
그 때 선생님이 나를 정말 이뻐하시며 손에다가 초코파이를 몇 개 쥐어주시고 나가서 놀다오라고 농담을 던지셨다.
그 후에도 학년 단위로 진행하는 알고리즘 대회에서 내 옆에 있던 친구와 호각을 다툰 끝에 1문제 차이로 1등을 따며
알고리즘에 대한 입지를 높였다. 다시 돌아보면 그 당시 내 자존감을 가장 많이 높여주었던 게 알고리즘이 아닐까 생각한다.
부산소마고에는 마이스터역량인증제라는 시스템이 있다. 짧게 요약하면 학교 생활을 잘하면, 즉 성적 잘 받고, 자격증 잘 따고,
교내나 교외 대회도 열심히 참여하고 하면 주는 점수인데, 생각보다 메리트가 크다. 학교에서 대표로 소수 인원을 선발해야할 때
기준표로 삼기도 하며, 2학년 때 과 선택을 할 때의 기준이 되기도 한다.
당시 중간고사가 끝났던 나는 친구들과 대회를 하나 나가보자는 생각이었고, 그 중 내 눈에 띈 게 자신의 고등학교를 소개하는
홍보 영상을 만드는 대회였다.
그때 매우 친하게 지냈던 친구와 편집을 정말 잘하던 친구 총 세 명이서 대회에 나갔고, 우리는 그 때 핫하던 아마존 익스프레스
아마존송을 패러디한 "소마고 익스프레스!"라는 제목으로 영상을 제출했고, 최우수상을 탔다.
당시 인스타그램 스토리들.. 추억이당
기말고사가 끝난 7월달 즈음에는 방과후에 듣던 웹 수업을 시작으로 프론트엔드에 관심이 생겨 자바스크립트를 깊게 파기 시작했다.
노마드코더의 무료 강의들을 챙겨보며 모멘텀과 그림판을 만들어보고, 토이 프로젝트로 팝캣을 패러디한 내 캐릭터를 넣은 팝빈을 만들었다.
조금 더 크지만 간단한 프로젝트를 해보고 싶었던 나는 위의 대회에 같이 나갔던 친한 친구에게 프로젝트를 추천받았는데, 바로 도박 게임이었다.
보통 도박 게임들 중에서도 간단하지만 재미있는 게임들이 많았기에, 나는 그 중에서도 하이로우라는 게임을 웹으로 구현해보아야겠다는 생각을 했다.
하이로우는 처음 한 카드를 보여주고, 그 다음 나올 랜덤한 카드의 숫자가 보여준 카드보다 높은지 낮은지를 베팅하는 간단한 게임이었다.
여러 우여곡절 끝에 게임을 만들었고, 조금 비효율적이지만 당시 500줄 정도의 자바스크립트 코드를 짰다.
진짜 빙산의 일각..? 아니 일각도 안되는 수준의 프로그래밍이었지만 나 자신이 500줄을 작성해 이런 프로그램을 만들었다는 뿌듯함으로 인해
그 때부터 프론트엔드 개발에 두 발을 모두 딛게 되었던 것 같다.
여름방학 때는 공부했던 JS를 필두로 리액트와 타입스크립트, 알고리즘을 공부했다. 당시 딱히 친했던 선배가 없었던 나는 모든 개념들을 인터넷을
찾아보며 혼자 숙지해야했고, 같이 프론트엔드를 공부하던 한 친구는 좋은 선배가 있는 동아리에서 꾸준한 지원을 받고 있었기에 당시 많이 부러워했었던 기억이 난다.
프론트엔드 입문 강의는 노마드코더만한 강사가 없는 것 같았다. 강의를 쭉 보며 영화 서비스를 리액트로 만들어보고, 파이어베이스를 통해 유사 백엔드를 구성해
익명으로 사이트에 메세지를 남기는 어플리케이션을 타입스크립트와 섞어서 만드는 등 여러가지 프로젝트를 강의를 보며 따라해보았다.
여름방학이 끝나자, 나름 공부했던 것들이 빛을 발했다. 다들 나같이 공부한 줄 알았으나, 막상 전교생 64명 중 프론트나 백엔드를 열심히 공부했던 사람은
10명도 채 되지 않았던 것 같다. 그 때, 선배들을 필두로 운영하던 동아리에 1학년들이 적절히 가입하여 목요일 방과후마다 동아리 활동을 진행했었다.
나를 포함한 1학년 동아리원은 6명, 2학년 선배님들은 4명 총 10명이었다. 그 때 나름 실력 있는 동아리인 'T자형 인재'라는 동아리에 가입했었는데,
우리가 리액트 조물조물거리면서 아장아장 걷고 있을 때, 선배들은 화상통화를 지원하고 채팅을 지원하는 협업 플랫폼을 만들고 있었다.
그래서 당시 멘토 선생님의 판단 하에 1학년은 1학년들끼리 따로 프로젝트를 만들어보자고 했고, 그 때 만들어보자고 이야기 나왔던 프로젝트가 대나무숲이었다.
지금 보았을 때는 일주일 안에도 완성 가능한 조그마한 프로젝트지만, 당시에는 내 첫 프로젝트이기도 하고 굉장히 대나무숲이라는 시스템이 크게 다가왔다.
관건은 백엔드였는데, 백엔드가 인스타그램 그래프 API를 사용해서 웹사이트에 글을 수락하면 인스타그램 공식 계정에도 자동으로 글이 올라가는 기능을 구현해야했다.
나는 프론트엔드를 맡았기에, 열심히 디자인을 한 다음, 퍼블리싱을 진행하고 틀을 만들어갔다.
당시 리액트를 할 줄 아는 사람이 1학년 6명에서 프론트엔드 3명 중 나 혼자 밖에 없었기에, 딱히 지정하진 않았지만 내가 리더가 되어 친구들을 끌고 나갔던 것 같다.
당시 학교에서 학생들에게 수험료를 지원해주며 TOPCIT 시험을 지원했던 적이 있는데, 하필 대나무숲 개발 기간과 겹치는 바람에 시험을 노쇼했던 적이 있다.
대나무숲 개발이 거의 끝자락을 달릴 때 오후 7시부터 앉아서 새벽 4시까지, 총 9시간 동안 쉬지 않고 백엔드 친구와 디스코드를 하며 개발을 진행했다.
당시 협업 방식이 정말 웃겼는데, CORS 설정을 제대로 잡지 못해서 기능을 만들어 git push하면 AWS 서비스에서 풀해서 배포하고, 배포한 사이트를 확인하는
정말 어이없고 웃긴 방식으로 협업을 했었다. 당시 내 커밋이 기하급수적으로 늘어난 이유도 이 때문이다.
API를 처음 핸들링해보았던 나는 정말 애를 먹고 스트레스를 받아가며 백엔드 친구와 사소한 말싸움을 계속 벌이며 프로젝트를 진행했던 기억이 난다.
그렇게 새벽 4시까지 퀭하게 서비스를 완성했다. 허나 디스코드를 하던 동아리원은 총 나 포함해서 두 명이었다.
백엔드 3명, 프론트 3명으로 분배했으나, 결국엔 한 명이 거의 모든 작업을 하는 협업 부재 이슈가 발생하게 되었고, 레포지토리의 600커밋 중 내가 한 커밋만
570커밋에 달하는 불상사가 발생하게 되었다. 심지어 20커밋 정도는 백엔드 친구가 API 설정해준다고 한 커밋이었으니..
그 땐 정말 동아리원들이 미웠지만, 오히려 전화위복이 되지 않았을까싶다. 그 때 내가 그 서비스의 3분의 1만 개발했다면, 지금처럼 계속 개발에 대한 열정이 있었을까.
그렇게 인스타그램 홍보를 통해 공식적으로 대나무숲을 배포하고 서비스 출시를 알렸다. 서비스는 별 탈 없이 잘 작동이 되었다.
허나 정말 실망했던 점은, 학생들이 대나무숲을 용도에 맞게 사용해주지 않았다. 딱히 대나무숲에 올라오는 제보가 많지도 않았는데다가,
대부분 모두 한 줄에서 두 줄 정도 하는 장난스러운 글 뿐이었다.
서비스를 살리기 위해 일부러 익명의 학생인 척, 대나무숲에 걸맞는 글을 제보하고 아닌 척 했던 적도 있다. 그렇게 열심히 만든 서비스였는데,
사용률이 매우 저조해 그 때 엄청나게 실망하고 슬럼프가 찾아왔다.
당시 1학기와 여름방학 때 만들었던 내 프로젝트를 우연히 교무부장 선생님께서 보시고, 나에게 입학설명회 도우미를 하는 것이 어떻겠냐고 말씀하셨다.
간단하게 입학설명회에 참석한 학생과 학부모들에게, 어떤 서비스를 개발하고 만들며 공부했는지를 짧게 5분 정도로 PPT로 발표하는 일이었다.
학교의 대표가 된 것 같아 정말 기분이 좋았고, 그렇게 난 4번의 입학설명회 중 3번을 참여해 학생과 학부모들 앞에서 나의 토이 프로젝트들과 공부한
것들을 발표했었다.
대나무숲을 개발한 후로, 프로젝트를 내가 원하는 친구들과 해보고 싶었다. 정말 공교롭게도 나와 친하게 지내던 나 포함 4명의 절친들은,
두 명이 백엔드 개발을 공부하고 있었고, 나 포함 나머지 두 명이 프론트엔드 개발을 공부하고 있었다.
당시에 하도 이상한 사건이 많았던 우리 학교에서, 친구들과 교내 위키를 만들자는 이야기를 했다. 학생과 선생님, 학교에서 일어나는 사건사고를
학생들이 자유롭게 편집할 수 있는 위키를 만들어서, 이상한 짓 하는 친구들 다 박제시켜버리자고...
그 당시에, 기숙사 입소를 막 했을 일요일 저녁, 한 친구가 자신의 여자친구와 기숙사에 들어가있어야할 저녁 8시 즈음에 교실에서 불을 꺼놓고
교실에 들어가자 숨어버리는 의심을 살 만한 행동을 했던 적이 있다. 물론 자초지종을 듣고보니 그냥 교실에서 대화하다가 사람이 오길래 놀래서
불 끄고 숨었다고 이야기했다. 그 때부터 "어?? 너 부마위키!"라는 말이 유행했다. 친구들도 다 어떤 친구가 이상한 발언이나 행동을 할 때마다
"어??? 너 부마위키!!!!"라고 이야기했고, 우리에게 빨리 만들어달라는 요청이 많이 있었다.
그렇게 우리는 장난스레 말하던 부마위키를 실제로 개발하기로 마음먹었다.
프론트엔드는 디자인을 시작하고 백엔드는 ERD와 도메인을 분석하고 기획하며 프로젝트가 시작되었다.
대나무숲은 비교도 안되는 대형 프로젝트에 백엔드도, 프론트엔드도 서로 "이걸 어떻게 개발하지..?"라는 생각에 차 넋이 나가 있었다.
우리가 막혔던 부분은 버전 관리 시스템이었다. 미연에 사고를 방지하기 위해서 누가 어떤 내용을 편집했는지를 보여주는
버전 관리 시스템이 필요했는데, 도대체 이를 어떻게 효율적으로 구현하냐는 것이다. 그래서 처음에는 깃허브를 이용해 문서가 편집될 때마다
셸스크립트로 커밋을 시켜 관리를 하자는 의견도 있었고, 깃 비슷한 시스템을 만들어 그 시스템을 돌리며 관리하자는 의견도 있었다.
그렇게 이건 불가능한 프로젝트라고 단정지어가며 전의를 상실하던 그 때...
그냥 무지성으로 데이터베이스에 박으면 되는 거였다!!!! 그렇게 개발을 다시 시작했다.
솔직히 말하면 CRUD가 다인 서비스이다. 근데 그게 엄청 큰 CRUD ^^.. 그 때 난 아직 숙련되지 않은 리액트 쿼리나 타입스크립트, 리코일 등을
프로젝트에 적용시켜보며 실험적인 개발을 진행했다. 그렇게 친구와 열심히 개발을 진행했고, 동아리 예산으로 라떼판다를 구입해 AWS 대신 온프레미스
서버를 구축하여 부마위키를 서버 위에 올렸다. ssh로 접근해서 서비스를 제어하고 하는 식으로 위키를 구동시켰다.
그렇게 400커밋 정도로 부마위키가 완성되었고, 배포했다. 친구들에게 사용해달라고. 나름 기대했지만, 결과는 역시나 절망적이었다.
나와 친한 친구들만 부마위키를 사용하고, 실제 사용자는 6명 정도 채 되지 않았다. 너무 슬펐다. 진짜 열심히 만든 프로젝트였는데..
그래도 열심히 홍보를 한 탓에 같은 학년엔 사용자가 꽤 늘어 10~15명 정도 부마위키를 사용했고, 전교생들에게도 인지도는 높아진 상황이었다.
나름 비어있던 문서들이 채워질 즈음... 갑자기 데이터베이스가 자고 일어나니까 흔적도 없이 삭제되었다. 백엔드 친구들과 프론트엔드 친구들 모두
너무 당황하며 이게 무슨 일인지 이유를 찾았다. 근데 진짜 이유가 없었다. 그냥 귀신처럼 싹 사라졌다. 누가 해킹해서 털어간거 말고는 설명이 안됐다.
그래서 전의를 상실한 부마위키 개발 팀은 모두 멍을 때리고 각자의 방식으로 멘탈을 치유했다. 자세한건 부마위키 사건에 기재되어 있다..
링크
2월 20일 즈음, 서비스에 결함 등을 수정함과 동시에 베타테스트를 끝내고 다시 정식으로 서비스를 출시했다.
다시 출시하자 더 사용해주는 사용자들이 없었다^^... 그렇게 슬픈 마음으로 학교에 등교했다.
당시 방송부였던 나는 선배와 동아리 시간에 여러 이야기를 나누던 중, 부마위키에 대한 이야기가 나왔다.
그래서 나는 선배들이 부마위키 안써줘서 엄청 서운하다고 약간 찡찡 아닌 찡찡으로 찡찡댔다.
착하신 선배님은 기분이 나쁘셨을 법도 한데 "알았어^^.. 써줄게^^..."라며 한 마디 던지셨고, 물론 빈 말인 줄 알고 있어
별 기대는 안했다.
그런데 그것이 실제로 일어났습니다. 그 선배님이 정말로 선배님들에게 부마위키를 알려 붐을 오게 만드신 것이었다.
갑자기 사용자 수가 급증하고 선배들의 문서가 꽉꽉 채워지며 부마위키가 되살아나며 교내 최고 인기 서비스로 급상승했다.
당시 수업 시간에도 부마위키 글이 올라왔으며, 여러가지의 사건/사고들이 즐비했을 정도이니... 당시 조회수도 일주일에 61000회를 찍는 등
진짜 미친듯한 성장을 보여주었다.
그렇게 프로젝트를 끝내고 나서, 2학년이 되었다는 것을 비로소 직감했다. 신입생들이 학교에 들어오고, 처음 보는 선생님들도 많이 들어오셨으며,
듣던 수업들의 구조도 많이 바뀌어있었다. 또 1학년 때는 내가 정말 작은 일만 해도 잘한다 잘한다 해주시던 선생님들도 나를 보면 성적을 챙겨야한다,
알고리즘 공부를 해야한다, 프로젝트를 더 많이 진행해야 한다 등 나에게 여러가지를 요구하셨다. 비로소 계속 그런 말들을 듣고, 공부하는 수준이 높아졌다는
점도 직감하니 진짜 취업이 얼마 안남았다는 것을 직감하게 되었다.
이제 우리 학년이 2학년이 되었으니, 전공동아리를 새로 개설해야했다. 나는 그 전에 속해있던 동아리인 T자형인재의 선배 한 분이 만드셨던 BSM이라는 서비스에
눈독을 들이고 있었다. BSM은 마이스터역량인증제나 급식, 시간표, 게시판 등 학교와 관련된 모든 학생들의 정보를 관리해주는 대형 서비스였다.
이 서비스를 물려받아 내가 코드를 직접 리팩토링해보고 싶다는 의지가 매우 강했다. 그렇게 나는 친구와 함께 선배들에게 찾아가 협상을 진행했다.
3학년이신 선배들께, 곧 취업을 나가시는데 마땅히 서비스를 물려받을 학생들은 없지 않냐는 것을 필두로, 2학년이 동아리를 만들테니 이 동아리에 BSM을 관리할
권한을 주신다면 더욱 좋은 서비스를 만들겠다는 협상이었다.
선배는 조금 생각해보신다고 했으며, 선배들의 생각은 약간 달랐다.
선배와 친하시고 기술력이 좋으신 자기자신을 포함한 6명의 선배님들과 같이 동아리를 만들어, 다른 소마고의 유서깊은 동아리처럼 동아리를 물려주고 싶다는 생각이셨다.
그래서 우리는 그 동아리를 우리 명의로 이름만 넣어 전공 동아리로 등록한 후, 같이 활동을 하는게 어떻냐는 제안을 하였고 제안이 받아들여졌다.
조건은 선배들이 동아리명을 짓는다는 조건으로. 그렇게 INSERT라는 팀이 개설되었다.
그렇게 인서트가 개설되고 나서 학교의 거의 모든 시스템이 한 동아리로 통합이 되었다. BSM, 포트폴리오 사이트, 대나무숲, 부마위키 등.
이런 여러가지의 대형 서비스들을 관리하기 위해서 동아리원 10명이 같이 모여 계속 꾸준히 동아리 시간마다 회의를 진행했고, 그렇게 어느정도
서비스들을 언제 어떻게 리팩토링하고 운영할지에 대한 여러가지의 방안과, 기술적인 부면에서도 워크플로우와 아키텍처 등을 정했다.
전공동아리 발표회를 진행할 당시, 13개 정도 되는 동아리들 중 유일하게
우리 동아리만 멘토 선생님들의 질문이 하나도 없었다.
진행하시는 선생님께서 "질문 있으신가요?"라고 했을 때 5초간 정적이 흐르자
전교생들이 "오오오~~~"하며 감탄을 내질렀다. 기분이 정말 좋았다.
뭐 잘해서라기보단, 기존 서비스를 유지보수하고 기능을 추가한다는 점에 있어
질문이 없는 것도 있었다. 새로운 서비스를 만든다 했으면 공격을 받았겠지..?
그러던 도중 갑자기 교감 선생님께서 손을 번쩍 들고 우리에게 질문하셨다.
만약 이 서비스들을 코드 그대로 후배들에게 물려줄거냐고. 우린 그렇다고 대답했고,
교감 선생님께서는 "1학년 여러분 그렇답니다 이건 박수쳐야돼요~!!"라고 띄워주셨다.
당시 너무 얼떨떨했던 탓에 선명하게 기억은 남지 않지만, 어떻게 보면 화려한 데뷔였다.
부마위키는 당시 리액트로 만들어져있었기에 리팩토링이 필요했다. 위키 서비스 특성상 SEO가 가장 중요한데 CSR을 쓰고있다는 점이 참 역설이었다.
그래서 나와 내 친구는 선배님의 도움을 받아 넥스트로 프로젝트를 리팩토링했다. 처음 리팩토링할 당시에는 그냥 넥스트로만 프로젝트를 옮기고 말자
라는 생각이었는데, 당시 선배가 리뷰하신 부마위키의 코드는 나름 충격적이었다. 지금 생각해보면 정말 더럽고, 많이 엉켜있는 부분이 많았다.
그런 부분들을 싹 도려내고 추가적으로 더 좋은 서비스를 관리해주는 라이브러리들을 배우고 사용해보며 부마위키의 코드가 안정화되었다.
넥스트로 서버를 돌리니 CSR일 때보다 렌더링 속도도 빨라져 사용자 경험도 개선하는 계기가 되었다.
당시 SSG로 서비스할지 SSR로 서비스할지 굉장히 고민했었는데, 위키의 문서가 잘 수정이 되지 않냐는 선배의 조언을 듣고 문서의 대부분은
SSG로 서비스가 되었다. 따로 Node.JS 코드를 작성해서 문서가 생성/수정될 때마다 revalidate를 해주는 로직을 통해 SSG를 SSR처럼
효율적으로 사용했다.
리팩토링이 끝난 부마위키 V2는 정말 만족스러웠고, 내 실력도 코드 리뷰를 받은 만큼 부쩍 늘어난게 보였다.
작년에는 아는 선배가 없어 혼자 공부를 했었는데, 배울 수 있는 선배가 한 분이라도 있으니 이렇게 실력이 단기간 내에 빠르게 늘어난다는 것을
느끼고 약간 또 1학년때의 내가 생각나서 약간 또 서럽고 울컥해졌다.
대형 서비스가 너무 많은 데에 비해, 3학년 선배님들이 취업을 통해 학교를 나가시게 되면 우리 4명이서 큰 대형 서비스들을 다 관리해야했다.
인력 부족으로 인해 우리는 신입생 중에서 빛이 나는 원석들을 인턴으로 뽑아 가르친 다음 동아리원으로 투입시키자는 생각을 했다.
그래서 우리는 인턴 모집을 진행했고, 당시 동아리발표회에서 나름 선방한 발표를 진행해 인기있었던 동아리..?였지만 64명 중 12명 정도밖에
지원하지 않아 약간 실망했던 감도 없잖아 있었다.
그 중에서 정말 지원서에서 혼자 빛이 나던 친구 한 명과, 혼자서 자기소개 웹사이트를 열심히 만들고 깃허브에 꾸준히 커밋도 하는 한 명이 눈에 띄었다.
대면 면접을 통해 12명을 면접보았고, 면접을 본 이후로도 마음에 딱히 변동이 없어 프론트엔드는 그 두 명을 채용해 총 백엔드 2명, 프론트 2명으로 인턴은 4명이 채용되었다.
이 친구들에게 어떻게 코딩을 가르쳐야하나 우리는 매우 고민했고, 고민 끝에 미션을 내주자는 생각을 했다. 부끄럽지만 우아한코스처럼,
미션을 내준 다음, 제출한 코드를 리뷰하여 실력을 두 배로 올리는 그런 전략이었다.
프론트엔드는 첫 미션이 인스타그램 클론코딩이었는데, 우린 아직 1학년들의 수준을 모르니 맛배기로 HTML과 CSS 공부해서 오세요! 라는 미션이었다.
기한을 정하는 게 정말 어려웠는데, 그래서 우린 우리가 만든 미션을 타이머를 키고 나 포함 내 친구 두 명이서 직접 미션을 수행했다.
그리고 둘 다 비슷하게 대략 1시간 20분정도 걸린 것을 보고, "대충 일주일 주면 넉넉하겠네!" 라고 생각하고 미션을 냈다.
그런데 후에 이야기를 들어보니 진짜 너무 힘들었다면서.. 심지어 이 친구들이 풀리퀘스트를 처음 해보아서 미션은 수행했는데 깃허브를 어려워해서
미션 제출 기한을 넘는 경우가 있었다. 그 때 난 이걸 왜 못하지..라는 생각에 사로잡혀 열심히 하겠다고 다짐했던 친구들인데 첫 번째 미션도 수행하지
못한다는 점에 있어서 약간 화가 났다.
나중에 조금 아이스브레이킹을 한 후 친해졌을 때 이야기를 들어보니 진짜 눈물흘리면서 코딩했다고 너무 빡셌다고 그러더라... 그때부터 미션에 설명들을 넣었다.
어떤 강의를 들으라고 두루뭉슬하게 이야기하기보다는, 직접 우리가 가진 지식으로 강의 예제들을 손수 하나하나 다 작성해서 미션과 함께 넣어둔 것이었다.
미션을 만들면서도 다시 한번 내가 가진 개념들을 머릿속에서 정리하는 계기가 되었다. 사실 너무 기초라서 이렇게 말할 수 있을 만큼 딱히 도움되진 않았는데,
그래도 안하는 것보단 나았다.
인턴들은 우리가 놀라울 정도로 기하급수적으로 성장했고, 코드도 정말 질이 높은 코드를 작성해 두 번째 미션에서는 정말 놀랐었다.
첫 번째 미션에서는 평균 코드 리뷰 수가 40개였는데, 두 번째 미션에서는 14개, 세 번째에서는 6개, 네 번째에서는 5개 이런 식으로 점점 리뷰 수가 줄어들었다.
물론 애들이 너무 힘들어하길래 사소한 것들은 안 건드린 것도 있지만, 그래도 정말 대단한 속도로 내용들을 배워갔다.
그렇게 이 친구들은 약 한달 반 만에 아무것도 모르던 상태에서 리액트와 타입스크립트를 다룰 수 있게 되었고, 1학년에서 프론트 잘하는 애 이야기하면 다섯 손가락에
꼽을 정도로 커져 있었다.
너무 뿌듯했고, 기말고사가 끝나면 실제로 서비스들 중에서 작은 부분들을 직접 맡길까 생각 중이다.
이렇게 약 1년 반 동안 소마고를 다니다보니, 여러가지 생각이 들었다. 막상 내가 이렇게 여러가지의 프로젝트를 개발하고 리팩토링했는데도,
성적은 좋은데 코딩을 포기한 친구보다 취업의 폭이 좁다는 점이 너무 속상하고 나를 힘없게 만들었다.
나도 처음부터 코딩을 포기하고 성적만 챙겼다면 어땠을까라는 생각이 들기도 했지만, 이 회고록을 쭉 써내려가보니 나름 괜찮고 재밌는 인생이었던 것 같다.
1학년 때는 학교가 안좋다며 정말 학교 욕을 많이 하고 살았으나, 2학년 때는 해탈의 경지에 이르렀는지는 잘 모르겠으나, 학교를 굉장히 긍정적으로 바라보고있다.
사실 내가 학교를 욕한다고 해서 나에게 득이 될 것도 없다. 그래서 지금 학교를 욕하고 있는 1학년들을 보면 약간 안쓰러워보이기도 한다.
결국 사람이 모든 것들을 잘할 수는 없지만, 난 이런 학교에서는 하나를 정말 특출나게 잘하거나, 또는 성적, 코딩, 알고리즘 등을 균등하게 모두 잘하는 것이 제일
베스트라고 생각한다.
기술 스택을 공부한다고 시험 공부를 버렸던 과거의 내 모습을 생각하니 약간 오만한 것 같았다. 하지만 딱히 그 행동을 후회하진 않는다. 그로 인해 얻은 것들이
단순히 생기부에 찍히는 딱딱한 숫자들보다는 훨씬 가치있기 떄문이다.
코딩도 좋지만, 취업을 위해서 시험공부도 열심히 해 성적을 어느정도 챙겨볼까 한다. 그 후에 시험기간이 끝나면 내가 원하는 여러가지의 프로젝트들을 관리하고 진행하며,
행복하게 협업하는 그런 삶을 반복하며 살아가고 싶다.
좋은 기업, 돈 많이 주는 기업, 유명한 기업을 가지 못하더라도, 나는 영원히 행복하게 개발하고 협업하는 그런 기업들에만 있고 싶다.
물론 사회가 내 말대로 그렇게 호락호락하진 않겠지만, 그런 어떻게 보면 소소하고 어떻게 보면 정말 큰 꿈을 위해 난 계속 달려나갈 것이다.
결국에 나는, 남이 아닌 내가 객관적으로 나를 바라보았을 때 성공한 인생을 사는 사람이 되고 싶다.
이 글을 보는 모두가 각자 자신이 원하는 목표를 이루고 성공하기를 바란다. 화이팅.
저도 비슷한 학교 졸업했고
똑같이 대나무숲을 개발했었는데(저희는 페이스북을 활용했었네요)
의도에 맞지 않는 사용에서 실망감이 온다는거 많이 공감하고 갑니다
열심히 하시는 모습 너무 보기좋아요 응원합니다!
선배로써 정말 멋집니다. 제가 입학하기전부터 많이 도와주셨고, 어떤 질문이든지 다 말해주셨죠 어쩌다보니 선배와 같은 프론트엔드라는 길을 걷게 되었고, 깃허브 관련 뿐만 아니라 공부해야할 점 등에 대해서도 많이 바쁘실텐데 진심으로 말해주시고 감사합니다. 선배를 만나기 전에는 학교 수업만 따라간다는 느낌이였지만 선배를 만나고 이야기를 나눈 후 그때의 새로운걸 도전해보려는 욕구가 솟고, 글도 쓰게되었어요. 학교에서는 약 1년 정도라는 시간밖에 남지 않았지만 저도 훌륭한 개발자가 되어서 꼭 같은 직장에서 프로젝트를 해보고 싶네요! 언제나 화이팅 하시길 바랍니당!!
개멋지네요 응원합니다