스파르타코딩클럽 개발일지#마지막

­최상언·2020년 3월 4일
1
post-thumbnail

1. 오늘 뭐 해먹지? 프로젝트는

  • 바쁜 현대인의 살림 도우미를 만들고자 시작한 프로젝트
  • 냉장고에 있는 재료를 선택하기만 하면 매일 새로운 메뉴를 만들어 먹을 수 있어요

2. 사용한 기술 & 어려웠던 점

크롤링

  • 처음에는 네이버 음식백과를 이용하려고 했으나, 재료 div가 명확하고 일정하게 정해져있지 않아서 실패
  • 만개의 레시피 사이트로 변경!했는데 어떤 레시피는 재료탭이 하나, 어떤건 둘로 나뉘어져 있어서 일단 둘다 긁어서 하나로 합쳐보았음
  • 근데 주재료랑 양념탭을 분리하면 좋을 것 같다! 해서 먼저 양념탭이 있는 레시피를 먼저 긁어와서 spices로 저장해서 나머지를 그 리스트와 비교하기로 함
  • 사람들마다 재료 표기법이 다름. 어느정도 정제된 데이터만 사용하기 위해 딕셔너리로 count해서 15번? 이상 등장하는 애들만 db에 저장
  • 미리 만들어 놓은 spices, ingredients db에 속하는 애들을 menus db에 메뉴 이름, url, og_image까지 함께 저장

프론트엔드

  • 원래는 체크박스로 만들었었음. 근데 너무너무 안예뻤어ㅠ
  • 안예쁜 체크박스 버튼형식으로 바꾸고, 눌렀을 때 색깔 다르게해서 확인할 수 있게 했음

백엔드

  • db에 올려놓은 spices, ingredients 선택할 수 있게 보내주기.
  • 일단 서버가 돌아가는 동안은 크롤링하면 안됨! 너무너무 느려지기 때문에. 필요한 데이터는 db에 미리 넣어놓아야 함. (ex. og_image)
  • 재료가 너무 많으니까 스크롤을 내려야해서 불편해서 ㄱㄴㄷ 검색 탭 따로 만들었다! jamo 라이브러리 설치하고, 초성으로 분리해서 딕셔너리에 저장. 엄청 헤맸는데 역시 선생님 찬스..! 혼자 코딩할 땐 이런거 어디 물어보냐~!
  • 선택한 재료 리스트를 인자로 받아서, 주재료를 하나 이상 포함하는 레시피 중 전체 항목을 가장 많이 포함하는 카드를 상위에 보여줄 수 있도록 정렬했다. 여기서도 딕셔너리로 count!
  • 더 필요한 재료를 따로 보여주고, 클릭하면 바로 ssg.com에서 살 수 있도록 연결해주고 싶어서 a태그 붙이는 걸 프론트에서 열심히 해보았으나.. 실패하고 그냥 백에서 텍스트형식으로 여서 리턴해줬다. 이건 아직도 잘 모르겠지만, 되면 된거지 뭐,,

3. 8주간의 코딩 첫..걸음 후기

  • 사실 배울때는 내가 뭘 배우고 있는지 뒤죽박죽 모래성 같았다. 머릿속에 뭐가 있는 것도 같고, 없는 것도 같고.
  • 숙제하면서, 그리고 특히 내 프로젝트 하면서 모래성을 콘..크리..트..성으로..! 만들 수 있었음! 아니 나무..정도..
  • 내 프로젝트에서 배운 걸 많이 써먹어보는 게 가장 중요한 것 같다. 더 어려운 걸 해도 좋겠지만, 배운 것부터 최대한 내 걸로 만들기! 그러면 뭔가 확실히 남긴 남는듯.
  • 처음부터 끝까지, 프론트엔드부터 백엔드, 데이터베이스까지 전부 내 손으로 만들어 보는 게 진짜 의미있음. 면접 때 할 말 많아져서 좋다!
profile
배울게 많은 햇병아리 개발자

0개의 댓글