Flask(플라스크) image.png Flask(플라스크)는 파이썬으로 웹 어플리케이션(web application)을 구현할 때 사용되는 프레임워크중 하나이다. Flask홈페이지(http://flask.pocoo.org/)에서 나오는 공식적인 설명은 "micro web framework"이다. 즉, 군더더기 없는, 아주 가벼운 웹 프레임워크라고 소...
이전에 Flask-intro 블로그에서 살펴본 Flask를 본격적으로 시작하고자 한다. 간단하게 http 메소드를 get으로 api로 요청하면 응답을 받는 endpoint를 구축해보자 1. mkdir project 프로젝트를 시작할 디렉토리를 만든다 mkdir : "Make Directory"의 약자로, 새로운 디렉토리를 생성해주는 리눅스 명령어 -...
앞에서 Flask-project start블로그에서 Flask를 이용하여 간단하게 Ping-Pong 엔드포인트를 구현해보았다. 이번에는 twitter의 주요기능들만 가지고 미니터(Minitter)라는 엔드포인트를 만들고자 한다 Minitter의 기능 회원가입 로
Follow and unFollow 기능 실제 트위터와 마찬가지로 여러 사용자가 서로 follow를하거나 unfollow 하는 기능을 구현하고자 한다 간단하게 사용자의 id와 follow하고자 하는 id를 HTTP 요청을 보내고 응답받는 API를 구현해본다 Follo
Timeline 기능 이전 블로그를 통해서 회원가입, 트윗 올리기, 서로 다른 사용자 팔로우/언팔로우하기 까지 구현하였다. 이제는 지금까지 사용자의 타임라인을 볼 수 있는 엔드포인트를 구현하고자 한다. Timeline API 설계 Timeline API 주소 : /timeline Timeline 엔드포인트 method : GET Timeline 엔드포인트...
MySQL 설치 API와 MySQL을 연결하기 위해서 기본적으로 MySQL을 설치하여야 한다. 우분투에서는 apt, apt-get 혹은 apt install 패키지 매니저를 사용하여 MySQL를 설치할 수 있다. mysql-server sudo : super 유저 권한을 가져와서 다음 명령어를 실행 할 수 있다. update : 현재 local ubun...
SQLAlchemy 파이썬 코드에서 Database와 연결하기 위해 사용할 수 있는 라이브러리중 SQLAlchemy라는 라이브러리가 있다. SQLAlchemy는 ORM(Object Relational Mapper)로 관계형 데이터베이스의 테이블들을 프로그래밍 언어의
앞에서 mysql-connector-python이라는 DBAPI로 API를 MySQL와 연결하였다. 그리고 SQLAlchemy이라는 ORM을 통해 데이터베이스를 핸들링 할 수 있도록 준비하였다. 이어서 이번에는 우리가 구현한 Minitter의 엔드포인트를 Database에 연결하여 SQLAlchemy를 통해 CRUD 즉 핸들링하고자 한다. 회원가입 엔드...
이전 블로그 중 인증(Authentication) & 인가(Authorization)에서 인증절차와 인가에 대해서 알아보았다. 특히 인증을 위해서는 bcrypt알고리즘을 사용하여 회원의 패스워드를 단방향 암호화하였다. 이번에는 Flask에서 인증부분을 회원가입 엔드포인트에 연결 및 구현하고자 한다. 회원가입 API with bcrypt 회원가입 API...
앞서 인증인가 절차로 회원가입&로그인 엔드포인트 구현하기 with bcrypt, JWT에서 인증 엔드포인트를 통해 accesstoken을 응답 받았다. Minitter 많은 API중 인증절차가 필요한 부분들이 있다. 바로 tweet과 follow, unfollow A
코드구조 아키텍처 고려사항 확장성(Extensibility) 재사용성(Reusability) 보수 유지 가능성(Maintability) 가독성(Readability) 테스트 가능성(Testability) 레이어드 아키텍쳐 image.png Presentation Layer Business Layer Persistence Layer 레이어...
이전 블로그에서 알아보았듯이 Layered Architecture는 3가지 레이어로 나눌 수 있다. 이번에는 우리가 만들었던 Minitter를 레이어드 패턴 아키텍처로 구성하고자 한다 Layered Architecture 레이어드 아키텍쳐 구조는 다음과 같이 구성하면 된다. mkdir : 디렉토리를 생성하는 명령어로 { }괄호 안에 생성하고자 하는 디...
앞서 Flask를 사용하여 레이어드 아키텍쳐로 miniter 라는 어플리케이션을 구현하였다. 이제는 miniter에서 사용자의 프로필 사진, 또는 다양한 파일들을 업로드하고 읽을 수 있는 기능을 추가 하고자 한다.더 나아가 다음 블로그에서는 AWS S3를 활용하여 더