성장通

[리뷰] 파이썬 웹 프로그래밍 본문

리뷰/도서 리뷰

[리뷰] 파이썬 웹 프로그래밍

백악기작은펭귄 2022. 11. 17. 22:53

* 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

파이썬 웹 프로그래밍

김석훈 저

 

파이썬 웹 프로그래밍, 기초편 (3판) - YES24

Django를 활용한 파이썬 웹 프로그래밍 대표 도서! 『파이썬 웹 프로그래밍, 기초편』이 장고 최신 버전을 반영하여 돌아왔다! 2015년, 초판 출간 후 8년이라는 세월 동안 장고 웹 프로그래밍 대표

www.yes24.com


간단 서평

파이썬으로 웹 개발을 시작할 때 입문하기 좋은 책이다.

 

이 책은 파이썬 웹 개발에 막 입문한 초급 개발자를 대상으로 하는 만큼, 기본적인 웹 프로그래밍 개념을 설명한 후 파이썬 웹 표준 라이브러리를 소개하여 기초 기반을 다지며 시작한다. 이후 강력한 웹 프레임워크인 Django를 기반으로 전반적인 웹 개발 내용을 실습과 함께 다루고 있다. 또한 다양한 환경에서의 서버 연동 및 클라우드 배포를 포함하고 있어 전체적인 플로우를 경험하기 정말 좋다고 생각된다. 또한 외부 라이브러리 맛보기, 데이터베이스 연동하는 방법 그리고 HTTP 상태 코드가 다른 책에 비해 상세히 정리되어 있다는 느낌도 받았다.

 

나는 컴퓨터공학이라는 전공을 선택한 시점부터 AI 'Researcher'만을 바라보고 공부해왔고, 그런 탓에 엔지니어링 능력은 다소 소홀히 했던 감이 없잖아 있었다. '어차피 대학원 갈 건데, 논문 잘 읽고, 잘 이해하고 그런 게 더 중요하지 않나?'라는 생각에 이론적인 부분을 중점적으로 공부했다. 물론 이게 아주 틀린 말은 아니다. 적어도 리서처에게는, 당장 어떤 서비스를 만들어내고, 이걸 배포하고.. 이런 것보다는 머신러닝 딥러닝 개념을 심도 있게 이해하고, 자신의 논리를 수학적으로 표현할 줄 아는 것이 더 중요한 것은 맞다. 하지만 그게 엔지니어링을 소홀히 할 핑계가 되지는 못한다.

 

나도 '응애'긴 하지만, 솔직히 지금 막 AI Researcher의 길을 시작한 후배가 있다면, 디자인 패턴과 백엔드를 같이 공부하라고 추천하고 싶다. 내가 만든 모델이 실제로 어떤 가치를 창출하기 위해서는 모델의 API화가 중요하고, 이를 위해서는 최적화나 서빙이 매우 중요하기 때문이다. 물론, 백엔드 개발자, MLOps 담당자와 협업을 하며 이를 전적으로 맡길 수도 있다. 하지만 내가 어느 정도 알고 있는 상태에서 협업을 하는 것과, 아예 모르는 상태에서 협업을 하는 것은 천지차이라고 생각한다. 같이 협업하는 동료에게도 말이다. 그렇기에 이러한 부분은 나에게 항상 어딘가 모를 갈증으로 남아있었다.

 

이 책은 그런 나의 가려운 곳을 정확히 긁어주는 책이었다. 초심자를 대상으로 한 만큼, 웹 개발 관련 지식이 거의 없다시피 한 나도 큰 무리 없이 읽을 수 있을 정도로 친절하게 쓰여있었기에 쉬는 날 한두 시간 읽어보기 좋았다. '그럼 너무 겉핥기식으로 쓰여있는 거 아냐?'라는 의심이 들 수도 있겠지만 기초를 위주로 다루면서도 꼭 알아야 하는 개념들은 빠트림 없이 포함하고 있었던 것 같다.

 

당신이 웹 개발을 처음 시작하는 학생이라면, 혹은 AI 쪽으로 진로를 잡았다면, 아니 그냥 파이썬을 주로 다루는 사람이라면, 이 책을 읽어보는 것을 추천한다. 자바 왕국인 대한민국에서는 파이썬 기반 웹 개발이 아직 비주류인 감도 없잖아 있긴 하지만, 전 세계적으로 봤을 때는 많은 글로벌 기업들이 이로 옮겨가고 있으며, 국내 스타트업들도 빠른 서비스 구축을 위해 채택하고 있는 만큼 장래가 밝다고 생각한다. 얼마 전 파이썬 속도도 드라마틱하게 빨라졌으니 더더욱 많은 회사들에서 채택하지 않을까? 하는 생각도 들고 말이다.


목차

CHAPTER 01 웹 프로그래밍의 이해

__1.1 웹 프로그래밍이란?

__1.2 다양한 웹 클라이언트

__1.3 HTTP 프로토콜

__1.4 URL 설계

__1.5 웹 애플리케이션 서버

 

CHAPTER 02 파이썬 웹 표준 라이브러리

__2.1 웹 라이브러리 구성

__2.2 웹 클라이언트 라이브러리

__2.3 웹 서버 라이브러리

__2.4 CGI/WSGI 라이브러리

 

CHAPTER 03 Django 웹 프레임워크

__3.1 일반적인 특징

__3.2 장고 프로그램 설치

__3.3 장고에서의 애플리케이션 개발 방식

__3.4 애플리케이션 설계하기

__3.5 프로젝트 뼈대 만들기

__3.6 애플리케이션 개발하기 - Model 코딩

__3.7 애플리케이션 개발하기 - View 및 Template 코딩

 

CHAPTER 04 Django의 핵심 기능

__4.1 Admin 사이트 꾸미기

__4.2 장고 파이썬 쉘로 데이터 조작하기

__4.3 템플릿 시스템

__4.4 폼 처리하기

__4.5 클래스형 뷰

__4.6 로그 남기기

 

CHAPTER 05 실습 예제 확장하기

__5.1 새로운 애플리케이션 만들기

__5.2 프로젝트 첫 페이지 만들기

__5.3 polls 애플리케이션 – 클래스형 뷰로 변경하기

 

CHAPTER 06 Django의 웹 서버 연동 준비

__6.1 장고의 wsgi.py 파일

__6.2 장고의 WSGI 인터페이스

__6.3 운영 서버 적용 전 장고의 설정 변경 사항

 

CHAPTER 07 Cloud 서버에 Django 배포하기

__7.1 PythonAnywhere 사이트에 가입하기

__7.2 장고 소스 가져오기

__7.3 리눅스 명령으로 압축 풀기

__7.4 가상 환경 만들기

__7.5 PythonAnywhere 서버에서 장고 설정 변경하기

__7.6 PythonAnywhere 웹 서버 설정하기

__7.7 지금까지 작업 확인하기

 

CHAPTER 08 Apache 웹 서버와 연동

__8.1 장고 설정 변경

__8.2 mod_wsgi 확장 모듈

__8.3 mod_wsgi 설치

__8.4 내장 모드로 실행

__8.5 데몬 모드로 실행

 

CHAPTER 09 NGINX 웹 서버와 연동

__9.1 장고 설정 변경하기

__9.2 NGINX 설치

__9.3 NGINX 설정

__9.4 uWSGI 설치

__9.5 uWSGI 설정

__9.6 지금까지 작업 확인하기

 

APPENDIX A 외부 라이브러리 requests, beautifulsoup4 맛보기

__A.1 외부 라이브러리 설치

__A.2 urllib.request 모듈 예제 재작성

__A.3 http.client 모듈 예제 재작성

 

APPENDIX B 장고의 데이터베이스 연동

__B.1 MySQL 데이터베이스 연동

__B.2 PostgreSQL 데이터베이스 연동

__B.3 Oracle 데이터베이스 연동

 

APPENDIX C HTTP 상태 코드 전체 요약

 

APPENDIX D PyCharm 무료 버전 사용하기

__D.1 PyCharm Community Edition 설치하기

__D.2 PyCharm 초기 설정하기

__D.3 파이썬 가상 환경 구성하기

__D.4 Django 패키지 설치하기

__D.5 터미널 창에서 Django 프로젝트 뼈대 만들기

__D.6 테스트를 위한 runserver 실행하기

__D.7 외부 프로젝트를 임포트해 사용하기

__D.8 임포트한 프로젝트 runserver 실행하기