본문 바로가기

분류 전체보기

(177)
[3주차 WIL] 2022.11.28 ~ 2022.12.03 회고 3주차가 또 끝이 났다. 11.28(월) ~ 12.1(목) 동안은 Node.js 입문주차 개인 프로젝트와 팀 과제를 수행했다. 노드 입문주차동안은, 노드 환경에서 express 프레임워크를 사용하여 기본적은 CRUD를 구현하였다. 개인 과제 - 게시판 포스팅/댓글 CRUD request.body에 대한 검증 처리를 모든 api에 반복해서 적지 않기 위해, 전역에 검증 함수를 하나 만들어 처리해 주었다. error의 경우도, 지정된 error 메세지와 status 번호를 내보내기 위해, customError class를 만들고, constructor 함수에 매번 필요한 http status 번호와 에러 메세지를 받아서 출력할 수 있도록 처리해주었다. GitHub - jn33-dev/hanghae-week3..
[4주차][20221203] node.js에서 mySQL을 사용하기 위해 알아야 하는 것들 : Sequelize, Migration, Model 오늘은 mySQL을 node.js 환경에서 사용하는 방법을 배웠다. 솔직히 세션 중간에 졸았는데.. 이해가 하나도 안됐다..ㅠㅠ 일단, mongodb는 순한맛이었다. mySQL을 사용하기 위해서는 모델(스키마)만 있어서는 안되고, 마이그레이션이라는 것을 통해서 db를 설정해 준다음에 모델을 업데이트 하여 사용해야 했다. (일단 여기서부터 이해가 안가서..ㅋㅋ) 마이그레이션, 모델, 시퀄라이즈... 이름부터 무시무시해서.. 네 놈들의 정체는 무엇이냐!! 하고 검색을 해봤다. 1. Sequelize Sequelize is a modern TypeScript and Node.js ORM for Oracle, Postgres, MySQL, MariaDB, SQLite and SQL Server, and more..
[4주차] [20221203] jwt - refresh token 동작 시나리오, EADDRINUSE 에러 오늘은 Node.js 숙련주차 시작으로, 쿠키-세션, JWT를 이용한 사용자 정보 인증을 하는 코드 구현을 공부했다. 오늘 공부를 하면서 궁금했던 점과 silly mistake으로 인한 에러를 공유한다. 궁금한 것 AccessToken(A.T.)이 만료되어, 클라에서 RefreshToken(R.T.)만 http 헤더에 실어 서버에 요청을 보낸 경우라고 가정. 현재 강의에서 배운 코드를 보면, R.T.을 이용해서 A.T.을 재발급을 받고 새 A.T.를 클라로 response함. 이후, 클라에서 새로 받은 A.T.를 가지고 request를 날려야 해당 토큰 payload를 디코드해 id validation을 수행함. 그런데, 실제로는 이런 경우에, front에서 새로 받은 토큰을 가지고 자동으로 서버에 va..
[3주차] [20221201] Routing Routing이란? 라우팅은 네트워크에서 경로를 선택하는 프로세스입니다. 컴퓨터 네트워크는 노드라고 하는 여러 시스템과 이러한 노드를 연결하는 경로 또는 링크로 구성됩니다. 상호 연결된 네트워크에서 두 노드 간의 통신은 여러 경로를 통해 이루어질 수 있습니다. 라우팅은 미리 정해진 규칙을 사용하여 최상의 경로를 선택하는 프로세스입니다. - AWS 라우팅란 무엇입니까? - 네트워크 라우팅 초보자 설명서- AWS 라우팅은 네트워크 통신의 효율성을 높입니다. 네트워크 통신 장애가 발생하면 웹 사이트 페이지가 로드될 때까지 사용자가 기다리는 시간이 길어집니다. 또한 웹 사이트 서버에서 많은 수의 aws.amazon.com Routing은 데이터 통신의 최적 경로를 찾아내어 네트워크 통신의 효율성을 높이고, 최대..
[3주차] [20221201] IP 주소와 port, 그리고 DNS 우리가 브라우저에서 구매한 도메인 주소를 입력하면 만들어 놓은 aws EC2 서버까지 전달이 되어서 해당 서버에게 요청을 보낼 수 있습니다. 이 과정이 상세하게 어떻게 진행되는지 그림으로 한번 그려볼까요? 이번 질문에 답하기 위해서, IP주소와 DNS(Domain Name System)알아보자. IP 주소와 Port IP 주소란? IP 주소는 통신이 가능한 모든 기기가 통신을 할 수 있도록 가지는 특수하고 고유한 주소(인터넷상에서 이용하는 주소)이다. IP 주소는 공인주소와 사설주소로 나뉘는데, 일반적으로 인터넷을 사용하기 위해서는 반드시 하나 이상의 공인 주소가 있어야 한다. 터미널에서 nslookup 명령어를 사용해 naver.com의 IP 주소를 조회해 보았다. 아래와 같이, 네덩이로 나눠진 숫자의..
[3주차] [20221130] MongoDB 스키마 설계 Q. 몽고DB로 테이블 설계를 해봅시다. 회원가입을 한 유저가 게시판에 글을 쓰는 서비스입니다. 게시판 목록 페이지에서는 게시글 제목, 작성자 이름 등이 보이겠죠? 각각의 모델은 어떤 모양새이면 좋을까요? 게시판 글 리스트를 불러오는 api 에서는 몽구스 데이터를 어떻게 가져오면 좋을까요? 위의 질문에 답하기 위해서, 우선 mongodb와 같은 비관계형 데이터베이스 설계에 대해 알아보자. 비관계형 데이터베이스에서 설계란? 비관계형 데이터베이스에서 데이터를 저장하는 최소 단위를 Document라고 부르며, 이러한 document의 구조를 크게 embedded 방식과 references(세부적으로 자식 참조, 부모 참조, 상호 참조) 방식으로 나눈다. Embedded 방식 관계를 갖는 데이터 집합을 단일 d..
[3주차] [20221129] 에러 핸들링 에러 핸들링이란? 스크립트가 돌다가, 에러를 만나면 프로그램이 죽으면서 콘솔에 에러와 메세지가 출력된다. 프로그램이 에러를 만나도, 꺼지는 것을 방지하기 위해 에러 핸들링을 한다. 자바스크립트에서는 try...catch를 사용하여 "런타임 에러" 핸들링이 가능하다. try... catch 구문 리터럴 try { // 에러가 날 가능성이 있는 코드 // 에러가 없다면, catch 블럭으로 넘어가지 않고 끝까지 코드를 실행 } catch (err){ // try 구문에서 발생한 에러를 핸들링하고, 프로그램을 죽이지는 않음 // 발생한 에러를 err 객체로 받아옴. // 에러의 주요 프로퍼티는 name과 message가 있으며, 비표준 프로퍼티로 에러가 발생한 스택 번호를 알 수 있는 stack 등이 있음 }..
[3주차] [20221128] REST API와 RESTful 아키텍처, HTTP PUT과 PATCH 차이점 REST APIs란? 우선, API란 application programming interface의 약자로, application 또는 기기간의 연결과 통신 규칙을 의미하는데, REST APIs는 REST 디자인(Representational State Transfer architectural style) 원칙을 전제로 한 API 통신 규칙을 의미한다. HTTP의 주요 저자 중 한 명인 Roy Fielding 박사는 2000년에 자신의 박사학위 논문에서 REST를 발표했는데, REST는 개발자들에게 상대적으로 높은 유연성과 자율성을 보장했다. 이러한 REST의 특성이 REST APIs를 마이크로서비스 설계에 있어 보편적인 통신 방법으로 부상하게 만들었다. REST design principles REST..