til(21)
-
Joi [ TIL ] [ node.js ]
Problem api 를 만들때 일일이 if 로 유효성검사하는 것이 불편하였다. Try 괜찮은 라이브러리가 있나 npm 에서 찾아보았습니다. validation 을 검색했는데 인기있어보이는 라이브러리가 두 개 있었다. express-validator 와 joi 라는 것이 눈에 띄었는데, 둘 중 다운로드 수가 가장 많은 joi 를 선택했다. const Joi = require('joi'); const schema = Joi.object({ username: Joi.string() .alphanum() .min(3) .max(30) .required(), password: Joi.string() .pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')), repeat_password: ..
2023.07.03 -
package.json [ TIL ]
서론 package.json 에 대해 알아보자 Solve package.json이란 현재 프로젝트에 관한 정보와 패키지 매니저를 통해 설치한 모듈들의 의존성을 관리하는 파일이다. npm init -y 위 명령어를 통해 package.json 파일을 생성할 수 있다. 이를 통해 패키지의 상세정보를 빠르게 확인 할 수 있다. main 은 라이브러리의 주된 엔트리 포인트이다. dependencies 는 npm 에서 사용할 수 있는 프로젝트의 종속 사항이며, 패키지를 설치할 때 설치된다. What I Learned package.json 생성 방법과, 간단하게 목적을 알아보았다. dependencies 나 devDependencies 의 모듈의 버전에 대한 자세한 내용을 적지 않았는데 TIL 이 너무 길어..
2023.07.02 -
HTTP [ TIL ]
Problem www.naver.com 을 입력했을 때 일어나는 일을 알아보자 Try 막연하게 네이버가 켜진다 를 생각했었다. 우아한 테크톡 을 시청했고, mdn HTTP 를 보았으며 몇 개의 블로그를 보았다. Solve 전체적인 HTTP 통신을 알게 되었다 . 우선 HTTP 는 하이퍼 텍스트 트랜스퍼 프로토콜의 약자이다. 우선 도메인을 딱 클릭하면 1. DNS 를 통해 IP 주소로 바뀌고 2. 클라이언트는 DNS 서버로 부터 받은 IP 를 사용하여 네이버에 TCP 연결을 한다. 3. 연결이 확인되면 HTTP 요청 메시지를 서버에 보낸다. 4. 서버는 HTTP 요청을 처리하고 요청작업을 수행한다. (클라이언트가 웹 페이지를 요청했다면 HTML, CSS, JS 등의 리소스를 보내준다) 5. 클라이언트는..
2023.07.01 -
객체 지향 프로그래밍 OOP [ TIL ]
Problem node.js 관련 프로젝트 코드를 보던 중 class 를 통해 작성하는 것을 많이 보았다. 객체 지향(OOP)이라는 키워드를 알게 되었고 알아보기로 했다. 객체 지향의 특징들을 알아보자. Try 검색하며 조사하다 보니 OOP 의 개념이 정말 많고, 하루아침에 잘 알게되거나 하는 부분이 아닌걸로 보였다. 그래서 간단한 개념과, 왜 객체지향을 사용하는지에 대해 알아보았다. Solve 객체 지향은 좋은 코드를 짜기 위한 방법이다. 이 좋은 코드는 변경하기 쉽고, 이해하기 쉬운 코드. 쉽게 유지보수가 가능하고 다른 개발자, 나중에 내가 봐도 이해하고 버그를 찾아낼 수 있는 코드이다. 구조화, 추상화 좋은 코드를 쓰려면 나누고 묶어야하는데 복잡한 프로그램을 작은 단위로 나누고 묶어서 정리해야한..
2023.06.28 -
토큰과 캐시 [ TIL ]
Problem 쿠키와 세션에 이어 이해할 수 토큰과 캐시 에 대해 이해해보자 Try 여러 블로그와 강의를 보고 예시를 들어서 정리해보았다. Solve token 토큰은 동물원으로 치자면 티켓이다. 이 토큰 티켓은 언뜻 보기에는 영어 소문자, 대문자, 숫자 등이 마구 섞여 있어서 토큰이 어떤 데이터를 갖고 있는지 어떤 의미인건지 알 수 없다. 동물원은 동물원만 알고있는 비밀키를 가지고 있다. 사용자의 정보를 비밀키를 통해서 랜덤한 문자열 같은 토큰을 발급할 수 있게된다. 이 토큰을 사용자가 갖고 있다가 (인증 요청의 응답 값으로 토큰을 받아서 보관한다.) 동물원에 전달하면 또 다시 이 토큰이 유효한지 토큰에 있는 데이터를 판별해서 다시 사용자를 식별할 수 있게 된다. 그러면 토큰을 사용자가 가지고 있으..
2023.06.27 -
express [ TIL ] [ node.js ]
Problem express 는 무엇인가 Try npm install express const express = require('express') const app = express() const port = 4001 app.get('/', (req, res) => { res.send('안녕 세상아'); }) app.listen(port, () => { console.log(`http://localhost:${port} 연결완료`) }) Solve - node.js 위에서 동작하는 웹 프레임워크 - node.js 개발 시 개발을 빠르고 손쉽게 도와주는 역할, 이는 미들웨어 구조 때문에 가능한 것이다. 자바스크립트 코드로 작성된 다양한 기능의 미들웨어는 개발자가 필요한 것만 선택하여 express 와 ..
2023.06.25