33
edits
Line 2: | Line 2: | ||
<div style="float: right; margin-left: 12px">__TOC__</div> | <div style="float: right; margin-left: 12px">__TOC__</div> | ||
= 개요 = | = 개요 = | ||
[[파이썬]] | [[파이썬]]은 [[프로그래밍 언어]]의 일종이다. | ||
[[ | [[자바]], [[C 언어]], [[C++]], [[Python]], [[C#]]이 전세계에서 가장 많이 쓰이는 다섯 개의 [[프로그래밍 언어]]이다. | ||
[[C샾]]은 [[마이크로소프트]] | [[C샾]]은 대부분 [[마이크로소프트]]용으로만 쓰이고, [[오브젝티브-C]]([[Objective-C]])는 거의 [[애플]]용으로만 쓰인다. | ||
[[안드로이드]] [[스마트폰]] 사용자의 경우 [[플레이 스토어]]([[Play Store]])에서 SoloLearn에서 만든 Learn Python같은 [[앱]]([[app]])을 설치하여 파이썬 프로그래밍을 배워도 좋다. 지금은 여러 잡다한 프로그래밍 학습 앱이 "SoloLearn: Learn to Code for Free" 하나로 합쳐져서 Learn Python 대신에 새로 나온 앱을 깔아야 한다. | |||
Line 75: | Line 71: | ||
파이썬이 동적 타입 언어(dynamically typed language)라는 점이 큰 프로젝트에서는 단점으로 작용하여 자료구조 설계나 디버깅이 어렵다는 지적도 있다. 다만 "정적 타입 언어 vs. 동적 타입 언어" 논쟁은 서로의 장단점이 있으며 일종의 종교논쟁 취급 받는다. 일례로 OCaml같은 강력한 타입 인터페이스(Hindly-Milner)를 가진 경우라 할지라도 타입 에러 정도는 거의 모두 컴파일 타임에 잡아내는 있는 반면에, 모든 버그가 타입 에러는 아니기 때문에 여전히 테스트 및 디버깅 과정은 필요하며, 타입 시스템으로 인한 부담 때문에 빠른 구현에는 부담이 갈 수 있다. 반면에 동적 언어는 빠른 구현의 이점이 있지만 타입 에러가 많이 나는 특징이 있다. 그러나 커버리지가 높은 테스트 세트로 어느정도 커버할 수 있으며 최근의 추세와 부합하는 방식이기도 하다. | 파이썬이 동적 타입 언어(dynamically typed language)라는 점이 큰 프로젝트에서는 단점으로 작용하여 자료구조 설계나 디버깅이 어렵다는 지적도 있다. 다만 "정적 타입 언어 vs. 동적 타입 언어" 논쟁은 서로의 장단점이 있으며 일종의 종교논쟁 취급 받는다. 일례로 OCaml같은 강력한 타입 인터페이스(Hindly-Milner)를 가진 경우라 할지라도 타입 에러 정도는 거의 모두 컴파일 타임에 잡아내는 있는 반면에, 모든 버그가 타입 에러는 아니기 때문에 여전히 테스트 및 디버깅 과정은 필요하며, 타입 시스템으로 인한 부담 때문에 빠른 구현에는 부담이 갈 수 있다. 반면에 동적 언어는 빠른 구현의 이점이 있지만 타입 에러가 많이 나는 특징이 있다. 그러나 커버리지가 높은 테스트 세트로 어느정도 커버할 수 있으며 최근의 추세와 부합하는 방식이기도 하다. | ||
== Python 3 == | == Python 3 == | ||
Line 139: | Line 116: | ||
파이썬으로 무엇을 할 수 있을까? https://wikidocs.net/7 | 파이썬으로 무엇을 할 수 있을까? https://wikidocs.net/7 | ||
== 웹 프로그래밍 == | == 웹 프로그래밍 == | ||
Line 1,582: | Line 1,560: | ||
=== 웹 프레임워크 === | === 웹 프레임워크 Django === | ||
일반적으로 파이썬을 웹 서비스에 쓴다고 하면 [[쟁고우]]([[Django]], [ˈdʒæŋɡoʊ])나 [[플래스크]]([[Flask]], [flӕsk])를 쓴다고 생각하면 된다. Django는 풀 스택 [[웹 프레임워크]]이고, Flask는 아니다. | 일반적으로 파이썬을 웹 서비스에 쓴다고 하면 [[쟁고우]]([[Django]], [ˈdʒæŋɡoʊ])나 [[플래스크]]([[Flask]], [flӕsk])를 쓴다고 생각하면 된다. Django는 풀 스택 [[웹 프레임워크]]이고, Flask는 아니다. | ||
[[쟁고우]]([[Django]])는 Python기반 [[웹 프레임워크]]([[web framework]]) 중에 가장 널리 퍼져있다. [[풀 스택]]([[full stack]]) [[웹 프레임워크]]([[web framework]])이다. | |||
자세한 내용은 [[쟁고우]]([[Django]]) 문서 참조. | |||
Line 1,598: | Line 1,578: | ||
[[운영 체제]]는 [[하드웨어]] 위의 [[커널]](kernel), 그리고 그 위의 [[셸]](shell), 그리고 그 위의 [[애플리케이션]]으로 구성된다. 그 중 커널은 모놀리식 커널(monolithic kernel)과 마이크로 커널(micro kernel)이 있는데, 한 덩어리로 되어서 많은 기능을 다 집어넣은 [[리눅스]]나 [[유닉스]]의 커널이 모놀리식 커널이며, [[미닉스]]([[Minix]]), [[마하]]([[Mach]]), GNU [[허드]]([[Hurd]]), [[심비안]]의 커널은 마이크로 커널, 그리고 그 둘을 섞은 하이브리드 커널(hybrid kernel)이 있다. 하이브리드 커널은 모놀리식 커널에 마이크로 커널을 포함시킨 것이다. 하이브리드 커널에는 [[윈도우즈]] NT 커널과 [[macOS]]와 [[iOS]]의 기반이 되는 [[다윈]]의 [[XNU]] 커널이 있다. | [[운영 체제]]는 [[하드웨어]] 위의 [[커널]](kernel), 그리고 그 위의 [[셸]](shell), 그리고 그 위의 [[애플리케이션]]으로 구성된다. 그 중 커널은 모놀리식 커널(monolithic kernel)과 마이크로 커널(micro kernel)이 있는데, 한 덩어리로 되어서 많은 기능을 다 집어넣은 [[리눅스]]나 [[유닉스]]의 커널이 모놀리식 커널이며, [[미닉스]]([[Minix]]), [[마하]]([[Mach]]), GNU [[허드]]([[Hurd]]), [[심비안]]의 커널은 마이크로 커널, 그리고 그 둘을 섞은 하이브리드 커널(hybrid kernel)이 있다. 하이브리드 커널은 모놀리식 커널에 마이크로 커널을 포함시킨 것이다. 하이브리드 커널에는 [[윈도우즈]] NT 커널과 [[macOS]]와 [[iOS]]의 기반이 되는 [[다윈]]의 [[XNU]] 커널이 있다. | ||
=== 파이게임(Pygame) === | === 파이게임(Pygame) === |
edits