1년 간의 SSAFY 회고, 아쉬움을 남기지 않기 위해

.DS_Store·2023년 6월 20일
43

Story

목록 보기
2/4
post-thumbnail

Q. SSAFY를 끝낸 지금, 어떤가요?
A. 자신감이 좀 올라온 상태? ^^*

SSAFY 홍보 영상 인터뷰 촬영 때 했던 말이다. 이렇게 자신감이 좀 올라오기까지 참 많은 일이 있었다.

SSAFY를 만나기까지의 이야기

문과에 어문학을 전공한 나에게 IT는 남의 집 이야기였다. 어린 시절 잠시 접했던 C++은 내가 이과로부터 한 걸음 멀어지게 한 계기이기까지 했다. (그래서 지금도 C만 보면 괜히 무섭다.)

하지만 졸업 후 공백기가 길어지고, 뭐든 해보자 다 해보자는 마음으로 지원했던 코딩 교육 스타트업의 세일즈 인턴. 코딩의 ㅋ도 모르던 내가 코딩 교육 쪽에 발을 들이고, 처음으로 개발자 직원들과 이야기를 나누게 되고...

그럼에도 남 이야기였다. 아무래도 그곳의 비전공 개발자 분들은 쉬는 날에도 개발을 할 만큼 개발을 정말 사랑하는 사람들이었기 때문에, 그 정도는 되어야 개발을 하는구나... 싶었다.

(어딘가 빨라보였던 개발자의 손... 그리고 뭔가 범접할 수 없는 분위기...)

그래서 그냥 계속 하던 일을 마저 했다. 한 대기업 SI 계열사의 SW 영업직으로 입사했다. 그리고 고객을 만날 수록, 파트너사를 만날 수록 프로젝트 경험의 유무가 대화의 주제를 결정한다는 사실을 알게 되었다. 현업들의 전문적인 대화 틈에서 내가 할 수 있는 말이라곤 오늘 날씨가 참 좋네요. 식사는 하셨나요?와 같은 통상적인 말 뿐이었다.
물론 회사를 다니면서 배우려면 배울 수도 있었을 것이다. 제조사에 가서 교육을 듣기도 했고, 세미나가 있다면 모두 참석했다. 하지만 현장의 상황이 너무 궁금했다. 누군가는 많은 나이라고 하기도 하지만, 내가 생각하기에 나는 아직 어렸고 새로운 도전을 해볼 딱 좋은 시기라 생각했다.

그래서 삼성 청년 SW 아카데미 (이하 SSAFY)에 지원했다. 개발이라는 게 흥미로워서 적성에 맞다면 다행이고, 잘 안 맞아 다시 IT영업으로 돌아가더라도 경험이 분명 도움이 될 것 같았다.

SSAFY의 시작

1학기

그렇게 어찌보면 무겁고도 가벼운(?) 마음으로 시작한 SSAFY. 비전공 Python 트랙으로 입과하게 됐는데, 처음부터 좌절의 연속이었다. 알고리즘을 배우기 시작했을 때는 정말 내가 바보인가? 하고 하루에도 수십번씩 되물었던 것 같다. Django를 배울 쯤엔 거의 포기 직전이었다. 나는 안 맞는 것 같다. 다시 돌아가야 하나. 괜한 선택을 했다. 등등등... 그래도 뭐 어쩌겠나, 시작했으니 끝은 봐야지. 그렇게 1학기 마지막 프로젝트까지 어찌저찌 달려갔다.
(1학기 중간 상태)

1학기 관통 프로젝트

새로운 시작점은 마지막에 있었다. JavaScript와 Vue를 잠깐 배우고 1학기를 마무리하는 프로젝트를 2인 1조로 진행할 쯤이었다. 매일매일 부끄러운 마음 꼭 숨기고 친구들한테 물어봐야했던 Django랑은 달리 조금 할 만 했다. 조금 할 만 해지니 재밌었고, 운이 좋게도 어쩌다 배워뒀던 Figma까지 더해져 마지막 프로젝트에서는 디자인과 기획, 프론트엔드 위주로 역할을 맡아 개발을 진행하게 됐다.

백엔드를 담당한 팀원과 참 많이도 싸웠다. 이미 "영화 추천 웹 사이트"라는 공통의 주제는 있었지만 사업성, 판매 가능성 등을 고려해왔던 경험 탓에 프로젝트의 당위성을 추가적으로 만들기 위해 부던히도 노력했다. 함께 한 백엔드 친구는 어쨌든 일단 만들고 생각하자! 였고 나는 목적이 있어야 개발을 한다! 였다.
아직도 생각이 난다. 그 친구를 두고 나는 개발을 잘 못하기 때문에, 이런 거라도 잘 해야한다고. 이렇게라도 1인분을 제대로 할 수 있게 해달라고. 이렇게 설득했다. Vue가 상대적으로 재밌었고, 프론트엔드 포지션을 맡기는 했지만 여전히 자신감은 다소 부족한 상태였다.

(↑ 당시 개발 사이트의 메인 페이지)
(↑ 당위성 고민의 결과 끝에 나온 영화 플레이리스트 페이지. 영화 추천을 해줄 뿐 아니라 플레이리스트를 만들 수 있다가 사이트의 핵심 기능이었다.)

그래서 결국 개발자로서 뭘 했니?라고 한다면 생각보다 크게 기억에 남는 부분이 없었다. 분명 개발도 했고, 웹페이지를 구현했지만 핵심이 되는 부분 (추천 알고리즘이나, 검색 기능 등)은 다른 팀원이 했기 때문에 수상 기여도도 크지 않다는 생각이 들었다.

2학기

첫 번째 프로젝트, SNS 만들기

그렇게 자신감이 다소 떨어진 상황에서 맞이한 공통 프로젝트. 따라서 프론트엔드 개발자는 어떻게 일을 해야할까를 가장 많이 고민했고, 가장 많이 배울 수 있는 프로젝트였다.

우선 처음으로 기술 스택의 제약사항이 없었다. 프론트엔드 팀원끼리 모여 Vue 쓸래, React를 쓸래? 왜 쓸래? Redux 쓸래, Recoil쓸래? 뭐가 더 나은데? 와 같이 끊임없이 묻는 과정이 동반되었다. 우선 프론트엔드로서의 어찌보면 진정한 첫걸음(?)이니 만큼 자유도가 상대적으로 높은 React를 택했다. 모두가 React를 처음 접하는 상황에서 7주 안에 결과물을 내야했기에, 상태관리는 상대적으로 러닝커브가 낮고 React 친화적인 Recoil을 택했다. 이후에도 폴더구조, CSS 라이브러리, 코드 스타일 등등 정말 많은 대화를 나눴고, 모든 게 처음이었던 상황에서 마냥 남들을 따르지 않고 한 번이라도 고민을 해봤다는 의미가 크다 생각한다.

(그저 소중한 내 자식 팡파레😭)

그럼에도 불구하고 이 프로젝트 역시 아쉬움을 남겼는데, 그 중 가장 큰 아쉬움을 꼽으라면 단연 컴포넌트 관리이지 싶다. 컴포넌트 관리를 제대로 하지 못했으니 팀원들과 회고 과정에서 발견한 중복된 코드가 꽤 있었다. 일부 리팩토링을 통해 수정하긴 했지만 처음부터 잘했으면 더 좋았을 걸 하는 마음이 드는 것은 어쩔 수 없었다.

그래서 처음부터 잘해보려고 한 두 번째, AI 특화 프로젝트

이 프로젝트에서는 특히나 코드의 재사용과 일관성을 중시했다. 디자인 단계에서부터 프로젝트 구조를 같이 설정했다. 또한 Typescript를 도입하고, eslint와 prettier, 코드 컨벤션 지정 등등 할 수 있는 최대한의 제약을 만들었다. 그리고 당시 프로젝트는 문제를 출제하는 사람, 푸는 사람이라는 두가지 형태의 유저가 존재했기 때문에 업무를 확실히 나눠 진행했다.

대체적으로 개발이 순조롭게 진행됐다. 미리미리 개발을 진행한 덕분에 시간에 쫓기지도 않았고 한 번 합을 맞춰봤던 친구와 다시 팀이 되어 각자 제 역할을 해낼 거라는 믿음도 있었다. 그렇지만 당연히 문제가 아예 없을 수는 없는 법이다.

업무를 확실히 나눴지만 모든 일이 딱 예쁘게 나뉘지는 않았다. 출제자와 참여자가 모두 공유하는 진행 페이지의 컴포넌트들이 존재했고, 이 페이지는 팀원 중 거의 대부분의 사람이 연관되어 있었다.
(문제가 되었던 커스텀 페이지. 커스텀 기능은 출제자의 영역인데, 보이는 페이지 미리보기 부분은 게임 참여자 페이지와 동일하다. 로고와 색상을 출제자, 참여자 각각 다른 곳에 저장하는 등의 문제가 있었다.)

다른 팀원이 맡아서 해결해준 덕분에 일이 크게 미뤄지지 않는 선에서 해결이 되었다. 적극적인 태도의 중요성 그리고 웃기게도 다시 한 번 그놈의 컴포넌트 관리의 중요성을 다시 한 번 배웠다. 분업을 통해 해결될 문제가 아니었던 거다.

이번엔 진짜 진짜 잘할 수 있을 것 같았던 세 번째, 자율 프로젝트

마지막 프로젝트는 주제가 정해지고 컴포넌트 구조부터 그리고 시작했다. 성능 향상도 훨씬 적극적으로 고려할 수 있는 여유가 생겼다.
(구현에 정말 애를 먹었던 실시간 지도 부분. 근 일주일을 잡고 있어서 이거 고치면 내 어디든 꼭 써놓으리 했는데... 나중에 보니 코드 한 줄 잘못 써서 그랬다😅. 놓친 코드도 다시 보자.)

그래서 개발 중 다양한 시도를 해볼 수 있었는데, 팀에서 자체적으로 유저 테스트 날짜를 잡고, 그 날까지 MVP를 개발하겠다는 목표를 세웠다. 팀원 주변 지인, 담당 컨설턴트님 등등 사람을 모으고 모아 테스트 인원을 약 50명 정도 확보해두고 우리 테스트 정말 해본다! 하자마자 문제가 발생했다. 테스트 전 DB를 날리는 과정에서 한 부분을 삭제하지 않아 회원가입이 밀리고, 회원가입 시 이미지를 올리면 유저 이미지 S3 버킷에 올려야하는데 거래 버킷에 올려 프로필 이미지가 모두 깨지고... 당시 백엔드 친구가 DB를 바로바로 고쳐가면서 테스트를 어찌저찌 마무리하긴 했는데, 끝나고 모두가 진이 빠져 늘어져있던 모습이 생생하다.

당시에 받은 유저 피드백만 해도 20개는 족히 넘는데, 그래 그럼 오히려 제대로 한 번 해보자 싶어서 유저 테스트를 하루 더 잡고, 테스트할 항목도 제대로 정리했다. 결과적으로 300개가 넘는 테스트 항목이 존재했고, 마지막 프로젝트 발표 전 모두 다 Pass를 찍었을 때의 뿌듯함은 말로 다 못할 거다.
(테스트 케이스 중 일부)

이미지 성능도 최적화를 진행했는데, react-cropper를 통해 한 번 자르고 썸네일 이미지는 AWS Lambda로 한 번 더 잘라 저장하는 과정을 거쳤다. Lambda 부분은 CI/CD를 담당한 팀원이 해주었는데, S3와 Lambda 정도는 다룰 수 있으면 좋을 것 같아 공부해보면 어떨까~ 생각하고 있다.

프로젝트 외의 생활

그렇다고 SSAFY는 프로젝트만 하는 곳은 아니다. 학교처럼 반장과 CA가 존재해 CA로도 일하며 싸피데이라는 리프레쉬 데이도 진행해보았고, 상단에 올린 사진처럼 홍보 영상 인터뷰를 촬영하기도 했다. 모든 경험은 배움을 남긴다고 생각해서, 최대한 많은 것들을 참여해보려 했다. (체험단 이벤트도 있길래 참여해서, 삼성 노트북도 저렴한 가격에 써보고 구매할 수 있었다. Lucky!🍀)

종합적인 후기, 아쉬움에 대해

뭐가 아쉬웠다, 뭐가 아쉬웠다 하고 쓴 게 많아 아쉬움만 남은 사람처럼 비춰질 것도 같지만 돌이켜보면 매번 그 아쉬움을 극복하기 위해 노력해왔다. 개발 프로젝트 경험이 없다는 아쉬움에 SSAFY를 시작했고, 1학기 관통 프로젝트를 포함해 총 4번의 프로젝트를 진행하며 각각의 프로젝트가 남겼던 아쉬움을 최대한 풀어나가며 성장해왔다.

프로젝트를 진행하면서 무언가 하나씩 되어갈 때마다 너무 행복했고, 성장하는 나를 발견하는 과정이 정말 즐거웠다. 결과적으로 코딩의 ㅋ도 모르던 내가 프론트엔드 개발자라는 꿈을 가지고 나아가고 있고, 자신감도 좀 생겼다.

물론 아직 모자람이 참 많고, 또 수많은 아쉬움이 존재하겠지만 앞으로의 여정이 내 모자람과 아쉬움을 하나하나 채워나가며 성장할 것이라 믿는다.
(이제 함께 성장할 회사 찾으러 떠나요~!)


(소중한 상장들과 함께 마무리 🍀)

10개의 댓글

comment-user-thumbnail
2023년 6월 21일

상을 한번도 놓치지 않은 너무 멋진사람...☆

1개의 답글
comment-user-thumbnail
2023년 6월 26일

읽으면 읽을수록 싸피에 지원하고 싶네요. 좋은글 감사합니다!

1개의 답글
comment-user-thumbnail
2023년 6월 27일

우연히 벨로그 메인에 뜬 것을 보게 되어 읽었습니다! 저도 SSAFY 9기 서울캠으로 입과해서 1학기를 마치고 이번에 취업하여 퇴소하게 됐어요! 받으신 상장들과 프로젝트 내용을 보니 정말 열심히 학습하신 멋진 선배님이시네요 ㅠㅠ!! 좋은 글 잘 읽었습니다!!

1개의 답글
comment-user-thumbnail
2023년 6월 27일

저 싸피 9기로 2학기 다음주에 시작하는데 너무 소중한 글 감사합니다! 언제 기회가 되면 만나뵙고 캐피챗이라도 하며 조언 구할 수 있을까용!

1개의 답글
comment-user-thumbnail
2023년 6월 28일

멋져!

답글 달기
comment-user-thumbnail
2023년 9월 23일

간만에 글 생각나서 읽으러 왔습니다 ㅎㅎ 좋은 글 감사하고 배워갑니다!

답글 달기