장고 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
5번째 줄: 5번째 줄:
  
 
==개요==
 
==개요==
장고는 [[파이썬]]으로 만들어진 무료 [[오픈소스]] 웹 [[애플리케이션]] [[프레임워크]]로 모델-뷰-컨트롤러(MVC) 패턴을 따르고 있다. 파이썬 기반 웹 프레임워크 중 가장 널리 퍼져 있다. 보안이 우수하고 유지보수가 편하며 고도의 [[데이터베이스]] 기반 웹사이트를 작정하는데 있어서 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어져 있다. 장고는 콤포넌트의 재사용성과 플러그인화 가능성, 빠른 개발 등을 강조하며 중복배제 DRY의 원리를 따른다. 훌륭한 개발자에 의해 만들어진 이 프레임워크는 웹 개발을 하는데 많은 도움을 주기 때문에 새롭게 웹 개발을 시작할 필요없이 그저 프레임워크를 활용하여 앱 개발에만 집중할 수 있다. 활발한 커뮤니티들이 있어 좋은 참고자료와 무료 및 유료 지원을 하는 옵션들이 제공된다.<ref name="소개">skim0726, 〈[https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Introduction Django 소개]〉, 《MDN 웹 문서》, 2019-05-17</ref> 현재는 장고 소프트웨어 재단에 의해 관리되고 있다.
+
'''장고'''는 [[파이썬]]으로 만들어진 무료 [[오픈소스]] 웹 [[애플리케이션]] [[프레임워크]]로 모델-뷰-컨트롤러(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=&currentPage=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=&currentPage=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픽셀|'''장고 구조''']]
  
* 유알엘(URL) : 단일 함수를 통해 모든 URL 요청을 처리하는 것이 가능하지만, 분리된 뷰 함수를 작성하는 것이 각각의 리소스를 유지보수하기 훨씬 쉽다. URL mapper는 요청 URL을 기준으로 HTTP 요청을 적절한 View로 보내주기 위해 사용된다. 또한 URL mapper는 URL에 나타나는 특정한 문자열이나 숫자의 패턴을 일치시켜 데이터로서 뷰 함수에 전달할 수 있다.
+
* URLs : 단일 함수를 통해 모든 URL 요청을 처리하는 것이 가능하지만, 분리된 뷰 함수를 작성하는 것이 각각의 리소스를 유지보수하기 훨씬 쉽다. URL mapper는 요청 URL을 기준으로 HTTP 요청을 적절한 View로 보내주기 위해 사용된다. 또한 URL mapper는 URL에 나타나는 특정한 문자열이나 숫자의 패턴을 일치시켜 데이터로서 뷰 함수에 전달할 수 있다.
  
* 뷰(View) : 뷰는 HTTP 요청을 수신하고 응답을 반환하는 요청 처리 함수이다. 뷰는 모델을 통해 요청을 충족시키는 데 필요한 데이터에 접근한다. 그리고 템플릿에게 응답의 서식 설정을 맡긴다.
+
* View : View는 HTTP 요청을 수신하고 응답을 반환하는 요청 처리 함수이다. View는 Model을 통해 요청을 충족시키는 데 필요한 데이터에 접근한다. 그리고 템플릿에게 응답의 서식 설정을 맡긴다.
  
* 모델(Model) : 모델은 애플리케이션의 데이터 구조를 정의하고 데이터베이스의 기록을 추가, 수정, 삭제하고 쿼리하는 방법을 제공하는 파이썬 객체다.
+
* Models : Model은 애플리케이션의 데이터 구조를 정의하고 데이터베이스의 기록을 추가, 수정, 삭제하고 쿼리하는 방법을 제공하는 파이썬 객체다.
  
* 템플릿(Template) : 템플릿은 파일의 구조나 레이아웃을 정의하고 실제 내용을 보여주는 데 사용되는 플레이스홀더를 가진 텍스트 파일이다. 뷰는 HTML 템플릿을 이용하여 동적으로 HTML 페이지를 만들고 모델에서 가져온 데이터로 채운다. 템플릿으로 모든 파일의 구조를 정의할 수 있으며, 템플릿이 꼭 HTML 타입일 필요는 없다.<ref name="소개"></ref>
+
* Templates : 템플릿은 파일의 구조나 레이아웃을 정의하고 실제 내용을 보여주는 데 사용되는 플레이스홀더를 가진 텍스트 파일이다. View는 HTML 템플릿을 이용하여 동적으로 HTML 페이지를 만들고 Model에서 가져온 데이터로 채운다. 템플릿으로 모든 파일의 구조를 정의할 수 있으며, 템플릿이 꼭 HTML 타입일 필요는 없다.<ref name="소개"></ref>
  
 
==개발된 서비스==
 
==개발된 서비스==

위키원에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 위키원:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)