SlideShare a Scribd company logo
1 of 69
Download to read offline
IT 세상을 지탱하는

기둥 만들기
서버 개발자가 되기위한 첫 걸음
2015. 5. 23
경희대학교 컴퓨터공학과 동아리 해커 세미나
발표자
조성수 (해커 25기)
컴퓨터공학과 3학년 재학
관심분야
클라우드 인프라/시스템
서버 개발 기술
2
주의!
이 발표자료는 이제 막 SW개발을 공부하는 학생들을 대상으로
만들었습니다.
한번쯤 웹 서비스를 개발해보았거나, 이미 숙련된 사람에게는
너무 쉬운 내용일 수 있으니, 빠르게 창을 닫아주시기 바랍니다.
3
개발의 종류
IT에서의 개발의 종류는 크게 두 가지로 나눌 수 있다.
“PC/Phone Application”



“Web Application”
4
개발의 종류
PC/Phone Application 개발은 사용자의 

컴퓨터에서 동작하는 프로그램을 개발하는 것이다
이런 프로그램은 인터넷에 연결될 수도, 아닐 수도 있다
PC/Phone Application 개발
5
개발의 종류
Web Application 개발은 ‘인터넷’을 통해 흔히 웹 브라우저
를 통해 이용할 수 있는 ‘온라인 서비스’를 만드는 것이다
언제나 온라인 상태여야 이용가능하다
Web Application 개발
6
인터넷이 발전하고


모바일 시장이 성장함에 따라
7
점점 웹 서비스 개발 비중이
높아지고 있습니다
8
모든 것을 웹 서비스로!
9
웹 서비스?
10
웹 서비스 = 웹 어플리케이션 = 홈페이지
11
웹의 중심은 인터넷입니다
12
13
클라이언트 서버
클라이언트와 서버는 인터넷을 통해
서로 연결이 되어있습니다
14
클라이언트 서버
서버는 클라이언트에게 이메일,


홈페이지와 같은 서비스를 제공합니다.
15
인터넷에는 수 많은 서버들이 연결되어있고,


다양한 서비스를 제공해주고 있습니다.
16
그리고 우리는 이런 공간을


WWW(World Wide Web)이라고 부릅니다.


줄여서 웹이라고 하죠
! 정리 !
웹서비스 개발은 웹이라는 공간에서
서비스하는 ‘것’을 만드는 것이다.
이 ‘것’은 프로그램이다.
17
웹 서비스 개발에 대해
알아봅시다
웹서비스 개발은 크게
두 가지 분류로 나눕니다
19
클라이언트에서 실행되는 Front-End
20
서버에서 실행되는 Back-End
21
클라이언트 서버
Front-End Back-End
사용자에게 웹 서비스를 사용할 수 있는
인터페이스를 만드는 것이 Front-End 개발이다
22
Front-End는 무엇으로 만드나?
23
UI 구성 이벤트 처리
Back-End?
이것이 오늘 이야기할 핵심 주제이다!
24
Back-End는 웹서비스의 심장과 같은 역할을 합니다
Back-End는 클라이언트가 보내는 모든 요청을 

처리하고 적절한 결과를 보내줍니다
25
오늘의 추천 노래는
뭔가요?
오늘의 추천 노래는!

아이유-마음
Back-End 는 여러 요소들이 상호작용하며 돌아갑니다
26
웹서버
캐시서버
어플리케이션

서버
데이터베이스
이제부터 Back-End를 서버라고 부르겠습니다
27
흔히 서버 개발이라고 하면


어플리케이션 서버(WAS) 개발을 의미합니다
28
웹서버
캐시서버
어플리케이션

서버
데이터베이스
새로운 용어
어플리케이션 서버?
29
먼저 구성요소를 하나하나 알아봅시다
30
웹서버
캐시서버
어플리케이션

서버
데이터베이스
웹서버
31
웹서버
사실, 클라이언트와 서버와 통신을



하기 위해서는 프로토콜이 필요합니다
32
웹은 클라이언트와 서버가 서로 통신하기 위한
프로토콜로 HTTP 를 사용합니다
33
웹서버는 클라이언트가 HTTP 프로토콜을 이용하여
보낸 메세지를 해석하는 역할을 합니다.
그리고 해석한 내용을 처리할 수 있는
요소에게 넘겨줍니다.
34
HTTP 1.0 /index
GET
아하! index 페이지
를 달라는 말이군!
웹서버
?
해석한 내용을 처리할 수 있는 요소?
35
36
바로 어플리케이션 서버가 바로 그 요소
어플리케이션

서버
실질적인 일은 내가
한다고!
어플리케이션 서버를 보기 전 중요한 것!
37
38
데이터베이스
데이터베이스
우리들이 페이스북에 남기는 글
39
40
매일마다 보는 인터넷 뉴스기사
41
카톡을 통해 주고 받은 메세지
웹 상에서 만들어지는 모든 자료는
데이터베이스에 저장됩니다
42
데이터베이스
다시, 어플리케이션 서버로 넘어가봅시다
43
어플리케이션

서버
어플리케이션 서버는 클라이언트의 요청을
실질적으로 처리하는 서버입니다
44
어플리케이션

서버
오늘 뉴스 좀 보여줘봐
잠깐만 기다려뺃
처리는 데이터베이스를 이용합니다
데이터베이스에서 가져오거나, 저장하거나
45
어플리케이션

서버
오늘자 뉴스기사가..
주섬주섬
데이터베이스
그리고 처리된 내용은 다시 웹서버한테 넘겨주고,
웹서버는 클라이언트가 볼 수 있는 형태(HTML)로 가공합니다
46
어플리케이션

서버웹서버 자! 여기 오늘 뉴스
목록이야
오키!
어플리케이션 서버 개발
어플리케이션 서버는 다양한 언어로
구현할 수 있습니다
48
언어를 정하면, 그 언어를 지원하는 프레임워크를 선택합니다
49
그리고 그 프레임워크를 이용하여 서버를 개발합니다
50
개발의 형태는 주로 다음과 같습니다
51
URL 함수
1:1 매칭
/login public static void login()
무엇을 공부해야 할까?
52
프로그래밍 언어
53
데이터 베이스
네트워크
리눅스 운영체제
프로그래밍 언어
54
앞에서 언급한 언어 중 하나를 선택하여 공부
너무 심도있게 할 필요는 없음
데이터베이스
55
데이터베이스를 구축하고 사용할 수 있는 정도만 공부
이론도 중요하지만, 우선은 데이터베이스를 쓰는데에
중점을 두자
네트워크
56
인터넷은 네트워크가 기반이 되어있기에 네트워크는
필수이다.
적어도 IP, DNS, NAT, DMZ 그리고 네트워크 장비

정도는 알아야한다
리눅스 운영체제
57
대부분의 서버가 리눅스 환경에서 운영된다
평소 윈도우 쓰는 것 처럼 리눅스를 쓸 수 있도록

공부하자
단.. GUI가 아닌 CUI 환경이라는 점...
그 외 공부해야하는 중요한 것들이 있지만,
58
당장 무언가 만들어보고 싶다면 저정도면 충분하다
개발한 다음에는?
내 컴퓨터에서 열심히 어플리케이션 서버를 개발했다
60
이제 다른 사람들이 쓸 수 있도록 공개하고 싶은데.. 어떻게
해야하지?
웹 서비스를 하기 위해서는
‘서버’컴퓨터가 필요합니다
61
가난한 우리는 서버를

살 돈이 없습니다
62
호스팅이란 것을 이용하자
63
( 서버에 특정 공간을 대여해서 사용한다 )
총 정 리
64
웹 서비스 개발은 크게 두가지
65
클라이언트 서버
Front-End Back-End
서버개발이라고 하면 Back-end 개발
그중에서도 어플리케이션 서버 개발을 의미
66
웹서버
캐시서버
어플리케이션

서버
데이터베이스
어플리케이션 서버 개발은 언어에 맞는 프레임워크를 이용
67
오늘부터 공부해야하는 건?
68
프로그래밍 언어
데이터 베이스
네트워크
리눅스 운영체제
–드디어 끝!-
“감사합니다”

More Related Content

Similar to 2015년 제2회 동아리 해커 세미나 - 서버 개발자가 되기 위한 첫걸음 (25기 조성수)

서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음nexusz99
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드NAVER Engineering
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기NAVER D2
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012devCAT Studio, NEXON
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화DONGSU KIM
 
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드Devgear
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 Devgear
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게Sungju Jin
 
Netty 시작하기 (1)
Netty 시작하기 (1)Netty 시작하기 (1)
Netty 시작하기 (1)Daehyun Kim
 
PHP로 웹개발을 해보자
PHP로 웹개발을 해보자PHP로 웹개발을 해보자
PHP로 웹개발을 해보자Young Min Shin
 
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
React native development
React native developmentReact native development
React native developmentSangSun Park
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장Devgear
 
하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기Mijeong Park
 
Bluemix meetup seoul 1st (bluemix + io t) v1.1 (20150714 kt hwang)
Bluemix meetup seoul 1st (bluemix + io t) v1.1 (20150714 kt hwang)Bluemix meetup seoul 1st (bluemix + io t) v1.1 (20150714 kt hwang)
Bluemix meetup seoul 1st (bluemix + io t) v1.1 (20150714 kt hwang)Kyoungtae (KT) Hwang
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oceuEngine Solutions
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기NAVER Engineering
 

Similar to 2015년 제2회 동아리 해커 세미나 - 서버 개발자가 되기 위한 첫걸음 (25기 조성수) (20)

서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음서버 개발자가 되기 위한 첫 걸음
서버 개발자가 되기 위한 첫 걸음
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
 
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
 
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
제 5회 D2 CAMPUS SEMINAR - Swift로 만든 serverframework 개발기
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화
 
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
한 번에 개발하는 안드로이드&iOS 앱 with 앱메소드
 
RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기 RAD스튜디오 100% 활용하기
RAD스튜디오 100% 활용하기
 
Netronics
NetronicsNetronics
Netronics
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
 
Netty 시작하기 (1)
Netty 시작하기 (1)Netty 시작하기 (1)
Netty 시작하기 (1)
 
PHP로 웹개발을 해보자
PHP로 웹개발을 해보자PHP로 웹개발을 해보자
PHP로 웹개발을 해보자
 
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
 
React native development
React native developmentReact native development
React native development
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
 
하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기
 
Bluemix meetup seoul 1st (bluemix + io t) v1.1 (20150714 kt hwang)
Bluemix meetup seoul 1st (bluemix + io t) v1.1 (20150714 kt hwang)Bluemix meetup seoul 1st (bluemix + io t) v1.1 (20150714 kt hwang)
Bluemix meetup seoul 1st (bluemix + io t) v1.1 (20150714 kt hwang)
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oce
 
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
 

2015년 제2회 동아리 해커 세미나 - 서버 개발자가 되기 위한 첫걸음 (25기 조성수)