캘텨만
92
2021-06-05 20:43:42 작성 2021-06-05 20:49:12 수정됨
2
2175

정말 운이 좋았던 비전공자와 다를바없는 전공자 국비지원 취업 후기 4


#1 파이널 프로젝트

세미프로젝트와는 비교도 안될 만큼의 많은 경험이 됐었던 프로젝트였습니다..사실, 제가 배웠던 과정에서는 HTML, CSS, 기초적인 Javascript, Spring을 배우고 파이널 프로젝트를 진행합니다.

저희는 일찍이, 팀을 꾸리고 어떠한 프로젝트를 할지 선정한 후, 그 프로젝트에 관한 준비를 미리 하고 있었습니다. 약 2~3개월 전부터 프로젝트에 관한 생각을 했기 때문에 남들이 다하는 프로젝트가 아닌, 정말 참신하고 대단한 프로젝트를 하고 싶었습니다. (물론.. 신입 수준에 불과하다고 생각합니다 ㅎㅎ)

많은 후보가 있었지만 SNS를 택했습니다. 이유는 우리가 제일 많이 사용해봤고 알고 있었기 때문입니다.

이 부분이 정말 중요하다고 생각합니다. 후보군중에 모의투자 사이트, ERP 시스템 등의 후보가 있었지만, 저 후보들 중 저희가 경험을 해 본 사람이 없었습니다. 

무슨말이냐면 개발자가 프로젝트를 할 때(특히 신입이나 처음 프로젝트를 하는 경우에는 더욱더 중요!), 가장 중요한 부분 중 하나는 그 분야의 경험이 있거나 또는 전문성을 띄고 있는 사람이 있냐는 것이라고 생각합니다. 

그래야 프로젝트의 완성도가 높아진다고 생각하기 때문입니다.

게다가 저희는 교육을 받으면서 코로나로 인해 3개월은 대면 수업을 했지만 남은 3개월은 비대면 수업이 진행됐던 점에서 영감을 얻었고, 벤치마킹은 인스타그램을 했습니다. 

#2 프로젝트 과정

저희는 프로젝트를 진행하면서 아침에 한번, 밤에 한번 매일 하루에 두번씩은 회의를 진행했습니다. 실제로 이 회의를 통해 팀원들이 잘못 이해한 부분이 있거나 방향성을 맞추는데 큰 도움이 되었습니다. 특히 중요한 내용이 아니더라도 아무내용이나 자유롭게 얘기할 수 있는 분위기는 프로젝트의 완성도를 높히는데 큰 기여를 했습니다.

맨 처음엔, 팀원들이 모여, SNS에 대해 어떤 부분이 중요한지에 대해 제일 먼저 생각했습니다. 기본적인 기능들은 당연하고, 회의끝에 나온 결론은 앱의 접근성이였습니다. 좀 더 자세히 말하면 사용자들이 얼마나 쉽게 SNS를 이용할 수 있는가?였습니다.

사용자들이 앱을 다운로드 할 확률, 그러면 얼마나 완성도 있고 사용감이 좋아야 하는가 등 여러가지 고민들을 했지만 고민일 뿐이였고, 저희 수준에 맞게 어떠한 점을 해결하면서 프로젝트를 진행할 것인가?에 대한 고민을 많이 했던 것 같습니다.

앞 글에서도 얘기했지만 SPA 방식인 파이널 프로젝트의 중요한 밑거름이 Ajax라고 얘기를 했었는데, 이러한 고민이 밑거름이 되었다고 한 이유입니다. 결국 고민은 끝은 앱을 다운로드 받지 않고 SNS를 이용할 수 있을까?였습니다. 이 말은 페이지를 옮길때마다 화면을 로드하는 MPA 방식이 아닌, SPA의 방식을 생각해냈고 저희는 SPA 방식을 위해 맨 처음엔 스프링으로 도전을 시작했습니다.

#3 React

SPA 방식을 위해 우리는 간단한 로그인 프로세스를 Ajax로 구현을 하고자 했습니다.

저희가 잘하지 못했던 이유도 분명 있었겠지만 회원가입을 하고 로그인 페이지로 가는 간단한 동작조차 연쇄되는 Ajax 때문에 정말 힘이 들었던 기억이 납니다. 저희가 하려던건 간단한 페이지가 아닌 거대한 페이지인데 할 수 있을까?란 고민은 저희를 지도해주셨던 강사님에게 발걸음을 돌리게 했습니다.

이러한 고민을 얘기한 결과 강사님은 사실 SPA 페이지를 하려면 앵귤러, 뷰, 리액트같은 라이브러리나 프레임워크를 쓰는게 좋다라는 답을 들을 수 있었고, 이는 곧 회의에 연장선이 되었습니다.

사실 저희는 정말 이 말이 반가웠습니다. 당연히 저희가 배웠던 언어로 구현할 수 있다면 좀 더 편하고 쉽게 할 수 있었겠지만 좋은 개발자를 꿈꾸는 저희에게 앵귤러, 뷰, 리액트는 수없이 거론되었던 녀석들이였기 때문입니다.

(물론 자바, 스프링을 무시하는게 아니라 취업이 간절했던 저희에게 뭔가 더 배울 수 있다면 팔랑귀가 되버렸기 때문입니다 ㅎㅎㅎㅎ 정말 공감하실거라 생각합니다. 좋아보이는건 모두 흡수하고 싶은...)

결국, 저희는 만장일치로 리액트에 도전하자는 결론을 내렸고, 이를 위해 자바스크립트에 익숙해질 수 밖에 없었습니다.

#4 Interaction

애플의 홈페이지를 본적이 있나요? 스크롤에 따라 반응하는 동적으로 변하는 페이지 우리의 SNS 프로젝트를 소개하는 웹페이지를 인터랙션으로 소개하고자 했습니다. 이유는 명확했습니다. SPA 페이지 즉, 리액트를 배우기 전, ES6 문법을 쓰며 자바스크립트에 익숙해지는 과정이 필수적이였고, 이 과정은 기존 수업시간 이외에 진행해야 했기 때문에 당연히 주말에도 다같이 만나 열심히 했던 것 같습니다.

#5 클론코딩

저희는 리액트에 처음 도전하는거였기 때문에 유튜브나 유료 강의들을 생각할 수 밖에 없었습니다.

특히 저희의 주제와 잘 맞았던 클론코딩은 정말 배울게 많다고 느꼈고, 이 강의를 듣고 저희만의 방식으로 새로운 기능과 아이디어를 추가하자는 결론을 내렸습니다.

사실, 이 때 배우면서 들었던 생각은 기존 배웠던 것보다 몇배는 더 어려움을 겪었던 것 같습니다. 시간은 제한되어 있고 완전히 처음보는 새로운 방식과 문법들 때문에 번아웃도 몇번 왔던 것 같습니다. 그러나 그럴때마다 의지할 수 있는 팀원들과 강의를 보고 몇시간씩 회의하며 온전히 내것으로 만드는 과정들 덕분에 잘 헤쳐나갈 수 있었던 것 같습니다.

그리고 또 하나의 문제가 있었습니다. 강의 초반 저희가 하지 않은듯한 느낌이 든다는 것이였습니다. 그러나 이 부분은 자연스럽게 프로젝트 과정이 해결을 해주었는데, 어떻게 해결할 수 있었냐면 당연히 클론코딩은 인정을 하면서, 시간 단축을 위한 퍼블리싱은 가져가고 서버의 연동과 관련한 중요한 동작들과 기본적인 기능(로그인, 화면구성, Route 등) 들을 제외한 모든 기능들은 모두 저희가 서버부터 프론트 부분까지 직접 구현을 하면서 해결할 수 있었습니다. 예를 들면, 스토리, Push알림, 실시간 채팅 기능, 날씨와 코로나 API를 이용한 화면구성, 파이썬을 이용한 추천까지(이 부분은 제가 하진 않았습니다.) 2명씩 짝을 지어서 짝 프로그래밍을 하기도 하고, 혼자 할 수 있는 부분은 시간을 할애해서 프로젝트를 보완해 나갔습니다.

결과물은 당연히 대만족이였습니다. 누가 뭐래도 당당하게 열심히 했었고, 저희의 시간이 헛되이 보내진 않았구나를 깨닫는 시간이였기 때문입니다. PPT부터 스프링을 포기하고 리액트를 선정한 이유, 기존 Rest 방식과 다른 graphQL 등 새로운 언어와 라이브러리에 대한 설명까지 교육원 내에서도 역대급 프로젝트라는 평을 들으며 마무리 할 수 있었습니다.

마지막 글은 총평을 작성하며 마무리 하도록 하겠습니다.

5
  • 댓글 2

  • chococake
    135
    2021-06-06 21:57:41

    정말 열심히 하셨네요~

    저도 이제 막 국비지원 과정을 시작했는데

    대면이 아닌 비대면으로 수업을 듣고 있는터라 나중에 프로젝트가 잘 될지 고민이 많네요...

  • 캘텨만
    92
    2021-06-08 17:29:36 작성 2021-06-08 17:30:00 수정됨

    비대면은 정말 힘들어요 대면이여도 어려운데 다들 비대면보다 대면수업 추천하는 이유가 있더라고요! 

    그래도 잘하실 수 있을거에요 열심히 하시다보면 하나씩 깨우치는 순간이 오실겁니다. 

    혹시라도 궁금하신 내용 있으시면 메일 남겨주세요~

    조금이나마 도움 드릴 수 있으면 좋겠네요

  • 로그인을 하시면 댓글을 등록할 수 있습니다.