
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
이진석
파이썬/장고 웹서비스 개발의 기초를 탄탄히 다져보세요. 장고 학습에는 시간도 걸리지만, 반복되는 개발 속에 여러분의 생산성을 극대화하실 수 있습니다. 여러분의 상상을 현실로 만들어보세요.
초급
Python, Django, React
채널스 라이브러리는 장고의 철학 아래 개발된 실시간 메세징 라이브러리입니다. 본 강의를 통해 채널스의 진수를 빠르게 익혀보세요.
누적 수강생 2,880명
・
평균 1일이내 답변
웹소켓 동작 방식에 대해 질문이 있습니다.
이진석
지식공유자
안녕하세요. 1. app의 views에서 렌더링 된 echo_page.html은 클라이언트를 의미 => 웹브라우저(클라이언트)가 http://localhost:8000/echo/ 페이지에 접속하면, 이 요청을 echo_page 뷰가 호출되며 처리되고, echo_page.html 을 통해 렌더링된 HTML/JS 응답을 웹브라우저에서 받게 됩니다. => 그 HTML/JS 내에는 ws://localhost:8000/ws/echo/ 주소로 웹소켓 접속을 시도하는 코드가 있습니다. 웹브라우저에서는 응답을 받는 즉시, 해당 주소로 웹소켓 연결을 시도하게 됩니다. => ws://localhost:8000/ws/echo/ 주소로 웹소켓 요청이 들어가면, /ws/echo/ 주소에 매핑된 EchoConsumer 클래스의 인스턴스가 생성이 되면서, 웹소켓 연결이 맺어집니다. 이 웹소켓 연결이 유지되는 동안에는 그 인스턴스는 계속 유지됩니다. 2. 그 클라이언트에서 ws객체를 이용해 여러가지 이벤트 핸들러 처리와 메세지를 웹소켓 서버(ws://localhost:8000/ws/echo/)로 전송할 수 있음 3. 웹소켓 서버로 전송된 메세지는 routing.py에 등록된 path에 맞게 매칭된 Consumer를 호출 => ws 객체를 통해서, 연결된 EchoConsumer 인스턴스에게 메세지를 보낼 수 있고 받을 수 있습니다. 4. 호출된 Consumer는 receive 오버라이딩을 통해 클라이언트에서 보낸 메세지에 대해 후속 처리 => 말씀하신 대로, ws 객체를 통해서 send를 하면, 연결된 EchoConsumer 인스턴스의 receive 메서드가 자동 호출이 됩니다. 메세지 수신에 대한 처리를 하고자한다면, receive 메서드를 재정의(override)해서 구현을 합니다. --- 하나의 Consumer 인스턴스는 단 하나의 웹클라이언트와 연결이 됩니다. 생성된 수많은 Consumer Instance는 서로를 모릅니다. 단지, 연결된 하나의 웹소켓 클라이언트와 통신을 할 뿐이죠. 장고 기본의 CBV에서 각 요청을 처리하는 뷰 클래스의 인스턴스들은 서로를 모르며, 각 요청을 처리하는 것에만 책임이 있는 것과 같습니다. HTTP 요청을 처리하는 클래스 뷰의 인스턴스는 http 요청을 처리하는 동안에만 살아있으며, 요청 처리가 끝나면 그 인스턴스는 사라집니다. 이와 동일하게 웹소켓 요청을 처리하는 Consumer 인스턴스는 웹소켓 요청을 처리하는 동안에만 살아있으며, 그 연결이 끊어지면 그 인스턴스는 사라집니다. 다만 http에 비해서 웹소켓이 연결이 유지되는 시간이 길어서 조금 더 오래 유지될 뿐입니다. 서로 다른 Consumer 인스턴스 간에 통신을 하기 위해서는, 강의 뒤에서 다루는 채널 레이어를 사용하게 됩니다. 살펴보시고 또 질문 남겨주세요. 화이팅입니다. :-)
조회수
661
답변 전문보기
장고 채널스를 활용한 분산 메세징 및 웹소켓 처리
웹소켓 통신에 대한 이해
실시간 웹채팅 서비스
인생은 짧습니다. 실시간 웹서비스 개발에서도 장고/채널스를 통해,
비즈니스를 빠르게 성공적으로 이끄시고 여러분의 시간도 아끼세요. 💪
장고 개발의 최적의 IDE인 PyCharm Professional (유료 툴)을 강의 후에도 사용하실 수 있도록 JetBrains으로부터 6개월 쿠폰을 후원받았습니다. 완강 후 아래 신청 방법으로 신청해주세요.
참고) 학생/교사이신 분은 JetBrains의 학생 지원 프로그램을 통해, JetBrains의 모든 툴을 1년 단위로 라이센스 받으실 수 있습니다. 해당 프로그램을 신청하시면 수일 내로 라이센스를 발급받으실 수 있습니다.
채널스는 해외에서도 장고 핵심 라이브러리로 빠지지 않고 언급되는 라이브러리입니다. 2017년에 1.0 버전이 릴리즈되고, 2022년 11월에 4.0 릴리즈에 이르면서 충분히 성숙한 라이브러리입니다.
채널스만 알면 정말 작은 양의 코드로도 웹서비스에 실시간성을 부여할 수 있는데, 채널스의 존재를 몰라서 채널스 자료가 없어서 이를 못 하시는 분들이 많이 계셔서 안타까웠습니다. 그래서 이 강의 하나로 많은 분이 더 손쉽게 실시간 웹을 익히실 수 있도록 열심히 강의를 만들었습니다.
채널스 라이브러리는 높은 생산성의 장고 프레임워크의 철학을 그대로 계승하고 있습니다. 반복을 줄이고 핵심에 집중할 수 있도록 도와줍니다. 채널스 라이브러리를 바르게 이해하고, 채널스 기반에서 높은 생산성으로 실시간 웹소켓 채팅 서비스를 만드는 방법을 배워봅시다.
강의를 수강하시면 채널스를 깊게 이해하시게 되고, 장고의 높은 생산성과 함께 빠르게 실시간 웹서비스를 구축하실 수 있게 됩니다.
📢 수강 전 참고해주세요.
장고 기초 학습 후
새로운 도전을 찾는 분
정적인 웹페이지에
활력을 넣고 싶은 분
실시간 채팅 서비스를
만들어보고 싶은 분
채널스를 배워
깊게 이해하고 싶은 분
찐 장고 홀릭 개발자가
채널스 핵심만 뽑은 강의
기초부터 차근차근
쌓아 올리는 웹 소켓 통신
강의 슬라이드
PDF 제공
전 강의 한글 자막으로
강의 내용 파악을 빠르게!
풍성한 웹소켓 예제:
Echo 메시지, 라이브블로그, 웹 채팅
1. Channels 주요 구성요소
2. (실습) 초간단 Echo 웹소켓 구현
3. (실습) JS 객체 웹소켓 전송 및 수신
4. Redis 서버 구동 및 접속
5. 채널레이어를 활용한 프로세스간 통신
6. (실습) 웹 소켓 Liveblog
7. 채널 레이어로 전송할 수 있는 데이터 타입
8. 웹소켓 재접속
9. Consumer 클래스의 상속 관계
10. 실전 채팅 서비스 만들기
11. 보안
Q. 수강 전에 갖춰야 할 환경, 기타 유의 사항이 있나요?
본 강의에서도 언급하지만, 개발환경 구축에 대해서는 다루지 않습니다. 개발환경 구축은 <장고 설계철학으로 시작하는 파이썬/장고 입문>의 개발환경구축 섹션을 "미리보기"로 공개해뒀으니, 이를 참고해 구축해주세요.
레디스 설치/구동을 위해, 도커(Docker)가 설치된 컴퓨터가 있으시면 좋습니다. 도커 설치가 불가능하신 상황이더라도 걱정하지 마세요. redis.com의 Redis Enterprise Cloud의 관리형 레디스 서비스를 Free Plan으로 사용하는 방법을 알려드립니다.
Q. 본 강의의 내용을 익히면 어떤 일을 할 수 있나요?
장고와 함께 실시간 웹서비스를 높은 생산성으로 개발할 수 있으시게 됩니다.
파이썬과 장고에 진심인 소프트웨어 개발자 이진석입니다.
학습 대상은
누구일까요?
장고 기본을 익히시고, 새로운 도전거리를 찾으시는 분
빠르게 실시간 웹서비스 개발을 익히고 싶으신 분
선수 지식,
필요할까요?
파이썬 언어 기초 (함수, 클래스, 장식자)
장고 기초 (뷰, 모델, 템플릿의 이해)
프론트엔드 기초 (HTML, CSS, JS 기본 문법)
2,880
명
수강생
136
개
수강평
927
개
답변
4.8
점
강의 평점
5
개
강의
파이썬과 장고에 진심인 소프트웨어 개발자
파이썬/장고 질답 및 교육서비스, 파이썬 사랑방 주인장
파이썬 사랑방 with Django/React 커뮤니티 (구. Ask Django) 운영자
(전) Microsoft Azure MVP 어워드 수상 (2016년~2022년)
대외 활동
오프라인 교육 : SK텔링크, LS그룹, 삼성 디스플레이, 부산대학교 정보화본부, 서울대학교 벤처경영학연합전공, 패스트캠퍼스 웹서비스 개발 캠프 3기 등
기술 자문 : 유클리드소프트, 부산대학교, 한국산업기술평가관리원, 한국방송통신전파진흥원 등
여러분의 파이썬/장고/리액트 페이스메이커가 되겠습니다. 😉
전체
23개 ∙ (2시간 24분)
해당 강의에서 제공:
전체
15개
4.7
15개의 수강평
지식공유자님의 다른 강의를 만나보세요!
같은 분야의 다른 강의를 만나보세요!
₩55,000