Skip to content

Latest commit

 

History

History
80 lines (53 loc) · 4.65 KB

README_week2.md

File metadata and controls

80 lines (53 loc) · 4.65 KB

GDGoC Hongik 프로젝트 트랙 3기 미션 코스

안녕하세요, GDGoC Hongik Organizer 이혁입니다.

지난 1주차 README는 옮겨놓았으니 추후 참고 부탁드려요. 지난 1주일 간 미션은 잘 마무리하셨나요? 아무래도 처음 배우는 내용들이 있다보니 약간은 무리가 있었을 지라도 모두 제한 시간 내에 잘 제출해주셔서 감사합니다.

이번 주차에는 저번 주차 내용을 약간 업그레이드하여 진행할 예정이에요. 다만 대체로 개념 위주의 공부가 이루어집니다. 직접 코드를 짜는 건 다음 미션에서 주로 이루어질 예정이에요.

안내 사항

  • 최하단에 기재된 폴더 구조 형식에 맞춰서 파일을 만들어주세요.
  • 이번 주에 배운 내용들은 모두 개인 블로그에 회고록과 함께 정리하여 업로드 후, 노션에 제출해주세요.
  • 파일의 변경 사항을 Commit으로 최대한 자주 남겨주세요.

[메인 미션 1] API와 친해지자.

학습 목표

  • API의 개념에 대해 이해하고 적용할 수 있다.
  • Restful API가 무엇인지 알고 REST API를 제작할 수 있다.

지난 세션에서 발표했던 API에 대해 기억하시나요? 백엔드에서는 이 API를 다루는 행동을 굉장히 많이 할 예정이에요. 따라서 이 API라는게 정확히 어떤 것이고, 어떻게 이용할 수 있는 지에 대해 배워야 합니다.

또한 단순한 API가 아닌, Restful한 API가 무엇인지 알아보고, 아래 미션에서 적용해보아요. 이를 통해 프론트엔드와 어떻게 소통할 수 있는지를 알 수 있답니다.

  • API 및 Restful API에 대한 내용을 정리해요.

[메인 미션 2] 기능 명세서를 보고 API 명세를 작성하자.

학습 목표

  • API 명세서가 무엇인지 알고, 기능 명세서에 부합하게 작성할 수 있다.

API를 어떻게 주고 받을 지에 대한 내용을 만약 정하지 않는다면 어떻게 될까요? 프론트엔드가 언제 어떻게 요청할 지를 알 수 없으니 이에 대응하기가 어려워요.

그래서 우리는 명세서를 작성하여 프론트엔드에서 어떻게 요청할 지, 또 그에 따라 백엔드가 어떤 응답을 넘겨줄 지를 미리 정해놓아야 해요. 이번에는 이 API 명세서를 작성해보는 연습을 해보려 해요.

지난 번에 ERD 작성한 것을 기반으로 어떻게 데이터를 전달받고 어떻게 데이터베이스에서 데이터를 넘겨줄지를 위주로 생각하면 무리없이 짤 수 있을 거예요.

API 명세를 작성하기 이전에, HTTP에 대한 이해가 필요해요. 물론 데이터통신 수업을 들으신 분은 어느정도 이해할 수 있겠지만 HTTP를 모르고 구성할 수 없어요.

API 작성 가이드라인

위 가이드라인 등을 참고하여 아래 기능 명세서에 부합하도록 API 명세서를 작성하면서, HTTP Request/Response, HTTP Method에 대한 내용들을 정리해주세요.

회원 관리 앱 API 명세 작성하기

  • 기능 명세서 기반으로 API 명세서를 작성해요.
    • API 명세서는 노션 등을 이용하여 정리하고, 링크를 블로그에 첨부해주세요.
  • HTTP 관련 개념을 공부하고 정리해요.

각각의 내용은 본인이 몰랐거나, 중요한 내용 위주로 정리하면 돼요. 기본적인 소통 흐름을 파악해두어야 다음 주 미션을 진행하는데 지장이 없으니 특히 HTTP Method에 대한 내용은 확실하게 공부해두면 좋을 거 같아요.

[메인 미션 3] Django로 API를 구현하기 위한 공부를 하자.

학습 목표

  • Django REST framework가 무엇인지 이해하고, 이용하는 방법을 알 수 있다.

Django에서 API를 활용할 때 사용할 수 있는 프레임워크예요. 앞으로 서버를 구축하게 된다면 많이 사용하게 될 프레임워크이니 미리 공부하고 정리해두면 좋을거 같아요.

  • Django REST franework에 대해 공부하고 정리해요. 정리한 내용은 블로그에 업로드해주세요.

폴더 구조

.
├── README.md
└── mission_course
    ├── manage.py
    └── mission
        ├── __init__.py
        ├── asgi.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py
# 미션을 수행하기 위해 필요한 파일을 자유롭게 추가해주세요.

# 가상 환경을 모두 올리지 않도록 주의해주세요.