SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Startup JavaScript
1.프로그래밍 언어 & 변수,식별자,데이터
THINKER TO MAKER
x
Computer Language
THINKER TO MAKER
컴퓨터와 소통하는 언어
프로그래밍 언어
소통을 위해 다양한 국가에서 다양한 언어를 가지고 있음
컴퓨터와 소통하기 위한 언어가 프로그래밍 언어임
프로그래밍의 기원
한정된 자원을 통해 소통하는 방식
봉화와 같이, 컴퓨터는 기본적으로 켜고 끄는 (2진법) 방식으로 이해 함
최초의 컴퓨터 ENIAC
2차 대전시 탄도 계산을 위해 진공관을 활용한 최초의 컴퓨터
DEBUG -> 오 동작 확인 중 진공관에 벌레가 타 죽은 것이 계기가 됨
Low Level Language
컴퓨터는 디지털로 기본적으로 0(on), 1(off) 의 신호만을 구분 함 -> 기계어
기계어를 사람이 이해하기 쉽게 구성한 언어가 어셈블리어임
High Level Language
복잡한 프로그램을 구성하기 어려운 기계어/어셈블리어를 보다 쉽게 개발하
기 위해 C, Java 등의 언어가 탄생함
Compile Language vs Interprete Language
고급언어는 컴파일 언어와 인터프리트 언어로 나뉨
컴파일 언어는 성능이 좋으나 인터프리트 언어에 비해 개발 효율은 떨어짐
Compile Language Interprete Language
• 소스 코드를 컴파일을 통해 실행파일을
생성하고, 사용자는 이를 실행함
• 코드 수정 시 매번 컴파일이 필요
• 코드 오류를 컴파일 과정에서 확인 및
수정 가능
• 최종적으로 기계어가 수행되므로 성능
이 우수함
• 소스 코드를 인터프리터를 이용하여 곧
바로 실행함
• 코드 수정 역시 곧바로 수행함
• 코드 오류를 인터프리터로 실행시점에
서 확인 가능
• 매번 번역 작업이 진행 후 실행되므로
성능이 상대적으로 떨어짐
코드 컴파일 실행파일 실행 코드 인터프리터 실행
JavaScript
웹 어플리케이션을 구동하기 위해 HTML5, CSS3 와 필수적으로 사용 됨
초기 브라우저인 Netscape 에서 LiveScript 라는 이름으로 시작 됨
JavaScript 변천
1990년 효과용으로 많이 사용되다가 과도한 사용으로 침체기에 빠짐
Ajax 기술의 등장과 Node.JS 의 등장으로 JavaScript 의 제2의 전성기 맞이
1990년대 후반 : Javascript 전성기
대부분의 웹 페이지에 마우스를 가져다 놓으면 문자열 점열, 상태 바에 문
자열 흘러가기, 페이지 전환 시 페이드 인 페이드 아웃 등의 효면전환
(Transition) 효과 등의 용도로 사용되기 시작함
2000년대 초반 : Javascript 후퇴기
모양새가 안 좋은 웹페이지 장식을 위한 언어, 프로그래밍 초보자나 사용하
는 저속한 언어의 이미지, 크로스 브라우징 문제와 보안 취약점 문제로 인
하여 나쁜 이미지가 정착되는 요인이 됨
2000년대 중반: Javascript 도약기
RIA(Rich Internet Application) 을 작성할 수 있는 Ajax(Asynchronous
Javascript + XML)가 등장하고 Javascript 국제 표준화 단체인 ECMA 하에
표준화가 진행되어 언어로서의 완성도가 높아짐
2010년대 초반 : Javascript 부흥기
2000년 후반 NodeJS 의 등장으로 서버부터 클라이언트까지 전 영역에
Javascript 가 활용가능 해짐. HTML5 등장으로 Javascript 와 함께 Desktop
Applcation 수준의 웹 어플리케이션 개발이 가능해 짐
왜 JavaScript 인가?
가장 활발히 사용 됨 (Github, Stackoverflow, 해커톤 사용 1위 언어)
별도 프로그램 설치 필요 없이 모든 플랫폼의 브라우저에서 즉시 활용
Node.JS 의 등장
JavaScript 는 본래, 웹 클라이언트 전용 프로그래밍 언어였음.
Node.JS 의 등장으로 서버 및 하드웨어 개발에 까지 사용될 수 있도록 확장됨
데스크 탑 모바일 웹 서버 임베디드 DB
Before C# Java JavaScript Java C/C++ SQL
After JavaScript
Hello World
THINKER TO MAKER
컴퓨터와 소통하는 언어
Hello JavaScript
웹 페이지 형태로 첫 프로그램을 작성해 봄
Alert 은 웹 페이지에서 경고 창으로 내용을 출력 함
<html>
<head>
<title>Hello World</title>
<style>
body {
background-color : yellow;
}
</style>
<script>
alert('Hello JavaScript!');
</script>
</head>
<body>
Hello JavaScript!
</body>
</html>
Hello JavaScript 2
HTML5 - 얼굴, CSS3- 화장, JAVASCRIPT – 소리/눈 동자
3가지 언어를 이용하여 첫 프로그램을 변형해 봄
<html>
<head>
<title>Hello World</title>
<link rel="stylesheet"
href="style.css">
<script src='index.js'></script>
</head>
<body>
Hello JavaScript!
</body>
</html>
alert('Hello JavaScript 2!');
document.write('Hello JavaScript 2nd!');
body {
background-color : yellow;
}
HTML5 JavaScript
CSS3
Variable - 변수
변수는 데이터를 보관하는 일종의 바구니
지속적으로 사용할 수 있도록 메모리에 일시적으로 저장하는 역할
// 변수 선언 후 사용
var message;
message = '좋은 날씨입니다.';
document.write(message);
// 변수 초기화 수행
var message2 = '나는 홍길동 입니다.';
document.write(message2);
// 숫자 문자 구분 없이 사용 가능
var count = 2;
document.write(count);
식별자 1/2
이름을 뜻하는 식별자는 목적을 유추하기 쉽게 이름지어져야 함
camelCase, Pascal, Underscore 식의 방법으로 성격에 따라 지정 가능
함수 명 – camelCase 기법 – myFunction
클래스(구조체) –Pascal 기법 – MyClass
변수 – underscore 기법 – my_variable
이름으로부터 데이터의 내용을 유추하기 쉽게 (ex name, title)
너무 길거나 또는 짧지 않게 (keyword)
보기에 혼동하지 쉽지 않게 (password, user)
첫 번재 문자의 underscore(_) 는 특별한 의미가 있으므로 가급적 사용하지 말 것 (_name)
미리 정해진 기술 방법으로 통일되게 기술할 것
기본적으로 영단어로 할 것
식별자 2/2
첫 번째 문자는 영문자, _, $ 중 하나로 시작하며, 두 번쩨 부터는 숫자도 사용
대소문자는 구분되어야 하며, 예약어가 아니어야 함
break case catch continue default delete
do else finally for function if
in instanceof new return switch try
typeof var void while with
abstract boolean byte char class const
debugger double enum export extends final
float goto implements import Int interface
long native package private protected public
short static super synchronized throws transient
volatile
데이터 유형 1/4
데이터는 밸류 형(Value) 참조 형(Reference)로 구성됨.
C나 Java는 데이터 형이 정해져 있으나, JavaScript 는 관대함
분류 데이터 형 의미
밸류 형 number -1, -0.1, 0, 0.1, 1
string “, ‘ 로 감싸인 0 개 이상의 문자열
boolean true / false
null/undefined 값이 미 정의된 것을 나타냄
참조 형 array 인덱스 번호로 접근 가능한 데이터의 집합
object 각 요소의 이름으로 접근 가능한 데이터의 집합
function 일련의 처리 절차의 집합
10
‘xyz’
숫자 형
문자 형
Value 형
300
500
객체 Object
배열 Array
Reference 형
메모리 주소 값
300 { a:1, b:2}
500 [100,200,300]
데이터 유형 2/4
숫자 표현은 10, 8, 16진수의 정수, 그리고 실수 표현이 가능하다.
문자열은 ‘ 혹은 “ 안에 문자를 넣어 주면 된다.
// -- number ---
// 함수
var num1 = 100; // 10진수
var num2 = 0600; // 8진수 - 앞에 0을 붙여줌
var num3 = 0xCC55FF; // 16진수 - 앞에 0x 를 붙여줌
// -- 부동소수 --
var num4 = 1.5; // 소수
var num5 = 3.14e5; //지수 - 3.14 x 105 대문자 E로도 가능
// -- String --
var str1 = 'Hello world1'; // 큰 따옴표, 작은 따옴표 모두 표시 가능
var str2 = 'Hello world2';
var str3 = "He's here!"; // 문자열에 '을 쓰려면, 외부에는 "으로 감싼다
var str4 = 'He's here!'; // escape 문자로도 표현 가능
데이터 유형 3/4
배열은 데이터의 집합으로, 복수의 값을 보관할 수 있다.
객체는 키와 값의 형태로 접근하며, 함수는 정해진 처리를 하고 반환한다.
// -- Array --
var arr1 = ['banana','apple','orange'];
console.log(arr[0]) // 배열 index 는 0 부터 시작함
var arr2 = ['banana',['tomato','blueberry'],'apple','orange'];
console.log(arr[1][0]); // 배열안에 배열이 들어갈 수 있음
// -- Object --
var obj1 = {a: 1 , b: 2, c: 3};
console.log(obj1.a); // Result : 1
console.log(obj1['a']); // Result : 1
var obj2 = {a: 1, b: 2, c: 3, d : {x : 1, y: 2}};
console.log(obj2['d']['x']); // 객체 안에 객체가 들어갈 수 있음
데이터 유형 4/4
JavaScript 에서는 함수도 일종의 데이터 유형 임.
명령을 수행하거나 계산 결과를 반환.
// -- Function --
var func1 = function(){
console.log('my function 1');
}
func1(); // 함수 1 실행
// -- Function --
var func2 = function(x){
return x + 5;
}
console.log(func2(20)); // 함수 2 실행
// -- 미 정의 값
var x; // 아무것도 정의되지 않으면 기본으로 undefined 값이 부여 됨
var y = {x : 1};
console.log(x); // undefined 라는 값이 나옴
console.log(y['y']); // 존재하지 않은 속성을 참조하려는 경우
W www.circul.us G group.circul.us
S social.circul.us C cafe.circul.us
CONTACT.US circulus@circul.us
THINKER TO MAKER
ANY
QUESTION?
x

Mais conteúdo relacionado

Mais procurados

Select All Record From Tools Menu On Find Receipts For Matching Form
Select All Record From Tools Menu On Find Receipts For Matching FormSelect All Record From Tools Menu On Find Receipts For Matching Form
Select All Record From Tools Menu On Find Receipts For Matching FormAhmed Elshayeb
 
Architecting mobile application
Architecting mobile applicationArchitecting mobile application
Architecting mobile applicationK Senthil Kumar
 
Top down and botttom up Parsing
Top down     and botttom up ParsingTop down     and botttom up Parsing
Top down and botttom up ParsingGerwin Ocsena
 
系統程式 -- 為何撰寫此書
系統程式 -- 為何撰寫此書系統程式 -- 為何撰寫此書
系統程式 -- 為何撰寫此書鍾誠 陳鍾誠
 
Java presentation
Java presentationJava presentation
Java presentationsurajdmk
 
Special value testing
Special value testingSpecial value testing
Special value testingBapi Das
 
Getting started with Appium 2.0
Getting started with Appium 2.0Getting started with Appium 2.0
Getting started with Appium 2.0Anand Bagmar
 
系統程式 -- 第 8 章 編譯器
系統程式 -- 第 8 章 編譯器系統程式 -- 第 8 章 編譯器
系統程式 -- 第 8 章 編譯器鍾誠 陳鍾誠
 
Requirements gathering and validation for mobile applications
Requirements gathering and validation for mobile applicationsRequirements gathering and validation for mobile applications
Requirements gathering and validation for mobile applicationsK Senthil Kumar
 
How to launch workflow from plsql
How to launch workflow from plsqlHow to launch workflow from plsql
How to launch workflow from plsqlFeras Ahmad
 
系統程式 -- 第 12 章 系統軟體實作
系統程式 -- 第 12 章 系統軟體實作系統程式 -- 第 12 章 系統軟體實作
系統程式 -- 第 12 章 系統軟體實作鍾誠 陳鍾誠
 
Automation testing by Durgasoft in Hyderabad
Automation testing by Durgasoft in HyderabadAutomation testing by Durgasoft in Hyderabad
Automation testing by Durgasoft in HyderabadDurga Prasad
 
Oracle Web Adi For upload item master
Oracle Web Adi For upload item masterOracle Web Adi For upload item master
Oracle Web Adi For upload item masterAhmed Elshayeb
 
Compiler design Introduction
Compiler design IntroductionCompiler design Introduction
Compiler design IntroductionAman Sharma
 
第五組-AI視力檢測機AI Vision-Exam Presenation v.1.6.6
第五組-AI視力檢測機AI Vision-Exam Presenation v.1.6.6第五組-AI視力檢測機AI Vision-Exam Presenation v.1.6.6
第五組-AI視力檢測機AI Vision-Exam Presenation v.1.6.6IttrainingIttraining
 

Mais procurados (20)

Select All Record From Tools Menu On Find Receipts For Matching Form
Select All Record From Tools Menu On Find Receipts For Matching FormSelect All Record From Tools Menu On Find Receipts For Matching Form
Select All Record From Tools Menu On Find Receipts For Matching Form
 
Architecting mobile application
Architecting mobile applicationArchitecting mobile application
Architecting mobile application
 
Top down and botttom up Parsing
Top down     and botttom up ParsingTop down     and botttom up Parsing
Top down and botttom up Parsing
 
系統程式 -- 為何撰寫此書
系統程式 -- 為何撰寫此書系統程式 -- 為何撰寫此書
系統程式 -- 為何撰寫此書
 
Java presentation
Java presentationJava presentation
Java presentation
 
Special value testing
Special value testingSpecial value testing
Special value testing
 
Getting started with Appium 2.0
Getting started with Appium 2.0Getting started with Appium 2.0
Getting started with Appium 2.0
 
04 geographies ig
04 geographies   ig04 geographies   ig
04 geographies ig
 
系統程式 -- 第 8 章 編譯器
系統程式 -- 第 8 章 編譯器系統程式 -- 第 8 章 編譯器
系統程式 -- 第 8 章 編譯器
 
系統程式 -- 第 4 章
系統程式 -- 第 4 章系統程式 -- 第 4 章
系統程式 -- 第 4 章
 
Requirements gathering and validation for mobile applications
Requirements gathering and validation for mobile applicationsRequirements gathering and validation for mobile applications
Requirements gathering and validation for mobile applications
 
CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT
 
系統程式 -- 第 2 章
系統程式 -- 第 2 章系統程式 -- 第 2 章
系統程式 -- 第 2 章
 
How to launch workflow from plsql
How to launch workflow from plsqlHow to launch workflow from plsql
How to launch workflow from plsql
 
系統程式 -- 第 12 章 系統軟體實作
系統程式 -- 第 12 章 系統軟體實作系統程式 -- 第 12 章 系統軟體實作
系統程式 -- 第 12 章 系統軟體實作
 
Automation testing by Durgasoft in Hyderabad
Automation testing by Durgasoft in HyderabadAutomation testing by Durgasoft in Hyderabad
Automation testing by Durgasoft in Hyderabad
 
Oracle Web Adi For upload item master
Oracle Web Adi For upload item masterOracle Web Adi For upload item master
Oracle Web Adi For upload item master
 
Compiler design Introduction
Compiler design IntroductionCompiler design Introduction
Compiler design Introduction
 
系統程式 -- 第 5 章
系統程式 -- 第 5 章系統程式 -- 第 5 章
系統程式 -- 第 5 章
 
第五組-AI視力檢測機AI Vision-Exam Presenation v.1.6.6
第五組-AI視力檢測機AI Vision-Exam Presenation v.1.6.6第五組-AI視力檢測機AI Vision-Exam Presenation v.1.6.6
第五組-AI視力檢測機AI Vision-Exam Presenation v.1.6.6
 

Destaque

Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Circulus
 
2.Startup JavaScript - 연산자
2.Startup JavaScript - 연산자2.Startup JavaScript - 연산자
2.Startup JavaScript - 연산자Circulus
 
[WEB UI BASIC] JavaScript 1탄
[WEB UI BASIC] JavaScript 1탄[WEB UI BASIC] JavaScript 1탄
[WEB UI BASIC] JavaScript 1탄Jae Woo Woo
 
JavaScript defer & async
JavaScript defer & asyncJavaScript defer & async
JavaScript defer & asyncSeung-Hyun PAEK
 
Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저Circulus
 
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Circulus
 
Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체Circulus
 
Startup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JSStartup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JSCirculus
 
Startup JavaScript 3 - 조건문, 반복문, 예외처리
Startup JavaScript 3 - 조건문, 반복문, 예외처리Startup JavaScript 3 - 조건문, 반복문, 예외처리
Startup JavaScript 3 - 조건문, 반복문, 예외처리Circulus
 
Personal Interconnect AUdio - piAu manual
Personal Interconnect AUdio - piAu manualPersonal Interconnect AUdio - piAu manual
Personal Interconnect AUdio - piAu manualCirculus
 
Startup JavaScript 10 - OpenAPI & RSS 활용
Startup JavaScript 10 - OpenAPI & RSS 활용Startup JavaScript 10 - OpenAPI & RSS 활용
Startup JavaScript 10 - OpenAPI & RSS 활용Circulus
 
비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초Gihyo Joshua Jang
 
123D Design - 모델링 기초
123D Design - 모델링 기초123D Design - 모델링 기초
123D Design - 모델링 기초Circulus
 
Startup JavaScript 9 - Socket.IO 실시간 통신
Startup JavaScript 9 - Socket.IO 실시간 통신Startup JavaScript 9 - Socket.IO 실시간 통신
Startup JavaScript 9 - Socket.IO 실시간 통신Circulus
 
GitHub 실습 교육
GitHub 실습 교육GitHub 실습 교육
GitHub 실습 교육승엽 신
 
Amazon 인공 지능(AI) 서비스 및 AWS 기반 딥러닝 활용 방법 - 윤석찬 (AWS, 테크에반젤리스트)
Amazon 인공 지능(AI) 서비스 및 AWS 기반 딥러닝 활용 방법 - 윤석찬 (AWS, 테크에반젤리스트)Amazon 인공 지능(AI) 서비스 및 AWS 기반 딥러닝 활용 방법 - 윤석찬 (AWS, 테크에반젤리스트)
Amazon 인공 지능(AI) 서비스 및 AWS 기반 딥러닝 활용 방법 - 윤석찬 (AWS, 테크에반젤리스트)Amazon Web Services Korea
 
Start IoT with JavaScript - 2.연산자
Start IoT with JavaScript - 2.연산자Start IoT with JavaScript - 2.연산자
Start IoT with JavaScript - 2.연산자Park Jonggun
 
Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1Park Jonggun
 
Start IoT with JavaScript - 5.객체2
Start IoT with JavaScript - 5.객체2Start IoT with JavaScript - 5.객체2
Start IoT with JavaScript - 5.객체2Park Jonggun
 
자바스크립트 핵심 가이드
자바스크립트 핵심 가이드자바스크립트 핵심 가이드
자바스크립트 핵심 가이드재원 변
 

Destaque (20)

Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초Startup JavaScript 7 - Node.JS 기초
Startup JavaScript 7 - Node.JS 기초
 
2.Startup JavaScript - 연산자
2.Startup JavaScript - 연산자2.Startup JavaScript - 연산자
2.Startup JavaScript - 연산자
 
[WEB UI BASIC] JavaScript 1탄
[WEB UI BASIC] JavaScript 1탄[WEB UI BASIC] JavaScript 1탄
[WEB UI BASIC] JavaScript 1탄
 
JavaScript defer & async
JavaScript defer & asyncJavaScript defer & async
JavaScript defer & async
 
Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저Startup JavaScript 6 - 함수, 스코프, 클로저
Startup JavaScript 6 - 함수, 스코프, 클로저
 
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
Startup JavaScript 5 - 객체(Date, RegExp, Object, Global)
 
Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체Startup JavaScript 4 - 객체
Startup JavaScript 4 - 객체
 
Startup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JSStartup JavaScript 8 - NPM, Express.JS
Startup JavaScript 8 - NPM, Express.JS
 
Startup JavaScript 3 - 조건문, 반복문, 예외처리
Startup JavaScript 3 - 조건문, 반복문, 예외처리Startup JavaScript 3 - 조건문, 반복문, 예외처리
Startup JavaScript 3 - 조건문, 반복문, 예외처리
 
Personal Interconnect AUdio - piAu manual
Personal Interconnect AUdio - piAu manualPersonal Interconnect AUdio - piAu manual
Personal Interconnect AUdio - piAu manual
 
Startup JavaScript 10 - OpenAPI & RSS 활용
Startup JavaScript 10 - OpenAPI & RSS 활용Startup JavaScript 10 - OpenAPI & RSS 활용
Startup JavaScript 10 - OpenAPI & RSS 활용
 
비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초비 개발자를 위한 웹 개발 기초
비 개발자를 위한 웹 개발 기초
 
123D Design - 모델링 기초
123D Design - 모델링 기초123D Design - 모델링 기초
123D Design - 모델링 기초
 
Startup JavaScript 9 - Socket.IO 실시간 통신
Startup JavaScript 9 - Socket.IO 실시간 통신Startup JavaScript 9 - Socket.IO 실시간 통신
Startup JavaScript 9 - Socket.IO 실시간 통신
 
GitHub 실습 교육
GitHub 실습 교육GitHub 실습 교육
GitHub 실습 교육
 
Amazon 인공 지능(AI) 서비스 및 AWS 기반 딥러닝 활용 방법 - 윤석찬 (AWS, 테크에반젤리스트)
Amazon 인공 지능(AI) 서비스 및 AWS 기반 딥러닝 활용 방법 - 윤석찬 (AWS, 테크에반젤리스트)Amazon 인공 지능(AI) 서비스 및 AWS 기반 딥러닝 활용 방법 - 윤석찬 (AWS, 테크에반젤리스트)
Amazon 인공 지능(AI) 서비스 및 AWS 기반 딥러닝 활용 방법 - 윤석찬 (AWS, 테크에반젤리스트)
 
Start IoT with JavaScript - 2.연산자
Start IoT with JavaScript - 2.연산자Start IoT with JavaScript - 2.연산자
Start IoT with JavaScript - 2.연산자
 
Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1
 
Start IoT with JavaScript - 5.객체2
Start IoT with JavaScript - 5.객체2Start IoT with JavaScript - 5.객체2
Start IoT with JavaScript - 5.객체2
 
자바스크립트 핵심 가이드
자바스크립트 핵심 가이드자바스크립트 핵심 가이드
자바스크립트 핵심 가이드
 

Semelhante a 1.Startup JavaScript - 프로그래밍 기초

Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Park Jonggun
 
간단하게 알아보는 좋은 코드 서영훈
간단하게 알아보는 좋은 코드   서영훈간단하게 알아보는 좋은 코드   서영훈
간단하게 알아보는 좋은 코드 서영훈Seo YoungHoon
 
Net debugging 3_전한별
Net debugging 3_전한별Net debugging 3_전한별
Net debugging 3_전한별Han-Byul Jeon
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1Jinkyoung Kim
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오Taeoh Kim
 
[A1]루비는 패셔니스타
[A1]루비는 패셔니스타[A1]루비는 패셔니스타
[A1]루비는 패셔니스타NAVER D2
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019min woog kim
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다KWON JUNHYEOK
 
[1B1]스위프트프로그래밍언어
[1B1]스위프트프로그래밍언어[1B1]스위프트프로그래밍언어
[1B1]스위프트프로그래밍언어NAVER D2
 
안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계Leonardo YongUk Kim
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)Sung-hoon Ma
 
델파이와 유니코드
델파이와 유니코드델파이와 유니코드
델파이와 유니코드Devgear
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, ScalabilityDongwook Lee
 
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdfASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdfSangHoon Han
 

Semelhante a 1.Startup JavaScript - 프로그래밍 기초 (20)

Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
 
간단하게 알아보는 좋은 코드 서영훈
간단하게 알아보는 좋은 코드   서영훈간단하게 알아보는 좋은 코드   서영훈
간단하게 알아보는 좋은 코드 서영훈
 
Rust
RustRust
Rust
 
Net debugging 3_전한별
Net debugging 3_전한별Net debugging 3_전한별
Net debugging 3_전한별
 
Assembly 스터디 1
Assembly 스터디 1Assembly 스터디 1
Assembly 스터디 1
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
 
[A1]루비는 패셔니스타
[A1]루비는 패셔니스타[A1]루비는 패셔니스타
[A1]루비는 패셔니스타
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
 
클로저 1
클로저 1클로저 1
클로저 1
 
[1B1]스위프트프로그래밍언어
[1B1]스위프트프로그래밍언어[1B1]스위프트프로그래밍언어
[1B1]스위프트프로그래밍언어
 
What’s new in c++11
What’s new in c++11What’s new in c++11
What’s new in c++11
 
안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계안드로이드 빌드: 설탕없는 세계
안드로이드 빌드: 설탕없는 세계
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
 
델파이와 유니코드
델파이와 유니코드델파이와 유니코드
델파이와 유니코드
 
Java script
Java scriptJava script
Java script
 
Scalability
ScalabilityScalability
Scalability
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, Scalability
 
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdfASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
ASP.NET MVC Framework 개발자를 위한 Razor Syntax.pdf
 

Mais de Circulus

라즈베리파이와자바스크립트로만드는 IoT
라즈베리파이와자바스크립트로만드는 IoT라즈베리파이와자바스크립트로만드는 IoT
라즈베리파이와자바스크립트로만드는 IoTCirculus
 
라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강Circulus
 
Startup 123D Design - 9. 강아지 모델링
Startup 123D Design - 9. 강아지 모델링Startup 123D Design - 9. 강아지 모델링
Startup 123D Design - 9. 강아지 모델링Circulus
 
Startup 123D Design - 10. 3D프린팅
Startup 123D Design - 10. 3D프린팅Startup 123D Design - 10. 3D프린팅
Startup 123D Design - 10. 3D프린팅Circulus
 
Startup 123D Design - 8.벤치 만들기
Startup 123D Design - 8.벤치 만들기Startup 123D Design - 8.벤치 만들기
Startup 123D Design - 8.벤치 만들기Circulus
 
Startup 123D Design - 7.물뿌리개 만들기
Startup 123D Design - 7.물뿌리개 만들기Startup 123D Design - 7.물뿌리개 만들기
Startup 123D Design - 7.물뿌리개 만들기Circulus
 
123D Design - 전구 디자인 하기
123D Design - 전구 디자인 하기123D Design - 전구 디자인 하기
123D Design - 전구 디자인 하기Circulus
 
123D Design - 화분 만들기
123D Design - 화분 만들기123D Design - 화분 만들기
123D Design - 화분 만들기Circulus
 
123D Design - 컵 만들기
123D Design - 컵 만들기123D Design - 컵 만들기
123D Design - 컵 만들기Circulus
 
123D Design - 정리함 만들기
123D Design - 정리함 만들기123D Design - 정리함 만들기
123D Design - 정리함 만들기Circulus
 
123D Design - 스마트폰 케이스 모델링
123D Design - 스마트폰 케이스 모델링123D Design - 스마트폰 케이스 모델링
123D Design - 스마트폰 케이스 모델링Circulus
 
JavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and RobotJavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and RobotCirculus
 
piBo- Personal Intelligent roBOt
piBo- Personal Intelligent roBOtpiBo- Personal Intelligent roBOt
piBo- Personal Intelligent roBOtCirculus
 
웨어러블 디바이스를 활용한 개인용 지능형 로봇
웨어러블 디바이스를 활용한 개인용 지능형 로봇웨어러블 디바이스를 활용한 개인용 지능형 로봇
웨어러블 디바이스를 활용한 개인용 지능형 로봇Circulus
 
라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드Circulus
 
라즈베리파이로 IoT 시작하기 복습
라즈베리파이로 IoT 시작하기 복습라즈베리파이로 IoT 시작하기 복습
라즈베리파이로 IoT 시작하기 복습Circulus
 
라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기Circulus
 
라즈베라파이란 무엇인가?
라즈베라파이란 무엇인가?라즈베라파이란 무엇인가?
라즈베라파이란 무엇인가?Circulus
 

Mais de Circulus (18)

라즈베리파이와자바스크립트로만드는 IoT
라즈베리파이와자바스크립트로만드는 IoT라즈베리파이와자바스크립트로만드는 IoT
라즈베리파이와자바스크립트로만드는 IoT
 
라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강라즈베리파이입문 - 연세대 특강
라즈베리파이입문 - 연세대 특강
 
Startup 123D Design - 9. 강아지 모델링
Startup 123D Design - 9. 강아지 모델링Startup 123D Design - 9. 강아지 모델링
Startup 123D Design - 9. 강아지 모델링
 
Startup 123D Design - 10. 3D프린팅
Startup 123D Design - 10. 3D프린팅Startup 123D Design - 10. 3D프린팅
Startup 123D Design - 10. 3D프린팅
 
Startup 123D Design - 8.벤치 만들기
Startup 123D Design - 8.벤치 만들기Startup 123D Design - 8.벤치 만들기
Startup 123D Design - 8.벤치 만들기
 
Startup 123D Design - 7.물뿌리개 만들기
Startup 123D Design - 7.물뿌리개 만들기Startup 123D Design - 7.물뿌리개 만들기
Startup 123D Design - 7.물뿌리개 만들기
 
123D Design - 전구 디자인 하기
123D Design - 전구 디자인 하기123D Design - 전구 디자인 하기
123D Design - 전구 디자인 하기
 
123D Design - 화분 만들기
123D Design - 화분 만들기123D Design - 화분 만들기
123D Design - 화분 만들기
 
123D Design - 컵 만들기
123D Design - 컵 만들기123D Design - 컵 만들기
123D Design - 컵 만들기
 
123D Design - 정리함 만들기
123D Design - 정리함 만들기123D Design - 정리함 만들기
123D Design - 정리함 만들기
 
123D Design - 스마트폰 케이스 모델링
123D Design - 스마트폰 케이스 모델링123D Design - 스마트폰 케이스 모델링
123D Design - 스마트폰 케이스 모델링
 
JavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and RobotJavaScript Everywhere from Mobile and Robot
JavaScript Everywhere from Mobile and Robot
 
piBo- Personal Intelligent roBOt
piBo- Personal Intelligent roBOtpiBo- Personal Intelligent roBOt
piBo- Personal Intelligent roBOt
 
웨어러블 디바이스를 활용한 개인용 지능형 로봇
웨어러블 디바이스를 활용한 개인용 지능형 로봇웨어러블 디바이스를 활용한 개인용 지능형 로봇
웨어러블 디바이스를 활용한 개인용 지능형 로봇
 
라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드라즈베리파이 Circulus API 가이드
라즈베리파이 Circulus API 가이드
 
라즈베리파이로 IoT 시작하기 복습
라즈베리파이로 IoT 시작하기 복습라즈베리파이로 IoT 시작하기 복습
라즈베리파이로 IoT 시작하기 복습
 
라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기라즈베리파이와 자바스크립트로 IoT 시작하기
라즈베리파이와 자바스크립트로 IoT 시작하기
 
라즈베라파이란 무엇인가?
라즈베라파이란 무엇인가?라즈베라파이란 무엇인가?
라즈베라파이란 무엇인가?
 

1.Startup JavaScript - 프로그래밍 기초

  • 1. Startup JavaScript 1.프로그래밍 언어 & 변수,식별자,데이터 THINKER TO MAKER x
  • 2. Computer Language THINKER TO MAKER 컴퓨터와 소통하는 언어
  • 3. 프로그래밍 언어 소통을 위해 다양한 국가에서 다양한 언어를 가지고 있음 컴퓨터와 소통하기 위한 언어가 프로그래밍 언어임
  • 4. 프로그래밍의 기원 한정된 자원을 통해 소통하는 방식 봉화와 같이, 컴퓨터는 기본적으로 켜고 끄는 (2진법) 방식으로 이해 함
  • 5. 최초의 컴퓨터 ENIAC 2차 대전시 탄도 계산을 위해 진공관을 활용한 최초의 컴퓨터 DEBUG -> 오 동작 확인 중 진공관에 벌레가 타 죽은 것이 계기가 됨
  • 6. Low Level Language 컴퓨터는 디지털로 기본적으로 0(on), 1(off) 의 신호만을 구분 함 -> 기계어 기계어를 사람이 이해하기 쉽게 구성한 언어가 어셈블리어임
  • 7. High Level Language 복잡한 프로그램을 구성하기 어려운 기계어/어셈블리어를 보다 쉽게 개발하 기 위해 C, Java 등의 언어가 탄생함
  • 8. Compile Language vs Interprete Language 고급언어는 컴파일 언어와 인터프리트 언어로 나뉨 컴파일 언어는 성능이 좋으나 인터프리트 언어에 비해 개발 효율은 떨어짐 Compile Language Interprete Language • 소스 코드를 컴파일을 통해 실행파일을 생성하고, 사용자는 이를 실행함 • 코드 수정 시 매번 컴파일이 필요 • 코드 오류를 컴파일 과정에서 확인 및 수정 가능 • 최종적으로 기계어가 수행되므로 성능 이 우수함 • 소스 코드를 인터프리터를 이용하여 곧 바로 실행함 • 코드 수정 역시 곧바로 수행함 • 코드 오류를 인터프리터로 실행시점에 서 확인 가능 • 매번 번역 작업이 진행 후 실행되므로 성능이 상대적으로 떨어짐 코드 컴파일 실행파일 실행 코드 인터프리터 실행
  • 9. JavaScript 웹 어플리케이션을 구동하기 위해 HTML5, CSS3 와 필수적으로 사용 됨 초기 브라우저인 Netscape 에서 LiveScript 라는 이름으로 시작 됨
  • 10. JavaScript 변천 1990년 효과용으로 많이 사용되다가 과도한 사용으로 침체기에 빠짐 Ajax 기술의 등장과 Node.JS 의 등장으로 JavaScript 의 제2의 전성기 맞이 1990년대 후반 : Javascript 전성기 대부분의 웹 페이지에 마우스를 가져다 놓으면 문자열 점열, 상태 바에 문 자열 흘러가기, 페이지 전환 시 페이드 인 페이드 아웃 등의 효면전환 (Transition) 효과 등의 용도로 사용되기 시작함 2000년대 초반 : Javascript 후퇴기 모양새가 안 좋은 웹페이지 장식을 위한 언어, 프로그래밍 초보자나 사용하 는 저속한 언어의 이미지, 크로스 브라우징 문제와 보안 취약점 문제로 인 하여 나쁜 이미지가 정착되는 요인이 됨 2000년대 중반: Javascript 도약기 RIA(Rich Internet Application) 을 작성할 수 있는 Ajax(Asynchronous Javascript + XML)가 등장하고 Javascript 국제 표준화 단체인 ECMA 하에 표준화가 진행되어 언어로서의 완성도가 높아짐 2010년대 초반 : Javascript 부흥기 2000년 후반 NodeJS 의 등장으로 서버부터 클라이언트까지 전 영역에 Javascript 가 활용가능 해짐. HTML5 등장으로 Javascript 와 함께 Desktop Applcation 수준의 웹 어플리케이션 개발이 가능해 짐
  • 11. 왜 JavaScript 인가? 가장 활발히 사용 됨 (Github, Stackoverflow, 해커톤 사용 1위 언어) 별도 프로그램 설치 필요 없이 모든 플랫폼의 브라우저에서 즉시 활용
  • 12. Node.JS 의 등장 JavaScript 는 본래, 웹 클라이언트 전용 프로그래밍 언어였음. Node.JS 의 등장으로 서버 및 하드웨어 개발에 까지 사용될 수 있도록 확장됨 데스크 탑 모바일 웹 서버 임베디드 DB Before C# Java JavaScript Java C/C++ SQL After JavaScript
  • 13. Hello World THINKER TO MAKER 컴퓨터와 소통하는 언어
  • 14. Hello JavaScript 웹 페이지 형태로 첫 프로그램을 작성해 봄 Alert 은 웹 페이지에서 경고 창으로 내용을 출력 함 <html> <head> <title>Hello World</title> <style> body { background-color : yellow; } </style> <script> alert('Hello JavaScript!'); </script> </head> <body> Hello JavaScript! </body> </html>
  • 15. Hello JavaScript 2 HTML5 - 얼굴, CSS3- 화장, JAVASCRIPT – 소리/눈 동자 3가지 언어를 이용하여 첫 프로그램을 변형해 봄 <html> <head> <title>Hello World</title> <link rel="stylesheet" href="style.css"> <script src='index.js'></script> </head> <body> Hello JavaScript! </body> </html> alert('Hello JavaScript 2!'); document.write('Hello JavaScript 2nd!'); body { background-color : yellow; } HTML5 JavaScript CSS3
  • 16. Variable - 변수 변수는 데이터를 보관하는 일종의 바구니 지속적으로 사용할 수 있도록 메모리에 일시적으로 저장하는 역할 // 변수 선언 후 사용 var message; message = '좋은 날씨입니다.'; document.write(message); // 변수 초기화 수행 var message2 = '나는 홍길동 입니다.'; document.write(message2); // 숫자 문자 구분 없이 사용 가능 var count = 2; document.write(count);
  • 17. 식별자 1/2 이름을 뜻하는 식별자는 목적을 유추하기 쉽게 이름지어져야 함 camelCase, Pascal, Underscore 식의 방법으로 성격에 따라 지정 가능 함수 명 – camelCase 기법 – myFunction 클래스(구조체) –Pascal 기법 – MyClass 변수 – underscore 기법 – my_variable 이름으로부터 데이터의 내용을 유추하기 쉽게 (ex name, title) 너무 길거나 또는 짧지 않게 (keyword) 보기에 혼동하지 쉽지 않게 (password, user) 첫 번재 문자의 underscore(_) 는 특별한 의미가 있으므로 가급적 사용하지 말 것 (_name) 미리 정해진 기술 방법으로 통일되게 기술할 것 기본적으로 영단어로 할 것
  • 18. 식별자 2/2 첫 번째 문자는 영문자, _, $ 중 하나로 시작하며, 두 번쩨 부터는 숫자도 사용 대소문자는 구분되어야 하며, 예약어가 아니어야 함 break case catch continue default delete do else finally for function if in instanceof new return switch try typeof var void while with abstract boolean byte char class const debugger double enum export extends final float goto implements import Int interface long native package private protected public short static super synchronized throws transient volatile
  • 19. 데이터 유형 1/4 데이터는 밸류 형(Value) 참조 형(Reference)로 구성됨. C나 Java는 데이터 형이 정해져 있으나, JavaScript 는 관대함 분류 데이터 형 의미 밸류 형 number -1, -0.1, 0, 0.1, 1 string “, ‘ 로 감싸인 0 개 이상의 문자열 boolean true / false null/undefined 값이 미 정의된 것을 나타냄 참조 형 array 인덱스 번호로 접근 가능한 데이터의 집합 object 각 요소의 이름으로 접근 가능한 데이터의 집합 function 일련의 처리 절차의 집합 10 ‘xyz’ 숫자 형 문자 형 Value 형 300 500 객체 Object 배열 Array Reference 형 메모리 주소 값 300 { a:1, b:2} 500 [100,200,300]
  • 20. 데이터 유형 2/4 숫자 표현은 10, 8, 16진수의 정수, 그리고 실수 표현이 가능하다. 문자열은 ‘ 혹은 “ 안에 문자를 넣어 주면 된다. // -- number --- // 함수 var num1 = 100; // 10진수 var num2 = 0600; // 8진수 - 앞에 0을 붙여줌 var num3 = 0xCC55FF; // 16진수 - 앞에 0x 를 붙여줌 // -- 부동소수 -- var num4 = 1.5; // 소수 var num5 = 3.14e5; //지수 - 3.14 x 105 대문자 E로도 가능 // -- String -- var str1 = 'Hello world1'; // 큰 따옴표, 작은 따옴표 모두 표시 가능 var str2 = 'Hello world2'; var str3 = "He's here!"; // 문자열에 '을 쓰려면, 외부에는 "으로 감싼다 var str4 = 'He's here!'; // escape 문자로도 표현 가능
  • 21. 데이터 유형 3/4 배열은 데이터의 집합으로, 복수의 값을 보관할 수 있다. 객체는 키와 값의 형태로 접근하며, 함수는 정해진 처리를 하고 반환한다. // -- Array -- var arr1 = ['banana','apple','orange']; console.log(arr[0]) // 배열 index 는 0 부터 시작함 var arr2 = ['banana',['tomato','blueberry'],'apple','orange']; console.log(arr[1][0]); // 배열안에 배열이 들어갈 수 있음 // -- Object -- var obj1 = {a: 1 , b: 2, c: 3}; console.log(obj1.a); // Result : 1 console.log(obj1['a']); // Result : 1 var obj2 = {a: 1, b: 2, c: 3, d : {x : 1, y: 2}}; console.log(obj2['d']['x']); // 객체 안에 객체가 들어갈 수 있음
  • 22. 데이터 유형 4/4 JavaScript 에서는 함수도 일종의 데이터 유형 임. 명령을 수행하거나 계산 결과를 반환. // -- Function -- var func1 = function(){ console.log('my function 1'); } func1(); // 함수 1 실행 // -- Function -- var func2 = function(x){ return x + 5; } console.log(func2(20)); // 함수 2 실행 // -- 미 정의 값 var x; // 아무것도 정의되지 않으면 기본으로 undefined 값이 부여 됨 var y = {x : 1}; console.log(x); // undefined 라는 값이 나옴 console.log(y['y']); // 존재하지 않은 속성을 참조하려는 경우
  • 23. W www.circul.us G group.circul.us S social.circul.us C cafe.circul.us CONTACT.US circulus@circul.us THINKER TO MAKER ANY QUESTION? x