ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1차 프로젝트 후기(in Wecode)
    에세이 2020. 11. 1. 17:06
    728x90

     

    목차

    1. 시작하기 전 

    2. 프로젝트 진행 중

    3. 후기 및 개발자가 되어 간다는 것.

     

     

    1. 프로젝트를 앞두고...

     

    위코드에서의 한 달 살이가 지난 후 드디어 처음으로 프로젝트를 진행하게 되었다. 각자가 하고 싶은 프로젝트에 대해 발표하고 나서 투표과정을 거친 후 클로닝할 사이트와 팀원이 발표 되었다. 그때까지만 해도, 기대보다는 우려가 많이 앞섰다. 위코드에서 처음 했던 레플릿 과제는 진행순위로 보면 항상 하위권이었고, 인스타그램을 클로닝하는 프로젝트인 위스타그램에서도 추가 기능 구현까지 한 많은 동기들에 비해 나는 기초 기능구현도 버거웠기 때문이다(결국 추가기능 구현은 시도조차 하지 못했다). 그런 상황에서 제대로 된 사이트를 클론한다는 것이 걱정되었다. '제대로 사이트를 구현하지 못해 제대로 된 포트폴리오로서 완성하지 못하면 어쩌지?', '팀원들에게 짐만 되면 어쩌지?' 하는 등의 생각이 가득했다. 하지만 이런 내 걱정과는 무관하게 시간은 흘러갔고, 그렇게 시간은 내 등을 떠밀어 프로젝트 안으로 떨어뜨렸다. 

     

    (프로젝트는 프론트엔드는 리액트, 백엔드는 장고를 바탕으로 진행됐다.)

     

    2. 프로젝트를 진행하며

    1) 첫 프로젝트 회의

    프로젝트 팀이 정해진 후에 멘토님들과 함께 회의하는 시간을 갖게 되었다. 멘토님들은 한 체크리스트를 보여주시며 '여러분이 프로젝트 진행하거나 혹은 프로젝트가 끝난 후에 이 체크리스트를 보면서 자신이 얼마나 많은 일을 해냈는지를 상기하시길 바란다.'고 했다. 아마 나를 비롯한 많은 위코더들이 자신의 실력에 대해 고민하고 걱정하고 있음을 잘 알고 있기에 해주신 말인 것 같았다. 이와 동시에 프로젝트를 시작하기 앞서 팀 목표 말고 개인의 목표도 세워서 그 목표를 잘 이뤄가고 있는지를 꼭 체크해보라고 하셨다. 그때는 잘 몰랐지만, 지금와서 생각해보면 내가 가진 한 사람으로서의 가치관, 개발자로서의 가치관 등을 통합하여 어떤 사람, 어떤 개발자로 성장해 나갈 것인지를 잘 생각하고, 그 과정 속에서 길을 잃지 않게끔 해주시려는 의도였던 것 같다. 아는만큼 보인다고, 그때는 이러한 것들을 전혀 알지 못했고, 그만큼 멘토님들의 의도를 알지 못했다. 그저 프로젝트에 대한 부담, 꼭 해내야 한다는 압박감을 느끼며 어떤 페이지를 맡아야 하나에 대한 고민만 가득했다. 

     

    프로젝트 첫 회의 결과, 나는 가장 중요한 메인 페이지를 맡게 되었다. 자신은 없었지만, 다들 눈치만 보고 있는 상황에서 '그래, 어차피 해야할 거 제일 중요한 페이지 해보자!' 라는 마음으로 자원했다. 하지만 3초가 채 지나지 않아 후회했다. '아... 그냥 쉬운 거 할 걸...'

     

    각자의 역할이 정해진 후에 코딩을 시작했다. 처음 메인 페이지를 보면서 레이아웃을 짜보니 생각보다 할만하다는 생각이 들었다. 이 속도대로라면, 메인페이지 다 끝내고 다른 페이지도 추가로 할 수 있을 것 같다는 생각이 들었다. 동시에 위스타그램을 하며 받았던 스트레스가 떠올랐다. '확실히 html과 css 를 구현하는 것은 쉽구나'라는 해선 안될 생각마저 들었다. 왜 이 생각이 해선 안될 생각이었냐 하면....

     

     2) 핀터레스트 레이아웃

    내가 맡은 메인 페이지의 꽃은 핀터레스트와 같이 벽돌을 쌓아올린 듯한 형태의 Masonry 레이아웃을 구현하는 것이었다.

    마치 이런 느낌

    pm을 맡은 효정님이 라이브러리도 있다고 하고, 자료를 좀 찾아보니 생활코딩에 이 내용에 대한 10분짜리 영상이 있기에 금방 끝내리라 생각을 했다. 하지만 인생은 마음대로 흘러가지 않았다. 이 레이아웃을 구현하는데 무려 4일이나 걸렸다... 

     

    라이브러리를 적용하는 문제는, 해당 라이브러리가 리액트에 적용하는 방법에 대해 알려주지 않았다는 것이다. 바닐라 js나 jquery를 활용하는 방식은 소개가 되어 있었지만, 그 외에는 정보가 없었다. 그러니 이 라이브러리를 쓰기 위해서는 이 라이브러리에 대한 전체적인 이해가 필요했다. 하지만 빠듯한 시간에 여유롭게 이 코드를 하나하나 뜯어볼 시간도 없고 실력도 없었다.

     

    생활코딩의 강의를 적용하는 방식은 너무나 쉬웠지만 문제는 순서가 가로방향이 아닌 세로방향으로 진행된다는 것이었다. 우리 페이지의 특성상 정렬 방식에 따라 아이템이 다양하게 정렬되어야 하는데, 세로 방향으로 정렬되어 버리면 게시물들을 보기좋게 나열하기 어려웠다. 또 이 방식이 나중에 구현한 무한스크롤 방식과 연계될 경우, 특정 순서에 있는 게시물들은 거의 보기가 어려워진다는 문제점이 있었다. 그래서 이 방식도 적용할 수 없었다.

     

    그때부터 고난의 나날들이 이어졌다. 하루에도 몇번이고 코드를 썼다가 초기화했다. 코드가 초기화 되는 숫자만큼 내 멘탈도 갈려나갔다. 그러던 와중 이해하기는 힘들지만, 원하는 레이아웃을 구현할 수 있는 코드를 발견했다. 혼자 이것을 적용하기엔 힘들어, 지영 멘토님께 도움을 요청하고 같이 코드를 뜯어보며 적용해보고 있었다. 그러다 관희 멘토님께도 이 코드에 대한 조언을 부탁드리게 되었다. 하지만 관희님은 '이 코드는 너무 어렵고 복잡하며, 무엇보다 수현님이 이해하지 못하는 코드이기에 쓰면 안된다'고 하셨다. 그때가 3일차 정도 되는 날이었다. 관희님의 그 말과 함께 멘탈이 타노스가 먼지로 바꾸어버린 생명체마냥 파스스 부서져 바람에 날아갔다. 억울하고 답답한 마음에 눈물이 날 뻔 했다. 내가 3일째 이걸로 고민중이라고 하니, 관희님께서는 5일이 지나지 않았으니 아직은 괜찮다고 했다. 하.....

     

    결국 코드는 제자리로 돌아와버렸다. 맨 바닥에서부터 다시 구글링을 시작했다. 다행히도 선배 위코더께서 남겨놓은 코드가 있었다. 게다가 너무나 이해하기 쉬운 코드였다. 당시에는 조금 버거웠지만, 결국 이해하고 그 코드를 적용할 수 있었다. 그때가 그 문제로 씨름한지 4일차 되는 날이었다. 너무나 큰 산을 넘었다는 기쁨과 안도감이 들었다. 이제 얼른 일을 진행하여 다른 팀원들의 속도를 따라가야 한다고 생각했다. 

     

    3) 컴포넌트끼리 합치던 순간

    핀터레스트 레이아웃이 해결되자 내 메인페이지는 금세 완성 되었다. 원래 우리 팀의 계획은 내 메인 컴포넌트에 쓰인 핀터레스트 레이아웃을 다른 페이지들에서도 활용하는 것이었기에, 나는 다른 팀원들이 미리 작업해놓은 페이지로 이동해 그 팀원이 만들어 놓은 컴포넌트에 내 컴포넌트를 끼워넣기 시작했다. 다른 곳에서 이미 내 컴포넌트를 잘 활용해보았기에 이것 역시 쉬울 것이라 생각했지만 그것은 큰 오산이었다. 우선 다른 팀원의 코드를 이해하기 힘들었다. 내 실력 탓인지 서로 쓴 코드의 스타일이 달라서인지는 모르겠지만, 어떤 식으로 컴포넌트를 끼워넣어야 할지 감이 잘 오지 않았다. 나는 최상위 컴포넌트에서 하위 컴포넌트로 props를 전달해주는 방식이 많았는데 다른 분의 컴포넌트는 (그 순간의 내가 보기에) 그렇게 하는 것이 쉽지 않아보였다. 이 문제도 해결하는데 좀 걸렸지만, 다행히 두리 멘토님의 도움으로 해결할 수 있었다. 이 과정에서 멘토님들이 평소에 하시던 '누가 보더라도 읽기 쉬운 코드'의 중요성을 절실하게 깨달을 수 있었다. 또 리액트 컴포넌트를 만들면서 컴포넌트는 최대한 간결하면서도 그 자체로서 완결성을 띄는 것이 얼마나 중요한 일인가를 깨달을 수 있었다.

     

    4) 프로젝트 발표

    프로젝트 발표는 당일에 페이지의 흐름을 따라가는 것으로 발표 준비를 했다. 다른 분들은 옷을 엄청 빼입고 오셔서 평상복을 입고 온 내가 조금은 위축되었다. 발표를 쭈욱 지켜보면서 다른 팀 중에 한 팀이 괜시리 우리 팀 보다 많이 못한 것 같아 같은 팀원이었던 성태님에게 '우리가 더 많이 한 것 같아요.' 라고 얘기했는데, 성태님이 그런 식으로 비교하는 것은 좋지 않다고 했다. 그 말을 듣고 보니 이 자리는 경쟁하는 자리가 아니라 서로 성장하고 독려하기 위한 자리임을 새삼 깨닫게 되었다. 성태님 말씀처럼 누군가와 비교하는 것이 아니라 잘한 것은 칭찬하고 아쉬운 점은 다음에 더 보완해야겠다는 마음가짐을 갖는 것이 더 중요한 것이었다. 잠시나마 그런 생각을 했던 내가 부끄러웠다. 그리고 그 후 발표는 다른 팀을 응원하는 마음으로 지켜보았다. 

     

    우리 팀의 발표 차례가 되었다. 언제나 그렇듯 발표는 떨리고 머릿속이 하얘지는 순간이다. 발표의 순간에 머리가 거의 초기화 되는 나의 특성상 이번에도 대본은 따로 준비하지 않고 프로젝트의 순서를 차분히 잘 따라갈 수 있도록 연습해 왔다. 하지만 언제나 예상대로만 흘러가면 인생이 아니다. 이번에는 로그인이 문제였다. 회원가입 후 로그인을 진행하려 했는데, 비밀번호와 아이디가 계속 틀렸다. 당황한 나머지 식은 땀이 흐르기 시작했다(평소에도 일이 잘 안되면 식은 땀을 많이 흘린다). 마침 다행히도 그때 우리끼리 시험해보던 아이디가 생각이 났고, 그 아이디로 발표를 진행했다. 로그인에서 시간이 지체되어 우리가 구현한 기능을 다 보여주진 못했다. 그 부분이 조금 아쉬운 발표였다. 발표 후 팀원들이 말해주기를, 로그인이 잘 안되었을 때, 평소 쓰던 아이디를 떠올린 순발력이 아주 좋았다고 칭찬해 주었다. 이번 발표에서는 순발력을 잘 발휘했던 점이 잘한 일이고, 발표 진행을 조금 버벅인 것이 아쉬운 점이라고 할 수 있었다.

     

    3. 프로젝트 후기

     

    프로젝트 전과 후를 비교했을 때 성장한 점이나 잘한 점에 대해 꼽아보자면 다음과 같다.

     

    • 읽기 쉬운 코드를 쓰는 것에 대한 중요성을 깨달았다. 코딩에 대해 잘 모르는 사람이 봐도 읽을 수 있을 정도로 쓰는 것이 진짜 잘 쓴 코드라는 생각이 들었다.

    • 위의 느낀점과 연계되는 생각으로 리액트 컴포넌트를 작성할 때, 리액트의 스테이트와 메소드 등은 기능별로, 컴포넌트 별로 잘 정리하는 것이 너무나 중요하다는 것을 알게 되었다. 이 부분이 꼬여버리는 순간 그 코드는 나 아니면 읽기 힘든 함수가 되어버린다. 

    • 팀원과 많은 소통을 하는 것이 얼마나 중요한 일인가를 깨달았다. 우리 팀은 진행과정에서 백과 프론트가 준비가 되었다 싶은 순간에 바로바로 데이터를 붙여가며 프로젝트를 진행했다. 그러다 보니, 프론트의 기능 구현이나, 프론트 간 컴포넌트를 붙이는 일에서는 어려움이 있었지만, 프론트와 백 사이에서는 문제되는 경우가 거의 없었다. 얘기를 들어보니 다른 팀에서는 프론트와 백 간에 여러 문제점들이 발생했었다고 들었는데, 그런 점에서는 우리 팀이 너무나 진행을 잘 한 것 같다.

    아쉬운 점이나 못한 점에 대해서는 다음과 같이 말할 수 있다.

     

    • 트렐로 활용을 거의 하지 않았다. 중간에 한 문제에 막히면서 그 문제에 몰두하느라 트렐로에 대해서는 까맣게 잊어버렸다. 팀 단위의 활동에서는 서로의 진행상황을 공유하는 것이 중요하다. 이번 프로젝트에서는 데일리 스탠드업 미팅이 있어 트렐로 활용 미숙에 대한 단점이 드러나진 않았지만, 앞으로 다양한 상황에서  체계적인 업무 관리가 이루어지려면 트렐로 활용에 좀 더 익숙해져야할 것 같다.

    • 구글링에 미숙한 점도 많이 드러났다. 지금 내 구글 설정은 지역을 미국으로 설정해 놓아서 영어로 검색할 경우 영미권 데이터가 많이 나온다. 하지만 영어에 익숙지 않다보니, 그 페이지들을 봐도 정보를 쉽게 얻지 못한다. 개발자들은 영어 자료에 고퀄/최신 데이터가 많기 때문에 영미권 자료를 참조하는 것에 익숙해야 한다고 들었다. 이런 영어권 자료들을 제대로 구글링하지 못한 점이 많이 아쉽다.

    • 건강관리 역시 조금 아쉬웠다. 프로젝트 중간에 목이 너무 아파서 제대로 집중도 하지 못하고 병원에도 몇번 다녀오게 되었다. 그 시간만큼 프로젝트에 대한 여력이 낭비되었다. 건강 관리는 비단 개발자로서 일하는 것 뿐만이 아니라 일상을 지키는 중요한 요소라고 할 수 있다. 건강한 인생을 살기 위해 바른 자세로 코딩하는 것은 물론, 아무리 바쁘더라도(직장 상사가 눈치를 주더라도) 꾸준히 운동하는 것이 중요하다는 것을 깨닫게 되었다.

    이외에도 문제가 안풀릴 때 그 스트레스에 대한 관리가 중요함을 깨달았다. 그 스트레스를 온전히 감내하는 것이 아니라, 애초에 받아들이는 수준 자체를 낮춰서 받아들이고, 쌓인 스트레스에 대해서는 바로바로 해소할 수 있는 장치들을 여럿 구비하는 것이 역시나 긴 인생을 살아가면서 필수라는 생각이 들었다.

     

    4. 어떤 개발자가 될 것인가?

     

    이제 첫 프로젝트를 끝난 이 시점에 개발에 대한 심오한 철학이 있다고는 말할 수 없다(그런 생각도 아직은 잘 나지 않는다). 다만, 꾸준한 개발자가 되고 싶다는 생각은 매일 같이 하고 있다. 지금까지 살면서 천재성이 뛰어나거나 좋은 배경을 가진 사람들보다 꾸준함을 갖춘 사람들이 더 강하고 오래 간다는 것을 느끼고 지켜보았다. 삶의 매 순간에 천재적인 사람, 혹은 폭발적인 재능을 가진 사람들을 마주치게 된다. 하지만 그 사람들 중 꾸준함을 가지고 오래 그 천재성을 유지하는 사람은 많이 보지 못했다. 그들의 말로는 대개 좋지 않았다. 하지만 반대로 그러한 천재성은 없지만, 꾸준함으로 그들의 재능을 뛰어넘는 사람들은 종종 보았다. 그들의 말로는 적어도 천재들의 비극적 결말보다는 안정적이거나 위대한 경우가 많았다. 

     

    나란 사람은 아쉽게도 어떤 천재성을 가지고 태어난 사람은 아니다. 언제나 남들에 비해 조금은 느리고, 어느 순간에는 심히 뒤쳐지기도 했다. 하지만 재능이 없다고 앉아서 좌절만 하고 있기에는 내가 하고 싶은 것들이 너무나 많고 나를 사랑해주는 사람들이 너무나 많다. 그 모든 것들을 위해 내가 더 나아질 수 있는 방법은 꾸준해지는 것이다. 앞으로 내 개발 철학에 무수한 가치들이 추가되고 사라지겠지만, 그 근저에는 꾸준함이 자리잡고 있도록 내 스스로가 노력할 생각이다.

     

    수고한 나를 위해 박수!!!

     

    728x90

    '에세이' 카테고리의 다른 글

    wecode 2차 프로젝트 후기  (0) 2020.11.15
    나도 작가가 되고 싶어요  (0) 2020.08.31

    댓글

Designed by Tistory.