[코드스테이츠] SEB Section 3를 돌아보며

안광의·2021년 9월 28일
0
post-thumbnail

시작하며

Section 3는 그동안 배웠던 내용의 마지막 퍼즐이 맞춰지는 과정이라고 느꼈다. Section 1, 2에서 프론트엔트 파트를 주로 학습했다면, 3에서는 백엔드를 중점적으로 배웠는데 개발의 전반적인 부분을 배움으로써 프로젝트를 하기 위한 기본적인 지식을 쌓는 과정이였다고 생각한다. 프로젝트 시작 전, 그동안 배웠던 내용을 정리하고 추가적으로 공부해야 하는 부분을 확인하면서 Section 3를 돌아보려고 한다.

돌아보며

javaScript

javaScript의 추가적인 기능에 대해서 학습하지는 않았지만 자료구조/알고리즘 파트와 매일 Toy Problem을 풀어보며 코딩 테스트 문제가 나왔을때 어떻게 접근해야 하는지를 배울 수 있었다. 실제 현업에서 난이도가 높은 코딩 테스트 문제만큼 복잡한 코드를 작성하지는 않겠지만, 좋은 기업에 입사하기 위해서는 코딩 테스트가 필수이기 때문에 많은 문제들을 풀어보면서 문제를 푸는 방법을 연습하였다. 단순히 원하는 결과를 리턴하도록 코드를 작성할 수는 있지만 제한된 실행시간을 초과하는 경우가 많아서 효율적으로 코드를 작성하려면 어떻게 해야하는지 시간복잡도를 생각하는 연습이 중요하다고 생각한다. 어떤 자료구조를 문제에 적용해야 효율성을 높일 수 있는지, 코드가 길어질 경우 가독성 있게 코드를 작성하려면 어떻게 해야하는지, 변수명은 어떻게 설정해야하는지 고민하면서 실력을 쌓을 수 있었다.

모든 Toy Problem을 내 힘으로만 풀기에는 무리가 있었다. 어려운 문제들은 구글링을 통해 비슷한 문제들을 찾아보기도 하고 레퍼런스 코드를 본 문제들도 있었다. 중요한 건 모든 문제들을 이해하고 넘어가는 것이라고 생각한다. 가끔 레퍼런스 코드를 보고도 이해하기 어려운 문제들이 있었는데 그 경우에는 디버깅을 돌려보거나, 블로그, 유튜브를 찾아보면서 이해할때까지 노력하였다. 확실하게 원리를 이해하고 넘어갔기 때문에 비슷한 유형의 문제가 나왔을때 수월하게 문제를 풀 수 있었다.

javaScript의 정규표현식 파트는 기초적인 부분은 학습하였지만, 실제 코드에서 활용할 정도는 아니여서 추가적으로 공부가 필요한 필요한 부분이라고 생각한다. 프로젝트 들어가기전 다시한번 공부해서 기초적인 부분은 활용할 수 있도록 해야겠다.

React

React를 처음에 배울 때만 해도 기존에 배웠던 내용과 섞여있고 새로운 개념들도 많아서 복잡하고 자신이 없는 부분이였는데, Section 3를 마치니 React만큼 편리한 라이브러리가 있을까란 생각이 든다. 그동안 스프린트들도 모두 React를 사용해서 구조와 원리에 대해서 쉽게 파악할 수 있고, 아마 거의 모든 팀들이 프로젝트에 React를 사용할 것이라고 생각한다.

Section 3의 스프린트들은 모두 Class형 컴포넌트들을 사용했는데, 그동안 함수형만 배우고 익숙해져 있었는데 갑자기 아무런 설명없이 Class형이 등장해서 당황했었다. 챕터에서도 다루지 않았던 부분이라 공식문서와 블로그를 통해 따로 공부해야 스프린트를 원활하게 진행할 수 있을 것이다. Section 2에서 javaScript의 Class에 대해서 학습하기는 하였지만 React에서 사용하기 위해서는 추가적으로 알아야 할 내용이 있기 때문에 정규시간외에 공부가 필요하였다.

MySQL

주변해서 SQL 파트가 어렵다고 이야기를 들어서 걱정했는데, 기초적인 부분만 진행해서 그런지 생각보다 이해하는데 어렵지는 않았다. 스키마를 통해 데이터베이스의 구조를 파악하면 쿼리문을 작성하는 것도 어렵지 않았고 데이터베이스와 테이블들을 만드는 부분도 수월하게 진행할 수 있었다. 실제 스프린트에서는 Sequelize를 활용하기 때문에 model, migrate, seeder등 필요한 개념과 관련된 명령어와 메소드들을 활용하면서 실제 프로젝트에 어떻게 활용할지 생각하면서 공부하였다.

개인적으로 대표적인 NoSQL 중 하나인 MongoDB에 대해서 깊게 학습하지 못한게 아쉬웠다. SQL과 NoSQL 각각 장단점이 있고 진행할 프로젝트에 따라서 어떤 형태의 데이터베이스를 사용할지도 결정해야하는데 MySQL에 대해서만 집중적으로 배웠기 때문에 MongoDB 파트는 다시한번 복습하면서 심화적인 내용도 공부할 예정이다.

인증/보안

개인적으로 Section 3에서 가장 스프린트가 어려운 파트라고 생각한다. 네트워크와 관련된 새로운 개념들을 배우고 실제 코드에 적용하는 부분을 주로 학습하다보니 cookie, session, token, Oauth 등 다양한 내용이 섞여서 혼란스럽게 느껴질 수 있을 것이다. 진행했던 스프린트를 보고 클라이언트와 서버간에 통신이 어떻게 이루어지는지 그려보는것이 각각의 내용을 확실하게 이해하는데 도움이 될 것이다. 이 파트가 개인적으로 재미있다고 느껴서 프로젝트의 백엔드 포지션을 맡아보는 것도 좋겠다고 생각했다.

Oauth 인증은 실제 프로젝트에서 무조건 활용해야겠다고 생각했다. 네이버, 구글 등 유명 포털 사이트들의 Oauth 인증 방식과 각 API들을 추가적으로 학습할 예정이다.

AWS & Docker

개발의 마지막 단계라고 할 수 있고 실제로 마지막 챕터였던 배포 부분을 학습하면서 프로젝트에 대한 모든 포지션의 기초적인 지식을 배웠다고 생각한다. AWS를 통해 간단한 토이 프로젝트들은 무료로 배포할 수 있기 때문에 프론트엔드 포지션을 희망하더라도 기본적인 부분은 알아야 한다고 생각한다. AWS는 다양한 서비스를 제공하고 세부적인 기능과 옵션들이 있기 때문에 시간을 내서 공부가 필요해 보인다.

또한 자동화 파트 역시 yml과 sh파일, CodePipeline 서비스의 다양한 기능들에 대해서 추가적으로 공부할 예정이다.

Docker 파트는 짧게 학습했지만 AWS의 EC2 서비스와 함께 활용하면 좋겠다는 생각이 들었다. 가벼운 프로젝트라면 하나의 인스턴스에 여러 컨테이너를 만들어서 다양한 환경들을 구현할 수 있기 때문에 필요하다면 추후 활용할 예정이다.



HA

마지막으로 보는 세번째 HA이기도 하고 전주에 추석연휴가 있어서 여유있게 준비할 수 있었다. 코플릿을 대비해서 자료구조와 알고리즘 문제를 복습하였고 HA 2와 마찬가지로 과제형 HA의 Readme를 보고 미리 웹페이지와 서버를 구현하였다. 지난 기수의 Section 3 통과율이 55% 정도라고 들어서 조금 걱정이 되었지만, 문제의 난이도가 올라가기 보다는 합격 기준이 엄격해질 것으로 예상되어서 지난번처럼 준비한다면 통과될 것이라고 생각하면서 공부했다.

첫 날 후기

지난 기수의 Section 3의 회고록 대로, 코플릿의 난이도는 쉬운 편이였다. 총 3문제가 출제되었고 4시간 동안 진행되었는데 30분 정도 지났을 때 제출을 완료했다. Toy Problem에 만만치 않은 문제들이 많아서, 그 정도 난이도면 쉽지 않을 것 같다고 예상했는데 생각보다 평이한 수준으로 나와서 과제형이 어렵게 나올 것이라고 예상했다.

둘째 날 후기

HA 3의 과제는 그동안의 과제형 HA들보다 같거나 조금 더 높은 난이도로 출제되었다고 생각되었지만, 불친절한 설명에 익숙해졌고 테스트 코드를 해석해서 통과하지 않는 이유를 찾는 속도도 빨라졌기 때문에 그동안의 HA 중에서 가장 빠르게 제출했던 것 같다. HA 3를 대비해서 만든 스프린트도 도움이 되었고 그동안 진행했던 스프린트의 코드도 반복해서 읽어봤기 때문에 기본적인 기능을 구현하는 데는 어려움이 없었다. 코드에서 생소하게 느껴지는 부분은 테스트 코드를 읽으면서 차근차근 해결해 나갈 수 있었다.

결과

기수 이동 신청

Section 2의 초반부터 마음이 맞았던 동기들과 스터디를 함께 진행해왔는데 Section 3에 들어오면서 자발적으로 기수 이동하는게 어떻겠냐는 의견이 나왔고 HA 전에 협의를 통해 통과 여부와 관계없이 다같이 기수 이동을 하기로 결정하였다. 처음에는 수료가 한달 정도 늦춰지기 때문에 취업 준비와 실제 취업에 대한 기회가 그만큼 줄어든다고 생각해서 바로 프로젝트를 하는게 나을 것이라 생각했지만, 내 경제적 상황이 한달 정도는 더 버틸 수 있었고 수료가 미뤄져서 생기는 디메리트보다 프로젝트의 완성도를 높이고 무엇보다 믿을 수 있는 팀원들과 함께 할 수 있는 점이 더 크기 때문에 기수 이동을 하는 것도 나쁘지 않은 선택이라고 생각해서 결정하게 되었다. 33기에는 Section 3를 처음 배우는 분들도 계시기 때문에 Pair 시간은 성실히 참여하고 가능하다면 그분들에게 더 도움을 드릴 수 있는 방향으로 섹션을 진행할 예정이다. 또한 팀원들과 작은 프로젝트를 진행하면서 부족한 부분이나 추가적으로 배워야하는 내용을 학습하면서 프로젝트에 대한 준비도 착실히 할 수 있도록 노력해야겠다.

마치며

Section 3는 프로젝트에 활용할 수 있는 스킬들의 기초를 다지면서 준비해가는 과정이였다고 생각한다. 챕터를 진행하면서 앞으로 진행할 프로젝트와 연결짓지 않을 수 없었고 프로젝트에 필수적인 지식들을 배우면서 어떻게 활용할 수 있을지 계속 생각하게 되었다. 그러면서 이전에 배웠던 프로트엔트 파트 중 잊어버린 부분이 많다는 것도 깨달았고 프로젝트를 하면서 공부하고 배우는 내용이 Section에서 보다 많겠지만 잘 준비해서 완성도 있는 프로젝트를 하고 싶다는 욕심도 생기게 되었다. HA는 통과하였지만 완성도 있는 프로젝트를 위해 팀원들과 함께 기수이동을 하기로 하였기 때문에 이번 Section 3보다 더 열심히 공부하고 프로젝트와 관련된 심화적인 내용을 학습하고 작은 프로젝트도 완성하면서 한달을 알차게 보낼 수 있도록 노력할 것이다.

profile
개발자로 성장하기

0개의 댓글