IT STUDY LOG
[SECTION 1] <WAS, Web Server 실습> Introduction 본문
devops bootcamp 4/project log
[SECTION 1] <WAS, Web Server 실습> Introduction
roheerumi 2023. 4. 3. 09:27
# 실습 프로젝트 개요
개요
Achievement Goals
- API 문서를 작성할 수 있습니다.
- Fastify를 이용해 DB와 통신하는 서버를 만들 수 있습니다.
- PostgreSQL을 이용하여 DB를 구성할 수 있습니다.
- GitHub을 활용하여 팀원들과 협업합니다.
Bare Minimum
- 관계형데이터베이스를 위한 데이터를 모델링하고, API 문서화를 진행합니다.
- CRUD 기능을 가진 한개의 API 서버를 완성합니다.
- 클라우드 서비스 데이터베이스를 사용하여 데이터를 영속적으로 저장합니다.
- Git을 이용한 협업을 진행합니다.
Advanced
- 주어진 기능 명세 외에 필요하다고 생각되는 명세를 추가로 개발합니다.
- 선택한 주제 외에 API 서버를 추가 완성합니다.
- 관계형 데이터베이스와 NoSQL의 차이를 이해하고, 관계형 데이터베이스 및 NoSQL이 어떤 경우에 적합한지 이해합니다.
제작 범위 및 기술 스택
- 백엔드를 만듭니다.
- Fastify를 사용합니다.
- 데이터베이스를 사용해야 합니다. 즉, 데이터 모델을 디자인해야 합니다.
- Entity-Relationship Diagram (ERD)을 그려야 합니다.
- API 문서를 만들어야 합니다.
- Method, Endpoint, Request, Response가 예시와 함께 포함되어야합니다.
제작 범위가 아닌 것
- 프론트엔드는 평가에 포함되지 않습니다.
- 다만, 최종 완성된 형태를 염두해두고 프로토타이핑을 하는 것은 애플리케이션 이해에 도움이 되므로 최소 요구사항에 대한 구현이 끝난 후 구상해서 제출할 수 있습니다.
- 완전한 인증 구현까지는 염두하지 않아도 좋습니다. 그러나 사용자 테이블은 필요합니다.
진행 과정에서 참고할 내용
1. DB 설계
2. 주제 선정
3. ERD 작성
- https://dbdiagram.io/home 활용
4. API 문서 작성
- Swagger 활용 등
5. 프로젝트 세팅
6. 구현
7. 구현사항 제출
8. 회고 작성
일정 및 마일스톤
Day1
시간 | 제목 | 내용 | 기타 |
09:00 ~ 10:00 | 인트로 | 실습과제1 개요 안내 | |
10:00 ~ 11:00 | 데이터베이스 설계 | 관계형 데이터베이스의 테이블과 테이블 사이의 관계에 대해 공부합니다. | |
11:00 ~ 11:30 | 주제 분석 | 주어진 주제를 분석합니다. | |
11:30 ~ 12:00 | ERD 및 API 문서제작 | ||
13:00 ~ 16:00 | ERD 및 API 문서제작(계속) | ||
16:00 ~ 16:30 | ERD & API 발표준비 | 발표 자료 제출 | 레포지토리 내부 제출용 파일을 채워주세요. |
16:30 ~ 18:00 | ERD & API 발표 | 팀발표로 진행됩니다. |
Day2
시간 | 제목 | 내용 | 기타 |
09:00 ~ 10:00 | Project Setting | fastify 프로젝트 생성 및 DB 연결 | Day2 학습 콘텐츠를 참고해주세요. |
10:00 ~ 12:00 | Milestone1 | DB 구성 및 서버 연결 | |
13:00 ~ 18:00 | Milestone2 | API 문서에 따른 서버 구현 |
Day3
시간 | 제목 | 내용 | 기타 |
09:00 ~ 11:30 | 프로젝트 잔여 업무 진행 | Day2 중 미비된 사항 진행 | 최소 요구사항을 모두 완성한 팀은 더 필요하다고 판단되는 추가 기능을 구현합니다. |
11:30 ~ 12:00 | 구현사항 제출 | 정상작동 여부확인 | 팀 레포 2.Functional_Requirements 문서에서 구현 완료 기능에 체크표시를 추가합니다(빈 대괄호 안에 x 추가) |
13:00 ~ 15:30 | 회고 작성 | Error handling 작성 | 느끼고 배운 것을 기록해도 괜찮습니다. |
15:30 ~ 18:00 | 회고 발표 | 개인발표로 진행됩니다. |
# 실습 과제 안내
참고 마일스톤
- DAY 1
- 리소스에 대한 데이터 모델링
- ERD완성
- API 명세 중 3개 완성(엔지니어와 함께 확인 후 나머지 4개 진행)
- API 명세 7개 모두 완료
- 발표준비
- 발표진행(전체 또는 엔지니어 선정 일부 조)
- DAY 2
- Fastify로 프로젝트 시작하기(팀원 1인이 진행 - 화면 공유)
- 팀 레포 클론 후 해당 경로로 이동
- fastify generate . 으로 프로젝트 기본 파일 생성
- npm install을 통해 의존성 설치
- npm run dev를 통해 서버 실행 테스트
- fastify의 autoload/sensible 모듈 업데이트 적용 필요 에러메세지 발생한 경우
- npm i @fastify/autoload
- npm i @fastify/sensible
- fastify의 autoload/sensible 모듈 업데이트 적용 필요 에러메세지 발생한 경우
- 브라우저 or Postman을 통해 /example 경로 조회 확인
- 깃허브 협업환경 구성
- 팀장 작업 내용 레포에 업로드
- 각 팀원이 팀 레포 클론 후 각자 이름으로 routes폴더 내에 새로운 폴더 형성 (example 폴더 참고) 후 조회할 수 있도록 진행
경로 : //routes/kimcoding 'use strict' module.exports = async function (fastify, opts) { fastify.get('/', async function (request, reply) { return "김코딩 완료" }) }
- commit, push, pr 진행
- 로컬에서는 각자 /routes/example, /routes/kimcoding 만 존재하는 상태
- 깃허브에 업로드
- 팀원 전체 routes가 적용된 레포를 pull해서 테스트
- pull 받은 레포에는 /routes/example, /routes/kimcoding, /routes/parkdevops, /routes/leecloud 존재
- localhost:3000/{수강생이름} 경로 조회시 각 팀원의 이름이 전부 조회되어야함
- Database Connect 확인
- ElephantSQL에서 프리티어 데이터베이스 생성(Tiny Turtle)
- 플러그인 적용은 유어클래스 학습 영상을 참고
- 플러그인 적용 후 commit, push
- 각 팀원이 pull 진행 후, 환경설정 적용(각자 .env 구성)
- ElephantSQL 데이터에 연결해서 서버기능 확인
- GET 메소드에 대한 서버기능 구현
- 나머지 메소드에 대한 서버기능 구현
- Fastify로 프로젝트 시작하기(팀원 1인이 진행 - 화면 공유)
- DAY3
- 노션페이지로 회고 제출
- 동료 회고 읽기 + 공감 내용에 댓글 작성
- 회고 발표 : 댓글수 기준 상위권 + 엔지니어 선정 회고
- 회고발표 이후 아래 사항 중 팀 상황에 맞게 진행
- 미비된 API구현 진행
- 요구사항 외 추가 기능 구현
- API가 요청되는 시점을 고려한 프론트앤드 프로토 타입 구상 및 업로드
API.md 작성 예시
Method | Path | Request Header | Request Body | Response Status Code | Response Body |
GET | /articles | - | - | 200 OK | list-of-article |
GET | /articles?user={user_id} | - | - | 200 OK | list-of-article |
list-of-article
[
{
"id": "1",
"author": "John Doe",
"content": "This is my first post!",
"created_at": "2023-03-18T02:27:43.511Z",
"updated_at": "2023-03-18T02:27:43.511Z"
},
{
"id": "2",
"author": "John Doe",
"content": "I love DevOps!",
"created_at": "2023-03-18T04:01:53.722Z",
"updated_at": "2023-03-18T04:01:53.722Z"
}
]
'devops bootcamp 4 > project log' 카테고리의 다른 글
[SECTION2] <AWS 배포 자동화> DAY 4 LOG (0) | 2023.05.02 |
---|---|
[SECTION2] <AWS 배포 자동화> DAY 3 LOG (0) | 2023.05.01 |
[SECTION2] <AWS 배포 자동화> DAY 2 LOG (0) | 2023.04.28 |
[SECTION2] <AWS 배포 자동화> DAY 1 LOG (0) | 2023.04.27 |
[SECTION1] <WAS, Web Server 실습> 회고 (0) | 2023.04.05 |
Comments