일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- dp
- 개인회고
- dfs
- 알고리즘_스터디
- 그리디
- 이진탐색
- 최단경로
- U_stage
- 주간회고
- 파이썬 3
- 프로그래머스
- 글또
- 다시보기
- 정렬
- ODQA
- Level2
- Level2_PStage
- 알고리즘스터디
- 백준
- 부스트캠프_AITech3기
- 백트랙킹
- 그래프이론
- 이코테
- 구현
- python3
- Level1
- mrc
- 단계별문제풀이
- 부스트캠프_AITech_3기
- 기술면접
- Today
- Total
국문과 유목민
[일일리포트] Day 86 (FastAPI_1/FinalProject_6) 본문

해당 일일리포트에서는 네이버 커넥트에서 진행하는 '부스트캠프 AI Tech 3기'에서 배운 내용을 다루고 있습니다. 저작권 이슈 때문에 관련 자료를 올릴 수는 없기에 핵심 이론과 코드를 요약해서 올리고 있기에 내용이 부족할 수 있습니다.
▶ Today I Learned (핵심 요약 정리)
백엔드 기초
FastAPI 강의 전 사전 지식으로 백엔드 기초에 대해서 다뤄주신 부분이 있었다. 백엔드 지식의 경우 고개 끄덕이고 나서 몇 번 정도 머리 휘적이고 나면 까먹는 경우가 있기 때문에 정리해두면 간단한 정보는 바로바로 찾아서 볼 수 있지 않을까 생각했다. 따라서 별도의 포스팅으로 정리하고자 한다.
관련 링크: [BackEnd] 백엔드 기초
FastAPIⅠ
FastAPI는 실습 제외 총 3강으로 구성되어 있다. 최종 프로젝트와 병행하다보니 시간이 부족해 쪼개서 정리를 해두고자 한다. FastAPI를 사용하는 것보다 '이런 기초 지식이 존재해야 백엔드 프로그래밍을 수월하게 할 수 있다'는 생각으로 학습을 진행하자!
FastAPI는 최근 떠오르는 Python Web Framework이다. Flask와 Django가 유명하기는 하지만 2020년부터는 FastAPI가 떠오르고 있다. Node.js, go와 대등한 성능을 보여주지만, Flask와 비슷한 구조이기 때문에 Micro Service에 적합하다고 한다. 또한 Swagger자동 생성해주고, Pydantic을 이용한 Serialization이 쉽다. (Swagger에 대해서는 추후 설명)
(ML서비스 만들 때는 FastAPI가 Django보다 좋다고 한다.)
장점
- Flask보다 간결한 Router문법을 가지고 있다.
- Asynchronous(비동기)지원이 가능하다.
- Built-in API Documentation(Swagger): 웹서버를 띄우기만 하면 Document 생성이 가능하다.
- Pydantic을 이용한 Serialization 및 Validation이 가능하다는 장점이 있다.
단점
- 아직가지는 Flask의 유저가 더 많다.
- ORM 등 Database와 관련된 라이브러리가 적다.
Swagger
Swagger는 REST API 설계 및 문서화할 때 사용한다. 만약, 만든 API를 클라이언트에서 호출하는 경우 해당 API에 대해 '어떻게 Request해야 하죠?'라는 질문이 들어왔다고 가정하자. 이 경우 '이 인자를 주시면 돼요'와 같은 대답을 할 수 있지만, 이 수가 많아지면 답만 하고 있을 수는 없다. 이때, Swagger를 활용하면 코드관리 할 때, 동시에 문서도 관리할 수 있다.기능으로는 API 디자인, API 빌드, API 문서화, API 테스팅에 사용이 가능하다.
FinalProject_6
오늘은 주말동안 진행했던 데이터 태깅 작업의 결과물을 가지고 데이터 처리를 통해 우리 모델에서 사용할 수 있게 형태를 바꿨다. 그냥 주피터노트북으로 뚝딱뚝딱하다보니까 금방 할 수 있었다. 하지만 데이터 가공을 끝냈다고 생각했는데, 의외로 예외 케이스가 많이 등장해 다시 수정해야 하는 경우가 많이 발생했다.
이번에 데이터 처리를 위해 코드를 짜면서 왜 프로그래밍 역량이 필요한 지에 대해서 느낄 수 있었다. 데이터에서 원하는 정보를 뽑아낼 때, '다시 재사용할 수도 있으니 어떻게 구성하면 좋을까?', '예외 케이스를 어떻게 처리해줘야 할까?' 등에 대해서 생각을 했었다. 그리고 이전에 코딩 테스트 준비했을 때나 실습 코드 등에서 사용했던 것들을 기억하고, 사용하면서 간단하게 일을 해결하게 된 나를 보면서 뭔가 성장한 것 같다는 생각을 하게 됐다.
이번 주는 목요일까지 실습 강의가 있어서 최종 프로젝트에 올인하기는 좀 어려울 수도 있겠지만, 빠르게 내일 중으로 당장 급한 강의들을 끝내놓고, 모델 설계 쪽을 진행해야겠다.
▶ Review (생각)
급한 불인 데이터 태깅 작업을 주말 동안 모든 팀원이 10시간씩 고생해서 완료했다. 그래서 이번 주부터는 모델 설계 쪽으로 들어가면 될 것 같아서 뭔가 마음이 좀 편한 게 있다. 하지만, 목요일까지 실습 제출과 주말에는 머신러닝 테스트가 예정되어 있어서 해야할 일적으로 보면 한가하지 않기는 하다. 지치지 않게 컨디션 관리를 잘 하되 해야할 일들도 잘 수행해야겠다.
추가적으로 새로 코테 스터디를 진행하게 됐는데, 오랜만에 하니까 또 재밌는 것 같기도 하고 좀 잘 풀리는 것 같기도(쉬운 문제여서...)해서 꾸준히 할 수 있을 것 같다는 생각을 했다.
'IT 견문록 > 2022_부스트캠프 AITech 3기(100일)' 카테고리의 다른 글
[일일리포트] Day 88 (FinalProject_7) (0) | 2022.05.25 |
---|---|
[일일리포트] Day 87 (FastAPI_2) (0) | 2022.05.24 |
[18주차] 개인 회고 (FinalProject_Week1) (0) | 2022.05.20 |
[일일리포트] Day 85 (FinalProject_5) (0) | 2022.05.20 |
[일일리포트] Day 84 (프로토타입_3/ FinalProject_4) (0) | 2022.05.20 |