본문 바로가기

프로그래머스 풀스택 데브코스/데브코스 회고록

웹 풀사이클 데브코스 회고록 11월

첫 회고록

어느덧 웹 풀사이클 프로그래머스 데브코스가 시작된지 2주가 넘었다. 이 국비지원교육에서 지난 2주동안 배웠던 것에 대해 간단하게나마 정리해 글로 남기고자 한다. 먼저 알게 된 사실들에 대해 간단히 요약하고 배운점에 대해 서술하고 어디에 이를 적용할 수 있을까에 대해 고민해보도록 하겠다.

공부했던 것들

버전 관리시스템과 터미널 명령어

프로그램의 버전관리를 위한 VCS에 대해 학습하였다. 우리는 그중에서도 제일 널리 쓰이고 있는 Git 이라는 분산식 버전 관리 시스템에 대해서 학습하였다. 또한 터미널에서 자주 쓰이는 CLI 주요 명령어에 대해서 학습하였고, 이어서 git CLI 명령어에 대해서도 학습하였다.
Git과 함께 짝을 이루는 Github에 대해서도 공부했다. Git이 로컬쪽 저장소를 담당한다면 Github는 원격저장소로서 다른 컴퓨터와 이를 공유할 수 있도록 해준다. 어떻게 로컬에 있는 코드를 원격저장소에 올리고, 또 다른 사람의 코드를 로컬로 받아올 수 있는지에 대해 학습하였다.
깃허브로 협업을 하기 위해서는 브랜치라는 개념에 대해 알아야했다. 브랜치는 말그대로 작업의 흐름을 나타내는 가지로 병렬로 프로젝트를 구현해나가기 위해 사용한다. 이 브랜치들을 main에서 따로 파서 각각의 기능을 구현하고 이를 병합하면 프로그램이 완성된다. 일반적으로는 병합이 자동으로 되지만 혹시 작업한 파일이 같을 경우 충돌이 일어날 수 있다. 이 충돌이 일어날 경우 우리는 수동으로 어떤 것을 최종적으로 채택할 것인지 골라주어야한다.

웹과 웹개발의 이해

인터넷이란 무엇인지, 은 무엇인지 웹의 역사, 특징, 구조에 대해서 학습하였다. 클라이언트서버라는 개념과 그 개념간의 차이점에 대해서도 학습하였다. 프로토콜 이라고 하는 컴퓨터가 서로 정보를 주고받을 때 지켜야하는 약속과 그 대표적인 예시인 HTTP에 대해서도 배웠다.
웹 개발 직무에 대해서도 학습하였다. 웹 개발에는 프론트엔드, 백엔드, 풀스택 세가지 종류가 있다. 프론트엔드는 클라이언트측을, 백엔드는 서버측을 개발하고, 풀스택은 그 둘다를 개발하는 것을 말한다.

HTML,CSS,Javascript

먼저 프론트엔드에서 쓰이는 대표적인 언어 3가지인 HTML, CSS, Javascript 에 대해 공부하였다.
HTML은 HyperText Markup Language의 약자로 웹에서이 정보를 표시하는 기본적인 언어이다. HTML은 태그 라는 단위로 이루어져있고 태그는 각각의 기능을 가지고 있다.
CSS는 HTML로 표현된 정보의 디자인을 담당하는 언어로 인라인방식, 내부 스타일시트, 외부 스타일 시트 세가지 방식으로 사용한다.
자바스크립트는 HTML의 특정요소를 선택하여 제어할 수 있는 스크립트 언어로 여타 다른 프로그래밍 언어들 처럼 조건문, 변수, 함수등의 기능들을 갖추고 있다.

Node.js

다음은 자바스크립트로 서버를 만들수있는 노드js에 대해 학습하였다. 노드는 index,Server, Router, requestHandler 등의 요소로 이루어져있고 이를통해 클라이언트에서 특정 URL로 들어오는 요청을 처리해 줄 수 있다.

데이터베이스

데이터베이스는 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체이다. 우리는 이 데이터베이스 관리 시스템 중 MariaDB에 대해 학습하였고 데이터베이스에 연산을 요청하기 위해 사용되는 언어로 SQL이 있다. SQL의 연산에는 대표적으로 CREATE, SELECT, INSERT, UPDATE 등이 있다.
Docker 에 대해서도 배웠는데, OS 위에 도커가 한층 깔리고 각각의 어플리케이션마다 컨테이너를 제공해 독립성을 높여준다.
이 데이터베이스는 Node.js 와 같이 서버와 연결될 수 있는데 실습을 통해 노드에서 데이터베이스를 사용해보았다.

실습 과제

첫번째 과제는 지금까지 배웠던 HTML과 CSS 지식을 활용해서 나만의 포트폴리오 사이트 만들기었다.
두번째 과제는 데이터베이스에 관한 과제였다. 요구사항들이 주어지고 데이터베이스 ERD를 설계하고 실제로 그 데이터베이스들을 만들어보는 것 까지가 과제였다.
과제를 먼저 해서 제출하고 다음날에 강사님의 피드백을 받았다.

배운점

11월달에 했던 내용은 Nods.js를 제외하고는 사실 대부분 이미 알고있는 내용이었다. 하지만 내가 알고있다고 생각했던것도 사실은 많이 부족하다는 것도 알게되었다. 가장 체감이 되었던 부분은 Git 이었다. 실제로 지금도 깃을 사용하고 있지만 강의를 듣고 나서 내가 그동안 브랜치와 merge, 로컬과 리모트 저장소에 대한 개념이 명확하지 않은 채로 막 사용했다는 것을 깨달을 수 있었다.
Node.js 에 대해서는 이번이 처음으로 학습하는 것이다. 아직 맛보기만 한 수준이지만 노드가 어떤 구조로 작동하는지에 대해 대략적으로 알 수 있었다.
데이터베이스도 기존에는 MySQL만 사용해보았지만 이번에는 MariaDB를 사용해 볼 수 있었다. 아직 복잡한 SQL문을 사용할 일은 없어서 큰 차이를 느끼진 못했지만 최근 현업에서 많이 사용되는 데이터베이스라고 하니 열심히 배워볼 생각이다.
Docker에 대해서도 이전까지는 들어만 보았지만 이번 기회에 개념을 잡고 갈 수 있어서 좋았다.

앞으로

다음 사이클부터는 노드를 이용한 백엔드에 대해 본격적으로 학습한다. 11월에 배운 것들은 코딩부트캠프 뿐만 아니라 앞으로의 학습을 위해 가장 기본이 되는 지식들로 활용할 기회가 정말 많을 것으로 생각한다. 배웠던 Git, HTML, CSS, Javascript, DBMS등의 학습을 여기서 끝내지 않고 계속 이어나가도록 노력할 것이다.

 

 

키워드: 프로그래머스 데브코스, 국비지원교육, 코딩부트캠프