욕쟁이 할머니네 개발국밥
□ 욕쟁이 할머니네 개발국밥

한 그릇 – 웹서비스가 뭔지는 알고 국밥 처묵냐 이눔시키야

☆☆☆☆☆ 맛집 추천사:

개발자랑 대화하고 싶으세요? 구글링 해봤자 뭔 말인지 어려운 말만 잔뜩 나오죠?

잘 오셨습니다. 이 집은 IT업계의 비개발자들을 위한 개발국밥 맛집입니다. 개발자들이 하는 어려운 말들을 훌훌 말아서 비개발자들이 이해할 쉬운 말로 풀어드립니다.

 

 

아쿠 깜짝이야! 예끼 이눔시키 언제 들어왔어. 이눔아 개발국밥 먹으러 온겨? 왔으면 빨리 들어오지 왜 문앞에서 그러고 서있냐 이 우라질놈아. 개발자랑 대화하고 싶어서 온 비개발자 아녀? 착보면 착이지. 그래 잘 왔어. 구글링 해봤자 우라질 뭔 소린지 몬알아먹겠는 쉰소리만 잔뜩 나올겨. 할미한테 파리채로 맞아가면서 배우는 게 더 빨러.

첫 국밥의 재료는 웹서비스여. 웹서비스 돌아가는 구조도 모르면서 IT업계에서 일합네 명함 돌리는 놈들은 다 할미한테 궁디팡팡 맞아야돼.

 

- 웹서비스와 restFul의 의미

일단 ‘웹서비스’라는 게 뭔지 물어보면 대답할 수는 있간?

문장: “웹서비스를 구축한다.”-개발자 언어: http기반 프로토콜(protocol, 규약)을 활용해 네트워크 통신을 구현한다.-> 번역: http라는 이름의 합의된 어떤 규칙에 맞춰서 인터넷 되는 페이지를 만든다.

 

일단 이렇게만 이해하고 넘어가도 전혀 문제 읎어. 모르는 건 차차 설명해 줄텡께 걱정일랑 접어서 종이비행기로 날려부려라잉. 급하게 먹다 체하면 할미 매상 떨어진다 이눔들아.

자, 근래엔 여기서 이 ‘http 기반의 통신구현’을 ‘restFul 서비스’라고 부른다는 사실이 중요한 겨. restFul을 검색해보면 “웹의 아키텍쳐 스타일이다.” 이렇게 나오지? 옘병… 이래가지고 알아듣겠냐 이 호로자슥들 꼬추를 따가지고 국밥에 썰어넣어버릴라. 먼저 아키텍쳐 스타일이 뭔지부터 보드라고.

‘아키텍쳐 스타일 or 아키텍처 패턴’-개발자 말: client/server, P2P 등 서버를 구현하는 방식 및 형태를 포괄하는 의미. *이는 디자인 패턴과 별개의 개념이다.-> 번역: 예컨데 서버개발이 축구라면 아키텍처 스타일은 플레이 스타일이다. REST는 아키텍처 스타일(플레이 스타일)의 하나다. 말하자면 티키타카 같은 거다. 물론 뻥축구나 영혼의 10백 등 다른 방식도 존재한다. 이 REST의 특징들이 들어있는 개발방식을 restFul(=REST 스러운)이라고 말한다.

 

이제 이해가 좀 되는가? 그럼 restFul이라는 게 아무튼 중요하다니까 뭔지도 알아야지 계속 밥벌어먹고 살지 않간? 할미가 설명해줄테니까 싸게 따라오니라. 단, 깍두기 국물 흘리면 죽는다.

 

-RestFul 별 거 아니다: ‘REST의 6가지 요소’

 

1. Client/Server: 클라이언트와 서버가 나눠져 있으며, 서버에서 내려준 것을 클라이언트가 받아 처리하고 다시 요청하는 형태다.

-> 옘병할 후라질놈들 말 더럽게 어렵네. 할미는 그냥 쉽게 깍두기를 예로 들어볼랑께.

  •  DB(데이터베이스): 김장독
  • 리소스: 깍두기
  • 서버: 종업원
  • 클라이언트: 깍두기 그릇

손님(유저)이 깍두기(서비스 이용을 위한 요소. ex: 유저가 프로필을 클릭했을 때 깍두기는 사진과 이름 등의 프로필 정보)를 더 달라고 한다.

그럼 깍두기를 김장독(DB)에서 꺼내 종업원(서버)이 그릇(웹, 안드로이드/아이폰 앱)에 담아 갔다 준다. 쉽제잉?

 

2. Stateless Server: 서버가 상태를 저장하지 않는다 *세션은 예외.

-> 쉽게 말허믄 유저가 새 정보를 올렸을 때 이게 즉각 나타나면 스테이트 서버여. 그게 아니라 새로고침 해야 나타나는 방식이면 그게 Stateless 인거여. 페이스북이 Stateless지. 즉각 반영이 안 되제. 그래서 서버에 폴링(자료 요청 무한 루프)을 걸어놓고 새 자료가 올라왔는지 10초마다 확인하는 방식이다 이 말이여.

 

3. Cache: 캐쉬를 사용해 클라이언트에서 한번 리소스를 받아오면 다시 요청하지 않는다.

-> 사용자한테 리소스(자료나 정보)를 받을 때는 Blocking, Sending, Waiting, Receiving 이 4가지 절차를 거쳐야 혀. 근데 클라이언트(사용자 컴퓨터)에 캐쉬가 저장돼있음 Blocking만 빼고 다 건너뛰어도 돼. 한마디로 사이트 접속 속도가 흐벌라게 빨라진다, 이말이제.

 

4. Uniform Interface: POST, DELETE, PUT, GET 등 8가지를 주요 메소드로 활용한다.

-> 메소드는 일단 ‘명령어’라고 이해하고 있으면 돼. 할미가 난제 더 설명해주꾸. OPTION, HEAD 이런 얘들은 잘 안 쓰니까 비개발자는 알 필요 전혀 읎어. POST, DELETE, PUT, GET 얘네 4개만 알면 돼.

각각의 단어 의미가 기능이여. 근디 여서 post랑 put은 비슷해보이제? post는 서버에서, put은 클라이언트에서 처리한다는 차이가 있다고만 알면 돼. 더 쉽게 얘기하면, put은 ‘수정’ 기능이라고 생각하고 있으면 큰 문제 읎어. 더 자세한 내용은 다음 시간에 알려줄랑께 인자 닥치고 국밥이나 처묵어라잉.

 

5. Layer System: 프록시 서버, 로드밸런서 등을 활용한다.

-> 정보를 처리하는 프로세스가 있다는 의미여. 비개발자는 몰라도 되는 부분이니까 아 그런갑다 하고 넘어가자.

 

6. Code on Demand: js, css 파일 등을 서버로부터 받아 클라이언트에서 코드 자체로서 그대로 사용한다.

-> 쉽게 말해 서버로부터 코딩 된 파일을 클라이언트가 받아서 그대로 읽는다는겨.

 

이 6가지 아키텍쳐 스타일을 하나로 합쳐서 필딩이란 양반이 REST라고 이름 붙인 거여. 그래서 이 6가지 스타일을 반영해 만든 서비스를 restFul 서비스라고 말하는 겨. 물론 restFul이 아닌 SOAP 등의 다른 방식도 많고잉. 말했자녀 뻥축구, 영혼의 10백, 전봇대 축구 다 있다고. 인자 다 묵었제? 다 처묵었으면 싸게 꺼져부러잉.

 

다 처먹었으면 꺼져 이눔아

Standard

댓글 남기기