https://github.com/kim-sunah/node_project_-challenge_homework

 

GitHub - kim-sunah/node_project_-challenge_homework: Node.js 심화 주차 개인과제

Node.js 심화 주차 개인과제. Contribute to kim-sunah/node_project_-challenge_homework development by creating an account on GitHub.

github.com

📢 개요

🏁 목표

  1. 관심사 분리와 유지보수에 용이한 3-Layered Architecture를 이해하고 적용 합니다.
  2. 객체지향프로그래밍의 기초인 Class를 이해하고 적용합니다.
  3. ORM 변경을 통해, 3-Layered Architecture 적용 전후의 유지보수 용이성을 체감합니다.

🛠️ 기술 스택

  1. 웹 프레임워크
    • Node.js의 대표적인 웹 프레임워크인 Express를 이용합니다.
  2. 패키지 매니저
    • npm 또는 yarn을 이용합니다.
    • 둘 중 어떤 것을 사용해도 좋지만, 혼용(package-lock.json, yarn.lock 파일이 동시에 존재)하는 것은 지양합니다.
  3. 모듈 시스템
    • 기본 모듈 시스템(CJS, type: "commonjs") 또는 ES6 모듈 시스템(ESM, type: "module")을 이용합니다.
    • 둘 중 어떤 것을 사용해도 좋지만, 혼용(require/exports와 import/export 를 동시에 사용)하는 것은 지양합니다.
  4. 데이터베이스
    • RDBMS 중 가장 대중적으로 많이 알려진 MySQL을 사용합니다.
    • 직접 설치하지 않고, Cloud 서비스인 AWS RDS를 이용합니다.
  5. ORM
    • MySQL의 데이터를 쉽게 읽고 쓰게 해주고, 타입 안정성을 제공하는 Prisma를 사용합니다.

📢 요구사항

1️⃣ 개발

  1. 본인이 작성한 숙련 주차 과제 코드를 복사해서 심화 주차 과제를 위한 저장소를 생성합니다.
    • 숙련 주차 과제를 완성하지 못한 경우
      • 숙련 주차 해설 영상에 제공 된 소스코드를 Fork해서 사용합니다.
    • Github 저장소 Fork 방법
      1. Fork 하고자 하는 Github 저장소로 이동하여 오른쪽 위의 Fork 버튼을 누릅니다.
      2. Owner에 자신의 Github ID와 Repository name에 원하는 이름을 지정한 후, Create fork 버튼을 누릅니다.
      3. 이동 한 페이지에 forked from 원본 저장소 주소가 표시되면 정상적으로 fork가 완료 된 것입니다.
      4. Fork 한 저장소를 clone 해서 사용하면 됩니다.
  2. Sequelize로 구현 된 과제 코드를 3-Layered Architecture를 적용해서 구조를 변경합니다.
  3. Controller, Service, Repository Layer는 Class를 이용해 구현합니다.
    • Class의 Method는 화살표 함수(Arrow Function) 형태로 구현합니다.
  4. Repository Layer의 Sequelize로 구현된 코드를 Prisma로 변경합니다.
    1. **(선택)** 에러 처리 Middleware를 추가하여, 에러를 한 곳에서 관리합니다.

2️⃣ API 동작 확인

  1. Thunder Client, Rest Client, Insomnia 등을 이용하여 구현 한 API가 정상 동작하는지 확인합니다.
  2. (선택) REST Client를 사용해, 추후 협업 시 이용할 수 있도록 문서(.http or .rest)를 작성한 후 소스코드와 함께 Git으로 관리합니다.

3️⃣ 배포

  1. AWS EC2 인스턴스에 프로젝트를 배포합니다.
  2. PM2를 이용해 Express 서버가 종료 되거나, EC2 인스턴스가 재부팅 되어도 다시 실행되도록 설정합니다.
  3. **(선택)** **AWS ALB(Application Load Balancer)**를 이용해서 포트 번호를 입력하지 않아도 접속할 수 있도록 설정합니다.

📢 개요

🏁 목표

  1. 관심사 분리와 유지보수에 용이한 3-Layered Architecture를 이해하고 적용 합니다.
  2. 객체지향프로그래밍의 기초인 Class를 이해하고 적용합니다.
  3. ORM 변경을 통해, 3-Layered Architecture 적용 전후의 유지보수 용이성을 체감합니다.

🛠️ 기술 스택

  1. 웹 프레임워크
    • Node.js의 대표적인 웹 프레임워크인 Express를 이용합니다.
  2. 패키지 매니저
    • npm 또는 yarn을 이용합니다.
    • 둘 중 어떤 것을 사용해도 좋지만, 혼용(package-lock.json, yarn.lock 파일이 동시에 존재)하는 것은 지양합니다.
  3. 모듈 시스템
    • 기본 모듈 시스템(CJS, type: "commonjs") 또는 ES6 모듈 시스템(ESM, type: "module")을 이용합니다.
    • 둘 중 어떤 것을 사용해도 좋지만, 혼용(require/exports와 import/export 를 동시에 사용)하는 것은 지양합니다.
  4. 데이터베이스
    • RDBMS 중 가장 대중적으로 많이 알려진 MySQL을 사용합니다.
    • 직접 설치하지 않고, Cloud 서비스인 AWS RDS를 이용합니다.
  5. ORM
    • MySQL의 데이터를 쉽게 읽고 쓰게 해주고, 타입 안정성을 제공하는 Prisma를 사용합니다.

📢 요구사항

1️⃣ 개발

  1. 본인이 작성한 숙련 주차 과제 코드를 복사해서 심화 주차 과제를 위한 저장소를 생성합니다.
    • 숙련 주차 과제를 완성하지 못한 경우
      • 숙련 주차 해설 영상에 제공 된 소스코드를 Fork해서 사용합니다.
    • Github 저장소 Fork 방법
      1. Fork 하고자 하는 Github 저장소로 이동하여 오른쪽 위의 Fork 버튼을 누릅니다.
      2. Owner에 자신의 Github ID와 Repository name에 원하는 이름을 지정한 후, Create fork 버튼을 누릅니다.
      3. 이동 한 페이지에 forked from 원본 저장소 주소가 표시되면 정상적으로 fork가 완료 된 것입니다.
      4. Fork 한 저장소를 clone 해서 사용하면 됩니다.
  2. Sequelize로 구현 된 과제 코드를 3-Layered Architecture를 적용해서 구조를 변경합니다.
  3. Controller, Service, Repository Layer는 Class를 이용해 구현합니다.
    • Class의 Method는 화살표 함수(Arrow Function) 형태로 구현합니다.
  4. Repository Layer의 Sequelize로 구현된 코드를 Prisma로 변경합니다.
    1. **(선택)** 에러 처리 Middleware를 추가하여, 에러를 한 곳에서 관리합니다.

2️⃣ API 동작 확인

  1. Thunder Client, Rest Client, Insomnia 등을 이용하여 구현 한 API가 정상 동작하는지 확인합니다.
  2. (선택) REST Client를 사용해, 추후 협업 시 이용할 수 있도록 문서(.http or .rest)를 작성한 후 소스코드와 함께 Git으로 관리합니다.

3️⃣ 배포

  1. AWS EC2 인스턴스에 프로젝트를 배포합니다.
  2. PM2를 이용해 Express 서버가 종료 되거나, EC2 인스턴스가 재부팅 되어도 다시 실행되도록 설정합니다.
  3. **(선택)** **AWS ALB(Application Load Balancer)**를 이용해서 포트 번호를 입력하지 않아도 접속할 수 있도록 설정합니다.

📢 개요

🏁 목표

  1. 관심사 분리와 유지보수에 용이한 3-Layered Architecture를 이해하고 적용 합니다.
  2. 객체지향프로그래밍의 기초인 Class를 이해하고 적용합니다.
  3. ORM 변경을 통해, 3-Layered Architecture 적용 전후의 유지보수 용이성을 체감합니다.

🛠️ 기술 스택

  1. 웹 프레임워크
    • Node.js의 대표적인 웹 프레임워크인 Express를 이용합니다.
  2. 패키지 매니저
    • npm 또는 yarn을 이용합니다.
    • 둘 중 어떤 것을 사용해도 좋지만, 혼용(package-lock.json, yarn.lock 파일이 동시에 존재)하는 것은 지양합니다.
  3. 모듈 시스템
    • 기본 모듈 시스템(CJS, type: "commonjs") 또는 ES6 모듈 시스템(ESM, type: "module")을 이용합니다.
    • 둘 중 어떤 것을 사용해도 좋지만, 혼용(require/exports와 import/export 를 동시에 사용)하는 것은 지양합니다.
  4. 데이터베이스
    • RDBMS 중 가장 대중적으로 많이 알려진 MySQL을 사용합니다.
    • 직접 설치하지 않고, Cloud 서비스인 AWS RDS를 이용합니다.
  5. ORM
    • MySQL의 데이터를 쉽게 읽고 쓰게 해주고, 타입 안정성을 제공하는 Prisma를 사용합니다.

📢 요구사항

1️⃣ 개발

  1. 본인이 작성한 숙련 주차 과제 코드를 복사해서 심화 주차 과제를 위한 저장소를 생성합니다.
    • 숙련 주차 과제를 완성하지 못한 경우
      • 숙련 주차 해설 영상에 제공 된 소스코드를 Fork해서 사용합니다.
    • Github 저장소 Fork 방법
      1. Fork 하고자 하는 Github 저장소로 이동하여 오른쪽 위의 Fork 버튼을 누릅니다.
      2. Owner에 자신의 Github ID와 Repository name에 원하는 이름을 지정한 후, Create fork 버튼을 누릅니다.
      3. 이동 한 페이지에 forked from 원본 저장소 주소가 표시되면 정상적으로 fork가 완료 된 것입니다.
      4. Fork 한 저장소를 clone 해서 사용하면 됩니다.
  2. Sequelize로 구현 된 과제 코드를 3-Layered Architecture를 적용해서 구조를 변경합니다.
  3. Controller, Service, Repository Layer는 Class를 이용해 구현합니다.
    • Class의 Method는 화살표 함수(Arrow Function) 형태로 구현합니다.
  4. Repository Layer의 Sequelize로 구현된 코드를 Prisma로 변경합니다.
    1. **(선택)** 에러 처리 Middleware를 추가하여, 에러를 한 곳에서 관리합니다.

2️⃣ API 동작 확인

  1. Thunder Client, Rest Client, Insomnia 등을 이용하여 구현 한 API가 정상 동작하는지 확인합니다.
  2. (선택) REST Client를 사용해, 추후 협업 시 이용할 수 있도록 문서(.http or .rest)를 작성한 후 소스코드와 함께 Git으로 관리합니다.

3️⃣ 배포

  1. AWS EC2 인스턴스에 프로젝트를 배포합니다.
  2. PM2를 이용해 Express 서버가 종료 되거나, EC2 인스턴스가 재부팅 되어도 다시 실행되도록 설정합니다.
  3. **(선택)** **AWS ALB(Application Load Balancer)**를 이용해서 포트 번호를 입력하지 않아도 접속할 수 있도록 설정합니다.

📢 개요

🏁 목표

  1. 관심사 분리와 유지보수에 용이한 3-Layered Architecture를 이해하고 적용 합니다.
  2. 객체지향프로그래밍의 기초인 Class를 이해하고 적용합니다.
  3. ORM 변경을 통해, 3-Layered Architecture 적용 전후의 유지보수 용이성을 체감합니다.

🛠️ 기술 스택

  1. 웹 프레임워크
    • Node.js의 대표적인 웹 프레임워크인 Express를 이용합니다.
  2. 패키지 매니저
    • npm 또는 yarn을 이용합니다.
    • 둘 중 어떤 것을 사용해도 좋지만, 혼용(package-lock.json, yarn.lock 파일이 동시에 존재)하는 것은 지양합니다.
  3. 모듈 시스템
    • 기본 모듈 시스템(CJS, type: "commonjs") 또는 ES6 모듈 시스템(ESM, type: "module")을 이용합니다.
    • 둘 중 어떤 것을 사용해도 좋지만, 혼용(require/exports와 import/export 를 동시에 사용)하는 것은 지양합니다.
  4. 데이터베이스
    • RDBMS 중 가장 대중적으로 많이 알려진 MySQL을 사용합니다.
    • 직접 설치하지 않고, Cloud 서비스인 AWS RDS를 이용합니다.
  5. ORM
    • MySQL의 데이터를 쉽게 읽고 쓰게 해주고, 타입 안정성을 제공하는 Prisma를 사용합니다.

📢 요구사항

1️⃣ 개발

  1. 본인이 작성한 숙련 주차 과제 코드를 복사해서 심화 주차 과제를 위한 저장소를 생성합니다.
    • 숙련 주차 과제를 완성하지 못한 경우
      • 숙련 주차 해설 영상에 제공 된 소스코드를 Fork해서 사용합니다.
    • Github 저장소 Fork 방법
      1. Fork 하고자 하는 Github 저장소로 이동하여 오른쪽 위의 Fork 버튼을 누릅니다.
      2. Owner에 자신의 Github ID와 Repository name에 원하는 이름을 지정한 후, Create fork 버튼을 누릅니다.
      3. 이동 한 페이지에 forked from 원본 저장소 주소가 표시되면 정상적으로 fork가 완료 된 것입니다.
      4. Fork 한 저장소를 clone 해서 사용하면 됩니다.
  2. Sequelize로 구현 된 과제 코드를 3-Layered Architecture를 적용해서 구조를 변경합니다.
  3. Controller, Service, Repository Layer는 Class를 이용해 구현합니다.
    • Class의 Method는 화살표 함수(Arrow Function) 형태로 구현합니다.
  4. Repository Layer의 Sequelize로 구현된 코드를 Prisma로 변경합니다.
    1. **(선택)** 에러 처리 Middleware를 추가하여, 에러를 한 곳에서 관리합니다.

2️⃣ API 동작 확인

  1. Thunder Client, Rest Client, Insomnia 등을 이용하여 구현 한 API가 정상 동작하는지 확인합니다.
  2. (선택) REST Client를 사용해, 추후 협업 시 이용할 수 있도록 문서(.http or .rest)를 작성한 후 소스코드와 함께 Git으로 관리합니다.

3️⃣ 배포

  1. AWS EC2 인스턴스에 프로젝트를 배포합니다.
  2. PM2를 이용해 Express 서버가 종료 되거나, EC2 인스턴스가 재부팅 되어도 다시 실행되도록 설정합니다.
  3. **(선택)** **AWS ALB(Application Load Balancer)**를 이용해서 포트 번호를 입력하지 않아도 접속할 수 있도록 설정합니다.

'TIL' 카테고리의 다른 글

20231213_TIL  (0) 2023.12.13
20231212_TIL  (0) 2023.12.13
20231208_TIL  (1) 2023.12.11
20231206_TIL  (1) 2023.12.06
20231204_TIL  (0) 2023.12.04

+ Recent posts