SlideShare a Scribd company logo
새로운언어
변하는언어
,
13011039
강민석
변해가는환경
Moore's law
CPU의 속도가 18개월에서 24개월마다 2배 향상된다
변해가는환경
트랜지스터
4GHz
의
벽
core core
core core
변해가는환경
Process
Process
Resource
Thread Thread
ThreadThread
Dead Lock
Starvation
변해가는환경
변해가는환경
Functional Programming
함수형패러다임
가변적 데이터를 사용하지 않고 F(x) = y 라는 식의 수학적으로 처리하는 컨셉
메모리를 공유하지 않아 Lock이 필요 없다.
변해가는환경
현재언어의상황
현재언어의상황
Rust
Rust
매우 빠르며, 세그폴트를 방지하고,
스레드 안전성을 보장하는 시스템 프로그래밍 언어
Rust
Rust
Rust
TypeScript
TypeScript
JavaScript로 컴파일 되는 JavaScript Superset
TypeScript
TypeScript
TypeScript
Go
Go
간단하고 안정적이며 효율적으로 소프트웨어를
개발할 수 있는 오픈 소스 프로그래밍 언어
Go
Go
Go
C++
C++
C언어 에서 파생된 객체지향 언어
C++11/14/17
C++11/14/17
JAVAScript
JAVAScript
트랜드를알수있는간단팁
http://www.aladin.co.kr/shop/wbrowse.aspx?CID=351&BrowseTarget=List
도서구매 사이트에서 최근 나오고 있는 책의 현황을 보면 어느정도 유추할 수 있다.
https://github.com/trending?since=monthly
오픈소스 참여율을 보며 현재 많은 사람들이 관심 있는 프로젝트나 언어들을 파악
할 수 있다.
https://insights.stackoverflow.com/survey/2017#most-loved-dreaded-and-wanted
최대 개발자 커뮤니티에서 답을 찾아본다.
https://news.ycombinator.com/
IT 관련 뉴스나 소식을 모아 놓은 사이트
Q&A
Thankyou13011039 강민석

More Related Content

Similar to [PandoraCube] 새로운 언어, 변하는 언어

파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝
SK(주) C&C - 강병호
 
[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios
NAVER D2
 
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
Sungchul Park
 
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint [D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
NAVER D2
 
스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기
June Yi
 
스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기
June Yi
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
Jinsoo Jung
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
Sungchul Park
 
팀장 잔소리
팀장 잔소리팀장 잔소리
팀장 잔소리
Sungchul Park
 
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
AWSKRUG - AWS한국사용자모임
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
Tae Young Lee
 
9월 기술사항
9월 기술사항9월 기술사항
9월 기술사항Jinhyuk Lee
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
정명훈 Jerry Jeong
 
Animal science with data science
Animal science with data scienceAnimal science with data science
Animal science with data science
Youngjun Na
 
1st cardano korea_meetup
1st cardano korea_meetup1st cardano korea_meetup
1st cardano korea_meetup
Wangjea Lee
 
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경
NAVER D2
 
피니엔진
피니엔진피니엔진
피니엔진
승우 백
 
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
Covenant Ko
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
Jeongkyu Shin
 

Similar to [PandoraCube] 새로운 언어, 변하는 언어 (20)

파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝파이썬으로 익히는 딥러닝
파이썬으로 익히는 딥러닝
 
[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios[1B6]Realm a database for android & ios
[1B6]Realm a database for android & ios
 
스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
 
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint [D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
 
스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기
 
스톰 미리보기
스톰 미리보기스톰 미리보기
스톰 미리보기
 
Slipp 발표 자료 20151212
Slipp 발표 자료 20151212Slipp 발표 자료 20151212
Slipp 발표 자료 20151212
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
 
팀장 잔소리
팀장 잔소리팀장 잔소리
팀장 잔소리
 
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
 
ecdevday5
ecdevday5ecdevday5
ecdevday5
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
 
9월 기술사항
9월 기술사항9월 기술사항
9월 기술사항
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
Animal science with data science
Animal science with data scienceAnimal science with data science
Animal science with data science
 
1st cardano korea_meetup
1st cardano korea_meetup1st cardano korea_meetup
1st cardano korea_meetup
 
[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경
 
피니엔진
피니엔진피니엔진
피니엔진
 
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
왜 개발자는 컴퓨터공학을 공부해야 할까? (비전공자는 컴퓨터공학 과목에서 무엇을 알아야할까?)
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 

More from PandoraCube , Sejong University

[PandoraCube] 게임에 재미요소 부여하기
[PandoraCube] 게임에 재미요소 부여하기[PandoraCube] 게임에 재미요소 부여하기
[PandoraCube] 게임에 재미요소 부여하기
PandoraCube , Sejong University
 
[PandoraCube] 게임과 언어
[PandoraCube] 게임과 언어[PandoraCube] 게임과 언어
[PandoraCube] 게임과 언어
PandoraCube , Sejong University
 
2019.12.23 ysj
2019.12.23 ysj2019.12.23 ysj
[PandoraCube] 쉐이더 with Unity
[PandoraCube] 쉐이더 with Unity[PandoraCube] 쉐이더 with Unity
[PandoraCube] 쉐이더 with Unity
PandoraCube , Sejong University
 
[PandoraCube] 의사소통 구현정도
[PandoraCube] 의사소통 구현정도[PandoraCube] 의사소통 구현정도
[PandoraCube] 의사소통 구현정도
PandoraCube , Sejong University
 
[PandoraCube] GOG GALAXY 2.0
[PandoraCube] GOG GALAXY 2.0[PandoraCube] GOG GALAXY 2.0
[PandoraCube] GOG GALAXY 2.0
PandoraCube , Sejong University
 
[PandoraCube] World of Warcraft
[PandoraCube] World of Warcraft[PandoraCube] World of Warcraft
[PandoraCube] World of Warcraft
PandoraCube , Sejong University
 
[PandoraCube] Microsphere Interpolation
[PandoraCube] Microsphere Interpolation[PandoraCube] Microsphere Interpolation
[PandoraCube] Microsphere Interpolation
PandoraCube , Sejong University
 
[PandoraCube] 게임 타격감에 대하여
[PandoraCube] 게임 타격감에 대하여[PandoraCube] 게임 타격감에 대하여
[PandoraCube] 게임 타격감에 대하여
PandoraCube , Sejong University
 
[PandoraCube] 게임과 법 1
[PandoraCube] 게임과 법 1[PandoraCube] 게임과 법 1
[PandoraCube] 게임과 법 1
PandoraCube , Sejong University
 
[PandoraCube] 게임 개발자의 수익
[PandoraCube] 게임 개발자의 수익[PandoraCube] 게임 개발자의 수익
[PandoraCube] 게임 개발자의 수익
PandoraCube , Sejong University
 
[PandoraCube] 게임 출시에 대해
[PandoraCube] 게임 출시에 대해[PandoraCube] 게임 출시에 대해
[PandoraCube] 게임 출시에 대해
PandoraCube , Sejong University
 
[PandoraCube] 클라우드 게이밍
[PandoraCube] 클라우드 게이밍[PandoraCube] 클라우드 게이밍
[PandoraCube] 클라우드 게이밍
PandoraCube , Sejong University
 
[PandoraCube] 오토배틀러 장르 분석
[PandoraCube] 오토배틀러 장르 분석[PandoraCube] 오토배틀러 장르 분석
[PandoraCube] 오토배틀러 장르 분석
PandoraCube , Sejong University
 
[PandoraCube] 연쇄 할인마
[PandoraCube] 연쇄 할인마[PandoraCube] 연쇄 할인마
[PandoraCube] 연쇄 할인마
PandoraCube , Sejong University
 
[PandoraCube] 모션 캡쳐와 게임
[PandoraCube] 모션 캡쳐와 게임[PandoraCube] 모션 캡쳐와 게임
[PandoraCube] 모션 캡쳐와 게임
PandoraCube , Sejong University
 
[PandoraCube] 객체 지향 프로그래밍
[PandoraCube] 객체 지향 프로그래밍[PandoraCube] 객체 지향 프로그래밍
[PandoraCube] 객체 지향 프로그래밍
PandoraCube , Sejong University
 
[PandoraCube] 유니티에 광고 넣기
[PandoraCube] 유니티에 광고 넣기[PandoraCube] 유니티에 광고 넣기
[PandoraCube] 유니티에 광고 넣기
PandoraCube , Sejong University
 
[PandoraCube] 이야이야이야이야기
[PandoraCube] 이야이야이야이야기[PandoraCube] 이야이야이야이야기
[PandoraCube] 이야이야이야이야기
PandoraCube , Sejong University
 
[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자
PandoraCube , Sejong University
 

More from PandoraCube , Sejong University (20)

[PandoraCube] 게임에 재미요소 부여하기
[PandoraCube] 게임에 재미요소 부여하기[PandoraCube] 게임에 재미요소 부여하기
[PandoraCube] 게임에 재미요소 부여하기
 
[PandoraCube] 게임과 언어
[PandoraCube] 게임과 언어[PandoraCube] 게임과 언어
[PandoraCube] 게임과 언어
 
2019.12.23 ysj
2019.12.23 ysj2019.12.23 ysj
2019.12.23 ysj
 
[PandoraCube] 쉐이더 with Unity
[PandoraCube] 쉐이더 with Unity[PandoraCube] 쉐이더 with Unity
[PandoraCube] 쉐이더 with Unity
 
[PandoraCube] 의사소통 구현정도
[PandoraCube] 의사소통 구현정도[PandoraCube] 의사소통 구현정도
[PandoraCube] 의사소통 구현정도
 
[PandoraCube] GOG GALAXY 2.0
[PandoraCube] GOG GALAXY 2.0[PandoraCube] GOG GALAXY 2.0
[PandoraCube] GOG GALAXY 2.0
 
[PandoraCube] World of Warcraft
[PandoraCube] World of Warcraft[PandoraCube] World of Warcraft
[PandoraCube] World of Warcraft
 
[PandoraCube] Microsphere Interpolation
[PandoraCube] Microsphere Interpolation[PandoraCube] Microsphere Interpolation
[PandoraCube] Microsphere Interpolation
 
[PandoraCube] 게임 타격감에 대하여
[PandoraCube] 게임 타격감에 대하여[PandoraCube] 게임 타격감에 대하여
[PandoraCube] 게임 타격감에 대하여
 
[PandoraCube] 게임과 법 1
[PandoraCube] 게임과 법 1[PandoraCube] 게임과 법 1
[PandoraCube] 게임과 법 1
 
[PandoraCube] 게임 개발자의 수익
[PandoraCube] 게임 개발자의 수익[PandoraCube] 게임 개발자의 수익
[PandoraCube] 게임 개발자의 수익
 
[PandoraCube] 게임 출시에 대해
[PandoraCube] 게임 출시에 대해[PandoraCube] 게임 출시에 대해
[PandoraCube] 게임 출시에 대해
 
[PandoraCube] 클라우드 게이밍
[PandoraCube] 클라우드 게이밍[PandoraCube] 클라우드 게이밍
[PandoraCube] 클라우드 게이밍
 
[PandoraCube] 오토배틀러 장르 분석
[PandoraCube] 오토배틀러 장르 분석[PandoraCube] 오토배틀러 장르 분석
[PandoraCube] 오토배틀러 장르 분석
 
[PandoraCube] 연쇄 할인마
[PandoraCube] 연쇄 할인마[PandoraCube] 연쇄 할인마
[PandoraCube] 연쇄 할인마
 
[PandoraCube] 모션 캡쳐와 게임
[PandoraCube] 모션 캡쳐와 게임[PandoraCube] 모션 캡쳐와 게임
[PandoraCube] 모션 캡쳐와 게임
 
[PandoraCube] 객체 지향 프로그래밍
[PandoraCube] 객체 지향 프로그래밍[PandoraCube] 객체 지향 프로그래밍
[PandoraCube] 객체 지향 프로그래밍
 
[PandoraCube] 유니티에 광고 넣기
[PandoraCube] 유니티에 광고 넣기[PandoraCube] 유니티에 광고 넣기
[PandoraCube] 유니티에 광고 넣기
 
[PandoraCube] 이야이야이야이야기
[PandoraCube] 이야이야이야이야기[PandoraCube] 이야이야이야이야기
[PandoraCube] 이야이야이야이야기
 
[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자[PandoraCube] '게임메이커'에 대해 알아보자
[PandoraCube] '게임메이커'에 대해 알아보자
 

[PandoraCube] 새로운 언어, 변하는 언어

Editor's Notes

  1. 무어의 법칙은
  2. 트랜지스터의 집적도는 가격, 발열 등 여러가지 이유로 한계에 봉착했고 멀티코어의 시대에 들어서게 됩니다.
  3. 멀티코어에 맞게 프로그래밍을 하지만 여러 문제에 봉착하게 됩니다. 속도를 내기위해서는 한 자원을 여러 스레드, 프로세스간 공유를 해야 빠른 속도를 낼 수 있습니다. 그러나 여기서 문제들이 발생합니다. Dead Lock(교착상태) – 상호배제, 점유대기, 선점불가, 순환성 대기 만족, 즉 한 자원을 가지고 두 프로세스가 기다리는 현상 Starvation (기아상태) – 사용할 수 없는 자원을 무한히 기다리는 문제 (자세한 내용은 공룡이 그려진 운영체제 책을 참고해주세요)
  4. 멀티 스레드, 멀티코어 프로그래밍으로 넘어가면 프로그래밍의 난이도는 수직 상승하게 됩니다. 그 이유는 Break Point 디버깅을 할 수 없는 상황이 많고 버그의 재현이 때론 안되는 경우도 있는 등 여러 이유가 있습니다 그래서 프로그래머들은 생각했을 겁니다 이런 상황을 미연 방지하는 코딩을 할 수 없을까..?
  5. 위 사례 말고도 기존 사용한 언어의 문제점, 한계, 편의성을 개선 하고자 새로운 언어가 등장하기도 하고 새로운 이론을 적용한 언어가 나오기도 합니다. 이 처럼 프로그래밍 환경은 변하고 있습니다.
  6. new generation programming languages https://www.tiobe.com/tiobe-index/ 아직 크게 변하지 않고 있습니다 여전히 점유율 면에서는C, C++, JAVA, Python, C#등으로 이루어져 있습니다. 이는 어쩔 수 없는 현상이기도 합니다. 기존 시스템을 새로 만드는 것은 비용이 만만치 않고 새로운 문제를 가져올 수 있습니다.
  7. https://insights.stackoverflow.com/survey/2017#most-loved-dreaded-and-wanted 그러면 개발자들은 무슨 생각을 하고 있을까? 개발자들이 가장 사랑하는 사이트 스택오버 플로우에서 답을 찾아보았습니다. 사이트 차원에서 2017년 설문을 진행하였습니다. 거기서 가상 사랑하는 언어를 선정하였는데요 현재 점유율과는 다른 양상을 보이고 있습니다. 여기서 저는 몇가지 언어를 소개하고 기존 언어들은 어떻게 바뀌고 있는지 설명하도록 하겠습니다.
  8. Rust https://www.rust-lang.org/ko-KR/ 개발: 모질라 리서치 [자료 출처] https://www.rust-lang.org/ko-KR/ https://www.slideshare.net/deview/132-rust?qid=6a717630-e917-460d-a6fd-fb753462efd4&v=&b=&from_search=1 https://namu.wiki/w/Rust https://ko.wikipedia.org/wiki/%EB%9F%AC%EC%8A%A4%ED%8A%B8_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4) https://rustbyexample.com/ https://librewiki.net/wiki/Rust 스택오버플로우 유저들이 가장 좋아하는 언어! "안전하고, 병렬적이며, 실용적인" 언어 시스템 프로그래밍 언어 C/C++ 대체를 목표 병렬 처리, 동시성 프로그래밍에 강점 garbage collector C/C++처럼 개발자에게 메모리를 전적으로 맡기지 않는다. 세그폴트 – 세그멘테이션 결함의 줄인말로 프로그램이 허용되지 않은 메모리 영역에 접근을 시도하거나, 허용되지 않은 방법으로 메모리 영역에 접근을 시도할 경우를 말한다.
  9. - 기본적으로 다른 언어들처럼 변수를 선언하면 RUST는 상수로 처리한다. - 변수를 초기화 하지 않으면 컴파일러에서 오류 처리한다. 데이터 수정을 제한함으로 문제를 미연 방지하려는 의도이다. 데이터를 수정하려면 mut(mutable refernce, 변경가능한 참조)키워드를 넣어 수정권한도 받아와야 한다. 병렬 프로그래밍의 문제는 자원 공유에서 대부분이 일어납니다. 데이터가 동기화 되지 않아 이상한 결과를 내놓는 문제가 있는데 기존에는 락을 걸어서 문제를 방지는데 이는 시스템이 커지면 커질수록 문제발생시 발생원인을 찾기가 매우 어려워지는 문제가 있습니다.
  10. Rust에는 소유권이 존재한다. 소유권은 하나만 존재한다. 2개이상의 변수가 같은 데이터의 소유권을 가질 수 없다. = 으로 넘기면 소유권도 함께 넘겨주게 된다.(함수의 인자로 넘겨도 그렇다), 기존에 갖고있던 변수는 소유권을 잃어 더 이상 제어를 할 수 없다. 소유권은 컴파일러 단에서 추적된다.
  11. TypeScript https://www.typescriptlang.org/ JavaScript를 안정적으로! 컴파일하면 JavaScript로 바뀐다.
  12. 자바스크립트에 타입을 추가하고 유용한 기능, 최신 ECMA표준 문법 등이 포함된 언어라 보면 된다. 최신 ECMA문법은 예전 브라우저에서 동작하지 않을 가능성이 있다. 컴파일러가 있어 문법오류를 감지할 수 있다. 자바스크립트는 유연한 언어라서 될까 싶으면 다된다. 그 때문에 꼬이는 현상이 높은 확률로 등장하는데 TypeScript는 엄격한 편이라 미연 방지된다.
  13. Go https://golang.org/ 개발: 구글 https://ko.wikipedia.org/wiki/Go_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4) 로버트 그리즈머, 롭 파이크, 켄 톰슨 개발자왈 C++의 복잡성을 싫어하며 이로 인해 새로운 언어를 설계하는 계기가 되었다 C언어의 영향을 많이 받았다. 문법이 간단해 컴파일속도가 빠르며 인터프리터처럼 사용할 수도 있다. 쓰레기수집기를 지원한다.
  14. - 백엔드 점유율을 가져오고 있다.
  15. 세미콜론이 없다. 클래스가 없다, 상속도 없다( struct로 객체지향 처럼 쓸수는 있다. ) 캡슐화가 지원된다, 파일내 public(대문자로 시작), private(소문자로 시작)는 메서드의 맨 앞 글자 대소문자에 의해 결정된다. Interface는 제공한다. 문법이 간단해 스크립트 언어를 Go로 바꾸기 용이하다.
  16. Go루틴 이라는 스레드 비슷한 동시성 프로그래밍을 지원한다. 스케줄러에 의해 관리되며 스레드보다 경량화 되어 많이 돌릴 수 있다. 한계점은 고루틴과 가비지 컬렉터로 인해 시스템이 커지면 C/C++ 보다는 느리다. 위 결과를 보면 main과 루틴이 동시에 실행된다는 것을 알 수 있다.
  17. 현재에 안주하지 않는 언어들 C++ 17
  18. 람다 [캡쳐] (인자) { //내용 }
  19. JAVAScript는 정말 중구난방한 언어였습니다. 사람들의 시선도 웹에서 쓰는 언어? 정도의 인지도만을 갖고있었습니다. 그러나 Node.js의 등장으로 JavaScript의 사용범위가 늘어났습니다. 또한 Npm을 통해 JAVAScript의 생태계가 구축되었고 Babel의 등장으로 최신문법을 지원 등등 단점들이 해소되어 범용성 높은 언어와 전망있는 언어로 재 탄생하게 됩니다.
  20. 코드 예로 설명드리겠습니다. 그러나 웹환경이 개선되면서 XMLHttpRequest를 이용해 Ajax라는 개념이 등장했고 Jquery가 등장했습니다. 그러나 웹이 방대해지면 DOM갱신때 마다 이벤트 바인딩을 해줘야 하는데 여러 예외처리를 하다 보니 코드량이 엄청나게 증가합니다. 또한 이 이벤트 발생시 callback을 사용하는데 예외처리도 callback으로 처리하게 되고 다방면을 callback으로 처리하는 상황이 발생합니다. callback안에 콜백이라는 callbackHell이 발생합니다.
  21. 현재 트랜드를 알 수 있는 쉬운 팁 http://www.aladin.co.kr/shop/wbrowse.aspx?CID=351&BrowseTarget=List 도서구매 사이트에서 최근 나오고 있는 책의 현황을 보면 어느정도 유추할 수 있다. https://github.com/trending?since=monthly 오픈소스 참여율을 보며 현재 많은 사람들이 관심 있는 프로젝트나 언어들을 파악 할 수 있다. https://insights.stackoverflow.com/survey/2017#most-loved-dreaded-and-wanted 최대 개발자 커뮤니티에서 답을 찾아본다.