본문 바로가기

Tech Development/Python Backend (Flask API)11

Python Backend - Study Notes 10 날짜: 2022.09.30 [Unit Test] Unit Test는 우리가 만든 시스템이 정상작동하는지 확인해보는 절차이자 중요한 단계이다. 테스트가 왜 중요한지 간단하게 알아보고 Unit Test 구현을 바로 해보자. [Why Unit Test?] 현재 구현중인 API 서버 등의 ‘시스템'을 테스트할 때 가장 중요한 것은 자동화이다. Manual Testing은 시간이 오래 걸리고 느리다. 테스트 자동화를 통해서 다음 3가지 요소를 갖추고 있어야된다. Repetitive Frequent Accurate 테스트의 종류는 크게 3가지로 나눌 수 있는데 다음과 같다. UI Test / End-To-End Test Integration Test Unit Test UI Test는 사용자가 실제로 사용할 시스템과.. 2023. 1. 1.
Python Backend - Study Notes 9 날짜: 2022.06.09 [인증, Authentication] 인증은 사용자의 신원을 확인하는 절차이다. 웹사이트에서 사용자가 로그인을 해서 아이디와 비번을 확인하는 절차가 대표적이다. 로그인과 인증 기능을 구현해주는 엔드포인트로 다음과 같이 처리된다. 사용자가 아이디와 비밀번호를 생성한다. (sign_up 엔드포인트) 아이디와 비밀번호를 데이터베이스에 저장한다. 보안을 위해 비밀번호는 암호화되어 저장된다. 사용자가 로그인 절차에서 아이디와 비밀번호를 입력한다. 비밀번호는 위와 동일하게 암호화된다. 데이터베이스에 저장되어 있는 비밀번호와 비교한다. 일치하면 로그인 절차가 통과된다. API 서버가 사용자한테 access token을 전송한다. 앞으로 서버의 기능 사용할 때 access token으로 사용.. 2022. 10. 2.
Python Backend - Completion, not Perfection 날짜: 2022.09.05 [완벽한 설명에 대한 집착] 학습일지의 의도는 누군가가 내 블로그에 방문해서 학습일지를 읽었을 때 바로 이해하고 코드를 구현할 수 있도록 도와주기 위함이다. 그래서 내가 먼저 책을 읽고 공부하면서 헷갈렸던 부분들에 대한 추가적인 설명을 직접 보충해서 채우는 것이 처음 설정한 방향이었다. 이렇게 해야만 미래의 내가 혹은 블로그 방문자가 쉽고 빠르게 이해할 수 있을 것이라고 생각했다. 이런 욕심과 목표 때문에 너무 작은 디테일에 집착한 것이 오히려 블로그 성장에 걸림돌이 되었다. 군대에서 공부를 하고, 공부한 내용을 블로그에 올리는 것은 총 4 단계 프로세스이다. 책을 공부한다. 공부한 내용을 복습하면서 노트에 학습일지를 작성한다. 노트에 작성된 학습일지를 google docs로 .. 2022. 9. 7.
Python Backend - Study Notes 8 날짜: 2022.05.13 [데이터베이스 연동시키기] 데이터베이스를 연동시킨 전체 코드로 한번에 넘어가고 싶지만 먼저 엔드포인트별로 쪼개서 접근해야지 전체 코드가 더 잘 이해되기 때문에 엔드포인트 단위별로 접근해보겠다. [회원가입 엔드포인트] 먼저 회원가입 엔드포인트부터 다시 구현 해보자. 위의 코드는 크게 3가지 부분으로 나눌 수 있다. 첫 번째는 HTTP Request로 받은 데이터를 python dictionary로 전환 및 DB에 저장이다. “new_user”에 데이터가 python dictionary 형태로 저장되어 있기 때문에 parameter로 넘겨주는 것이다. MySQL 문법을 통해서 request.json 정보가 어떻게 DB에 저장되는지 알아보자. 라인 ⑯에서 “lastrowid” 구문이.. 2022. 9. 4.
Python Backend - Study Notes 7 날짜: 2022.04.13 [6장: 데이터 베이스] 우리가 만든 미니터 API는 재실행될 때마다 모든 데이터가 없어진다. 데이터를 메모리상에 저장해서 터미널에서 API를 실행할 동안에만 데이터가 남아있기 때문에 사실상 데이터베이스라고 불릴만한 것이 없다. 그렇기 때문에 데이터를 영구적으로 보존하고 미니터 API와 DB (Data Base)를 연결하는 작업을 해 볼 것이다. [Database System] DB: 데이터를 저장 및 보존하는 시스템이다. 데이터베이스에 대해서 하나씩 알아보자. 먼저 데이터베이스는 크게 2가지 종류가 있다. 관계형 데이터베이스 시스템 (RDBMS, Relational Database Management System)과 NoSQL로 불리는 비관계형 (Non-relational) .. 2022. 9. 3.
Python Backend - Study Notes 6 날짜: 2022.03.10 [타임라인 (Timeline) 관리하기] 타임라인의 경우 이미 사용자가 올린 데이터를 수정 없이 받아오면 되는 것이기 때문에 HTTP GET 메서드를 사용할 것이다. 밑에는 클라이언트가 받을 JSON 데이터 예시이다. 트윗 엔드포인트에서 사용자가 올린 트윗들을 모두 “app.tweets” list에 dictionary 형태로 저장했었다 (key: 사용자 아이디, value: 트윗 내용). 타임라인 엔드포인트를 구현하기 위해서는 app.tweets 리스트에 접속한 사용자, 사용자의 트윗들, 팔로우 명단의 사람들, 그리고 트윗들을 찾아서 HTTP Request로 클라이언트에 넘겨주면 된다. 엔드포인트 로직을 파이썬으로 구현하면 다음과 같다. ① 엔드포인트의 고유주소 (URL)에 “.. 2022. 9. 1.
Python Backend - Study Notes 5 날짜: 2022.03.09 [5장: 본격적으로 API 개발하기] 여기서부터 구현하는 세부적인 API 기능들은 다음 포스트에서 “데이터 베이스”를 공부할 때 사용할 예정이므로 정확하게 이해하고 넘어가야한다. 이번 장에서는 미니터(= mini twitter)를 구현하면서 API 개발의 핵심구조와 개념들을 살펴본다. [미니터 기능들] 이 책에서는 동시 접속이나 HTTP 요청 처리 속도를 다루지 않는다. (나중에 AWS 배포를 통해서 간접적으로 설명한다) Twitter의 핵심 기능들만 간단하게 구현한 것이기 때문에 완벽한 Twitter를 바라지는 말자. 밑의 기능들만 API 시스템에 구현시킬 것이다. 회원가입 로그인 트윗 (tweet) 다른 회원 팔로우하기 다른 회원 언팔로우하기 타임라인 (트윗 기록들 불러오기.. 2022. 9. 1.
Python Backend - Study Notes 4 날짜: 2022.03.06 [4장: HTTP의 구조 및 핵심 요소] HTTP = HyperText Transfer Protocol HyperText란 HTML (HyperText Markup Language)의 일부로 웹에서 사용자가 보는 내용물을 의미하며, frontend 내용물이라고 생각하면 편하다. 클라이언트가 사용하는 웹과, 데이터를 담고 있는 클라이언트 서버, 그리고 API를 담고 있는 백엔드 서버, 이 3가지가 통신하기 위해서 정해놓은 일종의 통신 규칙이자 틀을 HTTP라고 한다. HTTP는 기본으로 [client → server] 방향으로 가는 HTTP Request와 [server → client] 방향으로 가는 HTTP Response 가 있다. Request는 쉽게 말해 클라이언트가 데.. 2022. 6. 24.
Python Backend - Study Notes 3 Python Backend - Study Notes 3 날짜: 2022.03.05 [2장: 현대 웹 시스템 구조 및 아키텍처] 초기의 웹은 서버가 HTML을 클라이언트 (a.k.a. 사용자)한테 넘겨주는 형식이었다. 이 당시 웹은 매우 정적이고 재미없었다. 이후 자바스크립트의 도입으로 사용자와 상호작용하고 동적인 웹사이트인 interactive web page의 개발이 더욱 활발하게 이뤄지기 시작했다. 점차 자바스크립트가 main stream 되면서 SPA (Single Page Application) 방식의 프론트엔드 개발이 인기를 끌었다. SPA란 단일 페이지로 구성되어 있는 HTML과 메인 자바스크립트가 모든 페이지 및 기능들을 동적으로 구현하는 것이다. (개발바닥 채널에서 SPA 얘기할 때 뭔가 .. 2022. 6. 16.
Python Backend - Study Notes 2 Python Backend - Study Notes 2 날짜: 2022.03.01 [1장: 파이썬 설치 및 개발 환경 구성] 책의 목차가 궁금하면 http://www.yes24.com/Product/Goods/68713424 에서 참고하길 바란다. (yes24만 한 게 없다..) 1장에서는 파이썬 설치와 가상 개발 환경에서 프로젝트를 진행하는 방법을 알려준다. 파이썬 홈페이지에서 파이썬 설치와 Homebrew라는 맥(mac book)용 패키지 관리자 프로그램을 사용해서 파이썬 setup 하는 내용을 다룬다. (독서리뷰를 작성하면서도 느꼈지만 블로그는 오로지 나를 위한 것이다. 미래의 내가 현재의 나의 독서 리뷰를 읽고 생각을 정리하고 학습일지를 보면서 필요한 부분들만 챙기길 바라는 마음에서 작성하는 것이.. 2022. 6. 16.
Python Backend - Study Notes 1 Python Backend - Study Notes 1 날짜: 2022.03.01 [Intro + 동기] 블로그에 가장 처음으로 올리는 학습일지이다. 지금까지 “블로그에 뭐를 올려야겠다~”라는 막연한 생각을 해왔는데 그 또한 독서 리뷰에 불과했다. 2021년도 10월부터 “Algorithms & Data Structures 3.0” 그리고 “이것이 코딩 테스트이다”와 같은 교과서 부류의 책들도 공부했지만 학습일지로 만들기에는 내용이 적합하지 않아 블로그 포스팅을 미뤄왔다. (사실 Algorithms & Data Structures 3.0은 짧게 학습일지를 추후에 올릴 것이다.) 그래서 대망의 첫 번째 학습일지의 대상! 앞으로 한동안 공부하고 학습일지를 올리게 될 책은 송은우 작가의 “깔끔한 파이썬 탄탄한.. 2022. 6. 16.
728x90
반응형