본문 바로가기

Books/about dev

(9)
[깔끔한 파이썬 탄탄한 백엔드] 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장 ..
[HTTP 완벽 가이드] 1장, 2장 책 두께가 어마무시하지만 책터디를 같이 하면서 꾸준히 읽어보려고한다. 1장 HTTP 개관 1장에서는 뒤에서 다룰 용어들의 간단한 정의, 예를 요약해서 설명해준다. HTTP라고 하면 HTTPS와의 차이정도만 알고있었는데 어떻게 트래픽을 전송하는지, 리소스는 어떤 개념이고 어떤것들이 있는지 알게되었다. 또한 URI 그중에서도 URL에 대한 내용. URL이 위치뿐 아니라 접근방법도 표현하고 이것은 스킴,인터넷주소,리소스로 구성된다. URN은 조금 생소한 용언데 리소스의 위치에 영향받지않는다는 점이 강력해보였다. 그밖에도 상태코드(200,302,404 등) 사유 구절(reason phrase) 코드는 알았지만 단어 정의를 다시한번 확인할수있었다. 또한 웹의 구성요소를 간단히 다루며 프락시,캐시,게이트웨이,터널에..