안녕하세요 기형쌤입니다.

겨울이 왔지만 아직은 그래도 따듯한 날씨를 유지하는듯 합니다.

그래도 감기 걸리실 수 있으니 몸 따뜻하게 입고 다니셔야 해요!

또 마스크도 항상! 끼고 다니셔야하는거 알죠? 다들 조심하자구요.

 

오늘 제가 들고 온 이야기는 비주얼 베이직 이라는 언어 이야기입니다.

 

비주얼 베이직(Visual Basic .NET)은 무엇인가?

비주얼 베이직은 마이크로소프트사에서 만든 .NET Framework 기반의 프로그래밍 언어입니다.

Visual Basic .NET 이전에 VIsual Basic 6.0 이라는 프로그램이 있었지만

6.0에서 파생되었다기에는 차이점이 조금 많아 6.0 버전을 사용하던 사람들이 많이 넘어오지 않아

초기에는 사용자의 수가 많이 적었습니다.

 

VB .NET은 객체 지향 언어라서 절차 지향인

VB 6.0 소스 코드가 VB.NET과 호환되지 않아 아예 처음부터 코딩해야 하는 번거로움이 있었습니다.

마이크로소프트도 이 문제를 몰랐던 건 아니었기에 모체 프로그램인 Visual Studio 2008까지는

VB 6.0 변환기를 포함했었으나 완전히 1:1로 변환할 수 있는 것도 아니었고

Visual Studio 2010부터는 변환기가 삭제되었습니다.

 

그러나 VB 6.0 지원이 중단이 되었고 최신 운영체제로 가면서

동작하지 않는 기능이 많아졌습니다. 그리고 강력해진 새로운 확장 라이브러리 및 기본 컨트롤도 개선되는 등

상당한 발전을 보여 많은 사용자들이 VB.NET으로 넘어오는 계기가 되었습니다.

 

.NET Framework 기반이지만 C#이라는

그야말로 .NET Framework를 위하여 새롭게 만들어진 언어가 존재하기 때문에

C#에 비해 인지도는 떨어지는편입니다.

그리고 VB.NET과 C#은 같은 .NET Framework 라이브러리를 사용하기 때문에

사실상 문법과 일부 런타임 라이브러리를 제외하면 기능적으로는 큰 차이가 없기도 합니다.

 

Visual Basic .NET의 특징?

VB.NET에서는 My namespace라는 기능을 제공하고 있습니다.

7가지의 기능들이 있는데

 

My.Computer : 당신의 컴퓨터에 대한 이름, 메모리, 시간, 네트워크 등의 정보를 제공

My.Application : 현재 응용프로그램의 실행경로, 이름이나 버전, 그리고 환경 변수들을 제공

My.User : 윈도우에 해당되어 있는 이름 같은 것을 가져옴. 또, 사용자가 특정 역할에 속하는지도 확인 가능

My.Forms : 프로젝트에 있는 모든 폼의 참조를 제공

My.WebServices : 웹 서비스에서 사용되는 프록시 서버에 대한 접근 권한을 얻는게 가능

My.Settings : 읽거나 저장하는 응용 프로그램 구성 설정이 가능

My.Resources : 현재 응용프로그램에서 사용중인 리소스 정보를 읽을 수 있음

 

이러한 기능들을 사용하실 수 있습니다.

또한 이전의 문법들에서 좀 더 가독성이 좋은 언어체계를 가지고 있기도 합니다.

ex) IsNot 연산자, WithEvent 선언자 등

 

또한 C#과 비슷하게 WPF의 프로젝트를 만들어서 활용이 가능합니다.

 

Visual Basic .NET과 C#

C# 언어는 .NET을 위해 만들어진 언어라고 봐도 무방하다는 평을 들을정도로

.NET과의 호환이 좋습니다. 물론 Visual Basic .NET 또한 .NET 프레임워크 기반이기에

.NET과의 호환성은 걱정하실 필요가 없습니다.

 

C#과 VB.NET은 같은 라이브러리를 사용합니다.

이는 C#과 VB.NET의 코드를 완벽하게 변환 가능하다는 것을 내포하는데

이를 이용하여 다양한 프로그래밍 방식을 진행해볼 수 있습니다.

 

그래서 .NET Core 환경에서의 개발은 프로페셔널하고 편리한 C#, 배우기 쉽고 간단하지만 강력한 Visual Basic.NET,

아직은 언급하지 않았었지만 연산에 특화된 F#, 이 세가지 언어로, 리눅스, 맥OS 개발을 할 수 있다는 말입니다.

그리고 웹 애플리케이션 개발용으로 ASP.NET Core를 사용 할 수 있습니다.

또한 .NET Standard를 통해 .NET Framework, Xamarin, Mono에도 호환이 됩니다.

 

단지 윈도우 운영체제 기반인 프로그램 언어인지라 윈도우 환경을 벗어나면 호환이 안된다는 단점 또한 있습니다.

윈도우 외의 운영체제에서도 실행할 수 있도록 하는 프로젝트이지만,

컴파일 시 결과물은 PE DLL 파일로 나오게 됩니다.

윈도우 비주얼 스튜디오에서 컴파일 시 EXE 파일도 나오지만,

실제 컴파일 결과물인 DLL 파일을 로드하여 실행하는 것에 불과하기 때문에

DLL 파일이 없으면 당연히 실행되지 않습니다.

다른 운영체제들은 터미널로 .NET Core 런타임을 설치한 후

dotnet (실행할 닷넷 DLL 파일)을 입력하고 실행하면 실행이 가능합니다.

 

배워봅시다!

프로그래밍 언어를 알아야 하는 것도 가짓수가 너무 많죠?

어디서 배워야 할까요?

 

현재 국비지원 받으시며 무료로 배우 실 수 있는 과정이 있습니다.

관심 있으시다면 아래의 네임카드를 클릭해주시면

바로 무료 상담 가능합니다!!

 

네임카드를 클릭해주세요!!

안녕하세요! 기형쌤입니다!

 

갑자기 날이 추워졌네요. 다들 감기 걸리지 않게 조심하시구요ㅠㅠ

이 시국에 감기 한 번 잘못 걸리면 너무 불안하잖아요

코로나가 아닌지? 그냥 감기인건지? 우리 그런 일을 겪지 않게끔

최대한 조심하면서 살자구요!

 

오늘 제가 가져온 이야기는 바로 R 언어에 관한겁니다.

R언어? 그게 뭐지? 하고 생소해 하실 분들도 계실텐데요

R 언어는 빅데이터 관련업계 종사자분들이

거의 필수적으로 알고계셔야 하는 프로그래밍 언어 중 하나입니다.

왜 그런걸까요? 같이 알아보도록 해요!

R언어는 1993년 뉴질랜드에 위치한 오클랜드 대학교에서 개발된

통계 및 그래프 작업을 위한 인터프리터 프로그래밍 언어입니다.

 

영국식 언어를 사용하는 뉴질렌드에서 개발한 언어여서 그런지

color를 colour 라고 쓰는것도 인정되는 특징이 있습니다.

 

다른 프로그래밍 언어들 및 통계 솔루션과 비교하자면

SPSS, STATA, SAS 등 유사 소프트웨어들이 있고 요즘엔 Python도 많이 사용하고 있습니다.

SPSS는 통계학용이라는 목적만 같을 뿐 실제로 사용해보면 나머지 언어들과는 좀 다릅니다.

STATA는 R에 비해 프로그래밍 자유도가 낮다는 등의 단점이 있지만,

대신 계량경제학(특히 실증미시경제학)에 특화되고 상대적으로 배우기 쉽다는 장점이 있습니다.

SAS는 유료 통계분석 언어중에 가장 유명한 언어입니다.

위의 언어들 중 그나마 R에 가장 가깝다고 할 수 있는 언어이기도 합니다.

Python은 앞의 언어들보다는 좀 더 일반적이고 범용성이 큰 언어입니다.

통계나 수치해석을 위한 라이브러리를 동원해 통계분석용으로 쓸 수 있습니다.

 

Python에 관한 자료는 제가 이전에 게시해놓았던 Python 자료에서 보실 수 있습니다.

kiihakjumcircle.tistory.com/entry/Python%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EA%B3%A0-%EC%96%B4%EB%94%94%EC%84%9C-%EB%B0%B0%EC%9A%B8-%EC%88%98-%EC%9E%88%EB%82%98%EC%9A%94?category=909606

 

Python(파이썬)은 무엇이고 어디서 배울 수 있나요?

안녕하세요? 기형쌤입니다!! 오늘 제가 들고 온 것은 바로 Python입니다. Python은 수많은 프로그래머들의 기본소양이라고 할 정도의 언어입니다. Python은 그 기원이 굉장히 특이한 언어인데요. 바로

kiihakjumcircle.tistory.com

 

R언어의 장점

이렇게 비슷한 성향의 언어들이 있는데 왜 R 언어를 사용하는 걸까요?

그 이유는 일단 첫 번째로 오픈 소스로 배포되고 있어 무료로 사용이 가능하다는 점이 있습니다.

SPSS나 MATLAB과 같은 상용 프로그램을 구입하지 않아도 된다는 장점이 있습니다.

또 R언어는 오픈소스 언어이기 때문에 그러한 언어들의 특징인

사용할 수 있는 수많은 통계 관련 패키지가 개발되어 있어서 인터넷을 통해 이 패키지들을 설치하는 식으로

무수한 기능 확장이 가능합니다.

애초에 통계학자들이 만들어 낸 언어이기도 하고 통계 전문 언어 중 가장 보편적이기 때문에

내가 사용하고 싶은 모든 통계 기법이 이미 어딘가에 패키지 형태로 구현되어 있다고 봐도 무방합니다.

 

또한 그래픽 관련 패키지를 설치하면 간단하게 다양한 그래프를 활용할 수 있으며

구글이나 네이버 지도를 불러오거나 이를 활용해 GIS 용도로 쓰는 것도 가능하게 해줍니다.

 

웹 어플리케이션 개발 프레임워크인 Shiny의 고도화로 통계 또는 머신러닝 모델을 웹과 연동할 수 있고,

가장 중요한 데이터 마이닝, 빅 데이터 프로세싱, 기계학습 등에 유용하게 사용할 수 있습니다.

 

통계와 관련된 언어이기에 리스크, 재무, 마케팅 담당자 채용 시 R 능통자를 우대하기도 합니다.

 

R언어의 단점?

이렇게 좋은 수많은 장점을 가진 R언어는 왜 사람들이 많이 알지 못 하는걸까요?

그 이유 중 커다란 파이를 차지하는 이유 중 하나는 바로

어려워서 입니다.

물론 이것은 컴퓨터 공학자가 아니라 일반인 입장에서 어렵다는 것입니다.

그 이유는 R자체가 원래 통계 프로그램인 S를 그대로 배껴서 만든 프로그램이었기에

R은 원래 통계분석 프로그램이였습니다.

문제는 통계학자들도 R언어를 배워야하는데, 프로그래밍이 가능하게 만들면서

다양하게 만들고 분석할 수 있는 가능성을 갖음과 동시에, 프로그래밍을 알아야 한다는 단점이 생겨버렸습니다.

통계분석 프로그램으로 유명한 SAS, STATA, Minitab에 비하면 월등히 어려워서

한 동안은 대학에서도 취급하지 않았고, 일부 저널에서는 받아주지도 않았었습니다.

 

다만 2000년대 중후반에 코딩이 중요해지면서, R의 인기가 올라갔습니다.

그 이유 중의 커다란 파이를 차지한 것은 다름이 아닌 공짜 라는것 때문이었습니다.

 

통계 분석하는 함수들이 기본적으로 들어가있으면서,

무료로 프로그래밍이 가능하기에 현재 많은 통계분석 프로그램 유일하게

SAS의 명성을 따라잡을 수 있는 언어가 되었습니다.

 

안타까운 것은 프로그램 자체의 한국어 기능을 제공하지 않는다는 점입니다.

다른 프로그램들마냥 한국어 주석을 생각없이 넣었다가는

코드를 잘 짜놓고도 오류가 가득한 모습을 볼 수 있을것입니다.

특히 함수나 for문 등 연속적인 작업이 이루어지는 코드 내부에

한글로 이루어진 주석을 꽉꽉 채워 넣거나 한다면...그러지 않기만을 바랍니다ㅎㅎ

 

개발환경

RStudio라는 환경에서 개발을 하는 것이 가장 무난합니다.

R 본체가 설치되어 있어야 작동하며, 훨씬 편리한 인터페이스를 제공하는 것이 강점입니다.

단, 폴더 경로나 파일 이름에 한글이 들어가면 제대로 작동하지 않을 수 있으니 주의해주셔야 합니다.

 

그 외의 에디터들에는 ConTEXT, jEdit, LyX 등이있지만 보통

R에 대한 문법 검사와 코드 색상을 지원하는 플러그인 형태로 제공됩니다.

 

R언어를 배우려면?

이제 R언어는 빅데이터 개발자 쪽으로 진로를 정하신 분들이라면

하둡 프로그래밍과 함께 무조건 배워야하는 언어로서 자리잡았습니다.

그렇다면 어디서 R언어를 배울 수 있을까요?

 

저희 빅데이터 전문가 과정에 R언어를 배우실 수 있는 과정이 포함되어 있습니다.

R언어 이전의 C, Python 등 필요한 언어들을 배워가시면서

진행하실 수 있으니 부담스러워 하지 마시고 문의주세요.

하단의 네임카드를 클릭해주시면 바로 상담 가능합니다.

네임카드를 클릭해주세요!

안녕하세요 기형쌤입니다.

이제 날씨는 완전 겨울이 되어버렸네요.

위험한 시국에 감기걸리시면 위험하니 다들 옷 따듯하게 입으셔야해요...!

 

오늘 들고 온 이야기는 C언어에 관해서입니다.

프로그래머를 꿈꾸는 사람이라면 가장 처음 고민하는것이

C언어를 배울까? 와 그래서 C언어는 도대체 뭐지?

하는 고민일 것 같은데요

 

오늘은 C언어에 대한 기본적인 정보를 공유해드리려고 합니다.

C언어는 무엇일까요?

C언어는 1972년 벨 연구소의 데니스 리치 라는 사람이 만든 프로그래밍 언어입니다.

명칭은 그냥 C 이지만 우리나라에서는 C 언어 라는 명칭으로 주로 불립니다.

수많은 프로그래밍 언어가 생겨났지만 여전히 명실상부 가장 많이 쓰이는 프로그래밍 언어이기도 합니다.

 

C언어는 탄생 어원으로 들어가면 ALGOL이라는 언어에서부터 시작되었다고 할 수 있습니다.

ALGOrithemic Language의 줄임말인데 말 그대로 알고리즘 연구 개발에 사용되던 언어였습니다.

이것을 더 다양한 용도로 사용하기 위해 개발하고 개발하여 나온 언어가 Basic CPL이라는 언어였고

이 언어가 미국으로 건너오며 통칭 B라는 언어로 개발되어 불리웠습니다.

 

그리고 데니스 리치가 PDP-11이라는 컴퓨터를 제어하기 위해 B 언어의 특징을 물려받은

C 언어를 만들게 되었습니다.

 

C언어는 효율성을 중시하여 만들어진 언어입니다.

현재는 Java라던지 Python같은 쉽고 편한 언어들이 생겨났지만

당시의 프로그래밍 환경에서는 그렇지 못 했습니다.

C 언어 이전에도 고수준 언어들은 많이 존재했지만,

대부분 특정 어플리케이션 영역을 대상으로 하거나,

컴퓨터 과학 이론을 입증하기 위해 만들어진 실험실 언어들이었습니다.

 

당시에는 운영체제를 어셈블리어가 아닌 언어로 작성한다는 것은 금기라 말 할 정도로

시도조차 하면 안되는 것 이라는 인식이 있었습니다.

그러나 C언어는 그러한 금기를 깨는 엄청난 효율성을 보여주었고 금기를 정면으로 깨버렸죠.

그리고 아이러니 하게도 현대에 들어서 운영체제는 C언어가 아니면 안된다는 새로운 금기가 생겨버렸습니다.

그동안 컴퓨터의 평균 성능이 놀랍게 발전했고,

운영체제 역시 초기와는 비교할 수 없을 정도로 커져 효율성이 중요해졌기 때문입니다.

 

C는 처음부터 어셈블리어와 비교할만한 효율을 가지게 저수준으로 설계되었습니다.

개발 당시의 고수준 언어들은 원래는 프로그램 코드가 업무 서류로도 사용이 가능하도록 설계가 돼있기도 하여

문법들이 굉장히 불친절했습니다.

C는 이런 당대 고수준 언어들에 비해 매우 이해가 가기 쉬운 문법을 사용하여 초보자가 쉽게 접근할 수 있었죠.

 

C언어 자체는 지원되는 기능이 적고 문법이 간단합니다.

객체 지향 프로그래밍(OOP)이나 코루틴, 클로저, 메타 프로그래밍 등

고수준의 기능들을 지원하는 언어들과 비교하면 특히나 그렇습니다.

550쪽 정도밖에 안 되는 C언어 표준에서도 순수 문법 부분은 200쪽 정도밖에 안 되며

나머지는 다 라이브러리 관련 부분이고, 함수의 개수로 치면 고작해야 150개 근처밖에 되지 않습니다.

수천 개나 되는 기본 라이브러리를 지원하는 다른 언어들과 비교하면 정말 작고 간단하죠?

초반의 포인터 장벽만 넘는다면 문법 자체를 마스터하고

간단한 커맨드라인 프로그래밍을 할 수 있는 수준까지는 엄청 쉽게 진행하실 수 있습니다.

 

하지만 기능이 적다고 결코 쉬운 건 아니겠죠.

프로그래밍을 할 때 지원하는 기능이 적다고 그 적은 기능만 쓸 수는 없으니까요.

따라서 기본 라이브러리에서 지원하지 않는 기능은 결국 프로그래머가 직접 구현해서 써야 하는데,

1970년대 이후 프로그래밍 언어계에서 오늘날 영어와 같은 위치를 차지하고 있던 덕분에

그런 기능의 구현이나 최적화에 관한 많은 트릭들이 존재하고 이것을 얼마나 많이 알고있는가가

사실 C언어의 핵심이 됩니다.

C언어의 장점?

사람들이 많이 사용하는데에는 이유가 있겠죠?

 

C로 짜여진 코드는 속도가 빠르고 바이너리 크기도 작아 속도가 다른 무엇보다도 중요한 임베디드 혹은 모바일 계열,

또는 시스템 프로그래밍 등에서 주로 사용됩니다.

프로그램의 규모가 커질경우 C언어로 작성해서 얻을 수 있는 파일의 규모는 Python보다 훨씬 작기까지 하죠.

과거에는 메모리 가격이 비쌌던 만큼 메모리를 적게 잡아먹는 프로그래밍 기법이 선호했으며,

화성 탐사선도 이러한 점을 반영하여 C언어로 만든 프로그램을 사용했습니다.

 

이러저러한 고급 언어들이 나오는 상황에서도 아직 저수준의 제어를 위해 C가 필요한 경우도 많습니다.

예를 들어, OS를 만든다면 아무리 생산성을 고려한다고 해도

시스템 제어 측면과 OS의 기능들 위에서 돌아가는 어플리케이션 때문에라도 속도라는 면은 중요하고

그렇다고 속도를 높이기 위해 어셈블리어나 기계어로만 OS를 짜기에는 생산성이 매우 낮아지기 때문에

결국 돌고돌아 C를 쓰게되죠.

 

현시점에서 C의 가장 큰 의의는 사실상 모든 아키텍쳐와 운영체제에서 지원하는 언어라는 점입니다.

일반적으로 C++는 지원하지 않더라도 C는 지원하는게 보통이 되었습니다.

워낙 널리 쓰이다보니 CPU 디자이너들이 가장 먼저 하는 일은 C언어를 instruction set으로 포팅하는 것이

기본적인 상식이 되었고, 심지어 C언어 설계 자체가 CPU 인스트럭션 설계에 영향을 주는 단계에 이르렀습니다.

그런 관계로 이식성이 중요한 경우는 대개 C를 사용합니다.

 

고수준의 언어들이 많이 나오고있고 이렇게 이미 한물 간 언어처럼 보이지만,

여전히 '프로그래밍' 입문으로는 C를 추천하는 추세입니다.

 

C라는 언어는 매우 심플하면서도 배우는 과정중에 소프트웨어 구성의 최소단위인 bit부터 시작해서

메모리 관리, 그리고 고급 개념인 OOP와 비슷한 정도까지 흉내내면서 소프트웨어 전반을 훑게 되고,

C 를 배우는 과정중에 나오는 과제들은 커맨드라인에서 이미 쓰이고있는 기본적인 툴들을

reinvent the wheel하는식의 과제들이 많기때문에 바닥부터 훑어가며 견문을 넓히는데 좋습니다.

 

로우레벨부터 단계를 높여가며 관찰을 해보면,

머신코드는 머신에 따라 달라지고, 어셈블리어도 Intel/AT&T 등 문법에 따라 몇가지 버전이 존재하지만

결국 그 위쪽에서 C 언어로 대통합이 이루어지게 됩니다.

 

그리고 C 언어 위 쪽으로 향하게 되면  C++/Java/C#/Objective-C/Python 등으로 다양하게 갈라지죠.

결국 C 언어란 것은 과거와 현재를 잇는 중요한 꼭짓점이 되는 셈입니다.

C 언어가 사용되는 분야는?

C 언어가 사용되는 대표적인 분야는

기본적으로 운영체제 및 디바이스 드라이버 분야입니다.

윈도우, 리눅스, 유닉스 커널의 핵심부는 모두 C로 짜여져있습니다.

 

이외에는 마이크로 컨트롤러, 임베디드 시스템, 암호학 라이브러리, 프로그래밍 언어 인터프리터(CPython 등),

웹서버 등등의 기타 빠른 계산속도가 필요한 프로그램이나 라이브러리들에 사용됩니다.

그렇다면 C언어는 어디서 배우는게 좋을까?

C언어는 사실 쉬운언어이기에 혼자 독학하는 학생분들도 많습니다.

다만 기초를 탄탄히 잘 다져놓는것이 전문가가 되어가는 과정이라고 생각 합니다.

기초를 탄탄하게 쌓으시려면 좋은 곳에서 좋은 선생님께 배우는게

결국은 실력을 빠르고 확실하게 키우는 방법입니다.

 

IT 전문가가 되고싶으시다면 연락 주세요.

언제든지 무료 상담 해드리겠습니다.

 

아래의 네임카드를 클릭

해주시면 상담 진행 바로 가능합니다!

네임카드를 클릭해주세요!!

안녕하세요? 기형쌤입니다!!

 

오늘 제가 들고 온 것은 바로 Python입니다.

Python은 수많은 프로그래머들의 기본소양이라고 할 정도의 언어입니다.

 

Python은 그 기원이 굉장히 특이한 언어인데요.

바로 창시자인 귀도 반 로섬(Guido van Rossum)이

1989년 크리스마스주에 연구실 문이 닫혀있어서 심심한 김에 만든 프로그래밍 언어입니다.

 

재밌지않나요?

지금에 이르러서의 Python은  풍부한 머신러닝 라이브러리와 프레임웍으로

머신러닝, 딥러닝등 인공지능 개발을 위한 언어로서 각광을 받고 있는데

이러한 언어가 그저 심심한 김에 만든 언어라니...아이러니하죠ㅎㅎ

 

Python을 배우는 이유?

심심한김에 만든 언어를 왜 배우기 시작했을까요?

일단 문법이 매우 쉬워서 초보자들이 처음 프로그래밍을 배울 때 추천되는 언어입니다.

오죽하면 Python의 별명이 '실행할 수 있는 의사 코드(Executable pseudocode)'일 정도이니까요.

 

또한 가장 큰 이유는

전 세계의 모든 프로그래밍 언어 중에서 파이썬 정도의 낮은 난이도를 가지면서,

범용성을 갖추고, 파이썬 수준의 프로그램 개발 속도를 따라잡는 언어가 없기 때문입니다.

 

요점은 쉬운데 현업에서 사용하여도 엄청난 효율을 낼 수 있다는 점 때문에 배우는 것입니다.

C언어로 2년동안 완성하지 못한 프로젝트를 파이썬으로 한달만에 해냈다 는 극적인 경험담이 있을 정도이니

말 다 한 셈이죠.

Python의 특징?

단지 쉽다는 특징 말고 어떠한 특징이 있을까요?

 

Python의 기본 철학은 가장 아름다운 하나의 답이 존재한다 를 기본으로 하고 있습니다.

파이썬의 이런 철학은 이후 다른 프로그래밍 언어들에도 수출되어, 2010년대 들어서는 기존 언어들도

파이썬처럼 최대한 문법 구조를 단순화시키고 통일하려는 문법 대통일 운동이 일어나기 시작했다.

 

그렇다면 왜 이러한 현상이 이루어졌던걸까요?

 

단순히 말하자면  프로그래머들이 프로그램을 돌려보기 좋게 한다는 매우 좋은 영향이 있어서 입니다.

 

다른 객체지향 언어인 C,C++,Java같은 경우의 코딩은 각자의 취향에 맞게 발산 진화하는 반면

파이썬은 위의 철학들을 만족 시키는 하나의 스타일로 수렴 진화하는 성향이 있습니다.

이런 성향은 다른 언어에는 없는 파이썬스러움(pythonic)이라는 독특한 개념을 낳게 되었는데,

복잡하지 않으면서 의미가 명확하고, 코드의 축약보다 뚜렷하게 보이는 흐름을 중시하는

파이썬의 철학을 지칭하는 개념이 되었습니다.

 

이러한 철학 때문인지 Python의 문법체계는 상당히 엄격한 편입니다.

예를 들자면 다른 언어에서는 해도 되고 안 해도 되는 들여쓰기가 이 언어에서는 의무로 해야하는 등이 있습니다.

 

또 다른 특징으로

파이썬의 가장 큰 특징 중 하나. 파이썬은 반복 가능한 객체(iterable)라는 강력한 기능을 제공합니다.

이 객체는 집합, 문자열, 리스트, 튜플, 딕셔너리, 그리고 함수까지도 반복이 가능하며,

이것을 for 구문에서 사용할 수 있게 해줍니다.

리스트와

튜플 등은 좀 편해지는 정도라 할 수 있지만, 함수의 값을 반복할 수 있다는 것은 큰 장점이됩니다.

Python의 다양한 구현체

Python은 다양한 언어들과 함께 구현화되기도 합니다.

구현체로서 Python을 지칭할 때에는 CPython(싸이선)이라고 불리우는데

이는 Python이 기본적으로 C로 구현되었기 때문입니다.

 

구현체의 종류는 Stackless Python, C언어를 확장한 Cython, Python으로 Python을 만든 독특한 형태의 PyPy,

Java로 구현한 Jython, .Net Framwork로 구현한 IronPython, Java Script로 구현한 Brython 등의 다양한

언어들의 구현체들이 존재합니다.

 

이는 Python의 가장 큰 장점인 쉽고 범용성이 넓다는 특징 덕분에 가능한데요.

다만 Jython과 IronPython은 둘 다 CPython에 비하면 실행 속도가 매우 느리며,

Jython은 경우에 따라서 심각할 정도로 많이 느립니다.

그래서 주요 기능을 수행하는 데에는 문제가 있지만,

보조 기능에서 사용하면 번거로운 작업들을 매우 손쉽게 Python 스크립트로 Java, .NET Framework의

자원을 그대로 끌어다 써서 할 수 있기 때문에 개발 공수와 편리함에서 큰 장점이 있어 주로 보조적인 기능 수행을 할 때 사용되곤 합니다.

 

가장 특이한 구현체는 Python으로 Python을 만든 PyPy일텐데요

2007년에 처음 발표된 Python의 언어 구현 중 하나로, C로 짜인 기존의 CPython과 달리

Python으로 Python을 만드는 프로젝트입니다.

이 프로젝트의 진짜 놀라운 점은 기존 CPython보다 전혀 느리지 않을 뿐더러,

오히려 성능면에서 CPython을 능가하고 있다는 점입니다.

나아가 계발이 진행되고 연구가 진행됨에 따라 점점 더 빨라지는 추세입니다.

표준 구현인 CPython과의 속도비교. PyPy를 개발하면서 지속적으로 업데이트 하는중입니다.

Python은 개발자를 꿈꾸신다면 배워놓으시는게 필수라고 추천드릴만큼

중요한 언어입니다.

그렇다면 Python을 배우시려면 어떻게 해야할까요?

개인적으로 책을 보며, 인터넷 강의를 보며 공부하셔도 괜찮을 정도로

쉬운 언어인지라 이런저런 책을 추천드려도 괜찮을 것 같지만

 

Python을 배우고 그 심화과정까지 배워 전문가가 되셔서

결국 취업까지 해결하고 싶으시다면 저와 함께

IT 전문가 과정을 진행 해보시는것을 추천드립니다.

 

아직은 블루오션인 IT 시장에 어서 뛰어들어 봅시다!

관심있으시다면 하단의 이미지링크를 클릭해주세요. 바로 무료상담 가능합니다.

이미지를 클릭해주세요!

+ Recent posts