You are on page 1of 42

08

프로그래밍 언어

단원 목차

8.1 프로그래밍 언어 개요
8.2 프로그램 구현
8.3 고급 프로그래밍 언어 종류
8.4 객체지향 프로그래밍
단원 학습목표

▪ 프로그래밍 언어의 필요성과 저급 언어와 고급 언어를 이해한다.


▪ 프로그램을 개발하기 위한 개발환경을 이해한다.
▪ 소스 작성에서 프로그램 실행까지의 프로그램 구현과정을 이해한다.
▪ 컴파일러와 인터프리터의 역할과 특징을 알아본다.
▪ 포트란, 코볼, 베이직, 파스칼, C, C++ 등 고급 언어의 특징을 알아본다.
▪ 객체지향의 개념과 객체지향 언어의 특징을 알아본다.
▪ 객체지향 언어인 자바와 C#의 특징을 이해한다.
▪ 객체지향 언어인 파이썬과 알(R), 고(Go), 코틀린(Kotlin), 스위프트(Swift)를 이
해한다.

3
08
프로그래밍 언어

단원 목차

8.1 프로그래밍 언어 개요
8.2 프로그램 구현
8.3 고급 프로그래밍 언어 종류
8.4 객체지향 프로그래밍
프로그래밍 언어 개요
사람과 컴퓨터가 서로 의사교환을 하기 위한 언어

• 프로그래밍 언어의 필요성


-사람이 컴퓨터에게 지시할
명령어를 기술하기 위함
• 저급 언어
-기계어
• 기계어란 0과 1로 표현
• 컴퓨터가 직접 이해할 수 있는 유일한 언어
• 연산 코드(Operation Code)와 피연산자(Operand)로 구성
• 프로그래밍하기가 상당히 어려움
-어셈블리어
• 복잡한 기계어를 간략하게 기호화(symbolize) 함
• 기계어의 연산코드와 피연산자를 프로그래머가 이해하기 쉬운 기호형태로 일대일 대응시킨 언어
-연산 코드를 기호화한 것을 니모닉(mnemonic)이라고 부름
-연산 코드의 예로 LDA(LoaD Address), ADD(ADD), STA(STore Address) 등이 사용
• 하드웨어 장치에 대한 강력한 통제 가능

5
저급언어와 고급언어
컴퓨터와 인간의 친밀성에 따른 분류

• Low, High level language


-저급 언어(Low Level Language)
• 컴퓨터의 주기억장치, 레지스터, 마이크로프로세서, 입출력 포트 등의 하드웨어를 직접 통제 가능
• 저급 언어를 사용하기 위해서는 하드웨어에 대한 충분한 지식이 요구됨
• 언어 자체가 어렵기 때문에 전문가라 하더라도 프로그램의 생산성이 낮음
-고급 언어(High Level Language)에 비교하여
-고급 언어(High Level Language)
• 컴퓨터가 이해하는 언어를 저급 언어, 인간이 이해하기 쉽고 친근한 언어
• 1950년 중반부터 인간의 자연 언어와 비슷한 포트란, 코볼, 베이직 등의 고급 언어가 개발되어 프로
그램 개발에 사용

6
프로그래밍 언어의 세대별 분류
1945년경에 기계어가 만들어진 이후 어셈블리어를 거쳐 고급 언어에 이르기까지 프로그래밍 언어의
발달을 세대별로 구분
• 프로그래밍 언어의 세대별 분류

7
4세대 5세대의 주요 언어
3세대 언어가 절차적 중심의 언어라면 4세대 언어는 비절차적 중심의 언어

• 데이터베이스 질의 언어(query
language)
-비절차적 중심 언어
-프로그래머가 원하는 결과를 얻기 위해서 하
나 하나의 절차를 따를 필요가 없다는 의미
• 비주얼 프로그래밍 언어(Visual
Programming Language)
-비주얼 베이직
-델파이
• 블록 프로그래밍
-코드 없는 정해진 블록으로 코딩
• 진보된 비주얼 프로그래밍 언어
-MIT에서 개발한 스크래치

8
08
프로그래밍 언어

단원 목차

8.1 프로그래밍 언어 개요
8.2 프로그램 구현
8.3 고급 프로그래밍 언어 종류
8.4 객체지향 프로그래밍
프로그래밍 개요
계산기, 아래한글과 같은 다양한 프로그램이 존재

• 프로그램(program)
-컴퓨터에서 특정 목적의 작업을 수행하기 위해 관련된 명령어와 자료를 모아 놓은 것
• 컴퓨터에게 지시할 일련의 처리 작업 내용을 담고 있음
• 프로그래머(programmer)
-프로그램을 만드는 사람
-넓은 의미로 개발에 참여하는 사람을 개발자라 할 수 있음
• 개발 도구(development tools)
-선정한 언어를 이용하여 프로그램을
개발하기 위한 환경이 필요

10
프로그램 개발 환경
프로그램을 개발하기 위해서는 기본적으로 에디터, 컴파일러, 링커, 로더(loader), 디버거 등이 필요

• 개발 도구가 필요
-프로그램을 개발하려면 프로그램 언어로 만들어진 프로그램 소스를 실행 파일로 생성
• 개발 도구
-편집기(Editor)
• 프로그램 명령어인 프로그래밍 언어의 내용을 편집
-컴파일러
• 작성한 고급 프로그래밍 언어를 컴퓨터가 이해할 수 있는 기계어로 변환
-디버거
• 작성된 프로그램에서 발생하는 프로그램 오류를 쉽게 찾아 수정할 수 있도록 도와주는 프로그램
-링커
• 여러 목적 파일을 하나의 실행 파일로 만들어 주는 기능

11
통합개발환경 IDE
프로그램을 개발하는데 필요한 컴파일러, 디버거, 링커, 에디터 등을 통합적으로 제공하는 개발 환경

• 통합개발환경 IDE
-Integrated Development Environments
-프로그램 개발에 필요한 컴파일러, 디버거,
링커, 에디터 등을 통합적으로 제공하는 개
발 환경을 통합개발환경
• 마이크로소프트 사의 ‘비주얼 C++’(Visual
C++)
• 비주얼 스튜디오 익스프레스(Microsoft
Visual Studio Express) 버전
-무료 배포(www.microsoft.com/ko-
kr/download)하는 제품

12
프로그램 구현과정: 소스 작성과 컴파일
선정한 고급 언어를 이용하여 프로그램을 작성

• 소스 작성
-소스 코드(source code) 또는 간단히 코드(code)
• 프로그램 언어를 이용하여 원하는 작업을 기술한 내용
• 컴파일
-소스(source) 파일(원시 파일)을 목적 파일(Object file)로 변환 과정
-컴파일러
• 컴파일을 해주는 프로그램

13
프로그램 구현과정: 링크와 실행
작성된 소스는 컴파일, 링크 과정을 통해 실행 파일을 만들어 실행

• 컴파일러와 어셈블러
-어셈블러
• 어셈블리 언어의 프로그램을 기계어로 변환
• 링크와 링커
-링커(linker)
• 목적 파일을 실행 파일(Eexecute File)로 만
들어 주는 프로그램
• 여러 개의 목적 파일들을 라이브러리 함수와
연결해서 하나의 파일로 합치는 작업을 수행
-그 과정을 링크, 또는 링킹 과정
• 실행 파일
-링킹 작업 결과 생성되는 프로그램을 실행
프로그램(executable program)
• .exe나 .com의 확장자 파일
14
프로그램 구현과정: 디버깅
디버깅이란 ‘버그를 잡는다’는 의미로 여기서 버그란 바로 에러를 의미

• 디버깅(debugging)과 디버거
-프로그램의 명령을 수행에서
• 컴퓨터의 상태를 보여주거나
• 오류(또는 에러) 발생시 오류를 쉽게 찾을 수
있도록 도와주는 프로그램
-처음부터 에러가 없는 프로그램을 작성하기
란 거의 불가능
• 디버깅 과정에서는 많은 경험으로 에러를 쉽
게 찾아 수정
• 에러 또는 오류
-컴파일 (시간) 오류
-링크 오류
-실행 (시간) 오류

15
디버깅의 유래
“08:00, 작동시작, 10:00, 작동 멈춤, 릴레이를 교환하다. 11:00, 코사인테이프 시작. 15:25, 멀티 덧셈기
테스트하다. 15:45, 70번 패널 릴레이에서 실제 벌레(버그)가 낀 것을 처음 발견하다.”
• 호퍼 중위
-릴레이 사이에서 벌레가 발견된 전후 정황을
컴퓨터 로그기록 노트
• ‘디버그’란 용어의 유래
-원래 버그는 나방 벌레
• 버그에 의해 컴퓨터가 오작동 된 이유에서 유

-버그를 없애는 일
• ‘디버그한다(debug, 벌레 잡는 일)’라고 하기
시작
• 호퍼가 나방을 붙여 작성한 노트
-미 해군에 여러 해 동안 보관되다가 스미스
소니언 박물관에 보관

16
컴파일러와 인터프리터
컴파일 방식과 다르게 프로그램을 구현하는 방식을 인터프리터 방식

• 인터프리터(Interpreter)
-고급 언어를 기계어로 번역
해주는 역할을 수행
-원시 코드를 한 줄씩 읽어
들여 실행
-컴파일러에 비해 번역 속도
가 느림
• 컴파일러(Compiler)
-원시 코드 전체를 읽은 다
음 이를 기계어로 번역
-한 번 컴파일한 후에 수정
이 없다면
• 매번 컴파일 할 필요 없이
빠른 시간 내에 프로그램
실행이 가능
17
컴파일러와 인터프리터 중간 방식
최근에 개발되는 언어는 컴파일러와 인터프리터의 특징을 모두 갖는 방식의 언어

• 컴파일러와 인터프리터의 특징을 모두 갖는 방식


-자바 언어와 C# 언어
• 이들 언어는 컴파일러가 존재하여 컴파일 과정이 필요
-컴파일된 실행 파일을 실행할 때는 인터프리터 방식과 같이 인터프리터가 필요
• 모든 시스템에서 독립적인 프로그램 언어를 개발하기 위해서

18
08
프로그래밍 언어

단원 목차

8.1 프로그래밍 언어 개요
8.2 프로그램 구현
8.3 고급 프로그래밍 언어 종류
8.4 객체지향 프로그래밍
포트란(FORTRAN)
최초의 대중화된 고급 프로그래밍 언어이자 현재도 사용되고 있는 언어

• FORTRAN: FORmula TRANslating system


-IBM의 존 배커스(John Backus)에 의해 고안된 제3세대 프로그래밍 언어
• 과학과 공학 및 수학적 문제들을 해결하기 위해 1950년대 중반에 IBM 704 컴퓨터 시스템에 이용
-포트란은 가장 오래된 언어 중의 하나
• 언어 구조가 단순해 지금도 기술 계산 분야 등에서는 사용

20
코볼(COBOL)
미국 국방부를 중심으로 결성된 그룹 CODASYL(Conference on DAta SYstem Language)에 의해 개발

• COmmon Business Oriented


Language
-기업의 사무처리에 적합한 프로그래밍 언어
• 포트란에 이어 두 번째로 개발된 고급언어
• 1960년 처음으로 개발
-다른 프로그래밍 언어에 비하여 파일의 순차
적인 처리 등이 효율적
-영어 구문과 비슷한 문장구조
• 쉽게 이해할 수 있도록 프로그램 작성이 가능

21
베이직(BASIC)
초보자도 쉽게 배울 수 있도록 만들어진 대화형 프로그래밍 언어로 1963년에 개발

• Beginner’s All-purpose Symbolic Instruction Code


-가장 쉬운 대화형 프로그래밍 언어
• 대화형의 영어 단어를 바탕으로 약 200여 개의 명령어들로 구성
-기본 개발 언어로 탑재되어 범용적인 언어로 널리 사용
• 1980년대에 개인용 컴퓨터의 출현
-마이크로소프트는 비주얼베이직(Visual Basic)이라는 프로그램 언어로 발전

22
파스칼(PASCAL)
교육용으로 제작된 프로그래밍 언어이나 범용적 개발용으로도 성공

• 1971년 스위스의 나클라우스 워스(Nicholas Wirth) 교수


-파스칼은 교육용으로 제작된 프로그래밍 언어
• 1980년에서 1990년대까지 대부분의 대학에서 프로그래밍 언어의 교과과정으로 파스칼을 채택
-구조적인 프로그래밍 (structured programming)이 가능하도록 설계
-터보 파스칼(Turbo Pascal)로 상용화
• 1980년대에는 볼랜드 사에서 파스칼을 발전시킴
• 델파이(Delphi)
-볼랜드 사는 1990년 중반에 파스칼를 기반으로 하는 그래픽 사용자 인터페이스 개발도구 개발
• 윈도우 환경의 RAD(Rapid Application Development) 통합개발환경을 출시
• 마이크로소프트 사의 비주얼 베이직과 유사
-현재까지도 널리 사용

23
C
1972년경, 시스템 PDP-11에서 운용되는 운영체제 유닉스(Unix)를 개발하기 위한
시스템 프로그래밍 언어
• 데니스 리치(Dennis Ritchie)가 개발 -응용 소프트웨어의 개발에 널리 이용
-미국전신전화국인 AT&T의 벨 연구소 • 현재 이용되고 있는 운영체제, 컴파일러, 통
합개발환경 등이 대부분 C 언어로 개발
-B 언어에서 발전된 언어
• B 언어는 켄 톰슨(Ken Tompson)이 개발
• ANSI C
-미표준화위원회(American National
Standards Institute)에서 공인한 표준 C
• 특징
-하드웨어에 대한 보다 확실한 통제가 가능
-이식성(portability)이 높음
• 특정 컴퓨터 기종에 의존하지 않음
-풍부한 연산자와 데이터 형(data type)
• 범용 프로그래밍 언어로서 널리 보급

24
C++
1972년에 개발된 C 언어는 그 이후 1983년 프로그램 언어 C++로 발전

• C 언어의 객체지향 버전
-C++은 객체지향 프로그래밍을 지원
• OOP
-Object-Oriented Programming
• C언어가 가지는 장점을 그대로 계승
• 상속성(inheritance) 등의 개념을 추가한 효
과적인 언어

25
스크래치
2007년 MIT 대학의 미디어랩(Media Lab)에서 개발한 비주얼 프로그래밍 개발 도구

• 교육용 프로그래밍 언어 -초등학교부터 프로그래밍 교육을 강화


-educational programming language • 스크래치와 같은 비주얼 프로그래밍 언어를
활용하면 좋은 성과가 기대
-일반인, 프로그래밍에 입문한 학생들을 대상
으로 한 프로그래밍 언어
• 직관적으로 누구나 쉽게 이해할 수 있는 블록
을 끼워 맞춰 프로그램을 작성
• 브라우저에서 직접 개발하는 환경
• 다양한 이미지나 사운드 제공하여 쉽게 사용
-커뮤니티 기반 웹 인터페이스로 구성
• 스크래치 웹사이트(scratch.mit.edu)
-개발 환경은 한국어로도 서비스
-초등학생을 중심으로 스크래치를 활용한 교
육과정을 발굴
• 창의성 계발에 관한 연구가 활발

26
08
프로그래밍 언어

단원 목차

8.1 프로그래밍 언어 개요
8.2 프로그램 구현
8.3 고급 프로그래밍 언어 종류
8.4 객체지향 프로그래밍
객체지향 개요
객체지향은 70, 80년대를 거치면서 프로그램 언어 분야 뿐만 아니라
소프트웨어 개발 방법론 분야, 데이터베이스 분야 등 많은 분야에서 발전
• OO(Object Oriented)
-1960년대 말에 시뮬라(SIMUAL)라는 프로그램 언어에서 처음 소개됨
• 객체
-현실 세계의 사물이나 개념을 시스템에서 이용하기 위해 현실 세계를 자연스럽게 표현하여 손
쉽게 이용할 수 있도록 만든 소프트웨어 모델
-이 모델링 과정에서 객체지향의 특징
• 추상화(Abstraction)
• 상속성(Inheritance)
• 캡슐화(Encapsulation)
• 다형성(Polymorphism)

28
속성과 행동
객체의 속성과 행동은 실제 세계의 사물에서 유추한 성질

• 객체의 구성
-속성(attributes, properties)
• 객체의 특성을 표현하는 정적인 성질
-행동(messages, behaviors)
• 동적인 일을 처리하는 단위
-행동은 객체 내부의 일을 처리하거나 객체들간의 서로 영향을 주고 받는 일

29
객체지향과 절차지향
고급 언어 중에서 프로그램 방식으로 언어를 분류하면 주로 절차지향(procedural) 언어와 객체지향
(object oriented) 언어로 나뉨
• 절차지향(Procedural) 언어
-함수(function)
• 절차지향에서 전체 과정을 나누어 처리하는
단위
-문제를 여러 개의 작은 함수로 나누어 그 문
제를 해결
• 동사 중심의 프로그래밍 방식
• 객체지향(Object oriented) 언어
-문제를 구성하는 객체를 만들어 이 객체들
간의 메시지 교환으로 그 문제를 해결
• 명사 중심의 프로그래밍 방식
-메소드
• 객체는 자료와 일련의 처리 명령을 하나로 묶
어 놓은 메소드로 구성되는 프로그램 단위
• 함수보다 높은 수준의 모듈화 방법
30
객체지향과 절차지향: 자판기 설계
고객의 자동판매기 사용을 모의 실험하는 프로그램을 절차지향과 객체지향으로 생각

• 고객과 자판기: 객체
-자동 판매기에서 가장 중요한 자료
• 구매 과정에서 필요한 내용을 속성과 행동으
로 나눔
-고객 객체
• 돈과 제품이라는 2개의 속성
• 3개의 행동으로 구성
-자판기 객체
• 2개의 속성
• 4개의 행동으로 구성
• 함수
-동사 중심의 프로그램 단위
• 일련의 명령을 모아 놓은, 해야 할 업무를 처
리하는 단위

31
객체지향 언어
프로그래밍 언어 분야에서 객체지향 언어는
시뮬라에서 시작
• 순수 객체지향 언어
-범용적인 언어로는 널리 활용되고 있지 않음
-스몰토크, 이펠
• 일반 객체지향 언어
-C++ 언어
• C 언어를 기반으로 객체지향 개념을 도입하
여 개발된
-객체지향 언어는 범용적으로 이용
• 자바 언어
• 비주얼 베이직
• 델파이

32
자바
자바는 1995년에 공식 발표되었으며 프로그래밍 언어 C++를 기반으로 한 객체지향 프로그래밍 언어

• 자바(JAVA)의 시초
-1992년 미국의 SUN 사에서 가전제품들을 제어하기 위한 언어에서부터 비롯됨
• 자바 역사
-1990년 양방향 TV를 만드는 제어박스의 개발을 위한 그린 프로젝트(Green Project)를 시작
-James Gosling
• Oak 라는 언어를 발전시켜 자바를 개발
-월드 와이드 웹(World Wide Web) 이용에도 적합하도록 자바를 발전
• 90년 초부터 세계적으로 그 이용 범위가 폭발적으로 증가
-1995년 5월에 SunWorld 95에서 자바를 공식 발표
• 자바 가상 기계
-바이트코드가 실행될 수 있도록 하는 역할
• 바이트코드
-다양한 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 실행하기 위해 설계된 아키텍처 중립적
인(architecture neutral) 중간 형태의 이진 파일
33
마이크로소프트의 닷넷
2002년 3월 마이크로소프트 사는 차세대 인터넷 인프라 구조인 닷넷 플랫폼을 정식으로 발표

• 닷넷 플랫폼(Platform)
-‘언제 어디서나 컴퓨터나 핸드폰과 같은 다양한 기기를 통해서 XML 웹 서비스를 요청하고 응답’
하려는 목적
• XML 기반의 웹 서비스를 위한 마이크로소프트의 새로운 플랫폼
-기존의 개발 기술을 이용 가능
• 주력 언어인 C# 언어를 이용 가능
• 닷넷 플랫임

34
인공지능과 빅데이터 분석에 알맞은 언어 파이썬
제4차 산업혁명 시대의 핵심기술인 인공지능의 구현과 빅데이터 분석 처리에 뛰어나기 때문에 각광
을 받고 있음
• 파이썬(python) 언어
-현재 미국의 대학에서 컴퓨터 기초과목으로
가장 많이 가르치는 프로그래밍 중 하나
• 분석 및 데이터 과학 분야와 머신러닝
분야에서 최고의 플랫폼
-인공지능의 머신러닝과 딥러닝 빅데이터 처
리를 위한 통계 및 분석 방법의 라이브러리
를 풍부히 제공
-2017년 분석 및 데이터 과학 분야와 머신러
닝 분야에서 41% 사용

35
파이썬 개요와 특징
파이썬은 1991년 네덜란드의 귀도 반 로섬(Guido van Rossum)이 개발한 객체지향 프로그래밍 언어

• 표준 파이썬(python) 버전
-비 영리의 파이썬 소프트웨어 재단이 관리하는 개방형, 공동체 기반 개발 모델
• C 언어로 구현된 파이썬
• 다양한 파이썬 종류
-C 언어로 구현된 C파이썬(cpython) 구현이 사실상의 표준
• C#으로 구현된 닷넷프레임워크 위에서 동작하는 아이언파이썬(IronPython)
• 자바로 구현되어 자바가상기계(JVM)에서 돌아가는 Jython
• 파이썬 자체로 구현된 PyPy
• 대학의 컴퓨터기초 교육에 많이 활용
-간단하면서 효과적으로 객체지향을 적용할 수 있는 강력한 프로그래밍 언어
-매우 간결하고 읽기 쉽게 프로그램을 작성
• 인터프리터 언어
-간단한 문법구조를 가진 대화형 언어
-동적 자료형(dynamic typing)을 제공
• 변수를 선언하지 않고 사용
-여러 플랫폼에서 사용되는 다양한 영역에 활용
-프로그램을 쉽고 빠르게 개발
36
파이썬 설치와 실행
파이썬은 무료이므로 간단히 파이썬 홈페이지에 접속, 인터프리터를 내려 받아 설치 가능

• 파이썬 재단 페이지(www.python.org)
-내려 받기(www.python.org/download)에 연결
-인터프리터를 내려 받아 설치 가능
• 프롬프트(prompt)인 >>>
-프롬프트 이후, 명령어를 입력
-간단히 print(a)와 같이 저장된 내용을 출력

37
파이썬 프로그램과 학습
공식 튜토리얼과 한글 튜토리얼 사이트에 접속하여 학습 가능

• 문자열 “Hello World!”를 출력하는 파이썬 소스

• 공식 튜토리얼
-https://docs.python.org/3/tutorial
-한글 사이트
• ‘파이썬 자습서’로 검색
-https://docs.python.org/ko/3/tutorial/index.html

38
GO 언어
키워드가 25개 밖에 되지 않아 언어가 매우 간결하며 실용성을 지향

• 구글 3인에 의해 고안된 컴파일 언어,


2009년 발표
-로버트 그리즈머(Robert Griesemer), 롭 파
이크(Rob Pike), 켄 톰슨(Ken Thompson)
• 간결하고, 안전하고, 효율적인 언어
-멀티스레딩, 병렬 컴퓨팅에 적합한 동시성
(concurrency) 프로그램을 쉽게 제작
• 홈페이지
-golang.org
• 통합 개발환경(IDE)
-제트브레인스(JetBrains)사의 Go랜드
(GoLand)
-이클립스 (eclipse) 또는 라이트 IDE(LiteIDE)

39
코틀린 언어
제트브레인스(JetBrains)에서 자바가상기계(JVM)와 안드로이드(android)를 위해 2011년에 공개한
객체지향 프로그래밍 언어
• 안드로이드 앱 개발 공식 언어
-구글은 2017년, 코틀린을 채택
• 오라클과의 자바 언어에 대한 분쟁의 결과
• 코틀린의 문법
-코딩하거나 읽기 쉽도록 매우 간결하고 간편
• 문장의 세미콜론은 옵션
• 간단한 메소드는 한 줄 구현이 가능
-자바 언어와의 상호 운용이 100% 지원
• 자바가상기계(JVM) 기반에서 자바 바이트코
드를 생성해 실행되는 것이 기본
• 자체 컴파일러를 사용하여 기계어로 컴파일
해 직접 실행도 가능

40
스위프트 언어
애플이 직접 2014년에 개발한 언어

• 오브젝티브C(Objective-C) 언어의 단점
을 개선
-애플의 iOS, 맥OS, 애플 TV(Apple TV), 애플
워치(Apple Watch) 앱 개발용
-현대 프로그래밍 언어의 기능을 포함
• 제네릭스(generics), 타입 인터페이스 등
• 특징
-매우 빠르고 민첩하며, 안전한 언어
-주어진 문제가 쉽던 어렵던 관계없이 매우
쉽게 코딩이 가능한 언어를 추구
-자바·C#와 C/C++·오브젝티브C(Objective-C)
의 장점을 결합한 언어라는 평가
• 아직은 애플을 위한 언어

41
R 언어
R은 통계 분석 및 그래픽 작업을 위한 인터프리터 프로그래밍 언어이자 무료 소프트웨어 환경

• 1993년 뉴질랜드의 오클랜드 대학교에 • 풍부한 통계분석 패키지 제공과 함께 분석한


데이터를 완성도 높은 그래프
서 개발
-4천 개가 넘는 통계분석 패키지
-다음과 함께 통계 소프트웨어 개발과 자료
• 공개 소프트웨어로 세계 여러 개발 기여자들
분석에 널리 사용 이 최신의 분석기법을 위한 패키지를 계속 공
• SPSS(Statistical Package for the Social 급
Science)
• STATA(Software for Statistics and Data
Science)
• SAS(Statistical Analysis Software) 등의 통
계 전문 소프트웨어
• 제4차 산업혁명 시대의 핵심 프로그래밍
언어로 각광
-데이터 마이닝, 빅데이터 처리, 머신러닝 분
야에 매우 적합
-시각화 장점
42

You might also like