장고 편집하기
최신판 | 당신의 편집 | ||
5번째 줄: | 5번째 줄: | ||
==개요== | ==개요== | ||
− | + | '''장고'''는 [[파이썬]]으로 만들어진 무료 [[오픈소스]] 웹 [[애플리케이션]] [[프레임워크]]로 모델-뷰-컨트롤러(MVC) 패턴을 따르고 있다. 파이썬 기반 웹 프레임워크 중 가장 널리 퍼져 있다. 보안이 우수하고 유지보수가 편하며 고도의 [[데이터베이스]] 기반 웹사이트를 작정하는데 있어서 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어져 있다. 장고는 콤포넌트의 재사용성과 플러그인화 가능성, 빠른 개발 등을 강조하며 중복배제 DRY의 원리를 따른다. 훌륭한 개발자에 의해 만들어진 이 프레임워크는 웹 개발을 하는데 많은 도움을 주기 때문에 새롭게 웹 개발을 시작할 필요없이 그저 프레임워크를 활용하여 앱 개발에만 집중할 수 있다. 활발한 커뮤니티들이 있어 좋은 참고자료와 무료 및 유료 지원을 하는 옵션들이 제공된다.<ref name="소개">skim0726, 〈[https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Introduction Django 소개]〉, 《MDN 웹 문서》, 2019-05-17</ref> 현재는 장고 소프트웨어 재단에 의해 관리되고 있다. | |
==역사== | ==역사== | ||
44번째 줄: | 44번째 줄: | ||
;*스크립트 언어의 한계 | ;*스크립트 언어의 한계 | ||
− | : 장고가 스크립트 언어 기방니다 보니, 테스트가 꼼꼼하지 못하면 사소한 실수가 큰 사고를 만든다. 개발자 실수는 언제나 존재하기 때문에 컴파일 시점에 알아내지 못하는 오류를 매우 조심해야 한다. 다행히 장고에서 권장하는 방식으로만 개발하면 많은 부분을 예방할 수 있기는 하다.<ref name="단점1">공감 프로그래머, 〈[http://blog.naver.com/PostView.nhn?blogId=yo2dh&logNo=221037467533&categoryNo=0&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postView 장고와 파이썬 개발의 즐거움]〉, 《네이버 블로그》, 2017-06-26</ref> 그 밖에도 작업하는데 모든 시스템의 지식이 필요하며, 수많은 만들어진 기능을 제공하지만, 그 안에서 세세한 설정 변경이나 자세한 조정이 힘들다는 단점이 있다. | + | : 장고가 스크립트 언어 기방니다 보니, 테스트가 꼼꼼하지 못하면 사소한 실수가 큰 사고를 만든다. 개발자 실수는 언제나 존재하기 때문에 컴파일 시점에 알아내지 못하는 오류를 매우 조심해야 한다. 다행히 장고에서 권장하는 방식으로만 개발하면 많은 부분을 예방할 수 있기는 하다.<ref name="단점1">공감 프로그래머, 〈[http://blog.naver.com/PostView.nhn?blogId=yo2dh&logNo=221037467533&categoryNo=0&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=postView 장고와 파이썬 개발의 즐거움]〉, 《네이버 블로그》, 2017-06-26</ref> |
+ | |||
+ | 그 밖에도 작업하는데 모든 시스템의 지식이 필요하며, 수많은 만들어진 기능을 제공하지만, 그 안에서 세세한 설정 변경이나 자세한 조정이 힘들다는 단점이 있다. | ||
==설계 원칙== | ==설계 원칙== | ||
96번째 줄: | 98번째 줄: | ||
데이터 기반 웹 사이트에서 웹 어플리케이션은 웹 브라우저로부터 HTTP 요청을 기다린다. 요청을 받으면, 웹 어플리케이션은 URL과 POST 데이터 또는 GET 데이터 정보에 기반하여 요구사항을 알아낸다. 그 다음 무엇이 필요한 지에 따라 데이터베이스로부터 정보를 읽거나 쓰고, 또는 필요한 다른 작업들을 수행한다. 그 다음 웹 어플리케이션은 웹 브라우저에 응답을 반환하는데 주로 동적인 HTML 페이지를 생성하면서 응답한다. 장고 웹 어플리케이션은 분류된 파일들에 대해 일련의 단계를 수행하는 코드로 구성되어 있다.[[파일:장고구조.png|썸네일|300픽셀|'''장고 구조''']] | 데이터 기반 웹 사이트에서 웹 어플리케이션은 웹 브라우저로부터 HTTP 요청을 기다린다. 요청을 받으면, 웹 어플리케이션은 URL과 POST 데이터 또는 GET 데이터 정보에 기반하여 요구사항을 알아낸다. 그 다음 무엇이 필요한 지에 따라 데이터베이스로부터 정보를 읽거나 쓰고, 또는 필요한 다른 작업들을 수행한다. 그 다음 웹 어플리케이션은 웹 브라우저에 응답을 반환하는데 주로 동적인 HTML 페이지를 생성하면서 응답한다. 장고 웹 어플리케이션은 분류된 파일들에 대해 일련의 단계를 수행하는 코드로 구성되어 있다.[[파일:장고구조.png|썸네일|300픽셀|'''장고 구조''']] | ||
− | * | + | * URLs : 단일 함수를 통해 모든 URL 요청을 처리하는 것이 가능하지만, 분리된 뷰 함수를 작성하는 것이 각각의 리소스를 유지보수하기 훨씬 쉽다. URL mapper는 요청 URL을 기준으로 HTTP 요청을 적절한 View로 보내주기 위해 사용된다. 또한 URL mapper는 URL에 나타나는 특정한 문자열이나 숫자의 패턴을 일치시켜 데이터로서 뷰 함수에 전달할 수 있다. |
− | * | + | * View : View는 HTTP 요청을 수신하고 응답을 반환하는 요청 처리 함수이다. View는 Model을 통해 요청을 충족시키는 데 필요한 데이터에 접근한다. 그리고 템플릿에게 응답의 서식 설정을 맡긴다. |
− | * | + | * Models : Model은 애플리케이션의 데이터 구조를 정의하고 데이터베이스의 기록을 추가, 수정, 삭제하고 쿼리하는 방법을 제공하는 파이썬 객체다. |
− | * | + | * Templates : 템플릿은 파일의 구조나 레이아웃을 정의하고 실제 내용을 보여주는 데 사용되는 플레이스홀더를 가진 텍스트 파일이다. View는 HTML 템플릿을 이용하여 동적으로 HTML 페이지를 만들고 Model에서 가져온 데이터로 채운다. 템플릿으로 모든 파일의 구조를 정의할 수 있으며, 템플릿이 꼭 HTML 타입일 필요는 없다.<ref name="소개"></ref> |
==개발된 서비스== | ==개발된 서비스== |