본문 바로가기

전체 글

5주차 1:N, N:M 관 1:N 관계 🧔🏻 익명 게시판으로 서비스를 구현했더니, 너무 악용하는 사용자가 많아졌네요. 따라서 로그인을 해야만 게시글을 작성할 수 있는 서비스로 기획을 변경하겠습니다! ✅ 학습 목표 DB 테이블 설계 1:N 관계 ✅ 요구 사항 - 1단계 💬 아래의 요구사항을 충족시킬 수 있게 DB 테이블을 설계해보자. 사용자는 1개 이상의 게시글을 작성할 수 있다. 게시글의 작성자는 1명 뿐이다. 1개의 게시글에는 1개 이상의 댓글이 달릴 수 있다. 1개의 댓글은 1개의 게시글에만 달릴 수 있다. 사용자는 1개 이상의 댓글을 작성할 수 있다. 댓글의 작성자는 1명 뿐이다. ✅ 요구 사항 - 2단계 게시글 작성 기능 사용자가 요청을 보낼 때 Header에 JWT 토큰을 넘기도록 한다. Header에 JWT 토큰이 담겨.. 더보기
4주차 회원가입, 로그인 기능 추가 학습 목표 JWT에 대한 이해 JWT를 활용한 인증, 인가 구현 로그인, 회원가입 로직 이해 1. 회원가입 기능 회원가입 시 이메일, 패스워드를 받아서, DB에 이메일, 패스워드, 회원 가입 시간을 저장해야 한다. 유저에 대한 정보가 저장될 때, id(PK, primary key)도 같이 Auto-increment 형식으로 저장돼야 한다. 이메일에 반드시 @가 1개만 포함되어 있어야 한다. 이메일에 공백이 포함될 수 없다. 중복된 이메일이 존재할 수 없다. 패스워드에 공백이 포함될 수 없다. 패스워드는 8자 이상 15자 이하여야 한다. (비밀번호는 암호화하지 않고 그대로 저장한다. 암호화하는 건 뒤에서 구현하게 된다.) 2. 로그인 기능 로그인 시 이메일, 패스워드 값을 받는다. 로그인에 성공했을 때, .. 더보기
3주차 API 서버 배포(AWS의 Elastic Beanstalk) + CORS세팅+에러처리 학습 목표 환경 변수 분리 CORS 셋팅 예상치 못한 에러에 대한 처리 AWS의 Elastic Beanstalk를 활용한 서비스 배포 ✅ 요구 사항 환경 변수를 분리해라. 로컬 환경, 배포 환경 2가지로 환경 변수를 분리해라. Node.js에서는 .env를 활용해라. Spring Boot에서는 application.yml(또는 application.properties)를 활용해라. CORS를 설정해라. 예상치 못한 에러에 대해, 상태 코드 500과 에러 메시지로 응답하는 전역 예외 처리 설정을 해줘라. Express.js : https://expressjs.com/ko/guide/error-handling.html Nest.js : https://docs.nestjs.com/exception-filter.. 더보기
2회차 익명 게시판 서비스 개발 시작! Level 2 이번 레벨 부터 본격적으로 서비스 개발을 시작한다. 학습 목표 URL, Http Method를 활용한 기본 라우팅 방법 학습 Request Body, Query Params, Path Params 사용해보기 ORM 사용 엔티티(테이블) 생성 기본적인 CRUD 활용 요청부터 응답까지 전체 과정 경험 REST API 설계 HTTP Status Code (상태 코드) Postman 사용법 요구 사항 게시글 작성 기능 게시글은 제목, 내용을 포함한다. 게시글이 저장될 때, id(PK, primary key)도 같이 Auto-increment 형식으로 저장돼야 한다. 게시글 작성에 성공했을 때, 응답값으로 작성된 게시글에 대한 정보를 보여주어야 한다. 게시글 전체 조회 기능 게시글을 조회할 때 id.. 더보기
1회차 기록 Level 1 LEVEL1 레벨은 큰 두개의 목표가 있다. 첫번째로 NSET 프로젝트 환경 세팅 두번쨰로는 GIthub 셋팅이다. 프로젝트 환경세팅에서는 . IDE세팅으로 node부터 nest를 공부하며 설치한 Visual Studio Code가 이미 설치되어있었다. 그후 Nest CLI 를 활용하여 프로젝트를 생성하고 데이터 베이스를 세팅하는 것이다. 그리고 Github Organization 초대 받았는 지 확인을 하고 네이밍 JSCODE-EDU organization에 자신만의 repository를 만들어라. 커밋 컨변션을 지켜서 initial commit, push 하기 main 브랜치에서 develop 브랜치를 생성하고 commit, push하기 PR(Pull Request) 요청하기 마지막으로 리뷰할 팀원의.. 더보기
slack_nest_study_zerocho Slack 클론 코딩 [백엔드 with NestJS + TypeORM] 에러질문법 Express와의 비교 mysql2는 node와 mysql을 연결시켜주는 드라이버이지 그 자체가 데이터베이스가인다. nest는 알아서 해주는 마법이 많다. NestJS 세팅하기 express보다 fastiy가 더 빠르지만 nest와 express를 사용하면 그 속도가 약간 극복되니 큰 문제가 없다. 핫 리로딩 설정 nodemon 과 같은 기능을 하는 핫리로딩, 파일의 이름수정 또는 생성 삭제시에는 다시 켜는것을 추 Controller 기본 서비스를 분리하는 이유, 컨트롤러 장점 서비스는 요청과 응답에 대해서 모르게 구성하는게 좋다. 테스트가 편해진다. nest에서는 인터셉터만 만들면 저런 응답 함수나 로직을 따로 구성하지 .. 더보기
GraphQL로 영화 API 만들기 #1 [2022 UPDATE] INTRODUCTION #1.0 Welcome (01:20) 이번 수업에서는, GraphQL이 뭔지 배워볼거야. GraphQL이 왜 이렇게 멋진지 알아볼거고, GraphQL이 어떻게 동작하는지 알아볼거야. 그리고 우리는 GraphQL api를 어떻게 직접 만들 수 있는지 알아볼거야. 그리고 우리는 GraphQL의 어떤점이 특별한지를 이해해볼거야. 예를 들면, 깃헙 같은 기업들은 그들의 api를 만드는데 rest보다 GraphQL을 왜 선택했는지. 이 수업이 끝날 때 쯤엔, 우리는 GraphQL위에 구축된 혁신을 보게 될 거야. 우리는 예를들면 PostGraphile 같은 것들을 보게 될거야. 이건 아주아주 멋진 아이야. 얘는 GraphQL api를 얻을 수 있어. postg.. 더보기
GraphQL로 영화 웹 앱 만들기+React #1 [2022 UPDATE] INTRODUCTION #0.0 Welcome 안녕 모두들, 노마드의 graphql react 시작하기 수업에 온걸 환영해! 우리는 reactjs, graphql에서 어떻게 apollo client를 사용하는지 배울거야. apollo client는, 상태관리 라이브러리야. graphql api에서 데이터를 fetch해오는 것을 가능하게 해주고, 어플리케이션에서 로컬로 상태를 관리할 수 있게도 해주지. 같은 라이브러리로 우리는 두 가지 일을 할 수 있어. 서버에 있는 데이터를 가지고 오는 것과, 로컬에 있는 데이터를 관리하는 것. apollo client로 할 수 있는 가장 좋은 점은, 이 두 종류의 데이터를 동기화할 수 있어. 너가 로컬에 있는 상태를 관리하는데에 라이브러리.. 더보기