오늘부터 코드 스테이츠 소프트웨어 엔지니어링 부트캠프 Full 31기 과정이 시작하였다.앞으로 진행될 6개월이라는 기간동안 많은 내용을 배우기 때문에 일 단위로 배운 내용을 정리하면서 주마다 통합해서 따로 포스팅을 하는게 효과적일 것 같다고 생각이 들어 \*\*Pair
시작하며 오늘은 부트캠프 2일차로 본격적으로 프로그래밍에 대해서 배우기 시작한 날이다. javaScript의 기초적인 부분들을 배웠고 처음으로 Pair Programming을 진행하였다. javaScript에 대해 배운면서 느낀 것은 지금은 아주 기초적인 부분에 해당되
javaScript의 기초를 배워갈수록 궁금하거나 답답했던 부분들이 해소가 된다. 웹개발이 어떠한 과정으로 진행되고 내가 앞으로 어떤 방식으로 공부를 해야할지, 나아가서 개발자가 되면 어떤 일을 하게 될지가 그려져서 다행히 내가 선택한 길이 틀리지 않았다는 생각이 들었
오늘은 javaScript에 대한 기본적인 내용을 마치고 반복문 관련 문제들을 풀어보았다. 코드 스테이츠에서 제공하는 javsScript와 관련된 강의는 오늘이 마지막으로 추후 다른 프로그래밍 언어나 프레임워크에 대해 배울때 사용 될 있지만, 앞으로 javaScrip
시작하며 어제 javaScript에 대한 기초를 마치고 오늘부터 HTML과 CSS의 기초 파트를 처음 배우게 되었다. javaScript를 처음 접한지 일주일만에 다른 내용으로 넘어가기 때문에 기존에 배운 내용을 철저하게 복습해서 혼동하지 않도록 노력해야겠다는 생각이
오늘은 지금까지 배운 javaScript, html, CSS을 바탕으로 계산기가 출력되는 웹페이지를 Pair Programming으로 제작하였다. 세가지 언어를 복합적으로 사용하면서 웹페이지가 제작되는 과정의 기초를 이해할 수 있었다.코드 스테이츠에서 제공하는 프로토타
오늘은 어제하던 계산기 과제를 Nightmare 단계까지 구현이 가능하도록 수정하였다. Pair와 막히는 부분에 대해서 생각해보기로 하고 과제를 마쳤는데, 혼자 1시간 정도 코드를 수정하다보니 Nightmare 단계까지 완료가 되어서 오늘은 알고리즘에 대해서 Pair에
시작하며 오늘은 CLI의 기본적인 사용법과 node.js, nvm, npm
git 작업하던 파일을 편집하기 전 상태로 되돌리고 싶을 때 가장 간단한 방법은 파일을 수정할 때마다 따로 저장해두었다가 필요한 버전을 여는 것이다. 그러나 편집할 때마다 따로 저장해두는 과정은 번거롭고 어떤 파일이 필요한 버전인지 구분하기도 어렵고 협업할 경우 더 복
오늘은 Pair Programming을 통해 git의 기본적인 기능을 사용해보았다. remote add를 통해 pair의 Remote Repository와 연결해서 번갈아가며 push와 pull을 통해 수정하고 merge conflict가 발생하는 상황을 연출해서 해결
이번주에는 1주차에 처음 배웠던 javaScript의 새로운 개념을 배울 예정이다. 오늘 배운 내용은 배열(Array)인데 그동안 코딩테스트 문제를 풀어와서 이미 알고 있는 개념이라 무리없이 진행할 수 있었다.배열은 순서가 있는 값으로 각 index(0,1,...,4)
오늘은 javaScript의 객체(object)에 대해서 학습하였다. 코드테스트를 풀어보면서 많이 등장했던 개념은 아니여서, 문법, 구조 정도만 알고 있었는데 다른 개념과 헷갈리지 않도록 객체의 특성을 잘알아두는 것이 중요하다고 생각한다.객체는 배열과 다르게 순서가 없
오늘은 CSS의 레이아웃을 나누는 방법을 만들고 flex를 활용하여 목업 페이지를 작성하는 과제를 수행하였다. 이전과 다르게 html부터 css까지 처음부터 제작하는 과제를 통해 놓치고 있던 부분들을 알 수 있는 좋은 기회였다.목업이란 단어는 '목업폰'처럼 실제 기능이
오늘은 javaScript의 핵심 개념들을 배우고 새로운 문법에 대해서 배웠다. 그동안 코딩을 하면서 왜 오류가 나는지 몰랐던 부분, 추상적으로만 이해하고 정확한 원리는 몰랐던 부분들을 알 수 있었다. 아직 javaScript의 모든 내용을 배운 것이 아니기 때문에 기
오늘은 javaScript의 Spread/Rest 문법에 대해서 학습하고 이번주에 배운 내용을 바탕으로 Pair Programming을 통해 헷갈릴 수 있는 개념들에 대한 문제를 expect 함수의 내용을 작성하는 형식으로 진행하였다. 이해했다고 생각했던 부분들에 대한
오늘부터 매일 두 문제씩 javaScript 코딩 문제를 풀어서 제출하는 과제가 추가 되었다. 기존에 코딩 테스트 사이트에서 문제를 많이 풀어왔고 아직은 난이도가 낮아서 시간 내에 통과할 수 있었다. 꾸준하게 javaScript에 대해 공부해서 높은 단계의 수준까지 올
오늘은 DOM에 기본적인 내용을 마치고 배운 내용을 복습하였다. 확실히 CSS와 마찬가지로 여러번 사용해보면서 익히는 것이 더 좋다고 생각해서 반복적으로 실습해보았다.이벤트 객체대부분의 웹페이지들이 정적으로 멈춰있기보다는 사용자의 움직임에 맞춰서 변화하게 된다. 웹페이
오늘은 javaScript의 고차함수에 대해서 학습하였다. 코딩테스트를 하면서 알게 되었던 함수들을 정확한 개념을 이해할 수 있어서 도움이 되었다. 이전에는 사용법만 알고 사용했다면 오늘 배운 내용을 통해 작동원리나 다른 활용법을 알 수 있었다.고차 함수고차함수란 다른
오늘은 React에 대해서 배웠는데 항상 새로운 내용을 학습할 때마다 초반에는 기초적인 개념을 배우는 단계이다 보니 원하는 기능을 구현하지 못해서 답답한 느낌이 든다. javaScript를 처음 배울 때에도 코딩 테스트 사이트의 문제들을 풀지 못해서 답답했었는데 지금은
전통적인 웹사이트에서는 사용자가 웹사이트 내의 다른 페이지로 이동하면, 브라우저가 페이지를 보여주기 위해 매번 HTML 파일로 된 "페이지 전체"를 불러와야만 했지만, SPA가 등장하면서 중복되는 부분은 제외하고 업데이트가 필요한 부분만 새로 불러올 수 있게 되었다.S
오늘은 React의 Props와 State에 대해서 학습하였다. 이전에 스프린트를 진행하면서 컴포넌트에 변수를 전달하는 방법이나 어느 컴포넌트에서 import를 해줘야 하는지 궁금했었는데 이번 챕터를 통해 알 수 있었다.정의컴포넌트의 속성(property)을 의미하며
오늘은 React의 State & Props 기능을 활용하여 트윗 페이지를 구현하는 과제를 수행하였다. 과제를 통해 React의 문법과 작동원리를 이해하는데 도움이 되었다.Router를 사용하여 왼쪽 사이드바를 눌렀을 때 각각 해당하는 페이지가 출력되도록 하였고 use
이번주부터 Section 2를 시작하며 javaScript의 class에 대해서 학습하였다. 이전에 javaScript에 대해서 혼자 공부하면서 자주 나왔던 개념이였는데 실제로 코드를 작성해보면서 확실하게 이해할 수 있었다.classclass란 속성과 메소드가 정의되어
재귀함수란 함수가 자신을 다시 호출하는 구조로 만들어진 함수이다. 재귀함수는 종료조건이 있어야 하고, 종료조건을 설정해주지 않으면 무한 반복을 하게 되며, 재귀함수로 작성이 되는 코드는 반복문으로도 작성할 수 있다.자연수로 이루어진 리스트(배열)의 합을 구하는 알고리즘
시작하며 javaScipt stringifyJSON
오늘은 여러 데이터들의 묶음을 저장하고 사용하는 방법을 정의한 자료구조에 대해서 학습하였다. 실제 현업에서는 수많은 데이터를 처리하기 때문에 데이터들의 특성에 맞는 자료구조를 통해 관리하는 것이 중요하다. 다양한 자료구조를 이해하고 javaScript의 배열 혹은 cl
오늘은 어제 배운 자료구조를 이어서 트리 순회의 종류와 실제 구현하는 방법을 실습하며 자료구조에 대해 더 깊게 이해할 수 있도록 학습하였다.특정 목적을 위해 트리의 모든 노드를 한 번씩 방문하는 것을 트리 순회라고 하며 모든 노드를 순회하는 방법엔 크게 세 가지가 있다
오늘은 비동기 챕터를 본격적으로 들어가기 전에 고차함수와 Callback 함수에 대해서 복습하고 배열 메소드가 브라우저에서 지원되지 않을때 사용하던 underscroe.js 라이브러리를 실제로 구현하는 스프린트를 진행하였다.기존에 사용했던 배열 메소드들을 직접 구현함으
오늘은 비동기 챕터를 본격적으로 시작하며, 비동기 호출의 개념과 작동원리를 배우고 Callback, Promise, async/await 세가지 방법을 학습하고 실제 코드를 구현하는 스프린트를 진행하였다.요청에 대한 결과가 동시에 일어나지 않는 것을 비동기적이라고 말하
오늘은 Promise와 async/await를 활용하여 비동기 함수를 작성하는 스프린트를 진행하였다. Node.js의 fs.readFile 메소드와 fetch API를 활용하여 코드를 작성하면서 Promise의 사용법을 익힐 수 있었다.실제 코드로 구현해보면서 Prom
오늘은 네트워크의 기초 부분을 새롭게 학습하였다. 클라이언트와 서버가 어떻게 상호작용 하는지를 배우면서 프론트엔드 개발자와 백엔드 개발자의 역할을 이해하고 웹브라우저의 작동원리를 알게 되었다.정의쇼핑몰 앱을 이용할때, 인터넷이 연결되어 있지 않다면 상품의 목록을 불러올
정의REST API에서 REST는 “Representational State Transfer”의 약자로, 웹에서 사용되는 모든 자원을 HTTP URI로 표현하고, HTTP Method를 통해 요청과 응답을 정의하는 방식을 말하며, REST API를 사용한다는 것은 RE
오늘 React의 States 끌어올리기와 Effect Hook을 학습했는데, Section 1의 마지막 부분에 jsx의 기본 문법과 React의 States와 Prop에 대해 배운 것이 React와 관해 학습한 전부이기 때문에 챕터에 들어가기 전에 복습을 진행하였다.
오늘은 리액트의 state와 effect를 사용하여 항공 정보를 받아와 출력하고 필터링할 수 있는 페이지를 구현하는 스프린트를 진행하였는데 이전에 배웠던 fetch와 Rest API를 이용하여 데이터를 받아오고 외부에서 필터링하는 코드를 구현하였다.명언이 담긴 배열을
오늘은 이전 챕터에서 배운 CORS를 바탕으로 클라이언트가 문자열을 request할때, 대문자 혹은 소문자로 변환된 문자열을 response 해주는 서버를 구현하는 스프린트를 진행하였다. 서버를 구현할때 사용되는 node에서 규정된 객체들이나 메소드가 많아서 새롭게 공
오늘은 어제 node의 http 트랜젝션을 사용하여 구현한 웹 서버를 Express.js를 사용한 코드로 변환하는 스프린트를 진행하였다. 기존에 복잡하게 작성했던 코드들을 단순하게 작성할 수 있어서 Express 프레임워크는 잘 활용할 수 있어야겠다고 생각했다.MERN
오늘은 이번주에 배운 네트워크관련 내용과 Express.js를 바탕으로 클라이언트의 요청에 따라 항공 정보와 예약 정보를 조회, 추가, 수정하는 서버를 구축하는 스프린트를 진행하였다.
오늘은 CSS를 컴포넌트로 분리하여 개발할 수 있는 Component Driven Development 관련 내용을 학습하였고 자주 사용되는 React 기능중 useRef를 학습하였다. 이전에는 CSS의 기본적인 내용을 배웠다면 오늘은 복잡한 프로젝트를 진행하거나 재사
오늘은 styled components를 활용하여 웹페이지 상에서 자주 사용되는 UI를 구현하는 스프린트를 진행하였다. React와 CSS의 문법과 기능을 복습하면서 새로운 작성 방식을 익힐 수 있었다.styled components는 React와 CSS의 기본적인 문
오늘은 어제에 이어서 styled components를 활용하여 웹페이지 상에서 자주 사용되는 UI를 구현하는 스프린트를 진행하였다. React의 useRef를 활용하고 CSS의 문법과 기능을 복습하면서 새로운 작성 방식을 익힐 수 있었다.사실 코드는 어제 작성을 하고
오늘은 Redux 파트를 학습하기 전에 이전에 배웠던 내용을 바탕으로 React를 사용하여 쇼핑사이트의 장바구니 기능을 구현하였다. 컴포넌트로 페이지를 구분하고 Side Effect를 고려하면서 코드를 작성하고 로컬과 전역상태를 구분하는 것이 React 자체를 이해하는
시작하며 오늘은 별도의 Store를 만들어서 데이터를 관리할 수 있는 상태 관련 라이브러리인 Redux를 학습하고 어제 구현했던 쇼핑몰 페이지를 Redux를 사용하여 데이터를 관리할 수 있도록 구현하는 스프린트를 진행하였다. Redux 정의 React는 단방향 데이터
오늘은 이전에 useState를 사용하여 구현했던 간단한 장바구니 기능이 구현된 웹페이지를 Redux를 사용하여 데이터를 관리할 수 있도록 수정하는 스프린트를 구현하였다. 이론으로만 학습했을때 이해되지 않았던 것들이 실제로 코드를 작성하면서 어떤 방식으로 State가
오늘은 Section 3를 처음 시작하는 날로 사용 권한과 환경 변수에 관련한 내용을 학습하였다. 일정에 여유가 있어서 오늘 배운 내용을 복습하는 것 외에 앞으로 배울 내용을 살펴보고 미리 학습하면 좋을 내용이 있을지 찾아보았다.r, w, x는 각각 read permi
오늘은 자주 사용하는 알고리즘과 시간복잡도에 대해 학습하였다. 코딩 테스트의 문제를 풀 때 제한 사항에 시간 복잡도가 자주 등장했지만 알지 못했는데 이번 챕터를 통해서 개념을 이해할 수 있었다.Big-O(빅-오)Big-Ω(빅-오메가)Big-θ(빅-세타)위 세 가지 표기
오늘은 수학에서 사용하는 개념들을 알고리즘에 적용시켜 실제 코드로 작성하는 법을 학습하였다. 순열, 조합 등 이미 알고 있었기 때문에 개념을 이해하는 것은 어렵지 않았으나 실제 코드로 작성하려니 막막함을 느꼈다. 여러 예시들을 찾아보면서 재귀를 사용해서 답을 구하는 과
오늘은 데이터베이스를 사용하기 위해 필요한 SPL에 대해서 학습하였다. 프레임워크나 라이브러리를 학습했던 것과 달리 완전히 새로운 언어를 배우기 때문에 많은 내용을 이해하기 위해 시간을 들였다. 다행히 SQL은 실제 언어와 비슷하기 때문에 어렵지 않게 명령어를 익힐 수
오늘은 데이터베이스의 스키마를 디자인해보고 실제 SQL파일을 작성하여 테이블을 생성하고 명령문을 작성하여 테스트하는 스프린트를 진행하였다. SQL의 명령문들을 사용하여 원하는 정보를 필터링하는 것도 중요하지만 처음에 데이터베이스를 설계할 때 웹페이지의 작동원리와 기능에
오늘은 지난주에 이어서 조건에 맞게 테이블을 생성하고 원하는 데이터를 리턴하도록 명령문을 작성하는 스프린트를 수행하였다. SELECT에 필요한 테이블이 여러개일 때 JOIN을 사용해서 데이터를 추출하는 법을 익힐 수 있어 SQL에 대한 이해도를 높일 수 있었다.처음에
오늘은 예전에 리덕스를 사용해서 구현했던 Cmarket 페이지의 상품목록과 주문내역을 저장하고 불러오는 기능을 SQL을 사용하여 데이터베이스에 실제 웹페이지처럼 정보가 영구적으로 저장될 수 있도록 구현하는 스프린트를 진행하였고그 후 SQL의 추가적인 내용을 학습하였다.
오늘은 관계형 데이터베이스의 테이블을 객체 지향 프로그래밍 언어와 연결시켜 효율적으로 데이터베이스를 생성, 관리할 수 있는 ORM에 대해서 학습하였고 대표적인 라이브러리인 Seequelize을 설치하고 사용법을 익히는 스프린트를 진행하였다.MVC(모델-뷰-컨트롤러)는
오늘은 Sequelize를 사용하여 클라이언트에게서 URL주소를 받아 데이터베이스에 저장한뒤, 해당 id를 params로 GET 요청을 보내면 원래의 URL로 리디렉션하는 기능을 하는 서버&데이터베이스를 구현하는 스프린트를 진행하였다. 생소한 Sequelize를 직접
오늘은 NoSQL 중에서 널리 사용되는 도큐먼트 데이터베이스인 MongoDB에 대해서 학습하였다. MongoDB를 설치하고 쿼리를 배우고 실제로 사용하면서 그동안 학습한 관계형 데이터베이스에 비해 어떤 장점이 있고 어떤 경우에 사용하는 것이 좋을지 생각해 볼 수 있었다
오늘은 지난주에 SQL 파트를 마치고 인증/보안 파트를 처음 시작하는 날이다. 이전에 학습했던 HTTP에 이어서 보안기능이 강화된 HTTPS를 학습하고 실제 서버와 클라이언트에서 HTTPS를 사용해서 Session 기능을 구현하는 스프린트를 진행하였다.정의HTTPS는
오늘은 Session에 이어서 새로운 인증방식인 Token에 대해서 학습하고 Session을 이용하여 구현하였던 웹페이지와 유사한 웹페이지를 Json Web Token 인증 방식을 이용하여 구현하는 스프린트를 구현하였다.Session 인증 방식은 서버에서는 유저가 민감
시작하며 오늘은 인터넷 사용자들이 다른 웹사이트 상의 자신들의 정보에 대해 접근 권한을 부여할 수 있는 OAuth에 대해 학습하고 실제 Github에서 OAuth 인증을 통해 사용자 정보를 불러오는 스프린트를 진행하였다. OAuth 정의 OAuth2.0은 인증을 위한
오늘은 컴퓨터 공학 기초 파트를 학습하며 문자열, 그래픽, 운영체제 등 컴퓨터가 어떤 방식으로 작동하는 지를 학습하였다.유니코드유니코드(Unicode)는 유니코드 협회(Unicode Consortium)가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다
오늘은 어제에 이어서 컴퓨터 공학과 관련된 가비지 컬렉션과 캐시에 대해서 학습하였다. 코스에 있는 내용으로는 이해가 되지 않는 부분이 많아서 구글링하고 관련 문서를 찾아보며 이해하기 위해 노력하였다.정의가비지 컬렉션은 프로그램에서 더 이상 사용하지 않는 메모리를 자동으
오늘은 네트워크에서 클라이언트와 서버가 데이터를 주고 받는 방식들과 원리, 각 방식들의 장단점, 세부적인 옵션들을 학습하였다.
오늘은 Section 1에서 처음으로 Git에 대해서 학습한 이후에 처음으로 추가적인 부분인 Branch에 대해서 학습하였다. 예전에 배운 내용을 복습하면서 새로운 내용에 대해 이해하면서 실제 현업이라 프로젝트 시에 유용하게 활용할 수 있는 Branch에 대해 배울 수
오늘은 이전에 Vercel에 이어서 배포에 대한 자세한 내용을 학습하고 자주 사용되는 AWS 서비스를 이용하여 서버, 클라이언트를 배포하는 스프린트를 진행하였다.기존 서버의 한계기존 서버를 확장하기 위해서는 같은 공간에 더 많은 컴퓨터를 제공하여 한 대가 해결할 수 있
오늘은 어제 AWS EC2와 S3를 이용하여 웹페이지를 배포하고 서버를 가상화를 통해 실행시키는 과정에 이어서 RDS를 사용하여 데이터베이스를 생성하여 서버와 연결하는 스프린트를 진행하였다. 오늘은 스프린트 진행외에 추가적으로 학습한 내용이 없어서 스프린트간 알게 된
오늘은 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼인 Docker에 대해서 학습하고 이미지와 컨테이너를 생성하고 추가적으로 docker-compose와 volume 옵션을 활용하는 스프린트를 진행하였다.정의도커(Docker)는 리눅스 컨테
오늘은 이전에 AWS의 S3와 EC2를 이용해서 진행했던 배포를 CodePipeline을 이용하여 자동화하는 스프린트를 진행하였다. 수정사항이 발생할 때마다 변경된 파일을 다시 배포하는 과정이 번거롭다고 생각했는데 자동화를 통해 편리하게 배포가 가능했다.정의배포 자동화