개발자 되기 (feat.SSAFY)

싸피 6기 - 2학기 종강 후기

쓱쓱565 2022. 5. 31. 21:18

내용이 몹시 깁니다! 너른 양해를 부탁드립니다. 

싸피에서 3회의 프로젝트를 마무리 했습니다. 이제 약 한 달 간의 직업 박람회 기간이 끝나면 싸피를 완전히 수료합니다. 2학기 자율 프로젝트 결선 발표회를 보며 2학기 후기를 작성합니다. 싸피 입과 이전의 상황에 대해서는 1학기 수료 후기 글에 좀 더 자세히 기록해두었습니다. 이번에도 제 이야기로 먼저 시작합니다.

 

목차

  1. 제 이야기
  2. 싸피 2학기에서는 무엇을 하는가?
  3. 싸피 2학기때 나는 무엇을 했는가?
  4. 왜 실패했는가 혹은 무엇을 배웠는가?
  5. 싸피에서 아쉬웠던 점은?
  6. 그래서 싸피 좋나요?
  7. 앞으로 무슨 일을 하시나요?

 

1. 제 이야기

1) 습관

저는 실패를 곱씹는 버릇이 있습니다. 무엇인가 실패하고 나면 1) 실패의 원인이 무엇이었는지 2) 어떻게 하면 같은 방법으로 실패하지 않을 수 있는지 등을 끊임없이 되뇌는 것입니다. 그리고 실패의 원인을 찾거든 그 것을 고치려고 노력했습니다.

행복한 가정은 모두 비슷한 이유로 행복하지만 불행한 가정은 저마다의 이유로 불행하다.
- 안나 카레니나, 톨스토이.

 

실패의 원인들은 몹시 복잡했습니다. 운과 상황, 팀원의 능력, 제 개인의 능력, 그릇된 판단 등이 종합적으로 엮인 결과였습니다. 운이나 상황, 타인을 고칠 수는 없으니 저는 1) 그릇된 판단을 할 수밖에 없었던 이유와 근거를 분석하거나 2) 제 개인의 역량 문제에서 개선점을 많이 찾았습니다.

많은 분들께 ‘같이 일 한번 해보자’ 하는 감사한 제안들을 받았습니다. 아마도 위에서 말씀드린 제 습관 때문일 것이라고 생각합니다. 미숙했던 제가 인격적으로 이정도라도 성숙해지는 데에도 도움이 되었습니다.

하지만 이 습관이 제 자신의 행복에도 유익했는지는 잘 모르겠습니다. 반성하되 자책하지 않으려고 하지만 언제나 잘 되는건 아니었습니다. 특히나 ‘인간관계’ 등의 답이 없는 질문들에 대해 고민할 때면 더 그랬습니다.

2) 프로그래밍

프로그래밍을 배우며 처음으로 위의 버릇이 단점이 아닐 수도 있다고 생각했습니다. 코드를 짜고 오류를 찾을 때 위의 습관 덕을 많이 보았습니다. 오류가 날 때마다 기록을 해두었습니다. 그 덕분에 더 이상 같은 실수를 하지 않을 수 있었습니다. 저런 생각들은 프로그래밍 할 때 하고, 남는 시간에는 좀 더 긍정적이고 생산적인 생각을 할 수 있었습니다.

그래서 저는 개발 직군에 만족합니다. 저에게 스트레스를 많이 주던 제 성향을 긍정적인 방향으로 활용할 수 있게 되었습니다. 작은 문제들을 해결하는 과정 자체도 재미있습니다. 큰 문제에 대해 고민하는 대신 작게 쪼갠 문제들을 풀 수 있다는 점이 좋았고, 개발을 하면서 생기는 문제들에게는 답이 있다는 점이 더욱 매력적이었습니다.

산책하다 발견한 직박구리. 통통하고 귀엽습니다.

 

 


2. 싸피 2학기에는 무엇을 하는가?

세 개의 프로젝트를 진행했습니다. 각각 1) 기술 블로그 큐레이션 SNS 2) AI filter 기반 super resolution 3) 스낵컬쳐 기반 습관 개선 서비스를 만들었습니다. 총 12명의 동료 개발자들과 협업했습니다.

첫 번째 프로젝트에서는 팀장을 맡았습니다. BE를 지망하고 팀을 만들었으나, FE분들이 죄다 취직을 하시는 바람에 FE를 맡게 되었습니다. Git이나 Jira 등에 익숙치 않았어서 정말 쉽지 않았습니다. 가장 익숙한 Vue2를 사용해 개발하였습니다. FE 팀원 관련한 문제가 있어 FE의 주요 기능들을 대부분 직접 구현했습니다.


두 번째 프로젝트에서는 삼성전자와 AI 영상 필터를 개발했습니다. 자세한 내용은 이전 글을 참조하시면 되시겠습니다. 머신러닝 관련한 부분으로는 거의 기여를 하지 못했습니다. FE를 제작하며 Typescript 기반으로 React 웹앱을 만들었습니다. 코드보다는 프레젠테이션에 주로 기여했습니다.


세 번째 프로젝트에서도 팀장을 맡았습니다. 빙고 형태로 하루 생활 습관을 만들고 공유하는 서비스입니다. 볼륨이 상당히 작은 프로젝트여서 1차 mvp가 3주만에 나왔습니다. 반장 역할도 겸임해서 했습니다. FE에 참여해 Typescript 기반으로 React 웹앱을  맡았습니다. 트위터 기반 공유와 홍보, 기획 등에 주로 기여했습니다.


3. 싸피 2학기때 나는 무엇을 했는가?

삼성전자 연계 프로젝트에도 참여했습니다. 자율 프로젝트에서 우수상을 받았습니다. 순탄하지 않은 과정이었습니다.  그래서 많이 배우고 성장했습니다. 

1) 싸피 과정과 관련하여

병치레를 많이 했습니다. 이미 1학기가 반절쯤 지났을 때부터 번아웃이 왔었습니다. 알고리즘 스터디를 이끌며 무리했기 때문이라고 생각합니다. 방학 기간에도 방학을 반납하기 1학기 최종 프로젝트를 리팩토링 했습니다. 제대로 쉬지 못하고 2학기를 맞았습니다.  2학기 첫 번째 프로젝트때에는 팀원 관련 이슈를 겪으며 7주간 꾸역꾸역 일했습니다.

이 때부터 위염이 심해졌습니다. 커피를 마셔도 졸 정도로 힘들었습니다. 당연히 새로운 것을 잘 배울 수 있을 만한 몸 상태가 아니었습니다. 세 번째 프로젝트에서도 거의 회복하지 못한 상태로 프로젝트에 참여했습니다. 삽질을 정말 심하게 많이 했었습니다. 아쉬움이 많이 듭니다. 분명히 이것보다는 더 잘 할 수 있었을거라고 생각합니다.


자율 프로젝트가 끝나자마자 위염 상태가 호전되었습니다. 스트레스성 위염이었던 것 같습니다.

2) 생활 관련

체력이 떨어지며 점차 하나 둘씩 취미를 놓기 시작했습니다. 그렇지만 진득하게 잡고 해야하는 턴제 게임들은 싸피에 입과하자마자 포기했습니다. 2학기엔 한 판에 5~10분정도만 투자하면 되는 캐쥬얼 모바일게임마저 못 하게 되었습니다. 매일 하나씩 풀던 알고리즘 문제도 더 이상 풀지 못하게 되었고, 요리도 몇 주째 손을 놓았습니다. 자아가 점차 엷어지는 것 같아 무서웠습니다.

살아야겠다는 생각이 들어 운동을 시작했습니다. 1월달부터 스케이트보드를 타기 시작했습니다. 스케이트보드는 재미있습니다. 멋있고 재미있으며 익스트림한 스포츠를 기대했는데 오히려 무술과 같은 수련 취미와 비슷합니다. 몸을 움직이는 정확한 감각을 익힐 때 까지 비슷한 동작을 반복해야 합니다. 두어 달 간은 혼자 유튜브를 보며 이것저것 따라해보았습니다. 그러다 난지 파크에서 고수분을 만났습니다. 기본 자세부터 완전히 잘못되었다는 사실을 깨달았습니다. 지금은 일주일에 한 번씩 보드 강습을 받고 있습니다. 훨씬 빠르고 안전하게 잘 배우고 있습니다.

 

기술을 배울 때에는 좋은 멘토를 잘 만나는 게 참 중요한 것 같습니다. 기술을 배우려면 결국 스스로 실패하면서 방법을 찾아가야 합니다. 먼저 비슷한 길을 걸은 분과 함께라면 그런 실수들조차 조금은 더 효율적이고 안정적으로 할 수 있었습니다. 더 많은 분들의 이야기들을 들어보고 싶어 개발자용 트위터를 개설했습니다. 세상에는 참 흥미롭고 배울 만한 점을 가진 분들이 많습니다. 

 

 

보드 재밌어요!! 보드 타세요 여러분


4. 왜 실패했는가 || 무엇을 배웠는가??

다양한 종류의 실패와 삽질을 했습니다. 학교를 졸업하고도 리스크 적은 실패를 많이 해볼 수 있었다는 점에서 운이 좋았다고 생각합니다. 아래 내용은 잘 정리해두었다가 '어려움을 극복한 사례' 정도로 정리해 이력서에 첨부할 수도 있겠네요. 

1) 비 협조적이거나 역량이 많이 떨어지는 팀원과 어떻게 일할 것인가?

팀장으로서의 역량이 부족했다고 생각합니다. 1) 협업 도구들(Jira 등등)에 익숙치 않았으며 2) 일간 행정 업무를 처리하는 것만으로 이미 상당히 힘들었습니다. 이런 부분에서 체력을 아낄 수 있었다면 보다 더 괜찮은 결과를 만들어낼 수 있었을 것이라고 생각합니다.

 

글이 길어질 것 같아 새로 글을 작성한 뒤에 링크를 걸겠습니다. (2022.05.31)

2) 무엇을 모르는지 도무지 모르겠을 때 어떻게 할 것인가?

[35주차]나는 왜 머신러닝이 어려웠는가? 에 조금 더 자세히 서술했습니다!

3) 개발 팀에서 코드가 아닌 방법으로 어떻게 팀에 기여할 것인가?

1)의 상황을 겪고 얼마 지나지 않아 제가 비슷한 상황에 처하고 말았습니다! 머신러닝과 React 기반 코딩 그 어느쪽에서도 멀쩡한 성과를 내지 못한 것입니다. 이 상황에서 어떻게 트롤하지 않을 것인가?!

 

역시 글이 길어질 것 같으니 새로 글을 작성한 뒤에 링크를 걸어두겠습니다. (2022.05.31)

4) 나는 왜 React와 Typescript에서 죽을 쒔는가?

짧은 결론: HTML, CSS, JS 기본기 모두가 부족했습니다. BE를 지망하느라 이 악물고 배워야 할 이유도 상대적으로 부족했었습니다.

(1) HTML과 CSS 능력

제 고질적인 단점 중 하나는 해야 할 이유를 찾기 전까지는 안 하기 입니다. 저는 1학기 HTML/CSS 시간에 집중을 잘 못 했습니다. 정말 아무런 맥락 없이 진도를 나가기 시작했고, 왜 갑자기 이걸 배우지? 하는 생각이 강했습니다. 아무튼 약 2일만에 html과 css 전체를 훑은 뒤에 복습까지 했습니다.

부트스트랩을 배우기 시작한 뒤로는 거의 모든 스타일링을 부트스트랩으로 처리했습니다. CSS의 요소 선택자 를 사용하는 것보다 부트스트랩을 사용하는 것이 보다 더 합리적으로 느껴졌습니다. 그리고 나서 두 개의 프로젝트를 Vue2로 제작했습니다. UI 라이브러리로는 Vuetify를 사용했습니다. Bootstrap과 사용성이 거의 일치했기에 제 HTML과 CSS 기본기 부족에 대해 전혀 인지하지 못하고 있었습니다.

(2) Javascript 능력

Javascript 진도를 나가던 시즌에 번아웃이 심하게 왔습니다. 파이썬은 배우면서 코드를 작성해보았는데 JS는 그렇게 하지 못했습니다. 그렇지만 일단 결과물은 내야겠으니 Lodash 같은 라이브러리를 사용했습니다. JS 기본기가 전혀 향상되지 않았습니다.

(3) 그런데 이제 REACT와 TS를 곁들인.

그런데 이제 타입스크립트까지 사용하게 되었습니다. 어떠한 오류가 발생하면 1) JS 자체의 오류인지 2) TS 관련 오류인지 3) CSS나 HTML 관련 오류인지 4) 리액트 관련 오류인지 도무지 알 수가 없었습니다. 하…

5) 팀 구성은 어떻게 할 것인가?

글이 길어질 것 같으니 새로 글을 작성한 뒤에 링크를 걸어두겠습니다.(444) (2022.05.31)

6) 계획이 안 풀릴 때 팀원들을 어떻게 설득할것인가??

글이 길어질 것 같으니 새로 글을 작성한 뒤에 링크를 걸어두겠습니다.(555) (2022.05.31)

 


5. 싸피에서 아쉬웠던 점은 무엇인가요?

싸피에 만족합니다. 강사진도 정말 훌륭하고, 기술 스택도 훌륭합니다. 특히나 비전공자를 대상으로 한 알고리즘 교육은 유/무료 강의(한국어 강의 기준)를 통틀어 최고 수준이라고 생각합니다. 게다가 저는 이런 교육을 한 달에 100만원씩이나 받아가면서 받을 수 있었으니 정말로 운이 좋았다고 생각합니다. 개인적으로 느꼈던 '조금 더 개선하면 좋을 것 같은 점'들이니 너그럽게 봐주시면 정말 감사하겠습니다. 

1) 끊임없는 단거리 질주를 유도하는 시스템.

교육 과정의 큰 그림을 볼 수 없다는 점이 아쉬웠습니다. 1학기 때에는 월말평가 나 주간 평가 에 과락하지 않기’ 라는 목표로 끊임 없이 시달리게 됩니다. 진도도 많이 빠른 편이라 1) 지금 배우는 항목을 왜 배우는지 2) 어떤 곳에 응용하게 될 예정인지에 대해서는 언급해주시지는 않습니다.

 

특히나 django의 첫번째 시간이나 js를 처음 다룰 때처럼 힘을 아끼는 게 중요한 시즌들이 있습니다. 그 전마다 저는 번아웃이 왔었고, 이 때 밀린 진도를 따라잡느라 신나게 고생했습니다.

 

나중에 보니 대부분의 비전공자 친구들마저 어느 정도의 코딩 경험(최소 국비 5개월 강의 1회 이상 수강 ~ 대학교 부전공)정도의 경험을 갖고 있거나 코드를 다루는 공학 관련학과 전공생이었습니다. 아무래도 제 배경지식이 부족했던 것 같습니다.

2) FE / BE

한국에서 백엔드 엔지니어를 준비하시는 분들은 보통 Java - Spring(boot)를 준비합니다. 비전공 친구들은 교육 과정에서 django 로 백엔드를 구성하게 됩니다. 꽤나 많은 비전공자분들이 어쩌다보니 프론트엔드를 맡는 경우를 많이 봤습니다. 저도 백엔드를 담당해보려 Java도 독학해보고 했으나, 어찌저찌 하다보니 프론트엔드 프로젝트만 쌓게 되었습니다. 백엔드 직무 자체의 진입장벽(AWS 사용과 그에 필요한 linux 명령어 활용 등등)때문에 어쩔 수 없다고는 생각합니다. 하지만 이런 게 있다고 귀띔만 해주셨다면 1달간의 방학동안 자바-스프링을 다뤄보았을 수 있었을거란 생각이 들어 많이 아쉽습니다.

현재 제작중인 사이드 프로젝트


6. 싸피 추천하시나요?

좋은 곳입니다. 이 정도의 장학금을 받으며 공부할 수 있는 기회는 흔치 않습니다. '어떻게 합격할 수 있을지' 에 대해 이야기하는게 여러분께 더 도움이 될거라고 생각합니다. 조만간 싸피 입과 당시의 스펙을 정리 후 공유하겠습니다. 백업해둔 내용이 있다면 자소서 내용도 공유해볼게요. 

 

자소서 분량이 줄고(6기 2문항 → 7기 1문항) 전공자의 경우 코딩 테스트를 보기 시작하는(8기부터) 행보를 보면 이미 어느 정도 준비된 분이나 스펙이 괜찮으신 분들 들을 보다 선호하시는 것 같습니다. 아마 저처럼 코딩을 한 번도 해보지 않은 분들에게 배정된 자리는 많지 않을 것이라고 예상해봅니다. 

7. 앞으로 뭐 하시나요?

모르겠습니다.

1. 일단 토이 프로젝트를 한 개 만들었습니다. 저작권 관련한 문제가 있을까봐 배포 전 여기저기 물어보러 다니는 중입니다

2. 같이 일 해보고 싶었던 분들께 외부 연락처를 여쭤봐두었습니다.

3. 싸피에서 받은 지원금을 아껴서 적금을 좀 들어두었습니다. 아껴 쓰면 하반기까지는 하고 싶은 공부 하면서 놀 수 있지 않을까요..아마도???

 

서울 뚝섬 x게임장이나 난지 파크에 정기적으로 보드를 타러 갑니다. 초보분들도 괜찮으니 보드 타실 분들은 언제든지 연락 주세요!