Flask7 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 - 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. 이전 1 다음 728x90 반응형