Python(31)
-
[Python] Data Model 만들기 (3) - Data Model
2021/01/19 - [Back-end/Python] - [Python] Data Model 만들기 (1) - BaseField 2021/01/19 - [Back-end/Python] - [Python] Data Model 만들기 (2) - Data Type Field 이전 포스트에서 StringField, IntegerField, DatetimeField를 구현하였다. 이 Data Type Field 들의 유효성검사를 좀 더 보완해서 사용하면 더 좋겠지만, 우선은 Data Schema를 먼저 만들어 볼 계획이다. Schema는 Database에서 자료의 구조를 나타내는데, 이를 모방하여 Python Object로 구현해보려고 한다. 1. 에러 핸들러 1-1. ValidateError 1 2 3 4 5..
2021.01.20 -
[Python] Data Model 만들기 (2) - Data Type Field
지난 포스트에서는 간단한 매소드만 구현되어 있는 최상위 클래스인 BaseField를 구현하고 테스트를 해보았다. 이번 포스트에서는 BaseField를 상속받는 문자열 타입의 StringField, 정수형 타입의 IntegerField, 날짜형 타입의 DatetimeField를 만들어보도록 하겠다. 1. 문자열 타입 객체 1-1. StringField 객체 생성 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 # fields.py """ BaseField 밑에 이어서 작성 """ class StringField(BaseField): def __init__(self, maxlength=None, **kwargs): super(S..
2021.01.19 -
[Python] Data Model 만들기 (1) - BaseField
개인적으로 웹 개발을 하다보면 입력 화면이 가장 손이 많이 가는 것 같다. 왜냐하면, 화면에서 입력한 값을 프론트단에서 1차로 유효성검사를 하고 백단에서 2차로 유효성검사를 하고 DB에 입력하는 경우 데이터 타입과 포맷도 맞추어야 하기 때문이다. 그래서, 백단에서 단계를 좀 간소화시킬 수 없을까 고민하다가 데이터 객체를 정의하고 이 객체를 생성할 때, 유효성검사와 데이터 변환을 처리하는 모듈을 구현해보기로 하였다. 이미 marshmallow라는 좋은 라이브러리가 있지만, 직접 만들어보는걸 좋아하기 때문에 완벽하진 않지만 이번에도 직접 구현해 볼 계획이다. 이번 포스트에서 구현할 것은 크게 두가지이다. 첫번째는 데이터 타입 객체이다. 문자열, 정수형, 날짜형과 같은 Python 데이터 타입이지만 유효성검사..
2021.01.19 -
[Python] Flask & Socket.io를 이용한 채팅
서론 최근에 깃허브를 둘러보다가 Javascript를 공부하면서 Express.js와 Socket.io로 구현했던 간단한 채팅 예제를 발견했다. 예전과 비교해서 얼마나 레벨업이 되었는지 확인할겸 새로운 채팅 앱을 만들어보려고 한다. 다만, 이번에는 웹 어플리케이션 서버를 Express.js 대신 Python의 Flask를 사용할 계획이다. 1. 프로젝트 구성 1-1. 프로젝트 폴더 생성 1 2 3 mkdir flask-chat-simple cd flask-chat-simple cs 1-2. 파일 생성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ### For Windows # Environment Variables File type NUL > .env # Web App..
2020.08.03 -
[GraphQL] 무작정 시작하기 (4) - Relay와 Connection이란?
2020/04/13 - [Back-end/Python] - [GraphQL] 무작정 시작하기 (1) - Schema & Query 2020/04/14 - [Back-end/Python] - [GraphQL] 무작정 시작하기 (2) - Mutation 2020/04/20 - [전체글] - [GraphQL] 무작정 시작하기 (3) - Object를 이용한 Pagination 0.서론 지난 포스트에서 ObjectField를 이용하여 Pagination을 구현해보았다. 그러나, GraphQL에서는 Connection Field를 통해 Pagination을 처리할 수 있도록 기능을 지원한다. 하기때문에 시작하기 전에 Relay에 대해서 간략하게 알아보자. 1. Relay란? Relay는 GraphQL 기반의 데이..
2020.04.21 -
[GraphQL] 무작정 시작하기 (3) - Object Field를 이용한 Pagination
2020/04/13 - [Back-end/Python] - [GraphQL] 무작정 시작하기 (1) - Schema & Query 2020/04/14 - [Back-end/Python] - [GraphQL] 무작정 시작하기 (2) - Mutation 0. 서론 일반적으로 데이터 목록을 조회할 때, 목록 전체를 조회하는 것이 아니라 페이지 단위로 조회한다. GraphQL에서는 Cursor기반의 Connection으로 강력한 Pagination 기능을 제공하는데, 필자처럼 GraphQL을 시작한지 얼마안된 초보자라면 거부감이 들것이다. 그래서, ConnectionField대신 기본적인 ObjectField를 이용하여 Pagination을 구현해보았다. 그래서 이번 포스트에서는 ObjectField를 이용한 ..
2020.04.20