주니어 기초 코딩공부/Python 기초

Django 01 웹프로그래밍

jju_developer 2023. 5. 3. 17:05
728x90

안녕하세요 jju_developer입니다!

오랜만에 자격증 시험을 모두 마치고 돌아왔습니다!

 

오늘부터 일주일 동안 장고에 대해서 간략하게 배운 내용을 공유드리겠습니다.

맨 아래 수업 내용을 정리하였으니, 참고 부탁드립니다.

 

그렇다면...

본격적으로 시작하기 전에

장고란 무엇인지 살펴보겠습니다!

 

Django_(web application framework)

장고! 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크입니다.

쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어진 웹 프레임워크이라고 합니다.

웹사이트를 구축할 때, 비슷한 유형의 요소들이 항상 필요합니다. 

우리가 개발을 하다 보면 항상 회원가입, 로그인, 로그아웃과 같이 사용자 인증을 다루는 방법이나

웹사이트의 관리자 패널, 폼, 파일 업로드와 같은 것들을 똑같이 만드는 작업을 합니다.

그런데 매번 직접 만들 필요 없이 웹 개발자들이 새로운 웹 사이트를 개발할 때 바로 사용할 수 있는 구성요소들을 갖춘 여러 프레임워크를 만들어서 사용할 수 있도록 하였습니다.

 

장고도 그중에 하나이며,

다시 발명해야 하는 번거로움을 막아주고, 새로운 웹사이트를 개발할 때 간접비용의 부담을 덜어주기도 합니다.

 

장고 프레임워크를 간단하게 보자면,

편지(request, 요청)가 도착했는지 확인해 주는 메일박스(port, 포트)가 있다고 가정해 보면,

이 것은 웹 서버가 해주는 일입니다.

 

웹 서버는 받은 편지를 읽고 웹 페이지와 함께 답장을 주며, 편지에는 그 안에 내용이 있어야 하죠.

장고는 그 특정 콘텐츠를 만들 수 있는 역할을 합니다.

 

웹 서버에 요청이 오면 장고로 전달됩니다. 

장고 urlresolver는 웹 페이지의 주소를 가져와 무엇을 할지 확인합니다.

(urlresolver는 웹 사이트 주소인 URL(Uniform Resource Locator)를 통해 이해합니다). 

이 urlreslover는 그리 똑똑하지 않기 때문에 패턴의 목록을 가져와 하나하나 해당 URL과 맞는지 대조하여 식별합니다.

만약 일치하는 패턴이 있으면, 장고는 해당 요청을 관련된 함수(view)에 넘겨줍니다

집배원을 생각해 보면 편지를 전달하는 집배원은 온 거리를 걸으며 집집이 편지와 대조해서 주소와 번지를 확인합니다.

주소와 번지가 일치하면 그곳에 편지를 배달합니다.

urlresolver가 바로 집배원과 같은 역할을 합니다.
정말 극한의 직업이겠죠...?

 

그런데 만약 사용자가 데이터를 바꿔달라고 수정을 요청한다면 어떻게 될까요? 

편지를 보내서 편지 내용에 "~~~~ 내용을 바꿔주세요"라고 써서 보냈다고 가정해 봅시다.

 

view함수는 수정할 수 있는 권한이 있는지 확인하고 나서, 바꿔달라는 부분을 수정하여 다시 답장을 주겠지요.

"수정 완료했습니다!"라고 말입니다.

그러고 나서 view는 답장을 생성하여,

장고는 그 답장을 그 사용자의 웹 브라우저에 보내주는 역할을 합니다.

파이썬을 이용해서 무엇인가를 개발하기 전에 간단하게 장고에 대해 알아보는 시간이었습니다.

대략적인 내용을 이해하시는 부분에 도움이 되셨으면 좋겠습니다.

 

 

<맥쌤 수업내용>

Django 수업 자료 클론 받기!-> 커맨드창에 입력

geunju@Geunju khacademy % cd Django

geunju@Geunju khacademy % git clone https://github.com/kshelp/django1

 

그러고 나서 파이참을 활용하여

파이참에서 해당 클론 받은 것을 오픈하면 됩니다.

맥북에 파이참이 없는데... 난감하네..

일단 없이 흐름만 보고 파이참을 다운로드하는 걸로... 해야겠습니다..

 

그다음 파일-> 세팅-> 파이썬 인터프리터에서 (베이스)를 안 쓰고 new로 해서 새로 만들었습니다.

기존의 아나콘더에는 라이브러리가 있는데, 기본적으로 파이썬을 깔면

이 3개의 라이브러리가 있습니다.

 

이것만 가지고 필요한 라이브러리를 따로 우리가 가져올 수 있도록 이렇게 new로 환경을 바꿔준 것입니다.

 

웹 프로그래밍이란?

간단히 말하면 HTTP(S) 프로토콜로 통신하는 클라이언트와 서버를 개발하는 것입니다.

배우는 내용 중 telnet이라는 것이 있습니다.

이것을 설치하려면, 제어판으로 가서 프로그램 및 기능에서  

요기서 맨 밑에 텔넷 클라이언트가 있습니다.

체크 박스에 체크하고 확인 누르면 깔립니다.

다시 커맨드 창으로 가서 텔넷을 치면 나옵니다.

 

텔넷은 모든 프로토콜에 접속이 가능합니다.

만약에 오라클의 포트가 살아있는지 확인하려면

이렇게 netstat -am findstr ":1521" 이렇게 쳐서 확인을 했었죠

이제 텔넷을 이용해서 살아있는 포트로 접속이 실제로 되는지를 볼 수 있습니다. 

정상 접속시 검은 화면에 깜빡이만 깜빡입니당 ㅎ

다시 말해서 우리가 원하는 특정 포트로 접근하고 싶으면, 텔넷을 이용하여 특정 포트가 살아있고 그것에 접속이 되는지를

볼 수 있다는 것입니다~!!

Listener가 오라클의 포트가 살아있음을 볼수 있죳

만약 제어판에서 listener를 지우면

이렇게 Error와 함께 no listener로 반환을 하게 됩니다!

 

쌤 아이피로 접속해 보기

커맨드 창에 telnet 192.168.30.3 1521로 접속

이렇게 접속이 가능하지만 쌤이 강제로 1521 포트에 대해서 연결을 차단할 수 있습니다.

이렇게 규칙을 만드셨고 다시 접속하려고 하면 연결 불가로 뜹니다.

서비스도 살아있고 포트도 살아있는데 접속이 안 되는 이유는, 특정 서버의 특정 포트를 막아놓은 경우입니다.

서버가 접속이 되지 않을 경우!

1. 서비스가 올라가 있는지 확인해 보고

2. 실제로 포트가 살아있는지 확인하고

3. 외부에서 telnet을 해보고 접속이 안될 경우 중간에 뭐가 막혀있는지를 유추할 수 있습니다.

그렇기 때문에 telnet을 적절히 사용을 해야 한다고 하셨습니다!!!

 

텔넷은 정보처리산업기사 필기, 실기 때 봤던 내용이라서 이제야 좀 사용법도 알고 이해가 되는 부분이었습니다.

 

원래 텔넷은 이러한 용도만은 아니라고 하셔서 나중에 따로 텔넷에 대해 검색해 볼 예정입니다.

기술의 발전에 따른 웹 서버 기술의 변화

현재의 툴은 톰켓을 이용하여 웹 애플리케이션 서버를 띄웁니다.

 

애플리케이션 서버 방식

여기까지 장고 기초 1장을 마치겠습니다.

 

수고하셨습니다^^

 

 

참고 서적: 파이썬 웹 프로그래밍: Django(장고)로 배우는 쉽고 빠른 웹 개발

728x90