일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pycon
- Tistory
- Python
- 크레인 인형뽑기 게임
- trie
- jdbc
- 티스토리 open api
- 보행자 천국
- 튜플
- 가사 검색
- 호텔 방 배정
- CleanCode
- 징검다리 건너기
- 티스토리
- Open API
- Spring Boot
- 알고리즘
- 카카오 인턴
- bulk update
- 트라이 #trie #알고리즘
- 트라이
- 불량 사용자
- 프로그래머스
- Today
- Total
목록책 읽고 정리 (8)
택시짱의 개발 노트
- 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 개발도 구조적으로는 ..
백엔드 개발에는 터미널 CLI 환경 사용이 중요하다.