서버 개발자가 되기 위한 첫 걸음

Post on 13-Aug-2015

93 views 11 download

Transcript of 서버 개발자가 되기 위한 첫 걸음

IT 세상을 지탱하는기둥 만들기

서버 개발자가 되기위한 첫 걸음

2015. 5. 23

경희대학교 컴퓨터공학과 동아리 해커 세미나

발표자조성수 (해커 25기)

컴퓨터공학과 3학년 재학

현 A2Company (KINX) - 클라우드 인프라팀 연구원

관심분야

클라우드 인프라/시스템

서버 개발 기술

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

프로그래밍 언어

데이터 베이스

네트워크

리눅스 운영체제

–드디어 끝!-

“감사합니다”