파이썬으로 할 수 있는 것 알아보기
안녕하세요!
프로그래밍 입문으로 파이썬 프로그래밍 언어를 많이 배우시죠?
C언어, 자바, 파이썬 등
각 프로그래밍 언어는 코딩을 위해 만들어졌지만
할 수 있는 것과 할 수 없는 것이 각각 다른데요.
오늘은 그 중에서도 파이썬으로 할 수 있는 것에 대해 알아보도록 하겠습니다.
파이썬이란?
파이썬은 네덜란드 개발자 귀도 반 로섬이 만든 언어예요.
간결함, 높은 생산성, 다양한 분야에 활용할 수 있는 등
여러 특징을 가지고 있답니다.
머신러닝, 웹 개발, 그래픽 등 여러 업계에서 선호하는 언어로
꾸준히 성장해가고 있으며 입문자가 이해하기 쉽다는 것이
큰 장점이랍니다.
파이썬으로 할 수 있는 것
1. C언어 & C++와 결합
파이썬은 접착 언어라고도 불려요.
그 이유는 바로 파이썬이 다른 언어들과 잘 어울려
결합하여 사용할 수 있기 때문인데요.
C언어나 C++로 만든 프로그램을 파이썬에서
사용할 수 있고, 파이썬으로 만든 프로그램 역시
C언어나 C++에서 사용할 수 있답니다.
파이썬으로 할 수 있는 것
2. 시스템 유틸리티 제작
파이썬은 윈도우, 리눅스 등의 운영체제 시스템 명령어들을
이용할 수 있는 각종 도구를 갖추고 있기 때문에
갖가지 시스템 유틸리티를 만드는 데 유리해요.
실제로 개발자들은 사용 중인 서로 다른 유틸리티성 프로그램들을
하나로 뭉쳐서 큰 힘을 발휘하게 만드는 프로그램들을
무수히 만들어낼 수 있다고 합니다.
파이썬으로 할 수 있는 것
3. 데이터 분석, 사물 인터넷
파이썬 기반의 판다스라는 모듈을 이용하면
데이터 분석을 더 쉽고 효과적으로 할 수 있는데요.
데이터 분석을 할 때 아직까지는 "R"이라는 언어를
많이 사용하지만, 판다스가 등장한 이후로 파이썬을 이용하는
경우가 점점 증가하고 있다고 해요.
'IT소식 > IT 정보' 카테고리의 다른 글
가상화폐란? 블록체인, 비트코인 총정리! (0) | 2017.12.06 |
---|---|
랜섬웨어 증상과 예방법 알아보기 (0) | 2017.11.30 |
웹디자인기능사 자격증 알아보기, 웹디자이너! (0) | 2017.11.16 |
자바스크립트 프로그래밍 언어 제대로 알기 (0) | 2017.11.15 |
영상편집 프로그램 추천! 네가지 프로그램 (0) | 2017.11.13 |
C언어는 뭐고 C++는 뭐야? C++ 알아보기
안녕하세요!
프로그래밍 언어를 배우려고 할 때,
C언어는 뭐고 C++는 뭔지 헷갈린 분들 많죠?
오늘은 C++가 무엇인지 알아보려고 합니다!
C++란 C언어의 확장판으로 만들어진 객체지향형 프로그래밍 언어인데요.
대규모 응용 프로그램을 만드는 데 최적의 프로그래밍 언어로 간주되고 있어요!
1980년대까지 전세계적으로 가장 많은 사람들에게 사랑을 받고 가장 널리 사용된
프로그래밍 전문 언어는 C죠~
하지만 C언어 역시 한계에 부딪히게 되었고
이에 따라 고도로 복잡한 프로그램을 관리하기 위하여 C++가 탄생하게 되었답니다.
C++는 처음 소개된 이후로 1985년과 1989년,
그리고 C++에 ANSI표준을 적용하기 시작한 시기 등 3번에 걸쳐
개정되었는데요.
1994년에 최초로 표준안이 발표되었으며
ANSI C++위원회는 사실상 스트루스트럽(C개발자)이 설정한 모든 사양을
그대로 수용하고 그외의 약간의 사양을 덧붙였습니다.
그렇기 때문에 C++는 C프로그래머가 쉽게 C++를 사용할 수 있다는
관련성에서 큰 장점이 있어요.
C++는 흔히 객체지향적 언어라고 불리는데요~
객체 지향 프로그래밍은 새로운 방식의 프로그래밍 접근 방법으로
프로그래밍이 탄생한 이후로 그 방식은 많은 변화를 겪었는데,
프로그래밍이 현저하게 다른 변화를 겪을 때마다 새로운 접근 방식이 나타나
프로그래머가 그 전 단계보다 훨씬 더 복잡해진
프로그램을 처리할 수 있도록 도왔어요
예전의 구조적인 프로그래밍은 복잡한 프로그램 작성 시
프로그램의 규모가 일정 한계를 넘으면 가끔 실패하는 경우를
제외하고 상당히 우수한 기능을 해왔지만
그보다 좀 더 복잡한 프로그램을 쓸 수 있는 새로운 프로그래밍 방식이 필요했던 것!
그래서 탄생한 것이 바로 객체 지향 프로그래밍이에요.
객체지향 프로그래밍은 구조적인 프로그래밍에 사용되는 개념들을
최대한 활용하여 종전과는 다른 방식으로 이러한 개념을 엮어내는 역할을 한답니다.
C의 대부분의 특징을 C++는 포함하고 있고,
시스템 프로그래밍에 적합할 뿐만 아니라
클래스, 연산자 중복, 가상 함수 등과 같은 특징을
갖추고 있어 객체 지향 프로그래밍에 적합해요.
또한 C와 일치하는 부분이 C++를 널리 대중적인 언어가
되는데 도움을 주었답니다.
'IT소식 > IT 정보' 카테고리의 다른 글
전산세무시험 자격증 정보 알아보기 (0) | 2017.09.21 |
---|---|
빅데이터분석가 되는법/빅데이터전문가 하는 일은? (0) | 2017.09.19 |
자바 자격증 종류와 공부 방법 알아보기 (0) | 2017.09.15 |
몰랐던 윈도우 단축키! 완전 꿀팁 (0) | 2017.09.14 |
IT취업 포트폴리오 작성하는 방법 (0) | 2017.09.13 |
[IT 정보] 개발자들을 미치게 하는 프로그래밍 언어 10가지 (2)
개발자를 미치게하는 프로그래밍 언어 10가지 2편!
저번 1편을 통해서 개발자들을 미치게하는
파이썬, 랩뷰, 자바스크립트, Tcl, 코볼에 대해서 알아보았는데요.
오늘은 나머지 5개 프로그래밍 언어는 무엇인지 알려드리겠습니다!
개발자를 미치게하는 프로그래밍 언어 6. C++
C++는 C의 확장으로 개발죈 중간 수준의 언어라고 할 수 있는데요.
객체 지향 프로그래밍을 지원하죠~
AT&T 벨 연구소에서 일하던 비야네 스트롭스트룹이 만든 언어로
원래 이름은 C with Classes였으나 증간 연사자(++) 기능을 더하면서
1984년에 이름이 C++로 바뀌었다고 해요.
C의 대부분의 특징을 포함하고 있으므로 시스템 프로그래밍에 적합할 뿐만 아니라
클래스, 연산자 중복, 가상 함수 등과 같은 특징을 갖추고 있어 객체 지향 프로그래밍에
적합한 언어예요. 또한 C와 일치하는 부분이 C++를 널리 대중적인 언어가
되는 데에 도움을 주기도 하였구요.
개발자들의 C++에 대한 공통적은 불만으로는 지나치게 많은 기능,
수동 메모리 관리, 느린 컴파일 속도, 프로그래머가 같은 프로그램 내에서
객체 지향과 절차적 코드 사이를 전환할 수 있다는 점을 꼽았답니다.
하지만 어도비, 구글 또는 게임 업계에서 널리 사용중인 언어이기 때문에
피하기가 힘들다는 점..!
개발자를 미치게하는 프로그래밍 언어 7. PHP
PHP는 동적으로 HTML 페이지를 생성하기 위해 서버 측 스크립팅에 주로 사용되는
인터프리터 언어인데요. 많은 운영체제에서 독립형 스크립팅 언어로 사용할 수 있답니다.
별도의 실행 파일을 만들 필요 없이 HTML 문서 안에 직접 포함시켜 사용하면서
C, 자바, 펄 언어 등에서 많은 문장 형식을 준용하고 있어 동적인 웹 문서를 빠르고
쉽게 작성할 수 있게 도와주는 프로그래밍 언어입니다.
이런 PHP에 개발자들이 공통적으로 꼽는 불만은
많은 함수에 대한 일관성 없는 명명규칙, 보안 결함, 유니코드에 대한
네이티브 지원 결여, 프레젠테이션 코드(예:HTML, CSS)와 섞이는 경우가 많다는 점이 있습니다.
개발자를 미치게하는 프로그래밍 언어 8. 자바
8번째 프로그래밍 언어는 자바인데요!
자바는 인터렉티브 텔레비전용으로 개발된 객체 지향 언어로
현재 가장 널리 사용되고 있는 프로그래밍 언어 중 하나예요.
자바 코드는 바이트코드로 컴파일되며, 바이트코드는 각 플랫폼별 자바 가상 머신에 의해
인터프리트되는데요. 즉, 자바 프로그램은
한번 작성하면 어디서나 실행할 수 있다는 장점이 있습니다.
하지만 구문이 너무 장황하다는 점, 속도가 느린 점, 함수를 전달하기 쉽지 않은 점,
API가 필요 이상으로 복잡한 점에서 개발자들을 미치게하는 프로그래밍 언어로 꼽힌다네요.
개발자를 미치게하는 프로그래밍 언어 9. 펄
펄은 고수준의 다목적 인터프리트 언어인데요.
스위스 군용 칼, 인터넷의 강력접착테이프로 불리기도 합니다.
펄은 CGI 스크립팅부터 시스템 및 네트워크 관리에 이르기까지 모든 분야에 사용된답니다.
하지만 펄에 대한 가장 큰 비판은 작업을 수행하는 방법이 너무 많다는 것이에요.
사실상 쓰기 전용 언어라는 말이 있을 정도로 그 방법이 어마어마하답니다.
즉, 펄 코드는 읽기가 불가능하다고 볼 수 있는데요
따라서 유지 보수도 불가능하겠죠?
'IT소식 > IT 정보' 카테고리의 다른 글
[IT정보] 윈도우 운영체제(32bit/64bit) 확인하는 방법 (0) | 2017.08.08 |
---|---|
민앤지 휴대폰번호도용방지 서비스 편해~ (0) | 2017.08.07 |
[IT 정보] 개발자들을 미치게 하는 프로그래밍 언어 10가지 (1) (0) | 2017.07.28 |
[IT 정보] 인공지능 활용 사례 알아보기 (0) | 2017.07.26 |
[IT 정보] 컴퓨터공학과 수시 준비! 어떻게 시작해야하지? (0) | 2017.07.20 |
[문과생을 위한 IT정보] 자료구조의 모든 것!
안녕하세요! 오늘은 자료구조에 대해서 알아봅시다.
찾고자하는 물건이 있을 때, 어지럽혀져 있는 상태에서 찾는 것 보다
정리되어 있는 상태에서 찾는 것이 훨씬 쉽다는 사실 아시죠?
자료구조는 많은 양의 자료를 어떻게 정리하고 효율적으로 활용하기 위한 방법이라고
보시면 될 것 같은데요~ 더 자세하게 자료구조의 개념은 무엇이고 배우기 위해서는 어떻게 해야할지
알아볼까요?
자료구조의 모든 것
자료구조는 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화하는 작업인데요.
다시 말해, 자료를 효율적으로 사용하기 위해서 자료의 특성에 따라 분류하여 구성하고
저장 및 처리하는 모든 작업을 의미한답니다.
컴퓨터의 의미를 짚어보자면
현실 세계에 존재하는 반복적이거나 복잡한 자료처리를 효율적으로 처리하기 위한 전자장치라고
할 수 있는데요. 컴퓨터를 이용하여 자료처리를 하기 위해서는 무엇보다도
먼저 자료를 컴퓨터가 다룰 수 있도록 컴퓨터 내에 표현해 주어야만 합니다.
그리고 이렇게 표현된 자료를 컴퓨터는 일정한 절차를 통해 처리하게 되는 것이죠~
자료구조는 자료 처리의 성능과 효율에 직접적인 영향을 미치는데요.
따라서 자료구조는 현실 세계의 실제 자료들의 관계를 잘 반영할 수 있어야 하고,
효율적으로 자료 처리를 수행할 수 있도록 간단명료해야만 해요.
이렇게 자료구조로 표현된 자료들을 이용하여 자료들을 처리하는 절차들의 모임을
알고리즘이라 하고, 대부분의 언어는 일정 수준의 모듈 개념을 갖고 있으며
이는 자료구조가 검증된 구현은 감춘 채 인터페이스만을 이용하여 다양한 프로그램에서
사용되는 것을 가능하게 해준답니다.
C++나 자바와 같은 객체지향 프로그래밍 언어는 특별히 이러한 목적으로 객체로 사용하는데요.
이러한 자료구조의 중요성 때문에 최근의 프로그래밍 언어 및 개발 환경은
다양한 표준 라이브러리를 제공하고 있어요.
예로, C++의 표준 템플릿 라이브러리나 자바의 자바 API, 마이크로소프트의 .NET과 같은 것을 들 수 있지요~
컴퓨터가 효율적으로 문제를 처리하기 위해서는 자료를 보관하고 정리하는 기술이 필요한데요.
컴퓨터는 자료의 특성에 따라 다양한 자료구조 기법을 사용하고 있습니다.
자료구조에는 단순구조, 선형구조, 비선형구조가 있어요.
단순구조는 정수, 실수, 문자, 문자열 등 자료의 형태를 말하고,
선형 구조는 자료 간의 연결 관계가 [1:1] 관계를 가지는 형태로 자료들이
긴 선처럼 연결되어 있는 구조입니다.
비선형구조는 자료 간의 연결 관계가 [하나:여러 개] 또는 [여러개 : 여러개]의
관계를 가지는 형태로, 나뭇가지 모양이나 그물 모양처럼 얽혀있는 구조입니다.
예를 들어, 엑셀로 각 과목 점수를 정리하는 표를 만들 때 사용하는 자료구조는
선형구조 중에서 '리스트'라는 구조인데요.
리스트는 순서가 정해져있는 목록의 자료구조랍니다.
지하철 노선도를 정리할 때 사용하는 자료 구조는 비선형 구조의 '그래프'라는 구조예요.
다양하고 복잡한 연결 구조들을 표현할 때 사용하게 된답니다.
대부분의 컴퓨터 프로그램은 알고리즘+자료구조의 형태로 이뤄지는데요.
알고리즘이 특정한 목적을 달성하기 위한 절차라고 한다면,
자료구조는 알고리즘에 필요한 데이터의 집합이에요.
동일한 알고리즘이라도 자료구조가 달라지면 전혀 다른 프로그램이 될 수 있기 때문에
자료에 알맞은 자료구조를 만드는 것이 매우 중요하답니다!
'IT소식 > 문과생을 위한 IT지식' 카테고리의 다른 글
[문과생을 위한 IT정보] 펄 프로그래밍 언어, 어디까지 알고있니? (0) | 2017.08.01 |
---|---|
[문과생을 위한 IT정보] 네트워크 기초 용어 (0) | 2017.06.22 |
[문과생을 위한 IT정보] 4차 산업혁명 관련 용어 알아보기! (0) | 2017.06.21 |
[IT 정보] 프로그래밍 언어 : 컴파일 언어와 인터프리터 언어의 차이점
안녕하세요! 컴파일 언어, 인터프리터 언어, 스크립트 언어 등 여러 종류의 언어가 있는데요.
오늘은 각 언어들의 차이점에 대해서 알아봅시다!
프로그래밍 언어
먼저 가장 큰 개념인 프로그래밍 언어란 무엇인지 알아보아요.
프로그래밍 언어는 말 그대로 컴퓨터에서 일을 수행하는 프로그램을 작성하기 위해
사용하는 기호 체계를 의미하는데요. 굉장히 중요한 의미를 갖고 있습니다.
컴퓨터는 0과 1만을 이해하기 때문에 이러한 기계어 혹은 머신 코드와
인간의 언어 사이에서 중간 다리 역할을 해주는 것이 바로 프로그래밍 언어이기 때문입니다.
프로그래밍 언어는 프로그래밍의 방법에 큰 영향을 주며,
컴퓨터에 대한 이해와 활용에 매우 큰 영향을 끼쳐 왔어요.
사실상 프로그래밍 언어의 개발에 대한 개념과 연구는 컴퓨터 공학의
기본이 된다고 볼 수 있습니다. 때문에 컴퓨터 프로그래머는 물론
컴퓨터 공학을 전공하는 학생들에게는 반드시 필요한 역량이에요.
프로그래밍 언어는 크게 저급 언어와 고급 언어로 나뉘는데요.
저급 언어에서는 어셈블리 언어가 대표적이고,
고급 언어에는 알골, 포트란, 코볼, 베이식, 파스칼, 에이다 등이 있어요.
또한 C언어와 C++, C#는 고급 언어임에도 불구하고 어셈블리 언어 수준으로
하드웨어 제어가 가능하기 때문에 ‘중급 언어’로 분류되기도 합니다.
그렇다면 컴파일 언어와 인터프리터 언어는 어떻게 분류된 언어일까요?
컴파일 언어와 인터프리터 언어
각 프로그래밍 언어들은 컴파일러와 번역기를 사용하여
머신 코드로 바뀌어 컴퓨터에서 실행됩니다.
컴파일 언어의 실행 단계 특징은 컴파일러를 거친다는 점이에요.
컴파일 언어는 작성된 코드를 컴파일러를 통해 머신 코드로 변환하고
변환된 파일을 컴퓨터에서 실행시키는 단계를 거칩니다.
C++로 예를 들었을 때, 소스 코드(.cpp)를 컴파일러를 통해 머신코드(.exe)로 변경하고
컴퓨터에서 실행이 가능한 exe파일로 변환된 파일이
컴퓨터에서 실행되는 것이죠!
즉, 컴파일 언어를 실행시키기 위해선 ‘컴파일러’라는 중간 단계가 필요해요.
반면 인터프리터 언어는 내가 작성한 코드(소스 코드)를
별도의 컴파일 과정 없이 바로 실행시킬 수 있다는 것이 특징입니다.
인터프리터(번역기)에 의해 입력과 동시에 머신 코드로 번역되어 실행되기 때문에
생산 속도가 굉장히 빨라요.
또한 컴파일 언어보다 훨씬 더 단순하고 배우기 쉽답니다.
그렇다면 컴파일 언어와 인터프리터 언어의 차이점을 자세히 알아볼까요?
1. 실행 단계의 차이
앞서 말했듯 컴파일 언어는 ‘컴파일러’ 단계가 필요하고
인터프리터 언어는 별도의 ‘컴파일러’ 과정이 필요하지 않아요.
2. 생산 속도의 차이
1번과 같은 맥락인데요. 컴파일 언어의 경우 ‘컴파일러’ 과정이 들어가기 때문에
인터프리터 언어보다 생산 속도가 느립니다.
인터프리터 언어는 과정이 단순하기 때문에 생산 속도가 빠르죠.
3. 소스 코드 작성 제약사항
컴파일형 언어에는 소스 코드 작성을 위한 제약사항이 스크립트형 언어보다 더 많답닏.
따라서 컴파일 언어는 사용해야 하는 변수의 자료에 대해서 명확하게 알아야 해요.
또한 각종 문법에 따른 제약 사항 들도 알아야 하구요.
4. 디버깅
하지만 인터프리터 언어는 간편한 만큼 잃는 것도 있답니다.
소스 코드가 실행되기 전까지는 소스 코드의 버그를 인지하는 것이 어려워요.
물론, 인지할 순 있지만 컴파일 언어에 비해 오류 인지 시점이 늦습니다.
또한 컴파일 언어가 디버깅 작업이 훨씬 수월해요.
5. 실행 속도
생산 속도는 인터프리터 언어가 더 좋았다면
실행 속도는 컴파일 언어가 훨씬 더 빠르답니다.
컴파일을 한 뒤에 생성된 파일에 의해 프로그램이 실행되기 때문에
번역기에 의해 번역이 되고 실행되는 인터프리터 언어에 비해 훨씬 빨라요.
실행 속도는
C언어, C++ -> Java -> Python 순으로 느려지기 때문에
연산 속도나 실행 속도에 민감한 프로그램은 인터프리터 언어로 개발하지 않아요.
'IT소식 > IT 정보' 카테고리의 다른 글
[IT 정보] IT/SW 개발 직무 차이점 알아보기 (0) | 2017.07.05 |
---|---|
[IT 정보] 애자일 소프트웨어 개발 방법론이란? (0) | 2017.07.03 |
[IT 정보] 미래유망직업 1위, 정보보안전문가가 되려면? (화이트해커) (0) | 2017.06.28 |
[IT정보] IT기술과 학교가 만나다. 플립러닝 (Flipped Learning) (0) | 2017.06.26 |
[IT 정보] 머신러닝은 무엇이죠? 머신러닝의 의미 그리고 딥 러닝 (0) | 2017.06.15 |