신입 개발자 포트폴리오 준비하기

'개발자 취업 준비생' 시리즈신입 개발자 포트폴리오 준비하기

baealex

소비적인 일보단 생산적인 일을 좋아합니다.

Sign in to view email

신입은 어느 정도의 프로젝트를 해야할까?

필자는 프로그래밍에 흥미가 있었으므로 학교를 다니면서 다양한 프로젝트를 진행했다. 취미든 호기심이든 여러가지 이유였지만 대개는 작은 규모였다. 취업준비생이 된 지금 이 프로젝트들을 되돌아보니 정말 나에게 포트폴리오로써 도움이 될지 의문이 생겼다. 게다가 난 웹 개발자로 취업을 원했지만 그간 해왔던 건 다 데스크톱 어플케이션을 개발하는 것이었으니...

나에겐 많은 시간이 남지 않았다. 포트폴리오로 제출하려면 대체 어느 정도 수준의 프로젝트를 해야할까? 이 질문에 대한 해답은 아직도 잘 모르겠다. 아니 사실 모르는 건 아니다. 모르는 척 하고있다. 이 글을 읽는 사람들도 어느정도 짐작은 하고 있지 않을까 생각해본다. 심플하게 다음과 같은 프로젝트를 만들면 될거다.

  • 딱봐도 퀄리티가 개쩌는 프로젝트를 만든다.
  • 미래지향적인 신기술을 사용한다. (ex: 인공지능)
  • 어마어마한 사용자 수를 거느리고 있다. (ex: 위키피디아)

위 속성중에 하나라도 체크할 수 있다면 이미 완벽한 프로젝트겠다. 두개 이상 체크할 수 있다면 굳이 취업을 고민하면서 이 글을 보고 있진 않을 것이고. 하지만 나 같은 평범한 취준생이 위와같은 프로젝트를 짧은 기간내에 만들어내긴 힘들다. 단지 현업에 있는 사람들이 "오! 이 친구 괜찮은데?"라고 생각할 법한 프로젝트면서 어렵지 않은 프로젝트로. 욕심일까? 여하지간 아직도 그 정답은 모르며 이 글은 그냥 필자가 포트폴리오를 준비하는 과정을 담은 글이다.


일단 뭘 만들지부터 결정하자.

대부분 신입 개발자들은 다음과 같은 프로젝트를 포트폴리오로 제출한다고 알려져있다.

  • 쇼핑몰
  • 게시판(특히 커뮤니티)
  • 채팅앱(특히 카카오톡 클론)
  • 학사관리

말했다시피 '대부분'의 신입 개발자들이 위와같은 프로젝트를 실시하기 때문에 이 소재로 프로젝트를 하면서 돋보이고 싶은 욕망이 있다면 위에서 나열된 한가지를 체크할 자신이 있어야겠다. 무슨 말이냐고? 쇼핑몰을 만들거라면 사용자에게 맞춤 추천을 해주는 알고리즘이 포함된 쇼핑몰을 만들거나 혹은 게시판을 만들었는데 사용자가 폭주해서 그걸 안정적으로 처리할 시스템 구조를 설계했다던가.



내가 인사 담장자라면(물론 취준생 관점) 바로 채용할 것 같다. 다른 방법이 있을수도 있겠다. 코딩 천재거나 엄청난 스펙을 가졌거나? 적어도 실력 우선 주의라고 알려진 이 바닥(?)에서 스펙이 큰 도움이 될진 모르겠지만. 적어도 스펙을 보는 회사는 수월하게 들어갈 수 있을거라 생각된다.


하... 둘 다 아닌 나는요?


여하지간 지극히 평범한 나는 결국 일반적인 신입 개발자들이 제출하는 프로젝트를 진행하고 이 프로젝트에 나의 스토리를 담아보고자 하였다. 자소서를 통해서 이 프로젝트가 내 삶에서 어떤 의미가 있는 것인지를 말해주고 싶었다. 내가 선택한 프로젝트의 소재는 블로그였다. 블로그는 여러모로 내 삶에서 가장 오래된 활동이다.

블로그를 하면서 보냈던 시간은 항상 흥미로웠고 포트폴리오 또한 내가 하고 싶은 걸 해야 재밌게 개발할 수 있을거라 생각했다. 프로젝트를 굳이 시간내서 하는게 아니라 그냥 하고 싶은 걸 하는게 프로젝트인 셈이다. 사실 블로그는 게시판의 일종으로 매우 간단한 프로젝트다. 그래서 나는 여기에 나의 스토리를 더하고 프로젝트를 뭐가됐던 끌어올려야 했다.


개발을 시작하자!

우선 필자는 프로젝트를 단독으로 진행하였다. 그래야 포트폴리오를 평가하는 사람들이 내 지표를 정확하게 볼 수 있을거라고 생각했다. 뒤늦게 사람들과의 협업을 중요하게 보는 회사도 있다는 것을 알게 되었지만 후회하진 않는다. 어차피 친구도 없다 😥 개발하기 앞서 다음과 같은 기술을 사용할 것을 염두에 두고 있었다. 해당 기술은 단지 이름만 알고 있을 뿐이다.

  • Git
  • Docker
  • Spring
  • REST API
  • React

이름있는 회사에 들어가고자 한다면 필수적인 조합이라고 생각된다. 다만 필자의 개인적인 선호도와 여러 이해관계를 따져 다음과 같은 조합으로만 개발을 진행했다.

  • Git
  • Django
  • REST API

각각의 이유는 이렇다. 일단 Docker는 어려웠다. 당장 눈에 보여지는 결과물을 토출하기 위해서 그냥 익숙한 방식으로 배포를 진행하고자 하였다. Django를 선택한 이유는 그냥 자바가 싫었다. 왠만하면 PHPPython으로 진출하고 싶었다. 하지만 웹 개발은 대부분 Spring이 장악하고 있으므로 장고를 선택하는 건 정말 위험한 선택일 수 있다.

하지만 위에서도 말했다시피 '내 스토리'와 '내가 하고 싶은 것'에 중점을 두었기에 이대로 진행하였다. 장고는 내가 자신있어하는 파이썬을 사용하고 프론트엔드는 깃헙 블로그와 똑같이 개발할 수 있어서 여러모로 현 상황에서 최상의 선택지였다. React를 사용하지 않은 이유는 아래에서 말하겠다.


프로젝트 조지고 올게!



포트폴리오 제작기

대충 눈치챈 사람들도 있겠지만 필자의 프로젝트는 지금 여러분이 보고있는 이 블로그다. 웹개발은 처음이라 장고는 나에게 매우매우매우 어려운 프레임워크였다. 다만 프론트엔드 문법이 깃헙 블로그와 동일하다는 그 이유 하나로 붙잡고 개발을 지속할 수 있었다. 백엔드는 뭐가뭔지 모르겠지만 일단 앞단을 만들고 이것저것 찾아가며 적용해보기 시작했다. 길고 길었던 여정을 여기에 작성하기엔 아래글과 곂치는게 많아서 링크만 걸도록 하겠다.

블로그 프로젝트를 개발하며 참고한 사이트는 미디엄밸로그였다. 미디엄에선 디자인을 많이 참고하였고 (내가 본 블로그 중에 가장 아름다웠다) 밸로그에선 기술적인 부분을 참고하고자 하였는데 (내가 본 블로그 중에 가장 빨랐다) 밸로그는 React를 사용하여 프론트엔드를 구성하고 있으므로 여기서도 동일한 방식으로 개발하고 싶었지만 필자는 자바스크립트에 대한 지식이 매우 부족한 상태였기에 React라는 존재가 매우 어렵게 다가왔고, React를 통해서 프론트엔드를 분리하고 SEO를 향상시키기 위헤서 다시 서버 사이드 렌더링을 구현하는 과정이 나에게 납득되지 않았다. (왜 굳이 돌고 돌아서 다시 제자리로 와야하는 건지...) 그래서 React가 사용되는 이유를 철저하게 조사하고 이 블로그에서 React를 사용하지 않는 완벽한 핑계를 준비해두고자 하였다.


포트폴리오 발전시키기

블로그를 어느정도 완성한 후 사람들의 조언을 구하기 위해서 개발자 커뮤니티인 OKKY에 해당 포트폴리오를 올려 평가받았다. 생각보다 많은 사람들이 봐주시고 조언도 아껴주시지 않았으며 그 중에선 "디자인이 예쁘다.", "잘 만들었다."라는 말도 있었지만 흠... 솔직히 나는 내 프로젝트에 자신이 없었다. 여전히 누구나 만들 수 있는 수준에 불과하다고 생각했다.


솔직히 댓글볼 때 내 표정


이 프로젝트를 정말 자신감있는 프로젝트로 만들기 위해서 OKKY에서 조언해 주셨던 분의 내용을 바탕으로 다음 기술을 최대한 활용하고자 하였다.

  • REST API 아키텍처
  • 비동기 통신

REST API에 대한 지식이 부족해서 먼저 공부를 해야했는데 간단하게 장고의 REST FRAMEWORK를 사용해 보면서 REST API가 어떤 원리와 구조로 동작하는지 살펴보았고, REST API의 논문과 해당 논문을 정리한 영상을 참고하여 REST API를 공부하였다. 코드는 프레임워크 없이 엔드포인트를 여러개로 분리하여 디자인 규칙을 준수하며 제작하였다.

비동기 통신을 최대화하여 페이지에서 발생하는 모든 동작에 새로고침을 발생시키지 않도록 하였고, 이 동작들이 위에서 구현한 GET, POST, PUT, DELETE의 통신들이 REST하게 발생하도록 하는 것을 중점에 두었다. 덕분에 기존의 백엔드 코드가 거의 통째로 바뀌고 프론트엔드 코드가 대량으로 생성되었다. 그런데 바꿔보니 왜 이렇게 개발하는지 알 것 같았다. 혼자 작업하다보니 백엔드와 프론트엔드 왔다갔다 귀찮긴 했는데 내가 한 명만 더 있었다면 정말 엄청난 시너지가 일어날 것 같았다.


포트폴리오 정리하기

프로젝트를 완성하여 블로그에 정리하던 PPT로 만들던 정리가 필요했는데 우선 나는 나만의 포트폴리오 페이지(About Me)를 가지고 싶었고 그 안에 내 프로젝트를 당당하게 올려두고 싶었다. 다만 포트폴리오 페이지는 그냥 만들면 재미가 없으니까 위에서 사용하지 않았던 React를 이용하여 개발하였다.

웹과 관련된 프로젝트가 하나밖에 없어서 심미적인 밸런스를 맞추기 위해 개발기간이 짧은 다른 웹 프로젝트도 올렸는데 좀 찜찜한 기분이다. 미래의 취준생이 본다면, 일찍부터 프로젝트를 시작해서 2개 정도는 자신감 있는 프로젝트를 만들어 두는것을 추천하고 싶다.


저도 블로그를 만들고 싶어요!

최근 이 글과 관련해 블로그를 어떻게 만드냐는 질문을 받았다. 혹시나 같은 궁금증을 가진 사람들을 위해서 아래 글을 작성하였다. 해당 글은 블로그를 만드는 튜토리얼이 아닌 블로그를 만들기 위해선 무엇을 알아야 하는지 나열하였다.

작성된 댓글이 없습니다!
로그인된 사용자만 댓글을 작성할 수 있습니다.