본문 바로가기

Books

(10)
[깔끔한 파이썬 탄탄한 백엔드] 8장 unit test🔍 8장 unit test 기능만 고려했을 때 3가지 테스트 방법 UI test / End-To-End test integration test unit test UI test / End-To-End test UI에 직접 입력하고 클릭하는 등을 통해서 기능이 정상적으로 작동하고 화면이 정상적으로 작동하는지 테스트해 보는 방식. 서비스를 구성하는 모든 시스템을 실행하고 연결한 후 테스트를 진행해야함. Integration test 테스트하고자 하는 서버를 실제로 실행시키고, 테스트 HTTP 응답이 리턴되는지 확인하는 방식. 테스트하고자하는 해당 시스템만 실행시켜 테스트함. Unit test 코드로 코드를 테스트하는 방식. 자동화는 100% 가능하며 실행속도도 빠르다. 디버깅이 비교적 쉽다. 파이썬3에서 unit..
[깔끔한 파이썬 탄탄한 백엔드]7장 인증(authentication) 7장 인증(authentication) sign-up 엔드포인트를 통해서 사용자 가입 id/password 데이터베이스에 저장 - 비밀번호는 암호화해서 저장한다. 로그인에 성공하면 access token을 클라이언트에게 전송. 사용자의 비밀번호를 암호화할때는 단방향 해시 함수가 일반적으로 쓰인다.(복호화 불가능) 파이썬에 해당함수 모듈이 포함되어있다. import hashlib 원본 비밀번호값을 1만 증가시켰을지라도 해시함수로 암호화한 비밀번호값은 완전히 다르다. avalanche effect : 입력값에 미세한 변화를 줄 경우 출력값에 상당한 변화가 일어나는 성질 bcrypt salting과 키 스트레칭을 구현한 함수중 가장 널리 사용되는 해시함수. pip install bcrypt access tok..
[깔끔한 파이썬 탄탄한 백엔드] 4장 HTTP의 구조 및 핵심 요소 4장 HTTP의 구조 및 핵심 요소 HTTP 통신 방식 요청(request)과 응답(response) stateless &nbsp&nbsp&nbsp&nbsp&nbsp각각의 HTTP통신은 독립적이며 그 전에 처리된 HTTP통신에 대해서 전혀 알지 못한다. 요청을 보낼 때 필요한 모든데이터를 매번 포함시켜야한다 HTTP 요청(request) 구조 Start Line GET /search HTTP/1.1 HTTP 메소드| Request target | HTTP version Headers key:value ex) HOST : google.com Accept : 해당 요청이 받을 수 있는 응답 body 데이터 타입을 알려 줄 수 있는 헤더 MIME type이 value로 지정된다. Body HTTP 응답(res..
[HTTP 완벽가이드] 3, 4장 3장 HTTP 메세지✉️ 요청메시지 형식 응답메시지 형식 상태코드의 종류 전체 범위 정의된 범위 분류 100-199 100-101 정보 200-299 200-206 성공 300-399 300-305 리다이렉션 400-499 400-415 클라이언트 에러 500-599 500-505 서버 에러 많이 쓰이는 상태 코드 상태코드 사유 구절 의미 200 OK 성공! 요청한 모든 데이터는 응답 본문에 들어있다. 401 Unauthorized 사용자 이름과 비밀번호를 입력해야 한다. 404 Not Found 서버는 요청한 URL에 해당하는 리소스를 찾지 못했다. 4장 커넥션 관리🔁 신뢰할 수 있는 TCP HTTP성능은 TCP성능의 영향을 받는다. 지속 커넥션 사전작업, 지연 줄어듦 튜닝 커넥션 유지 커넥션 수 줄여..
[깔끔한 파이썬 탄탄한 백엔드]3장 첫 API 개발 시작 책에서는 Flask 프레임워크를 기반으로 API를 개발한다. 파이썬 가상 환경 생성 conda create --name api python=3.7 가상 환경 활성화 source activate api 가상환경 비활성화 source deactivate 라고 나와있긴 하지만 실제 ubuntu에 적용시켜보면 DeprecationWarning 이 뜨면서 conda deactivate 를 쓰라고 권고한다. 현재 생성되어 있는 가상 환경 리스트 conda env list flask 설치(단, 가상 환경 활성화 상태에서 다운받아야한다. 앞으로의 동작들이 가상 환경에서 실행될 것이기 때문에) pip install flask ping 엔드포인트 구현하기 🏓 디렉토리 만들기(exit()로 빠져나와서 터미널에서 입력) mk..
[깔끔한 파이썬 탄탄한 백엔드] 1장 개발 환경 구성 💻개발 환경 구성💻 ubuntu 설치 microsoft store에서 설치할 수 있다. 파이썬 가상 환경 설치 venv(python3에 포함) 또는 콘다(conda) 콘다 설치 설치 후 콘다가 다운로드 된 경로에서 bash Miniconda3-latest-Linux-x86_64.sh 다운로드 진행 후 conda list 를 입력했을 때, 만약 conda: command not found가 뜬다면 export PATH=~/miniconda3/bin:$PATH 우분투 터미널 환경 (wsl) 🎨 책에서는 Gnome 색상 변경 툴을 사용해서 (gogh) 테마를 변경하는데 이것을 적용해보니 unsupported terminal 이라고 적용이 안되었다. 😥 그래서 Mayccoll 깃허브를 보니 나와 같은 문제로 이..
습관의 힘 나에게는 계속 유지하고 싶은 습관과 좋은방향으로 개선 시키고싶은 습관이 있다. 전자의 경우 한두시간 일찍 일어나 독서를 한다던지, 영어공부를 하며 시간을 보내는것, 균형잡힌 식습관으로 몸을 건강히 만드는것, 운동을 꾸준히 스트레스없이 하는것 등이다. 후자의 경우는 보통 건강을 해치는 습관들이다. 늦게 잠든다던지, 카페인에 취약한걸 알면서도 커피를 마시는 것 이라던지, 몸에 안좋은 음식을 스트레스 해소용으로 섭취할때 등이다. 이 책의 저자는 습관은 신호 - 반복행동 - 보상의 고리로 이루어져있다고 말하며 그에 맞는 연구나 사례를 들어 이 주장을 뒷받침하고있다. 책의 말을 빌리자면, 습관 변화를 위한 황금률 - 나쁜 습관은 완전히 사라지지 않는다. 다만 다른 행동으로 바뀔뿐이다. 습관을 바꾸는 방법으론 -같..
[깔끔한 파이썬 탄탄한 백엔드] 2장, 3장 2장 현대 웹 시스템 구조 및 아키텍쳐 현대 개발팀의 구조 -기획자(Product Manager) -디자이너(Designer) -프론트엔드 개발자(Frontend Developer) -백엔드 개발자(Backend Developer) -데브옵스(DevOps) -풀스택 개발자(Full Stack Developer) -시스옵스(SysOp - Systerm Operations) -데이터 사이언티스트(Data Scientist) -데이터 엔지니어(Data Engineer) -테스터(Tester) -스크럼 마스터(Scrum Master) 각 구성원들의 정의 및 역할 설명이 나온다. 이중에 백엔드 시스템은 -앞부분 : API 개발 -뒷부분: 데이터 수집, 분석, 관리 등 데이터 관련 시스템을 개발 로 나뉜다. 3장 ..