MapReduce Model MapReduce란 대용량의 데이터를 처리하기 위한 분산프로그래밍 모델로 타고난 병행성을 내포하고 있다. Map단계와 Reduce단계로 처리과정을 나눠서 작업 Map : 흩어져있는 Data를 key, value형태로 연관성 있는 데이터로 묶
재귀함수와 메모리 사용량 간의 관계 재귀함수는 함수의 호출이 반복적으로 이루어지기 때문에 성능에 좋지 않다고 한다. 자칫 스텍 오버플로우를 일으킬 수 있다. 그렇다면 우리는 왜 재귀함수를 쓰는가? 거기에 대한 해답이다 알고리즘 자체가 재귀적으로 표현하는게 가독성이 좋을
OOP(Object Oriented Programming) OOP(Object Oriented Programming)는 객체 지향 프로그램을 말한다. 우리가 제일 잘 아는 객체 지향 프로그램은 대표적으로 JAVA가 있다. 객체 지향 프로그램은 다음과 같은 4가지 특징을
javascript는 모든 객체의 속성과 메소드를 상속 받기 위해서 prototype을 사용합니다. 이렇게 상속 받은 객체는 또 그 상위의 객체에서 상속을 받을 수 있습니다. 이렇게 상속에 상속을 받으면서 연결 되는 것을 'Prototype Chain' 이라고 합니다.
스택이란, 데이터를 더미 처럼 쌓아 놓고 가장 위(가장 최근 데이터)의 항목을 기분으로 작업을 수행하는 방식이다.스택을 구현하는 모듈은 최소 다음 두 가지 연산을 제공한다.push(el) : 새 항목 el를 스택의 가장 위에 추가pop() : 스택의 가장 위의 항목을
그래프, 위의 그림이 자료구조의 그래프다. 우리가 흔히 아는 그래프랑은 차원이 다르게 생겼다. 보자마자 머리가 아프게 생겼다. 그래프는 '여러개의 점들이 서로 복잡하게 연결되어 있는 관계를 표현한 자료구조'이다. 그래프는 여러개의 정점과 간선으로 구성되어 있다.정점 :
그래프는 다양한 자료구조 가운데 가장 유연한 구조를 가지고 있다. 이러한 그래프를 가지고 알고리즘을 작성 한다고 한다면 대표적인 탐색 두 가지 탐색 방법이 있다. 스택을 이용한 DFS(Depth First Search : 깊이 우선 탐색)과 큐를 이용한 BFS(Brea
나름 코스를 수강하면서 정말 열심히 복습과 예습을 했다고 생각 했는데... 이번 HA를 통해서 놓치고 있는 것들이 많다고 느끼게 되었다. '구조분해할당' 파트가 바로 그러하다. 코안즈 시간을 대충 대충 넘겼다는게 여기서 뽀록났다... 이제 부터라도 놓친 부분을 바로 잡
코드스테이츠 Asynchronous와 Promise에 들어가기에 앞서 예습을 하다가, 반드시 알아둬야 한다고 해서 공부도 할겸 블로깅을 통해 학습하려고 한다.마치 쇠사슬 처럼 객체를 연결고리로 함수를 지속적으로 호출한다고 하여 Method Chaining입니다.먼저,
Synchronous : 동기적인 처리, 요청을 받고 작업을 처리하는 동안 다른 요청을 멈춘다.Asynchronous : 비동기적인 처리, 요청을 받으면서 작업을 처리위 사진에서 보면 동기적인처리는 하나의 작업이 끝나야지 다음 작업을 실행하기 때문에 시간이 걸리는 반면
async & await
비동기 이벤트 주도 js런타임으로써 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 도와준다. Non-blocking IO와 단일 스레드 이벤트 루프를 통해 높은 처리 성능을 가지고 있다.앞서 설명 했듯이 Node.js 라이브러리 내의 API는 모두 비동기식이다.
Ajax(Asynchronous JavaScript and XML) : 비동기적인 웹 애플리케이션의 제작을 위해 다음과 같은 조합을 이용하는 웹 개발 기법이다.표현 정보를 위한 HTML과 CSS유저와의 상호작용을 위한 DOM, Javascript비동기적으로 데이터를 주
Client 손님을 뜻한다. Server 서빙하는 사람을 뜻한다. Architectur >리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것을 2-Tier아키텍처, 혹은 클라이언트-서버 아케텍처라고 한다.
앞선 포스팅에서는 클라이언트와 서버에 대한 간략한 설명을 했다. 이제는 조금 더 깊게 들어가서 js로 어떻게 서버에 요청을 보내는 클라이언트를 구현할 것인지 살펴보도록 하겠다.먼저, 자바스크립트 내에서 서버의 url을 정의해 준다.이렇게 서버의 url주소를 변수로 선언
앞에서는 client의 요청을 보내는 것을 구현해보았다. 그렇다면 이제는 서버에서 그 요청을 받아서 응답을 처리하는 js를 구현해 볼 것이다.요청을 처리하고 응답을 하는데 앞서 우리는 먼저 서버를 구축해야만 한다. 다음 코드가 서버를 생성하는 기초적인 식이다.위 작업을
브라우저는 자바스크립트를 구동하게 된다. 다시말해 자바스크립트에 의해서 브라우저는 위협을 받는다. 자바스크립트는 무궁무진하게 실행 가능한 일들이 많다. 때문에 자바스크립트로 위험한 일들도 실행이 가능하다.Ajax call을 해서 API를 호출 할 수 있다.다이나믹하게
공식문서에서 설명하기를 Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크다.이 프레임워크를 이용하면 다음과 같은 강점을 가진다.미들웨어를 붙이기 쉽다.자체 라우터를 제공한다.이 부분에 대해서 하나씩 알아보도록 하자.express 사용을 위해서는 먼저 설치를 해
API를 작성할 때, 리소스에 따라서 서로 다른 API규칙이 있다. 이 부분을 해결하기 위해 등장한 것이 바로 RESTfull API(rePresentational State Transfer) 이다. 이는 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이
모든 모듈은 자신만의 독립적인 영역이 있어야 한다.모듈 정의는 전역객체인 exports 객체를 이용한다.모듈 사용은 require 함수를 이용한다.범용적인 목적으로 JavaScript를 사용하지 위한 필수 과제는 모듈화이다. Node.js도 이런 모듈화 작업덕에 탄생할
React는 사용자 인터페이스를 만들기 위한 Javascript 라이브러리 중 하나이다.선언형컴포넌트 기반위 두 가지는 React의 특징이다.React는 상호작용이 많은 UI를 만들 때 생기는 어려움을 줄여준다. 애플리케이션의 각 상태에 대한 간단한 뷰만 설계하면 데이
엘리먼트를 저장하기 위해 변수를 사용할 수 있다. 출력의 다른 부분은 변하지 않은 채로 컴포넌트의 일부를 조건부로 렌더링 할 수 있다.{ 조건식 && 참일 때 값 } 거짓일 때는 항상 false로 평가된다. 만약 조건이 false라면 React는 무시된다. 주의 { 조
HTML 폼 엘리먼트는 폼 엘리먼트 자체가 내부 상태를 가지기 때문에, React의 다른 DOM엘리먼트와 다르게 동작한다. 폼의 제출을 처리하고 사용자가 폼에 입력한 데이터에 접근하는게 편리하다. 이를 가능하게 하는 방식이 제어컴포넌트(Controlled Compone
React에는 다음과 같은 불편함이 있었다.컴포넌트 사이에서 상태 로직을 재사용하기 어렵다.복잡한 컴포넌트들은 이해하기 어렵다.Class는 사람과 기계를 혼동시킨다.다음과 같은 문제점을 해결하기 위해 등장한 것이 바로 Hook이다.Hook : Class 없이 상태를 관
💰 Cmarket
Redux > Redux : Store를 통한 예측 가능한 상태 관리 라이브러리 React만을 이용해서 상태를 관리하는 것은 한계를 가지고 있다. 몇개 되지 않는 상태를 다루는데는 크게 복잡함이 없이만, 이 상태가 무지막지하게 많아진다면 상태를 다루는데 있어 매우
너무 많이 들어본 단어라서 비전공자라도 이 뜻은 알 것이다.Data Base : Server가 Client에게 제공할 정보를 저장해둔 곳이렇게만 이해해도 충분하다. 그렇다면 우리는 여기서 무엇을 더 알아야 하는가?SQL을 통해서 데이터베이스를 다룰 수 있다.데이터베이스
ORM을 이해하기 전에 먼저 영속성 이라는 개념을 이해할 필요가 있다.프로그램이 종료되어도 사라지지 않는 데이터의 특성영속성을 가지지 않는 데이터는 메모리에만 존재하기 때문에 프로그램 종료 시, 모두 사라진다.영구적인 객체 : 데이터를 파일시스템 혹은 DB를 통해서 영
우리는 앞서 ORM이라는 것을 배웠다. 이 ORM을 구현하기 쉽게 해주는 라이브러리가 바로 Sequelize이다.node.js에서 SQL문을 사용하지 않고 DB를 조작할 수 있게 해주는 라이브러리
MongoDB는 대표적인 NoSQL 도큐먼트 데이터베이스다.도큐먼트 데이터베이스데이터를 테이블이 아닌 문서처럼 저장하는 데이터베이스이러한 비관계형 데이터베이스는 다음과 같은 경우에 많이 사용한다.데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장할 경우클라우드
HTTP와 HTTPS는 둘다 같은 역할을 한다. 차이점은 HTTPS는 보안장치가 더 결합된 통신방식이다.둘은 같은 의미로 이해하고 있는 경우가 많다. 이는 맞기도 틀리기도 하다. HTTPS 프로토콜은 SSL 위에서 돌아가는 프로토콜 이다.SSL은 TLS와 같은 것이다.
HTTP는 stateless(무상태성) 인데 어떻게 우리의 정보가 유지 될까?바로 Cookie가 이를 가능하게 한다.서버가 일방적으로 클라이언트에 전달하는 작은 데이터서버가 웹 브라우저에 정보를 저장하고 불러올 수 있는 수단해당 도메인에 대해 쿠키가 존재하면, 웹 브라
세션기반 인증 = 서버(혹은 DB)에 유저 정보를 담는 방식위 같은 세션기반 인증이 주는 부담을 클라이언트에게 넘겨줄 방법을 고안해서 나온 것이 대표적으로 토큰기반 인증 JWT(JSON Web Token)이다.여기서 토큰은 유저 정보를 암호화한 상태로 담을 수 있고,