SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
비 개발자를 위한 웹 개발 기초
1
인터넷은 무엇인가?
사용자가 원하는 정보를 얻기 위해 직접 먼 곳을 가지 않고도 언제 어디서든지 접근이 가능하게 하는 기
술
과거 : 서울에서 광주의 맛집을 알기 위해서는 직접 여기저기 돌아다녀야함
현재 : 네이버와 같은 검색포털을 이용하여 맛집 블로그를 둘러보고 간접체험을 통해 지식을 습득.
2
웹은 무엇인가?
인터넷을 이용하여 원거리에 있는 문서들을 열람하는 공간
해당 문서들은 웹 브라우저가 해석 가능한 특정 형식으로 작성되어 있음
3
웹 브라우저는 무엇인가?
웹에 있는 문서들을 사용자가 보기 편하게 표시해주는 소프트웨어
URL (Uniform Resource Locator) 을 통해 해당 문서에 접근이 가능하도록 구성되어있음
4
웹은 어떻게 돌아갈까?
1. 웹 브라우저에 사이트 주소(URL) 입력
2. 입력한 주소의 서버에서 해당 정보를 찾음
3. 해당 정보를 브라우저 화면에 표시
4. 사용자가 해당 사이트 내용을 확인
5
웹의 동작방식 (기술 관점)
1. 사용자가 웹 브라우저에서 사이트 주소를 입력한다.
2. 사이트 주소에 해당되는 Server IP 를 접근한다. (DNS - Domain Name System 이용)
3. 해당 Server 에 도달하면 사용자가 원하는 문서를 다시 웹 브라우저에 전송한다.
4. 웹 브라우저의 렌더링엔진에서 해당 문서를 다음과 같은 순서로 파싱
HTML 를 DOM (Document Object Model) 으로 변환
CSS 를 DOM 에 추가
DOM 으로 렌더트리 생성
렌더트리 배치
렌더트리 그리기
5. 렌더트리를 브라우저에 표시 후 사용자에게 웹 페이지로 보여준다.
6
웹 개발 기술
HTML5 : 화면에 나타나는 요소 (텍스트 또는 이미지 등)
CSS3 : 화면에 나타나는 요소를 이쁘게 꾸미는 기술
Javascript : 화면에 나타나는 요소의 동작을 제어
7
HTML
Hyper Text Markup Language : 웹 페이지를 제작하기 위한 표준 언어
Markup Lanugage : 태그를 이용하여 데이터를 구조화하는 언어
시작 태그 / 끝 태그 형식으로 구성
8
HTML 예시
<html>
<head>
<title>HTML 예시</title>
</head>
<body>
<button>Click me</button>
<!-- ... -->
</body>
</html>
9
CSS
Cascading Style Sheets : 브라우저상에서 HTML 요소들이 시각적으로 어떻게 표현되는지를 정의
별도의 파일로 분리하여 모든 HTML 요소에 스타일링 가능
HTML 요소에서 직접 스타일링 가능
10
CSS 예시
button {
color : red;
}
CSS 인라인 속성 예시
<p style="color:red;">이 문단은 빨간색입니다.</p>
11
Javascript
웹 페이지 상에서 요소들의 동작을 제어하는 스크립트 언어
현대의 최신 브라우저에서 지배적으로 사용하고 있음
과거에는 클라이언트 언어, 최근에는 풀스택 언어로 사용
자바와 자바스크립트는 전혀 다른 언어
자바스크립트의 초기 이름은 Mocha, LiveScript 였으나 자바의 인기에 편승하기 위해 변경
12
Javascript 예시
function clickButton() {
alert("you clicked it");
}
<button onclick="clickButton()">click me</button>
13
웹 개발 관련 용어들
jQuery : javascript 를 좀 더 편하게 쓸 수 있는 기술 모음집 (라이브러리)
라이브러리 : 유용한 기술들을 한 곳에 모아놓고 편하게 가져다 사용할 수 있는 기술 모음집
Angular : Google 이 만든 웹 개발 프레임워크 (웹 개발시에 일정한 룰이나 패턴을 따라 개발하도록
만든 도구)
14
웹 개발 실습
목표 : HTML5, CSS3, Javscript 를 이용하여 자기소개 페이지를 만들어보자
HTML5 : p, br, img, button 태그
CSS3 : text color, img border 속성
Javscript : button action 동작, facebook comment plugin 오픈 API
15
실습 #1 - 화면 요소 생성
HTML 파일 생성
html, head, body 추가
자기소개 내용 작성 (p, span 태그)
프로필 사진 추가 (img 태그)
좋아요 버튼 추가 (button 태그)
16
실습 #2 - 화면 요소 스타일링
텍스트 색, 버튼 배경색 변경
button {
color: white;
background-color: #3366ff;
}
버튼 모서리 효과
button {
border-radius: 5px;
}
17
버튼 이미지 수직 정렬
button {
display: inline-block;
}
button img {
vertical-align: text-top;
}
18
실습 #3 - 화면 요소 동작제어
버튼 클릭 이벤트 추가
<button onclick="clickButton()">click</button>
<script>
function clickButton() {
alert("프로필을 좋아합니다.");
}
</script>
19
실습 #4 - 반응형 웹 디자인 적용
Responsive Web Design : 웹 페이지가 해당 기기의 크기에 맞춰 레이아웃이 자동 조절되는 디자인
기법
<header>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</header>
20
실습 #5 - Facebook Comment API
Github Page 를 활용하여 자기소개 웹 페이지 업로드
Github 가입
Repository 생성
Repository 클론
HTML, 이미지 파일 업로드
http://username.github.io 에서 페이지 확인
21
Facebook Developer 에서 Comment API 플러그인 다운
Facebook 계정 생성
Facebook Developer 에서 페이스북 계정 연동 후 App 생성
App 의 Settings 에서 Github Page 추가
Facebook SDK 설치
Comment Plugin 설치
22
완성된 페이지
23
참고 #1 - 웹 동작방식 관련 용어들
클라이언트
서버
HTTP
IP
DNS
URL
24
참고 #2 - 웹 개발 관련 사이트
W3C School
Mozilla Developer Network
Google Web Fundamentals
25
끝
26

Contenu connexe

Similaire à 비 개발자를 위한 웹 개발 기초

my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a jobDeo Kim
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdfSeung kyoo Park
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...JinKwon Lee
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"Changhwan Yi
 
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작Changwon Choe
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)Changhwan Yi
 
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호용호 최
 
PHP로 웹개발을 해보자
PHP로 웹개발을 해보자PHP로 웹개발을 해보자
PHP로 웹개발을 해보자Young Min Shin
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Channy Yun
 
목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, VueGunhee Lee
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
CoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park JihunCoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park JihunCore.Today
 
Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Inho Kwon
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업NAVER D2
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발Sukjoon Kim
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정Kenu, GwangNam Heo
 
01.모바일 프레임워크 이론
01.모바일 프레임워크 이론01.모바일 프레임워크 이론
01.모바일 프레임워크 이론Hankyo
 

Similaire à 비 개발자를 위한 웹 개발 기초 (20)

my activities before getting a job
my activities before getting a jobmy activities before getting a job
my activities before getting a job
 
삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf삶이편해지는_백엔드_개발자_지식.pdf
삶이편해지는_백엔드_개발자_지식.pdf
 
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
 
차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"차세대 웹비즈니스를 위한 "HTML5"
차세대 웹비즈니스를 위한 "HTML5"
 
141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작141118 최창원 웹크롤러제작
141118 최창원 웹크롤러제작
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)
 
개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호개발자로써 갖춰야할 스킬들 - 최용호
개발자로써 갖춰야할 스킬들 - 최용호
 
PHP로 웹개발을 해보자
PHP로 웹개발을 해보자PHP로 웹개발을 해보자
PHP로 웹개발을 해보자
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)
 
목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue목적에 맞게 Angular, React, Vue
목적에 맞게 Angular, React, Vue
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
CoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park JihunCoreDot TechSeminar 2018 - Session1 Park Jihun
CoreDot TechSeminar 2018 - Session1 Park Jihun
 
Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기Node.js에서 공공API를 활용해서 개발하기
Node.js에서 공공API를 활용해서 개발하기
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발Ruby on Rails와 함께 하는 애자일 웹 개발
Ruby on Rails와 함께 하는 애자일 웹 개발
 
모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정모바일 웹앱 프로그래밍 과정
모바일 웹앱 프로그래밍 과정
 
01.모바일 프레임워크 이론
01.모바일 프레임워크 이론01.모바일 프레임워크 이론
01.모바일 프레임워크 이론
 
My words
My wordsMy words
My words
 

Plus de Gihyo Joshua Jang

Vue.js 입문자를 위한 공개 세미나
Vue.js 입문자를 위한 공개 세미나Vue.js 입문자를 위한 공개 세미나
Vue.js 입문자를 위한 공개 세미나Gihyo Joshua Jang
 
2017_Google_PWA_Roadshow_Lighthouse
2017_Google_PWA_Roadshow_Lighthouse2017_Google_PWA_Roadshow_Lighthouse
2017_Google_PWA_Roadshow_LighthouseGihyo Joshua Jang
 
Ionic 2 와 Firebase 로 간단한 인스타그램 만들기
Ionic 2 와 Firebase 로 간단한 인스타그램 만들기Ionic 2 와 Firebase 로 간단한 인스타그램 만들기
Ionic 2 와 Firebase 로 간단한 인스타그램 만들기Gihyo Joshua Jang
 
크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법Gihyo Joshua Jang
 
프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web Apps프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web AppsGihyo Joshua Jang
 
[GDG] Lightening Talk _ 취미번역#1 _ 장기효
[GDG] Lightening Talk _ 취미번역#1 _ 장기효[GDG] Lightening Talk _ 취미번역#1 _ 장기효
[GDG] Lightening Talk _ 취미번역#1 _ 장기효Gihyo Joshua Jang
 

Plus de Gihyo Joshua Jang (6)

Vue.js 입문자를 위한 공개 세미나
Vue.js 입문자를 위한 공개 세미나Vue.js 입문자를 위한 공개 세미나
Vue.js 입문자를 위한 공개 세미나
 
2017_Google_PWA_Roadshow_Lighthouse
2017_Google_PWA_Roadshow_Lighthouse2017_Google_PWA_Roadshow_Lighthouse
2017_Google_PWA_Roadshow_Lighthouse
 
Ionic 2 와 Firebase 로 간단한 인스타그램 만들기
Ionic 2 와 Firebase 로 간단한 인스타그램 만들기Ionic 2 와 Firebase 로 간단한 인스타그램 만들기
Ionic 2 와 Firebase 로 간단한 인스타그램 만들기
 
크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법크롬 개발자 도구 소개 및 사용법
크롬 개발자 도구 소개 및 사용법
 
프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web Apps프로그레시브 웹앱이란? - Progressive Web Apps
프로그레시브 웹앱이란? - Progressive Web Apps
 
[GDG] Lightening Talk _ 취미번역#1 _ 장기효
[GDG] Lightening Talk _ 취미번역#1 _ 장기효[GDG] Lightening Talk _ 취미번역#1 _ 장기효
[GDG] Lightening Talk _ 취미번역#1 _ 장기효
 

비 개발자를 위한 웹 개발 기초

  • 1. 비 개발자를 위한 웹 개발 기초 1
  • 2. 인터넷은 무엇인가? 사용자가 원하는 정보를 얻기 위해 직접 먼 곳을 가지 않고도 언제 어디서든지 접근이 가능하게 하는 기 술 과거 : 서울에서 광주의 맛집을 알기 위해서는 직접 여기저기 돌아다녀야함 현재 : 네이버와 같은 검색포털을 이용하여 맛집 블로그를 둘러보고 간접체험을 통해 지식을 습득. 2
  • 3. 웹은 무엇인가? 인터넷을 이용하여 원거리에 있는 문서들을 열람하는 공간 해당 문서들은 웹 브라우저가 해석 가능한 특정 형식으로 작성되어 있음 3
  • 4. 웹 브라우저는 무엇인가? 웹에 있는 문서들을 사용자가 보기 편하게 표시해주는 소프트웨어 URL (Uniform Resource Locator) 을 통해 해당 문서에 접근이 가능하도록 구성되어있음 4
  • 5. 웹은 어떻게 돌아갈까? 1. 웹 브라우저에 사이트 주소(URL) 입력 2. 입력한 주소의 서버에서 해당 정보를 찾음 3. 해당 정보를 브라우저 화면에 표시 4. 사용자가 해당 사이트 내용을 확인 5
  • 6. 웹의 동작방식 (기술 관점) 1. 사용자가 웹 브라우저에서 사이트 주소를 입력한다. 2. 사이트 주소에 해당되는 Server IP 를 접근한다. (DNS - Domain Name System 이용) 3. 해당 Server 에 도달하면 사용자가 원하는 문서를 다시 웹 브라우저에 전송한다. 4. 웹 브라우저의 렌더링엔진에서 해당 문서를 다음과 같은 순서로 파싱 HTML 를 DOM (Document Object Model) 으로 변환 CSS 를 DOM 에 추가 DOM 으로 렌더트리 생성 렌더트리 배치 렌더트리 그리기 5. 렌더트리를 브라우저에 표시 후 사용자에게 웹 페이지로 보여준다. 6
  • 7. 웹 개발 기술 HTML5 : 화면에 나타나는 요소 (텍스트 또는 이미지 등) CSS3 : 화면에 나타나는 요소를 이쁘게 꾸미는 기술 Javascript : 화면에 나타나는 요소의 동작을 제어 7
  • 8. HTML Hyper Text Markup Language : 웹 페이지를 제작하기 위한 표준 언어 Markup Lanugage : 태그를 이용하여 데이터를 구조화하는 언어 시작 태그 / 끝 태그 형식으로 구성 8
  • 10. CSS Cascading Style Sheets : 브라우저상에서 HTML 요소들이 시각적으로 어떻게 표현되는지를 정의 별도의 파일로 분리하여 모든 HTML 요소에 스타일링 가능 HTML 요소에서 직접 스타일링 가능 10
  • 11. CSS 예시 button { color : red; } CSS 인라인 속성 예시 <p style="color:red;">이 문단은 빨간색입니다.</p> 11
  • 12. Javascript 웹 페이지 상에서 요소들의 동작을 제어하는 스크립트 언어 현대의 최신 브라우저에서 지배적으로 사용하고 있음 과거에는 클라이언트 언어, 최근에는 풀스택 언어로 사용 자바와 자바스크립트는 전혀 다른 언어 자바스크립트의 초기 이름은 Mocha, LiveScript 였으나 자바의 인기에 편승하기 위해 변경 12
  • 13. Javascript 예시 function clickButton() { alert("you clicked it"); } <button onclick="clickButton()">click me</button> 13
  • 14. 웹 개발 관련 용어들 jQuery : javascript 를 좀 더 편하게 쓸 수 있는 기술 모음집 (라이브러리) 라이브러리 : 유용한 기술들을 한 곳에 모아놓고 편하게 가져다 사용할 수 있는 기술 모음집 Angular : Google 이 만든 웹 개발 프레임워크 (웹 개발시에 일정한 룰이나 패턴을 따라 개발하도록 만든 도구) 14
  • 15. 웹 개발 실습 목표 : HTML5, CSS3, Javscript 를 이용하여 자기소개 페이지를 만들어보자 HTML5 : p, br, img, button 태그 CSS3 : text color, img border 속성 Javscript : button action 동작, facebook comment plugin 오픈 API 15
  • 16. 실습 #1 - 화면 요소 생성 HTML 파일 생성 html, head, body 추가 자기소개 내용 작성 (p, span 태그) 프로필 사진 추가 (img 태그) 좋아요 버튼 추가 (button 태그) 16
  • 17. 실습 #2 - 화면 요소 스타일링 텍스트 색, 버튼 배경색 변경 button { color: white; background-color: #3366ff; } 버튼 모서리 효과 button { border-radius: 5px; } 17
  • 18. 버튼 이미지 수직 정렬 button { display: inline-block; } button img { vertical-align: text-top; } 18
  • 19. 실습 #3 - 화면 요소 동작제어 버튼 클릭 이벤트 추가 <button onclick="clickButton()">click</button> <script> function clickButton() { alert("프로필을 좋아합니다."); } </script> 19
  • 20. 실습 #4 - 반응형 웹 디자인 적용 Responsive Web Design : 웹 페이지가 해당 기기의 크기에 맞춰 레이아웃이 자동 조절되는 디자인 기법 <header> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </header> 20
  • 21. 실습 #5 - Facebook Comment API Github Page 를 활용하여 자기소개 웹 페이지 업로드 Github 가입 Repository 생성 Repository 클론 HTML, 이미지 파일 업로드 http://username.github.io 에서 페이지 확인 21
  • 22. Facebook Developer 에서 Comment API 플러그인 다운 Facebook 계정 생성 Facebook Developer 에서 페이스북 계정 연동 후 App 생성 App 의 Settings 에서 Github Page 추가 Facebook SDK 설치 Comment Plugin 설치 22
  • 24. 참고 #1 - 웹 동작방식 관련 용어들 클라이언트 서버 HTTP IP DNS URL 24
  • 25. 참고 #2 - 웹 개발 관련 사이트 W3C School Mozilla Developer Network Google Web Fundamentals 25