OAuth란 Open Authorization의 줄임말으로, 정보의 접근 권한을 부여할 수 있는 개방형 표준이다.사용자가 웹사이트나 애플리케이션에게 비밀번호를 제공하지 않으면서 다른 웹사이트에 있는 자신의 정보에 대한 권한을 부여하는 수단으로 사용된다. OAuth는 2
위 그림은 전통적인 컴퓨팅 아키텍처와 가상화된(virtualized) 컴퓨팅 아키텍처를 각각 나타낸 것이다.전통적인 컴퓨팅 아키텍처를 나타낸 왼쪽 그림에는 하드웨어 위에 하나의 OS가 올라가 있지만, 가상화된 컴퓨팅 아키텍처를 나타낸 오른쪽 그림은 각각의 가상머신(VM
자바스크립트 진영에서 사용되는 ORM들 특징/장단점을 정리해보았다.https://npmtrends.com/ 에서 가져온 npm 다운로드 수를 나타낸 그래프이다. 아래 라이브러리들을 비교해봤다.KnexSequelizeTypeORMPrismaObjection.js
여러 언어들에서 decorator syntax를 지원하기 시작했지만, 그 개념이 아직은 널리 퍼지지 않아 생소한 사람들이 많을 것 같아 이 글을 작성한다. 이 글에서는 decorator 디자인 패턴에 대해 알아본 뒤, decorator 디자인 패턴과 프로그래밍 언어들에
오늘은 예전에 설명을 들었어도 개인적으로 헷갈렸던 개념들을 정리해보려고 한다.Auth는 보통 authentication과 authorization을 통칭하는 말이거나, authentication을 가리킨다.스펠링이 비슷하고 단어가 사용되는 맥락이나 상황도 비슷하여 헷갈
user process로부터 SQL문을 받은 server process는 다음의 과정들을 거쳐 SQL문을 실행한다.parsing: 문법 검사, 의미 검사(올바른 속성, 테이블 이름인지, 등), 권한 검사를 수행한다. Data dictionary 등을 참고해 실행계획을
git이 어떻게 내부적으로 git의 기능들을 구현하였는지, 그 내부 구조를 살펴본다.먼저 아래 설명을 하기 위해 해싱에 대해 먼저 설명을 해볼 것이다.해싱은 어떠한 데이터를 고정된 길이의 해시 값으로 변경하는 것으로, git에서는 해시 값을 통해 git에서 관리하는 오
Node.js에서는 이벤트를 처리하기 위한 event 라이브러리를 지원한다.이벤트를 발생시키면 그 이벤트에 해당하는 이벤트 리스너(함수)가 동작하는 식으로 동작하는데, 아래 간단한 코드를 보면서 더 이야기해보자.EventEmitter는 이벤트의 발생과 처리를 모두 맡는
Node.js의 worker threads를 사용하는 방법에 대해 알아본다.Worker threads는 자바스크립트 코드를 parallel하게 돌릴 수 있도록 해주는 모듈로, 이전 Node 버전에서는 지원되지 않다가 Node v10부터 experimental featu
자바스크립트의 테스팅 프레임워크 Jest를 설치하고 사용하는 방법을 정리한다.Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works with projects using:
함수형 프로그래밍에서 사용되는 용어를 정리하고, 함수형 프로그래밍을 왜 사용해야 하는지에 대한 개인적인 의견을 소개한다.순수 함수는 ‘동일한 인자가 전달되면 항상 동일한 결과를 반환하는 함수’라고 정의된다.순수 함수는 아래와 같은 특징을 가진다.참조 투명성: 함수 바깥
Node.js에서 CommonJS와 ES6 방식으로 표준 입력을 받는 방법을 각각 정리한다.함수 사용법만 설명한 블로그는 많지만, 그 함수가 어떤 함수인지는 설명해놓은 곳이 많이 없어 어떻게 표준 입력이 이뤄지는지 조금 더 자세히 알아보려고 한다. https:
컴퓨터는 레지스터와 여러 메모리 영역들(코드, 데이터, 힙, 스택 영역)을 이용해 코드를 해석하고 실행한다.이 글에서는 코드가 해석되는 동안 컴퓨터 안에서 무슨 일이 일어나는지, 값들이 어디에 저장되는지, 함수 호출과 종료 시에 무슨 일이 일어나는지 살펴본다.프로세스가
우리가 작성한 코드는 컴파일러에 의해 기계어로 변환된다.컴파일 도중 Tokenizing, Lexing, Parsing이 일어나게 되는데, 오늘은 그 세 가지 과정이 무엇인지에 대해 알아볼 것이다.위 세 과정은 코드를 기계가 읽기 편하도록 실제 기계어 번역 전에 알맞게
오늘은 슬랙 봇 API를 이용해봤는데, 결국 원하는대로 구현이 되기는 했지만 생각보다 구현 속도가 너무 오래 걸렸다.결론적으로 말하자면, slack bot API에 대한 이해가 부족했던 탓과, JSON에 대한 이해가 부족했던 탓이다.따라서 오늘은 오늘의 삽질을 다른 날
요즘 자바스크립트를 열심히 공부하고 있다.자바스크립트로 코딩을 많이 해보지는 않아서 서툴고 익숙하지 않다…자바스크립트 코드를 짜던 중 코드 라인 수가 300~400줄이 넘어가면서 생산성이 급격하게 하락하기 시작했다.하나의 파일에 모든 코드를 다 때려박으며 코딩하다 보니
위 사진은 Stack Overflow에서 진행한 언어 사용 순위이다.javascript는 근 몇년간 계속 가장 인기 있는 언어 1위를 지켜왔을 만큼 사람들이 많이 사용하는 언어이다. 하지만 javascript를 사용하다 보면 왜 이렇게 동작하는지 이해되지 않는 부분들이
class를 통해 객체지향을 구현하는 C++이나 java, python과 같은 다른 언어들과는 달리, javascript는 프로토타입을 통해 객체지향을 구현한다는 특징을 가진다.물론 ES6부터는 자바스크립트에 클래스 구문이 추가되었기는 하지만, 그 본질을 보면 java
주의: scope chain은 ES3 이후로 사용되지 않는 표현이다. 그 대신 outer lexical environmental chain 등의 단어로 표현할 수 있겠으나, 더욱 쉬운 이해를 위해 scope chain이라는 표현을 그대로 사용한다. 자바스크립트의 동작을
백준 17070유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다.