일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- trie
- pycon
- 호텔 방 배정
- 트라이
- 크레인 인형뽑기 게임
- 튜플
- 티스토리
- 티스토리 open api
- 징검다리 건너기
- 트라이 #trie #알고리즘
- 불량 사용자
- bulk update
- CleanCode
- Spring Boot
- Python
- 카카오 인턴
- 프로그래머스
- jdbc
- 가사 검색
- 알고리즘
- 보행자 천국
- Tistory
- Open API
- Today
- Total
목록분류 전체보기 (153)
택시짱의 개발 노트
www.44bits.io/ko/post/almost-perfect-development-environment-with-docker-and-docker-compose 도커(Docker) 컴포즈를 활용하여 완벽한 개발 환경 구성하기 개발 환경을 구축하기란 그리 쉬운 일이 아닙니다. 문서화를 해두어도 누군가 계속 신경쓰지 않으면 내용이 낡기 마련이고, 계속 신경 쓰자니 이 또한 쉽지 않죠. 어떻게 하면 손쉽게 개발 환경 www.44bits.io siner308.github.io/2019/02/25/django-docker-custom-image/ 나만의 도커(Docker) 이미지를 만들어서 장고(Django) 서비스 배포하기 - Siner's DevLog 저번 장에서는 Django 공식 도커 이미지를 확인해보..
- API 코드의 구조를 구성할 때 다음 점들을 중요하게 고려해야 한다. - 확장성 (extensiblity) - 재사용성 (reusablity) - 가독성 (readability) - 테스트 가능성 (testability) - 레이어드 패턴을 사용한 아키텍처는 일반적으로 3가지 레이어로 나뉜다. ( presentation layer, business layer, 그리고 persistance layer) - presentation layer는 엔드포인트 부분에 해당한다. - business layer는 비즈니스 로직 부분에 해당한다. - persistance layer는 데이터베이스 로직 부분에 해당한다. - unit test도 각 레이어별로 test해 주어야 한다.
unit test의 중요성 어떠한 기능을 개발하는데 총 10시간이 걸린다면 5시간은 실제 개발에 사용하고, 나머지 5시간은 unit test를 구현하는데 사용하는게 좋다. - 시스템을 테스트하는 방법에는 크게 3가지가 있다. - UI test - intergration test - unit test - 전체 테스트 중 UI test는 10%, intergration test는 20%, 그리고 나머지 70%는 unit test로 구성하는 것을 권장한다. - 파이썬에서 unit test 구현을 도와주는 라이브러리 중 하나는 pytest다. - test 파일의 이름은 test_로 시작해야 하며, 마찬가지로 test 함수도 test_로 시작되어야 한다. - pytest.fixture decorator를 사용하여..
시스템적으로(프론트엔드와 백엔드 API상에서의 절차) 로그인 기능은 다음과 같은 절차를 통해 구현될 수 있다. 1. 먼저 사용자 가입 절차를 진행해서 사용자의 아이디와 비밀번호를 생성해야 한다. 미니너 API의 경우 sign-up 엔드포인트를 통해서 사용자 가입을 할 수 있다. 2. 가입한 사용자의 아이디와 비밀번호를 데이터베이스에 저장한다. 이때 사용자의 비밀번호는 암호화해서 저장한다. 3. 사용자가 로그인할 때 본인의 아이디와 비밀번호를 입력한다. 4. 사용자가 입력한 비밀번호를 암호화한 후, 그 값을 이미 암호화되어서 DB에 저장된 비밀번호와 비교한다. 5. 비밀번호가 일치하면 로그인 성공이다. 6. 로그인에 성공하면 백엔드 API 서버는 access token을 프론트엔드 혹은 클라이언트에게 전송..
- 데이터베이스 시스템(database system)은 이름 그대로 데이터를 저장 및 보존하는 시스템이다. 데이터베이스에 저장되어 있는 데이터를 읽어 들일수 있으며, 새로운 데이터를 저장할 수도 있고, 기존의 데이터를 업데이트할 수도 있다. - 일반적으로 데이터베이스 시스템은 크게 2가지 종류로 분류된다. 관계형 데이터베이스 시스템(RDBMS, Relational Database Management System) 그리고 "NoSQL"로 명칭되는 비 관계형(Non-relational) 데이터베이스다. - 관계형 데이터베이스에서 테이블들의 상호 관련성 종류에는 다음의 3가지가 있다. - one to one - one to many - many to many - 관계형 데이터베이스에서 외부 키(foreign ..
- 데이터를 수정하는 기능의 엔드포인트는 POST를 사용한다. - 데이터를 읽어 들이는 기능의 엔드포인트는 GET을 사용한다. - POST 엔드포인트에 데이터를 전송할 때는 body에 JSON 형식으로 데이터를 전송한다. - URL에 인자(parameter)를 전송하고 싶을 때는 형식으로 URL을 구성한다. 예를 들어, int 값의 사용자 아이디를 URL에 포함시켜 받고 싶을 때는 다음과 같이 주소를 구성하면 된다: /timeline/ - 중복된 값이 없어야 하는 데이터라면 set을 사용하고 순서나 순차가 중요하다면 list를 사용하자. 키와 값을 표현해야 하는 데이터의 경우는 딕셔너리를 사용하자.
- HTTP 통신은 요청과 응답으로 이루어져 있다. 클라이언트가 HTTP 요청을 보내면 서버는 해당 요청에 대한 응답을 보내는 것이 하나의 HTTP 통신이다. - HTTP 통신은 stateless다. 클라이언트와 서버는 HTTP 통신을 여러 번 주고받는 것이 일반적인데, HTTP 프로토콜에서는 동일한 클라이언트와 서버가 주고받은 HTTP 통신들이라도 서로 연결되어 있지 않다. 즉, 각각의 HTTP 통신은 독립적이며, 그 전에 처리된 HTTP 통신에 대해서 전혀 알지 못한다. - HTTP 요청 메시지는 크게 다음 세 부분으로 구성되어 있다. - Start line - Header - Body - HTTP 응답 메시지도 세 부분으로 구성되어 있다. - Status line - Header - Body - 자..
- Flask는 파이썬 웹 애플리케이션을 구현할 때 사용되는 프레임워크이며, Django와 다르게 웹 애플리케이션을 구현할 때 꼭 필요한 기능만을 제공하는 프레임워크이다. 그러므로 학습 곡선( 러닝커브)이 비교적 낮다. - 파이썬 개발을 할 때에는 먼저 파이썬 가상 환경을 생성한 후 항상 활성화시킨 상태에서 개발, 실행, 테스트를 해야 한다. 파이썬 가상 환경을 생성하는 방법은 여러가지가 있지만, 콘다를 사용하여 파이썬 개발 환경을 생성하는 것이 선호 된다. - Flask에서는 일반적으로 route 데코레이터를 사용해서 함수들을 엔드포인트로 등록하는 방식이 사용된다. 즉, Flask에서 엔드포인트를 구현한다는 것은 결국 일반 함수를 구현하는 것과 마찬가지이다. 그러므로 백엔드 API 개발도 구조적으로는 ..