한용재님의 'NestJS 로 배우는 백엔드 프로그래밍' 책을 읽고 작성하는 글입니다. GitHub: https://github.com/dextto/book-nestjs-backend Ch1. Hello NestJS 1.1 NestJS 의 장점 Express 또는 Fastify 프레임워크를 래핑하여 동작합니다. 1.2 Express 가 좋을까, NestJS 가 좋을까 NestJS 는 2022년 3월에 8.4.0 을 릴리스했고, 깃허브를 통해 커튜미케이션도 활발히 하고 있습니다. 1.3. NestJS 설치 1.3.1 Node.js 설치 집필 시점에 최신 Node.js LTS 버전은 16.14.0 입니다. (지금은 20.xx 대) 1.3.2 NestJS 프로젝트 생성 설치 npm i -g @nestjs/cli..
Backend
조시 골드버그의 '러닝 타입스크립트' 책을 읽고 작성한 문서입니다. Ch1. 자바스크립트에서 타입스크립트로 1.1 자바스크립트의 역사 1.3 타입스크립트 타입스크립트는 네 가지로 설명됩니다. 프로그래밍 언어: 자바스크립트의 모든 구문과, 타입을 정의하고 사용하기 위한 새로운 타입스크립트 고유 구문이 포함된 언어 타입 검사기: 자바스크립트 및 타입스크립트로 작성된 일련의 파일에서 생성된 모든 구성 요소 (변수, 함수 등) 를 이해하고, 잘못 구성된 부분을 알려주는 프로그램 컴파일러: 타입 검사기를 실행하고 문제를 보고한 후 이에 대응하는 자바스크립트 코드를 생성하는 프로그램 언어 서비스: 타입 검사기를 사용해 비주얼 스튜디오 코드와 같은 편집기에 개발자에게 유용한 유틸리티 제공법을 알려주는 프로그램 1.4..
노마드코더의 NestJS 강의를 듣고 작성하는 글입니다. #0 INTRODUCTION 0.1 Welcome OOP, FP, FRP 를 사용한다. Express 와 Typescript 를 사용한다. 0.2 Requirements Node.js, VSCode 설치, insomnia 설치 Rest client 이다. 이걸로 엔드포인트를 테스트할 수 있다. 0.3 Project Setup CLI 설치 npm i -g @nestjs/clinest new [프로젝트명] #1 ARCHITECTURE OF NESTJS 1.0 Overview npm run start:dev파이썬 FastAPI 처럼 데코레이터가 있다. 핫리로드가 적용된다. 1.1 Cotrollers 모듈은 user, photo 모듈과 같은 단위이다. 컨..
Part 1. 파이썬 필수 문법 & 백엔드의 이해 Ch 2. 변수와 데이터타입 미리 정의된 예약어들 Dynamic Typing 은 생산성을 올려주지만, 예기치 못한 이슈가 생길 수 있다. 파이썬은 기본적으로 스네이크 케이스를 사용한다. % 연산자 사용하기 c언어에서 사용하던 방식과 유사 format 함수 포맷 스트링: f-문자열 직관적이고, 가독성이 좋다. Ch 4. 흐름제어 (조건문, 반복문, 예외처리) 예외처리 간단한 예외처리를 실습해보자. Ch 5. 함수와 모듈 03. 함수 매개변수와 반환 04. 다양한 매개변수 실습 기본 매개변수는 일반 매개변수 뒤에 둬야한다. 기본 매개변수에는 가변객체를 넣을 때 조심하자. 가변인자 리스트 dictionary 로 전달해도 된다. 전달하려면 앞에 ** 를 붙여야 ..
이 글은 압둘라지즈 압둘라지즈 아데시나가 지은 FastAPI 를 사용한 파이썬 웹 개발 의 책을 보고 공부한 내용입니다. 우선 Go 를 해보고 난 후, 고민을 많이했다. 많이 쓰이는 노드나 파이썬 중에 하나를 제대로 파보고 싶었다. 이미 패캠에 노드강의를 끊어놓은게 하나 있지만, 노드는 자바스크립트에 익숙하지 않은 내게.. 타입스크립트, ES6, 7, 8 까지 진입장벽이 너무 높아보였다.. 그리고 저번에 주섬 (필자가 최근에 한 프로젝트) 회식 때 넷이 언어에 대한 얘기를 했는데, 그때 xx 님이 생각하는 자바스크립트의 방향성에 대한 얘기를 듣고, 집가는 길에 꽤 많이 생각하게 되었다. (다른 언어를 많이 따라하는 경향에 대한 이야기.. 정체성이라고 해야하나..) 또, 해커톤에 참여해 빠르게 개발해보고 ..
사이드 프로젝트에서 애플로그인을 구현할 일이 생겼다. jwt 에 대해서는 알고 있었고 구현도 해봤지만, OAuth2 는 해본 적이 없고 개념도 안 잡혀있어 같이 공부했다. JWK 란 ? Json web key 의 약자. JWT 서명 검증을 위한 정보를 담은 JSON 표준이다. JWT 를 사용하는 서비스들이 public key 를 제공하기 위해 key 에 접근할 수 있는 URL 을 제공하고 있다. 애플의 경우 아래 링크에 접속하면 3개의 키를 제공하는 것을 확인할 수 있다. 다른 OAuth2.0 로그인보다 애플은 간단하지 않다. 다음은 애플의 public key 이다. JWT 구성 요소에 대해 설명해보면 - "kty" : 키 타입 - "kid" : 앞서 jwt의 header에 kid가 들어가는 경우도 있다..
최근 사이드 프로젝트를 하면서 Go 서버를 컨테이너에 띄운 상태로 개발하게 되었다. 컨테이너 환경에서의 개발에서는 익숙하지 않아 컨테이너 환경에서 디버그를 공부하는 글을 작성하려고 한다. main.go 파일을 작성 후 main.go package main import ( "log" "net/http" "strconv" ) const port = "8000" func main() { http.HandleFunc("/fib", fibHandler) log.Printf("listening on port %s", port) log.Fatalln(http.ListenAndServe(":"+port, nil)) } func fibHandler(w http.ResponseWriter, r *http.Request) ..
스터디원들과 함께 스터디하기로 정한 책입니다. 스터디하고 혼자, 혹은 같이 공부한 내용 작성했습니다. 이 책에 대한 예제 파일은 https://github.com/wikibook/docker-ci 여기서 확인할 수 있습니다. 01. 도커란 ? 1.1 도커 설치하기 도커 데스크탑 설치 (Mac) brew install --cask docker윈도우는 apt get 으로 설치하거나 홈페이지에서 설치하면 된다. 설치하는데 꽤나 오래걸린다. 도커 어플리케이션을 Spotlight 로 실행 후에는 1.2 도커와 기존 가상화 기술의 차이점 Cgroup 과 네임스페이스 Cgroup 과 네임스페이스는 다른 프로세스 사이에 벽을 만드는 리눅스 커널의 기능입니다. Cgroup 은 CPU, 메모리, 네트워크 대역폭, HD I..