코딩부트캠프 15주차 회고

🐶·2021년 8월 24일
1

회고록

목록 보기
4/4

시간은 흘러흘러.. 회고록을 적은지 벌써 9주가 지났다! 전체 부트캠프 22주 일정 중에서 절반 이상이 흘러간 셈이라 슬슬 지쳐가는 나를 다독이며 짧게 회고를 남겨보고자 한다.

더군다나 2개의 시험을 마치고 이제 프로젝트를 시작하는 시점이라, 이 회고록으로 다시 한 번 크게 동기부여를 얻고 싶다...!

그래서 지난 10주 간 어떤 걸 배웠느냐면...

  • [JS/Node] 객체 지향 JavaScript: 전통적인 객체지향 프로그래밍을 구현해보고, 자바스크립트만의 독특한 특징인 prototype을 통해 어떻게 모델을 확장할 수 있을지 학습

  • [자료구조/알고리즘] 재귀: 알고리즘을 본격적으로 시작하기 전, 기본이자 자주 쓰이는 재귀에 대해 학습

  • [자료구조/알고리즘] 자료구조 기초: 데이터의 정리 및 사용방법 학습. 알고리즘 문제에 자주 나오는 자료구조들을 익히고 실습

  • [JS/Node] 비동기: 시간이 필요한 작업들(큰 파일 읽기, 네트워크 요청 등)을 처리하는 원리 학습. 콜백, promise, async/await를 통해 자바스크립트의 비동기 흐름에 대하여 학습

  • [HTTP/네트워크] 기초: 브라우저에서 주소를 입력하면 웹사이트를 볼 수 있는 과정에 대하여 학습. 입력(URL)/출력(웹사이트)의 과정 사이에 어떠한 일이 발생하는지 작동 원리에 대하여 학습

  • [HTTP/네트워크] 실습: REST API 문서를 읽고 크롬 브라우저의 네트워크탭을 확인하여 HTTP요청을 보내보는 연습

  • [React] 데이터 흐름의 이해와 비동기 요청 처리: React에서 어떻게 데이터가 전달되는지 배우고 컴포넌트 간의 데이터 교환을 연습함. 네트워크 요청과 같은 side effect를 컴포넌트에서 어떤 식으로 처리하는지 학습.

  • [Web Server] 기초: 웹 서비스에 필요한 데이터는 웹 서버를 통해 받을 수 있다. Node.js를 사용하여 API로 데이터를 주고 받을 수 있는 웹 서버를 만드는 방법 학습.

  • [React] 컴포넌트 디자인: React로 프론트엔드를 구축할 때, 보다 구조적으로 코드를 작성하는 방법 학습. Storybook과 Styled-component를 활용해 알아보기 쉬운 코드를 작성하는 방법 학습.

  • [React] 상태 관리: React Hooks를 이용해 장바구니 예제를 만들어보고, 전역에서 필요한 상태를 관리하는 라이브러리인 Redux 학습.

  • [배포] 클라이언트 빌드와 배포: 웹페이지로부터 진화한 클라이언트 웹 앱은 배포를 위한 빌드 과정을 포함한다. 이 때 필요한 기본 개념을 익히고, 실습을 통해 웹앱을 간단히 빌드&배포하는 방법 학습.

  • [Linux] 심화: 폴더나 파일의 사용 권한과 환경변수 학습

  • [자료구조/알고리즘] 코딩테스트 준비: 시간복잡도, 탐욕 알고리즘, 완전 탐색, 동적 프로그래밍, 순열/조합, 최대공약수/최소공배수 알고리즘 학습

  • [데이터베이스] 관계형 데이터베이스: 데이터를 잘 저장하고, 또 잘 찾아오는 방법 학습. SQL에 대하여 배우고 DB 스키마 작성

  • [데이터베이스] ORM: ORM을 이용하여(Sequelize) SQL문을 직접 작성하지 않고 엔티티를 객체로 표현하는 방법 학습.

  • [데이터베이스] NoSQL: MongoDB의 장점 및 특징을 배우고 이러한 도큐먼트를 어떻게 쿼리하는지에 대하여 학습.

  • [인증/보안] 기초: 서버에서 어떻게 인증을 구현하는지, 그 인증을 어떻게 관리하는지, 어떻게 서버가 해당 요청이 인증받은 요청인지 확인하는 법을 학습.

  • [컴퓨터 공학] 기초: 애플리케이션 개발에서 필요로 하는 문자열, 캐시, 그래픽에 대한 기초적인 지식학습. 운영체제에 대한 이해와 프로세스와 스레드, 메모리에 대한 기본적인 개념 학습.

  • [네트워크] 심화: HTTP 네트워크으 흐름이 어떻게 이뤄지는지 이해하고 HTTP헤더와 프록시 캐시에 대해서도 학습.

  • [Git] 브랜치 관리와 고급 기능: branch기능을 활용하여 협업하는 방법 학습.

  • [배포] Amazon Web Service: 대표적인 클라우드 컴퓨팅 시스템을 활용하여 배포를 실습해봄.

  • [배포] Docker: Linux 컨테이너 기술을 기반으로한 docker라는 기술에 대해서 학습하고 배포를 실습해봄.

  • [배포] 배포 자동화: AWS서비스를 이용하여 배포 파이프라인을 구축하고 각 단계와 작업에 대해 이해함. AWS 개발자 도구 서비스를 이용하는 실습을 진행.

10주간의 커리큘럼을 열심히 잘 따라가도록 정말 노력을 많이 했다. section1 때에는 블로깅도 소홀히 하였고, 아무래도 개발공부가 처음이다 보니 어떻게 공부해야할 지 감을 못 잡았었다. section2~3에서는 나만의 공부하는 방식을 터득하게 되었고... 배우는 내용이 어려워진 만큼 확실히 학습량을 거의 2배 정도로 늘렸다. 그리고 매일 어려운 알고리즘을 풀다보니 무엇보다 멘탈이 강력해졌다!😂

덕분에 이제 좀 웹 풀스택이라는 범위가 조금 눈에 보이기 시작하였다.

풀스택 경험하기


section2~3동안 공부하면서 풀스택까지 하나하나 퍼즐이 채워지는 느낌을 매일 받을 수 있었다. 클라이언트에서 서버, 그리고 DB까지 하나의 어플리케이션이 완성되기까지 그렇게 전체 학습 부분을 마무리를 지었다. 이제는 자체 프로젝트를 진행하며 부딪히며 스스로 무언갈 찾아서 배워야 할 시기이다.

그렇다면 부트캠프에서는 왜 "풀스택 주니어 개발자 되기"를 어필하며 코스를 진행할까?
아래 두 가지 이유가 있는 것 같다.

  1. 스스로 구현해보고 싶은 아이디어가 있는 사람들에게는 프런트, 백엔드, 배포라는 조각 퍼즐이 모두 필요하다. 한 조각이라도 없으면 하나의 어플리케이션을 만들기 힘들다. 아주 기본이더라도 MVC 구성을 위해서 개발단 전체를 익히는 과정이 정말 필요하겠다라는 생각이 들었다.

  2. 현업에서 어느 한 포지션을 결정해 업무를 진행하더라도 다른 퍼즐 조각들에 대한 이해는 필수불가결이다. 예를 들어 내가 프런트 개발자가 되었다 치면, 백엔드와 데브옵스를 맡은 개발자들과의 소통과 협업은 당연하다. 그들이 하나의 서비스를 만들기 위해 어떤 작업을 병행하고 있는지 모른다면 내가 하는 일은 기계 부속품 만드는 일 정도에 그치지 않을까. 대충이라도 큰 숲을 볼 줄 알아야 하니 말이다.

프로젝트 시작

이런저런 생각을 하다 보니 어느덧 수강생들과 아이디어를 모아 직접 서비스를 만드는 자체 프로젝트 기간이 다가왔다. 남겨진 6주 간의 부트 캠프 기간 동안 프로젝트는 2번이 진행되는데 이번 2주 프로젝트 1개, 이후 바로 4주 프로젝트 1개를 진행한다.

이제 모든 것을 팀원들과 '직접' 헤쳐 나가야 한다...! 처음 어떤 서비스를 만들까부터 시작해서 어떤 모양으로 구조를 짜야하는지, 분업은 어떻게 해야 하는지, 언제까지 코드를 작성해야 하고 어떻게 각자 짠 코드를 이어 붙여 완성된 서비스로 내놓아야 하는지 등 정말 많은 단계를 경험해야 한다.

힘들고 지치는 순간이 오겠지만 그럴때마다 내가 왜 개발자가 되기로 결심했는지를 떠올리면서 힘내보려고 한다! 화이티잉!

profile
우당탕탕 개발일기📝🤖

0개의 댓글