69
IT 세상을 지탱하는 기둥 만들기 서버 개발자가 되기위한 첫 걸음 2015. 5. 23 경희대학교 컴퓨터공학과 동아리 해커 세미나

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

Embed Size (px)

Citation preview

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

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

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

2015. 5. 23

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

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

발표자

조성수 (해커 25기)

컴퓨터공학과 3학년 재학

관심분야

클라우드 인프라/시스템

서버 개발 기술

2

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

주의!

이 발표자료는 이제 막 SW개발을 공부하는 학생들을 대상으로

만들었습니다.

한번쯤 웹 서비스를 개발해보았거나, 이미 숙련된 사람에게는

너무 쉬운 내용일 수 있으니, 빠르게 창을 닫아주시기 바랍니다.

3

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

개발의 종류

IT에서의 개발의 종류는 크게 두 가지로 나눌 수 있다.

“PC/Phone Application”“Web Application”

4

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

개발의 종류

PC/Phone Application 개발은 사용자의 컴퓨터에서 동작하는 프로그램을 개발하는 것이다

이런 프로그램은 인터넷에 연결될 수도, 아닐 수도 있다

PC/Phone Application 개발

5

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

개발의 종류

Web Application 개발은 ‘인터넷’을 통해 흔히 웹 브라우저를 통해 이용할 수 있는 ‘온라인 서비스’를 만드는 것이다

언제나 온라인 상태여야 이용가능하다

Web Application 개발

6

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

인터넷이 발전하고

모바일 시장이 성장함에 따라

7

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

점점 웹 서비스 개발 비중이

높아지고 있습니다

8

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

모든 것을 웹 서비스로!

9

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

웹 서비스?

10

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

웹 서비스 = 웹 어플리케이션 = 홈페이지

11

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

웹의 중심은 인터넷입니다

12

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

13

클라이언트 서버

클라이언트와 서버는 인터넷을 통해

서로 연결이 되어있습니다

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

14

클라이언트 서버

서버는 클라이언트에게 이메일,

홈페이지와 같은 서비스를 제공합니다.

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

15

인터넷에는 수 많은 서버들이 연결되어있고,

다양한 서비스를 제공해주고 있습니다.

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

16

그리고 우리는 이런 공간을

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

줄여서 웹이라고 하죠

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

! 정리 !

웹서비스 개발은 웹이라는 공간에서 서비스하는 ‘것’을 만드는 것이다.

이 ‘것’은 프로그램이다.

17

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

웹 서비스 개발에 대해 알아봅시다

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

웹서비스 개발은 크게

두 가지 분류로 나눕니다

19

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

클라이언트에서 실행되는 Front-End

20

서버에서 실행되는 Back-End

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

21

클라이언트 서버

Front-End Back-End

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

사용자에게 웹 서비스를 사용할 수 있는

인터페이스를 만드는 것이 Front-End 개발이다

22

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

Front-End는 무엇으로 만드나?

23

UI 구성 이벤트 처리

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

Back-End?

이것이 오늘 이야기할 핵심 주제이다!

24

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

Back-End는 웹서비스의 심장과 같은 역할을 합니다

Back-End는 클라이언트가 보내는 모든 요청을 처리하고 적절한 결과를 보내줍니다

25

오늘의 추천 노래는 뭔가요?

오늘의 추천 노래는!아이유-마음

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

Back-End 는 여러 요소들이 상호작용하며 돌아갑니다

26

웹서버

캐시서버

어플리케이션 서버

데이터베이스

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

이제부터 Back-End를 서버라고 부르겠습니다

27

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

흔히 서버 개발이라고 하면

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

28

웹서버

캐시서버

어플리케이션 서버

데이터베이스

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

새로운 용어

어플리케이션 서버?

29

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

먼저 구성요소를 하나하나 알아봅시다

30

웹서버

캐시서버

어플리케이션 서버

데이터베이스

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

웹서버

31

웹서버

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

사실, 클라이언트와 서버와 통신을

하기 위해서는 프로토콜이 필요합니다

32

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

웹은 클라이언트와 서버가 서로 통신하기 위한

프로토콜로 HTTP 를 사용합니다

33

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

웹서버는 클라이언트가 HTTP 프로토콜을 이용하여 보낸 메세지를 해석하는 역할을 합니다.

그리고 해석한 내용을 처리할 수 있는 요소에게 넘겨줍니다.

34

HTTP 1.0 /index GET

아하! index 페이지를 달라는 말이군!

웹서버

?

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

해석한 내용을 처리할 수 있는 요소?

35

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

36

바로 어플리케이션 서버가 바로 그 요소

어플리케이션 서버

실질적인 일은 내가 한다고!

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

어플리케이션 서버를 보기 전 중요한 것!

37

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

38

데이터베이스

데이터베이스

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

우리들이 페이스북에 남기는 글

39

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

40

매일마다 보는 인터넷 뉴스기사

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

41

카톡을 통해 주고 받은 메세지

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

웹 상에서 만들어지는 모든 자료는

데이터베이스에 저장됩니다

42

데이터베이스

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

다시, 어플리케이션 서버로 넘어가봅시다

43

어플리케이션 서버

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

어플리케이션 서버는 클라이언트의 요청을

실질적으로 처리하는 서버입니다

44

어플리케이션 서버

오늘 뉴스 좀 보여줘봐

잠깐만 기다려뺃

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

처리는 데이터베이스를 이용합니다

데이터베이스에서 가져오거나, 저장하거나

45

어플리케이션 서버

오늘자 뉴스기사가.. 주섬주섬

데이터베이스

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

그리고 처리된 내용은 다시 웹서버한테 넘겨주고,

웹서버는 클라이언트가 볼 수 있는 형태(HTML)로 가공합니다

46

어플리케이션 서버웹서버 자! 여기 오늘 뉴스

목록이야

오키!

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

어플리케이션 서버 개발

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

어플리케이션 서버는 다양한 언어로

구현할 수 있습니다

48

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

언어를 정하면, 그 언어를 지원하는 프레임워크를 선택합니다

49

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

그리고 그 프레임워크를 이용하여 서버를 개발합니다

50

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

개발의 형태는 주로 다음과 같습니다

51

URL 함수1:1 매칭

/login public static void login()

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

무엇을 공부해야 할까?

52

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

프로그래밍 언어

53

데이터 베이스

네트워크

리눅스 운영체제

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

프로그래밍 언어

54

앞에서 언급한 언어 중 하나를 선택하여 공부

너무 심도있게 할 필요는 없음

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

데이터베이스

55

데이터베이스를 구축하고 사용할 수 있는 정도만 공부

이론도 중요하지만, 우선은 데이터베이스를 쓰는데에 중점을 두자

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

네트워크

56

인터넷은 네트워크가 기반이 되어있기에 네트워크는 필수이다.

적어도 IP, DNS, NAT, DMZ 그리고 네트워크 장비정도는 알아야한다

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

리눅스 운영체제

57

대부분의 서버가 리눅스 환경에서 운영된다

평소 윈도우 쓰는 것 처럼 리눅스를 쓸 수 있도록공부하자

단.. GUI가 아닌 CUI 환경이라는 점...

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

그 외 공부해야하는 중요한 것들이 있지만,

58

당장 무언가 만들어보고 싶다면 저정도면 충분하다

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

개발한 다음에는?

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

내 컴퓨터에서 열심히 어플리케이션 서버를 개발했다

60

이제 다른 사람들이 쓸 수 있도록 공개하고 싶은데.. 어떻게 해야하지?

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

웹 서비스를 하기 위해서는

‘서버’컴퓨터가 필요합니다

61

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

가난한 우리는 서버를살 돈이 없습니다

62

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

호스팅이란 것을 이용하자

63

( 서버에 특정 공간을 대여해서 사용한다 )

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

총 정 리

64

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

웹 서비스 개발은 크게 두가지

65

클라이언트 서버

Front-End Back-End

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

서버개발이라고 하면 Back-end 개발

그중에서도 어플리케이션 서버 개발을 의미

66

웹서버

캐시서버

어플리케이션 서버

데이터베이스

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

어플리케이션 서버 개발은 언어에 맞는 프레임워크를 이용

67

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

오늘부터 공부해야하는 건?

68

프로그래밍 언어

데이터 베이스

네트워크

리눅스 운영체제

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

–드디어 끝!-

“감사합니다”