본문 바로가기

외부 활동/JSCODE[NEST]

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) 요청하기 마지막으로 리뷰할 팀원의.. 더보기