일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Shellcode
- ChatGPT
- php
- flask
- 웹해킹
- c++
- 챗GPT
- Web
- mysql
- BOF
- webhacking
- hackerschool
- 인공지능
- 딥러닝
- 리눅스
- 파이썬
- c
- Scala
- Python
- 러닝스칼라
- hacking
- 백엔드
- 경제
- backend
- 러닝 스칼라
- BOF 원정대
- Javascript
- hackthissite
- Linux
- deep learning
- Today
- Total
목록백엔드 (6)
jam 블로그
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/t6CLX/btqH0piUbkn/7N6NgbuwZeoLpfU0HCVQl1/img.jpg)
8. Unit Test 기능을 개발하고 나서 제대로 돌아가는지 매번 수동으로 API를 쏠수 없으니 Unit Test를 하여 각 기능들이 제대로 돌아가는지 테스트를 해야합니다. UI test / End-to-End Test 웹브라우저를 통해서 웹사이트를 실제로 접속하고 UI에 직접 입력하고 클릭하는 등을 통해서 기능을 정상적으로 작동하고 화면이 정상적으로 작동하는지 테스트 해보는 방식 아래는 웹 UI test하는 툴입니다. Selenium Katalon Protractor CasperJS PhantomJS Integration test(통합 테스트) 각 기능(모듈)을 통합하는 과정에서 모듈간 호환성의 문제를 찾아내기 위해 수행되는 테스트 빅뱅 통합 : 전체 모듈을 모두 통합한 이후 통합 테스트를 수행하는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KigfU/btqH0pXvSri/RSdFJ7j4nuQOgDPCCSnUq0/img.jpg)
7. 인증 인증은 private api와 같은 사용자를 제한해야하는 api에서 필요하며, public api와 같은 경우 사용 횟수 제한이나 남용 방지등을 위해 쓰입니다. 인증 흐름 인증을 생성 및 사용 방법은 대략적으로 아래와 같습니다. 회원 가입을 진행할때 api에 id/pw를 api에 보냅니다. 회원 가입 api에서 id/pw를 체크하고 별 문제 없으면 DB에 저장합니다. 이때 id는 그대로 저장하며 pw는 암호화해서 저장합니다. 회원 가입이 완료 되면 로그인 합니다. 이때 들어온 id와 pw를 DB에 저장된 값과 비교합니다. (pw는 암호화한 후 암호화로 저장된 DB와 비교합니다.) 로그인이 OK가 되면 이때 access token을 만들어서 front-end에 전송합니다. Front-end에서는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bZVcyP/btqHQX2JmO4/es6xjQTHxNYZ8wUkzZA3lK/img.jpg)
5. 본격적으로 API 개발하기 여기서는 트위터를 줄인 미니터를 구축합니다. 핵심 기능 회원가입 로그인 트윗 다른 회원 팔로우 하기 다른 회원 언팔로우 하기 타임라인 회원가입 필요한 정보 id name email password profile 앞에서 만들었던 소스에 추가하여 개발합니다. POST method로 /sign-up 생성 request json body로 넘어온 값을 new_user에 저장 new_user에 id_count 추가 서버에서 생성한 users에 new_user 등록 new_user를 json 상태로 return 위 소스를 run 시키고 나서 postname으로 데이터를 보내보면 하단처럼 json으로 id와 함께 반환 됩니다. 300자 제한 트윗 글 올리기 body에 들어갈 데이터는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mdGev/btqHZjDflhN/f7j4SYLKPIE34Tbgk3kJv0/img.jpg)
4. 첫 API 개발 시작 해당 내용은 책의 3장에 해당됩니다. 이제 Flask를 사용하여 간단하게 개발하여 봅시다. 1줄 : flask를 불러옵니다. 3줄 : app이라는 변수에 Flask 모듈을 쓸수 있도록 만들어줍니다. 5, 9줄 : flask의 route 데코레이터를 사용하여 엔드포인트를 등록합니다. 6, 10줄 : 각 route에 대해 처리할 함수들입니다. 13~14줄 : flask run이 아닌 python으로 run 시키기 위해 작성합니다. host : 0.0.0.0으로 하면 모든 ip에 대해서 허용합니다. port : 80으로도 설정할 수 있지만 보안상 root가 필요하기에 여타 다른 port로 합니다. debug : true 일 경우 파이썬에서 발생한 모든 오류가 출력되므로 개발시에만 사..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mStsL/btqHU8vIwWH/UG34rfG3WMNhTsJquRbui0/img.jpg)
3. HTTP의 구조 및 핵심 요소 원래 책에서는 4장에 해당되며, API 만들기 전에 HTTP에 대한 설명이 먼저 하는게 맞을듯 하여 임의로 순서를 변경하였습니다. 1) HTTP HyperText Transfer Protocol의 약자로 HTML을 주고 받을 수 있도록 만들어진 프로토콜 통신방식 Request & Response (Stateful) 클라이언트에서 서버로 HTTP Request를 보내면 서버에서 처리 후 결과에 따른 HTTP 응답을 Response 하는 방식 대표적으로 TCP 통신이 해당되고, FTP, Telnet 과 같은 유저 정보를 계속 가지고 있는 경우의 프로토콜들입니다. Stateless 기본적인 HTTP가 해당됩니다. 또한, UDP와 DNS가 해당됩니다. state를 가지지 않고..