[2021.11 회고] WECODE 부트캠프마치고 나서 나에게
8월부터 시작된 WECODE Bootcamp가 10월말을 끝으로 수료하게 되었다.
부트캠프가 시작되기전 2개월간의 사전스터디모임, 2주 Sprint기간으로 진행된 협업 1차프로젝트와 2차 프로젝트를 마치고, 1개월간 진행되었던 스타트업 1개월 기업협업프로젝트까지 머릿속에 코딩에 대한 고민으로 가득찼던 5개월이었다.
뜨거운 여름날, 시작되었던 프로 개발자가 되기 위했던 그동안의 시간과 나의 고민들을 정리하려고 한다.
뼈속까지 문과였던 내가 개발을 시작한 계기 🦴
내가 개발을 시작한 계기를 말하기 전에 나라는 사람은 어떤 사람인지 말해보고싶다. 대학생활, 학과 봉사단회장, 입시논술강사경험을 한 나를 보았을때, 나는 분명 목표지향적인 사람이다.
분명한 목표가 세워지면 추가해야하는 일을 만들어서 하거나 내 방식대로 하나의 틀을 만드는 것을 즐기면서 하는 나를 발견했다. 특히나, 과외로 시작한 대입논술강사라는 직업은 지금 생각해보면 이런 나의 성향을 보여줄 수 있는 하나의 예가 될 수 있을듯하다.
논술강의 특성상 2시간이라는 시간을 꽉꽉 채워야하는 수업구성으로 인해 수업준비를 적어도 하루에서 많게는 3일정도 고민끝에 구성하고 수업을 진행해오다가 집중도가 떨어져있는 학생들을 보게 되었다. 논술특성상 정보의 휘발성이 강해 그때그때 필기를 못하게 되면 그 수업을 통채로 잊어버리는 상황이 연출되는게 싫어 학생들과 농담을 하면서 주의를 환기시키려는 시도를 몇번 해봤지만 그것도 잠시뿐이였다. 고민에 빠졌다. 어떻게 하면 집중도를 높일 수 있을까? 입장을 바꿔 내가 만약 학생이라면 어떻게 행동했을까 생각해보았고 한가지 사실을 알게되었다. 2시간 수업을 듣는 동안 집중도가 떨어지는 것은 당연한 현상이라는 것이다.
이때 생각한 건 수업때 미쳐 집중도가 떨어져서 필기를 못했거나 중요한 부분이라고 생각했던 부분을 체크를 못하는 상황을 방지하기 위해서 나의 말투로 작성된 논술해설집을 만들자가 해결책으로 떠올랐다. 분명한 목표가 있었다. 1분이라도 학생들에게 모든 것을 설명해주고 싶었다. 내가 받은 과외비가 그냥 학생들과 농담하는 시간으로 흘러가는게 싫었다.
비록 기존에 수업구성시간보다 2배이상 시간투자가 이뤄줘야했지만 하나의 대학문제에 대한 해설집을 만들게 되면, 다음 학생들에게도 중요포인트를 쉽게 찾아 말할 수 있어서 기존 수업구성보다 효율적으로 강의를 할 수 있었다. 여러 학생들에게 똑같은 수업을 진행하다보면, 종종 중요포인트를 다르게 말하거나, 빠트리는 경우가 있는데 해설집을 만들어 놓고 강의를 하다보면 똑같은 수업의 퀄리티를 학생들에게 제공할 수 있었다.
그렇게 첫번째 버전이라고 할 수 있는 해설집을 만들고 나니 조금더 가다듬고 싶었다. 논술문제를 풀때 내 말투가 생각나길 바랬다. 시험을 볼때 함께 공부했던 사람이 목소리가 생각난다면 조금이라도 긴장하지 않을 거라는 막연한 기대때문에 구어채로 작성했었다. 문제는 구어채이기때문에 가독성이 떨어지는 문제점이 있는데, 이를 위해서 글의 구조화를 생각해 해설집 구조틀을 만들어보니 보다 쉽게 해설집을 작성할 수 있었다.
그렇게 대학생활을 병행하면서 하는 와중에 , 학생들이 합격을 하게 되는 결과로 이어지게되었다. 그때의 성취감은 정말 이루말할 수 없이 기뻤다. 학생들이 합격했다는 사실도 중요했지만, 내가 가르치고 있는 방식에 대한 확신과 함께 문제를 발견하고 문제를 해결하기 위한 시간들이 결국 내가 주도적으로 생각하고 만든 해결책으로 효과적인 결과로 나타난게 성취감이어졌다.
세상에 없는 나만의 것을 만들었다는 것 이 사실이 자신감의 원동력이 되었다.
하지만 이 책을 만들고 나서 큰 문제점이 생기고 말았다. 나는 하나의 목표가 세워지면 계획을 세우고 문제를 발견하고 문제를 해결하면서 자기성취감을 느끼는 사람인데, 책을 만들고나서 똑같은 말을 매 수업시간마다 하게 되면서 나 자신이 논술강의에 있어 성취감을 못 느끼게 되었다. 이때 하나의 큰 프로젝트가 끝나고 있음을 느꼈다. 새로운 도전이 필요했다. 대학을 졸업하기 전 이 책을 후배에게 건내주고 난 뒤, 프로젝트 단위로 성취감을 느낄만한 직업이 무엇이 있을까 생각하게 되었다.
실제 데이터를 만나다.
졸업 시즌이 다가오자 1년간 졸업논문을 위해 사회적 현상을 연구하는 기회가 생겼다. 마침 교수님께서 "젠트리파이어의 주거이동요인" 이라는 주제를 던져주었고, 이러한 주거이동요인을 파악하는 와중에 통계청에서 공지된 주거실태조사 데이터를 만나게 된다. 이러한 데이터를 이리저리 데이터를 가공하고 통계학적 지식을 접목해 요인을 파악하고 결과를 산출해는 과정에서 새로운 흥미를 느끼게 되었다. 물론 그 과정이 쉽지만은 않았지만, 원하는 데이터를 얻는데 성공했을때의 성취감이 있었다.
특히 주거이동요인을 토대로 내린 결론 중에시대가 변함에 따라 주택수요자의 주택을 소유하는 방식과 사회인구학적특성이 달라졌는데, 젊은그룹(55세미만)을 선두로 전세에 대한 수요가 보다 높게 상승할 것이지만 현재 전세공급이 부족해 전세난으로 이어질 것이다라는 것이였다. 실제 6개월이 지나 전세난으로 뉴스가 도배되었을때, 데이터가 주는 힘이 무엇인지 깨닫게 되었다.
개발자를 접하다.
바로 커리어전환을 할 수 없었기에 코딩교육기관이나 동아리를 접해서 무엇이 개발이라고 하는지 알고 싶었다. 멋쟁이사자처럼이라는 교육기관에 합격하게 되면서 팀원들과 함께 세상없던 하나의 기능을 만들고 프로젝트 단위로 일을 시작하게 되었다. 시간가는줄 모르고 3개월이란 시간이 지나갔다. 기능개발을 할 때마다 잊고 있었던 일에 대한 성취감이 다시한번 느껴졌다. 커리어 전환의 순간이 온 것이다.
결국 개발이란 새로운 문제가 발생하고 이를 위해 끊임없이 공부를 해야하는 직업이지만, 세상에 없는 나만의 무언가를 만드는 직업이라고 생각한다. 세상없는 나만의 것을 만드는 일은 무엇보다 내가 살아가고 있음을 느끼게 해줬다.
개발자로서 시작의 단계에서 느낀 점들 🏃🏻🏃🏻🏃🏻
나를 사랑하자.
하나의 기능 구현에 있어 뿌듯함을 느끼며 개발을 하자.
아무것도 아닌게 아니다.
위 3가지 말은 항상 되뇌는 말이다.
물론 전공자들보다 개발실력이 부족하고 아직 배울게 산더미처럼 많지만 내가 만드는 기능하나와 코드 한줄도 가치있게 생각한다는 것만큼 중요한건 없다고 생각한다. 부족함이 모아 하나의 성장이 될 수 있다고 생각한다.
또한 개발이라는 영역이 내가 여태껏 배우던 지식습득방식과 다르다는 것을 알고 공부방법을 새롭게 정립하는 것이 중요하다.
개발에서 중요한 것은 로직을 생각을 하는 것도 물론 중요하지만 삽질을 하면서 우선 손으로 코드를 치면서 개념을 정립하는 과정이 중요하다. 너무 깊게 로직을 생각하지말고 우선 손으로 코드를 쳐보면서 결과를 보며 로직을 수정하자. 공식문서와 튜토리얼은 필수다!
부트캠프에서 🧐개발자로서 배운 것들에 대해
: 크게 개발능력과 개발자로서의 태도 나눌 수 있을 것같다.
1. 협업하는 능력은 듣는 것으로부터 나온다. 최대한 많이 듣되, 설득이 필요할때는 목소리를 내자.
협업은 정말 개발자에게 필수이다. 백엔드의 고객은 다름아닌 사이트 이용자가 아니라 프론트엔드임을 잊지말자.
프론트엔드에게 소통이 필요하려면 API 문서는 필수라는 것.
2. 부족한 나를 자책하지말자.
비전공자인 나는 역시나 전공자에게 실력면이나 이해속도에서 떨어지는 것은 사실이지만, 너무 자책하지말고 부족함을 인정하자.
그냥 인정만 하는 것이 아니라 정확히 어떤 부분이 부족한지 아는 것도 능력이라고 생각한다. 부족한 부분을 모아 성장이 될 수 있도록 하자. 정확히 3년뒤를 성장된 나를 생각하자.
3. 잘 키운 모델링 하나 열 모델링 부럽지 않다.
모델링은 정말 중요하다. 효율적인 데이터통신, 코드구조를 결정지을 수 있는 것은 모델링에서 나온다고 생각한다.
4. 코드를 튼튼하게 해주는 것은 알고리즘이다.
부트캠프 중 동규님이 말씀하신 말이 생각이난다. 코드의 흐름을 결정짓는 건 알고리즘이다라는 말이 잊혀지지 않는다.
하드코딩보다 나쁜건 없다. 알고리즘을 공부해보자.
5. 내 머리 속에서 날아가기전에 쓰자
부트캠프의 특성상 많은 내용을 압축적으로 배우다보니 메모는 정말 필수가 되었다. notion, 메모장을 최대한 활용해서 메모할 정보가 생길때마 메모를 습관화하는 것이 좋다. 메모를 습관화하다보면 자연스럽게 TIL을 백지상태에서 안쓰게 되어 보다 빠르게 지식을 정리할 수 있다.
6. DO IT 작성으로 스케줄을 관리하자.
스프린트로 진행되는 개발문화에선 스케줄을 관리하는 것이 무엇보다 중요하다. 이때 스케줄을 작성하는데 기준이 필요하다고 한다.
1) 👨✈️ 100% 완료할 수 있는 계획을 세워야한다.
무리하게 스케줄을 짜게 된다면 스케줄이 망가지며 오히려 큰 스트레스로 다가올 수 있기에 정말 하루에 할 수 있는 정도로 정한다.
하지만 이 정도를 아는 것도 쉬운일이 아니다. 우선은 처음부터 무리하게 한번 계획을 세워보고 시행착오를 겪어보며 덜어내는 연습을 하면서 내가 하루에 처리할 수 있는 일을 쓰도록하자.
2)⚠️ 계획 → 고민 → TIL 로 이어질 수 있도록 효율적인 시간관리를 생각하자
이러한 스케줄을 정하게 되면 자연스럽게 고민으로 이어지고 고민이 해결되지 않으면 TIL로 이어질 수 있도록 하자.
이때 고민의 시간 계속 가져가는 것도 스프린트 기간에는 무리일 수 있으니 주말동안 해결할 수 있도록 빼두는 것도 좋은 방법이다.
(스케줄에 관한 상담을 해주신 영은님께 감사드립니다🙏)
부트캠프를 끝내고 결국 '나는' 🤝
코드 한줄의 가치를 아는 개발자가 되고 싶다는 생각을 했다. 그냥 치는 코드는 없다고 생각한다. 글을 쓸때도 한줄한줄이 모여 하나의 이야기가 되듯이, 코드도 똑같다고 생각한다. 또한 한 서사가 가독성과 완결성이 있으려면 글의 뼈대라고 할 수 있는 개요가 튼튼해야하는데, 코드에서 개요역할은 알고리즘과 객체지향적인 사고가 할 수 있다고 믿는다. 개발자의 태도측면에서 본다면, 유연한 사고를 바탕으로 팀원간의 의견을 많이 듣고, 설득이 필요할때는 목소리를 내는 개발자가 되고싶다. 팀원간의 소통에 있어 가볍게 가볍게 의견을 주고받을 수 있는 사람이 되는 것이다. 소통이 필요하다면 그때마다 소통할 수 있는 그런 개발자가 되고싶다. 앞으로의 3년뒤의 개발자의 모습이 기대가 되는 내가되기 위해선 부트캠프를 통해 습관화한 개발습관을 이어가는 것이 중요하다. 공부는 결국 흐름이니 이 흐림이 깨지지않도록 끊임없이 공부하고 도전해보자.
(개발자의 첫걸음을 위코드 멘토님와 동기와 함께해서 너무나 행복하게 지냈다. 같은 꿈을 꾸는 사람들을 만나고 같은 목표를 지향하는 사람들을 만났다는 게 너무나 큰 행운이라고 생각한다. 좋은 개발자의 모습이 무엇인가라는 답을 알려주신 것같아 멘토님들께 너무나 감사드립니다.)