본문 바로가기

스파르타 내일배움캠프

TIL37

오늘은 팀원들과 앞으로할 마지막 프로젝트를  향해 달려가고있다.. 사실 이전 프로젝트와 drf 수업과정에서 따라가기에 바쁜관계로 제대로 정리하지못하고 따라가느라 바빴던 과거를 후회하지만 이렇게라도 최종프로젝트에서는 TIL을 작성하면서 나의 마지막에 유종의 미로 거두기 위하여 TIL을 작성하려고한다.

 

우리는 오전에 발제시간을 통해서 매니저님 포함 튜터님이 알려주신 발제 기준을 통하여 앞으로 머신러닝에 제약없이 자신이 원하는 자유주제의 사이트를 만들어보는것 

 

 🚩 What to do: 실제 사용자가 이용할 수 있는 서비스를 만들어봅니다. 필수 포함 사항을 확인해주세요.

 

 🌟 아래의 내용을 포함하기만 한다면, 기능 추가 또는 수정이 자유입니다!

 

  • 자유로운 주제로 프로젝트를 진행해주세요.
  • 그렇지만 기능 구현 > 프로젝트 기획 이라는 것을 염두에 두고 너무 새로운 기능을 만들기보다는 기존에 있는 서비스들의 기본기능들을 충실하게 구현하는 것을 목표로 해주세요.

필수 포함 사항을 확인해주세요.

  1. 백엔드 개발자로서 능력을 기르기 위한 부분
    • 프론트엔드와 백엔드를 나누어서 프로젝트를 만들어주세요.
    • CRUD API 작성 확실히 익히기
    • 장고에서 모델 관계 확실하게 설정하기
    • DB 모델링 확실하게 하기
      • ERDcloud로 ERD를 그려주세요
      • many-to-many, many-to-one 이해 확실히 하신 후 설계 반영 진행해주세요.
      • 컬럼명, 필드선택, 컬럼설명까지 “부연설명 없이 이해할 수 있는 수준으로" 작성해주세요.
    • JWT token을 이용한 회원기능
      • token과 session의 차이에 대해서 확실하게 정리해주세요
    • Validation과 에러처리 부분 작성 시 Statuscode 잘 선택해주세요
      • 프론트엔드 개발자는 작업 간 많은 경우에서 Statuscode로 분기점을 잡아 코드 작성을 합니다.
    • EC2 배포
      • Nginx, Gunicorn의 역할에 대해서 이해하고 사용해주세요
    • 도커 작성(Dockerfile)
    • 리드미 작성 철저히 해주세요. (포트폴리오의 얼굴이며, 완성도가 곧 주목을 많이 받는 척도가 됩니다)
    • 배포 후 커뮤니티 등의 홍보를 통해서 실제 사용자를 모아보세요.
    • → 운영팀에서 사용자를 모으는 데 도움이 되도록 기프티콘을 드릴거예요! (추후 공지)
  2. 머신러닝/딥러닝을 활용해 보다 재미있는 서비스를 만들기 위한 부분
    • 공개된 사물인식/segmentation/추천모델 을 활용해 서비스를 개발
    • 아래 모델 중 한개 이상의 기능을 이용해 서비스에 적용
      • 사물인식 모델
      • Segmentation 모델
      • 추천 모델

추가 기능

  • DB는 AWS RDS와 연동
    • 여유되면 PostgreSQL도 사용해보세요!
  • Static 파일 업로드는 AWS S3로 업로드
  • 테스트코드 작성하기
  • CI 구현
  • CD 구현
  • 장고 심화강의에 나온 내용을 참조, black, isort, pytest를 실행 후 완료되었을 때 코드 푸시 진행해주시고, CI 구현에 있어 포함되게 해주세요.
  • 소셜 로그인 회원가입/로그인 기능에도 도전해볼 수 있습니다.

주의할 점

  • 포트폴리오로 제출시 개발시 사용하였던 불필요한 print문을 정리해주세요.
  • 네이밍 컨벤션 잘 지켜주세요.(스네이크, 카멜, 파스칼)

!!!!!!!!!!!!!!위 명시된 기능 이외에 다양한 기능도 추가해보세요!!!!!!!!!!

 

이런식으로 자유주제를 통해서 필수 명시해놓은 조건에 의하여 짜야하는데 우리는 주제를 놓고 굉장히 많은 시간이 소요되었다. 왜냐하면 여태까지 우리가 해왔던 것들은 1주일~10일 많게는 2주가걸리는 프로젝트를 진행해왔었는데  사실상 1달이 걸리는 백엔드 서비스는 결국 우리가 1달동안 얼마나 많은것들을 담아낼수있느냐인데 여태까지 우리가 배워왔던 것들을 토대로 무언가를 만들어야 하는데 결국 이런 조건들을 통하여

 

주제?

  1. 패밀리 레스토랑 메뉴 추천 서비스
  2. 반려동물 관리 서비스(손톱 잘라주는 시간, 밥시간 알림)
  3. 피서지 추천 서비스( 비용,경로) 이용료같은거를 계산해서
  4. 착장서비스(관심있게 본 옷 가져와서) virtual try on 어려울거같다 제외 예정

 

주제 선정 조건

  1. 새로워야한다 ( 현재 불편함, 문제점을 해결하거나 )
  2. 한달이라는 기간, 최종프로젝트라는 것에 걸맞은 주제야한다
  3. 웹페이지에서 간단하게 보여줄 수 있어야한다. -> 아니면 (프론트엔드에 비중을 줘야함)

 

해결 방법

  1. 이상적인 주제를 찾는다.
  2. 프론트엔드를 비중을 준다.
  3. 그냥 부담없이 한달이라는 기간, 최종프로젝트라는 것에 상관없이 주제를 정한다.

팀원들과 많은 의견을 나누고 어떻게해야될지 고민을 하던 와중에 결국 팀장님이 예전부터 생각해오신(캠프합류하시기전 어떤 프로젝트를 하기로했었는데 파토가 나서) 여행 일정 짜주는 서비스를 만들어보는게 좋지않을까라는 아이디어가 결과적으로는 최종 결정에서 결정되었고 1달동안에 우리가 보여줄수있는 부분들을 십분발휘해서 모든것들을 쏟아낼려고 노력을 많이할것같다. 매니저님들이 예시로줬던 1기님들의 사이트를 보면 뭔가 하나둘씩 어설픈 부분들이 있어서 우리는 그런 불편한점들을 최대한 보완해가면서 만들 예정이어서 1달이라는기간동안 뿌듯한 결과를 이뤄낼수있을거같아 기분이 좋다.

 

일단 우리가 db설계나 api 설계에 앞서서 늘 그렇듯 와이어 프레임을 선행으로 작성하였는데 이번에도 그렇게하였다.

 

생각보다 생각해야될부분들이 상당히 많은지라 그만큼 더 많은 의견들을 나누고 이야기를 해봤었는데 팀장님이 과거에 프로젝트로 사용할려던 어떤 부분들에 모티브가되는 사이트

https://www.tripadvisor.co.kr/

 

트립어드바이저: 10억 건 이상의 호텔, 관광명소, 음식점 리뷰와 포스팅이 모여드는 곳

다음 여행을 계획하고, 리뷰를 읽고, 트립어드바이저 커뮤니티에서 숙박 장소와 볼거리 및 즐길거리에 대한 여행 조언을 받으세요. 호텔 할인을 찾고, 완벽한 투어 또는 관광명소를 예약하고,

www.tripadvisor.co.kr

이 사이트를 모티브로 하여 우리가 앞으로 만들 서비스에 대한 UI를 적극 활용하도록하기로하였다. 대신 우리가 구성할려는 부분들은 여행 행선지를 정하게되면 우리는 그 행선지대로 일정을 짜줄수있는 알고리즘을 작성하여서 여행일정을 최단거리를 기준으로 여행계획을 짜여준다. 동선낭비의 최소화라는 명분하에 이뤄지는 부분들이고 그런부분에있어서 앞으로 우리가 프론트엔드에서 어떤 UI를 보여줘야 우리가 구현해낼수있는 서비스에 적합할지에 대해서 많은 고민을 해봤던거같다. 

기능 서술

로그인/회원가입/마이페이지

회원가입 / 회원정보 수정 / 회원탈퇴 가능

로그인 / 로그아웃 기능 - JWT token 사용

  • 마이페이지나의 여행일정 / 여행리뷰 조회가능
  • 내가 좋아요누른 여행리뷰, 여행일정, 여행장소 조회가능
  • 회원정보 수정 / 탈퇴 버튼

여행일정 추천받기

사용자가 출발지와 여행하고싶은 여행장소를 입력하면 해당 장소가 포함된 여행일정을 추천해준다.

점심시간와 저녁시간 때에는 근처 장소의 맛집을 일정에 포함시킨다. (5곳) - 추천유무 설정 가능

낮시간 때에는 근처 카페를 일정에 포함시킨다. ((5곳) - 추천유무 설정 가능

밤시간 때에는 근처 숙소를 일정에 포함시킨다. ((5곳) - 추천유무 설정 가능

추천 받은 후 사용자가 원하는대로 여행일정 수정가능

여행리뷰 남기기

추천 받은 여행일정으로 여행을 다녀온 후기 작성하는 기능

이미지 첨부 가능 (여러장 가능)

작성시 여행일정을 등록할 수 있음

게시판에 공개/비공개 설정 가능 - 공개 설정된 리뷰들은 게시판에서 조회가능

  • 여행리뷰 게시판여행리뷰 등록, 수정, 삭제 가능
  • 좋아요, 좋아요 취소, 댓글 작성, 댓글 수정, 댓글 삭제 가능
  • 공개 설정된 여행리뷰들을 볼 수 있음

여행장소 추천받기

  • 추천 방식
    1. 사용자가 희망지역을 입력하면 근처 여행장소를 추천해준다.
    2. 여행일정을 추천받을 때 여행장소들 근처의 다른 여행장소를 추천해준다.
    3. 사용자들에게 인기많은 여행장소를 추천해준다.
  • 여행장소 게시판여행장소 등록, 삭제 가능
  • 좋아요, 좋아요 취소, 댓글 작성, 댓글 수정, 댓글 삭제 가능
  • 여행장소들을 조회할 수 있다.

맛집 추천받기

  • 추천 방식
    1. 사용자가 희망지역을 입력하면 근처 맛집을 추천해준다.
    2. 여행일정을 추천받을 때 여행장소들 근처의 다른 맛집을 추천해준다.
    3. 사용자들에게 인기많은 맛집을 추천해준다.
  • 맛집 게시판맛집 등록, 삭제 가능
  • 좋아요, 좋아요 취소, 댓글 작성, 댓글 수정, 댓글 삭제 가능
  • 맛집 게시글들을 조회할 수 있다.

이런식으로 기능서술에 대한 내용을 짜게되었고

 

 

 

 

 

오늘은 여기까지 같이 작성을하고 마무리하였다. 내일은 SA를 제출하기위한 DB설계및 API작성을 할 예정이다 화이팅!!!

 

'스파르타 내일배움캠프' 카테고리의 다른 글

내일배움캠프 AI - MyLittleTrip 프로젝트 KPT 회록  (0) 2022.08.04
TIL38  (0) 2022.07.08
TIL36  (0) 2022.07.06
TIL35  (0) 2022.06.18
TIL34  (0) 2022.06.16