사람 사는 세상도 모든 일이 결국

대화라는 형태로 진행되듯,

우리가 컴퓨터를 켜고 하는 모든 일도 사실은

대부분 두 프로그램 간 대화로 진행되는 것이랍니다.

 

예를 들어, 우리가 어떤 웹 사이트를 방문할 때 사실은

내 PC에서는 브라우저가,

내가 방문하고자 하는 곳에서는 웹 서버가

서로 일정한 약속으로 대화하는 것이랍니다.

 

파일을 주고 받을 때 보통들 쓰는 FTP(File Transfer Protocol)도

내 PC에서는 FTP 클라이언트 프로그램이,

저 쪽 상대편에서는 FTP 서버 프로그램이 각각 실행,

서로 일정한 약속으로 대화하는 것이지요.

 

인터넷 메일 역시

한 쪽에서는 클라이언트가,

다른 한 쪽에서는 서버 프로그램이 대화하는 것입니다.

 

이제는 IT 기술이

'웹'이라는 이름으로 '스마트'하게

일반인들의 생활 속으로 쑤욱 들어오고 있는 요즈음

바로 이 생각, 곧

 

'두 프로그램, 두 소프트웨어 모듈이 서로 대화를 한다'

 

이 생각을 염두에 두시면

많은 것을 차근차근 이해하시는데 큰 도움이 됩니다. ^^

 

'IT 상식의 기초' 카테고리의 다른 글

MAC(Media Access Control) address  (0) 2013.08.17
프로그램들이 대화를 해요?  (0) 2013.08.12
포트(Port) 번호  (0) 2013.08.09
Posted by bygracetistory

댓글을 달아 주세요

'IT 상식의 기초' 이야기를 시작합니다.

 

이제 웬만한 IT 기술은 생활의 일부가 된 지금,

무심코 지나가는, 혹은 늘 접하지만 설명하기는 뭣한

그런 용어, 기술, 개념들을 이해 위주 이야기로 최대한 쉽게 다루어 보고자 합니다.

 

오늘은 그 첫번 째로, '포트' 이야기입니다.

'포트번호'라고도 하지요.

 

인터넷 하시다 보면 이런 주소 가끔 보시죠.

 

http://2237.synology.me:5000/video

 

주소 http://2237.synology.me 뒤에 따라오는 숫자 '5000'이 바로 '포트 번호'입니다.

 

의외로 이게 뭔지 아시는 분들이 별로 없으세요.

뭐... 몰라도 생활에 큰 지장은 없지만 ^^

원리와 배경을 알고 사용하시면, '응용' 및 '문제해결'의 능력이 생기지 않겠습니까? ^^

 

여러분,

공항, 철도플랫폼, 버스터미널, 항구 등의 공통점이 뭘까요?

여러가지가 있겠지만 여기서는 일단 '게이트들이 있다'는 점을 들고 싶습니다.

 

"손님, 무엇을 도와드릴까요?"

"아가씨, 여기가 부산역 맞죠?"

"네, 그렇습니다."

"강원도 태백을 가야 하는데 어디로 가야 하나요?"

"네, 손님, 표 좀 확인하겠습니다... 네, 감사합니다. 잠시 기다리시면 안내방송 나오는데요, 방송 들으시고 저쪽 3번 출구로 나가시면 됩니다. 즐거운 여행 되시기 바랍니다."

"네, 감사합니다."

 

철도역마다 행선지 따라 출구가 여럿이듯,

공항마다 행선지 따라 게이트가 여럿이듯,

컴퓨터들도 실행 중인 어플리케이션이 여럿이어서 어떤 어플리케이션을 말하는 것인지를 구별하는 방법이 필요하다는 것.

 

"팀장님, 여기는 2237 NAS, 주소 http://2237.synology.me 를 따라 도착했어요."

"그래, 수고했다. 얼른 일 시작하자."

"네, 그런데, 팀장님. 여기서 어떤 애랑 일 시작하죠? 여기 와 보니까 손님을 기다리는 애들이 한둘이 아니에요. 파일서버, 웹서버, FTP 서버, 메일서버 등 무지 많아요."

"야, 너, 갈 때 주소 끝에 무슨 번호 없었어?"

"잠깐만요... 네, 있어요. 5000이요."

"그게 바로 너랑 일할 어플리케이션 포트번호야. 그 번호가 바로 걔를 가리키는 거야."

"아... 네, 알겠습니다. 가서 걔를 깨우고, 준비되면 연락드릴께요."

 

우리가 주소 http://2237.synology.me:5000/video 로 브라우징할 때,

대략, NAS와 브라우저 간 대화가 위와 같으리라는...^^

 

이때 잘 알려진(well-known) 어플리케이션들은 포트번호가 정해져 있습니다.

웹은 80, FTP는 20/21, Telnet은 23 등...

물론 TCP냐, UDP냐 이런 구분도 수반하지만... ^^

 

'잘 알려진(well-known)'의 의미는 이런 것입니다.

우리가 예를 들어, 주소가 www.abc.com인 웹 사이트를 찾아가기 위해서는

브라우저 주소창에 http://www.abc.com 이라고 입력 후 엔터합니다.

그러면 잠시 후, 그 웹 사이트가 뜹니다.

이때 주소 뒤에 포트번호 80을 붙이지 않았는데도 말이죠.

이것은, 내 브라우저가 이해하기를,

'아, 주소 뒤에 특별한 포트번호가 없는 걸로 봐서 이 사이트가 운영되는 웹 서버는 잘 알려진 포트번호 80을 그냥 쓰는가 보다.'

하고는, 자기가 알아서 주소 뒤에 숫자 80을 붙여서

해당 사이트 웹 서버에게 서비스를 요청한 것입니다.

 

자, 이렇게 해서 내 브라우저의 서비스 요청을 저 쪽 웹 서버는

포트번호 80을 통해 받아들여

브라우저-TO-웹서버 간 연결이 만들어졌습니다.

 

그러면, 반대로 웹서버-TO-브라우저는 포트번호 몇 번을 통해 이루어질까요?

이때는 특별히 '잘 알려진' 번호가 따로 있는 게 아니고

그때그때 웹 서버와 브라우저가 서로 협상하여 정하는 것이랍니다.

 

첫 이야기, '포트번호' 이야기는 이 정도로 하지요.

혹시 더 좋은 예, 더 쉬운 설명이 생각나면 이 내용을 업데이트하겠습니다.

 

'IT 상식의 기초' 카테고리의 다른 글

MAC(Media Access Control) address  (0) 2013.08.17
프로그램들이 대화를 해요?  (0) 2013.08.12
포트(Port) 번호  (0) 2013.08.09
Posted by bygracetistory

댓글을 달아 주세요

변경하의 NAS 이야기, 여섯 번째로 다룰 내용은 Naming Convention입니다.

이번 강의(?)도 잠시 쉬어가는 내용입니다.
날이 무더워 그런지 좀...^^

이 내용은, 특별히, NAS 특화된 이야기는 아닙니다.
NAS에 한정짓기보다는 교회에서 이런 디지털 컨텐츠 전반을 다루다 보면 바로 접하게 되는,
파일 이름짓기 문제에 관한, 저 개인의 결론입니다.

이렇게 운을 떼니 좀 거창한 듯...^^

Naming Convention이라...
‘이름 명명 규칙’ 정도로 이해할까요?
어떤 시스템 혹은 DB이든 이름규칙은 의외로 꽤나 중요합니다.
시간이 흘러 쌓이게 될 수백, 수천, 수만 건의 자료들 중 원하는 자료를 바로 검색할 수 있어야 하기 때문인데요,
교회도 마찬가지여서 처음부터 이런 틀, 정책을 잘 세워 집을 세워나가야 합니다.
몇 년 지나 ‘이게 아닌가벼...’ 하고 손대기 시작하면... 아이고...
이렇게 일러도 꼭 직접 온몸으로 겪고 나서야 배우는 게 우리 인생이긴 합니다만...

바로 본론 들어갑니다.

저는 오랜 세월 수많은 시행착오 끝에 다음과 같은 이름규칙을 정했습니다.

예를 들어,

‘2010-05-21-D6-천일예배-0294-신30’
‘2011-01-27-D5-새벽-단7,9-14’
‘2011-06-07-D3-문상-목장명-아무개(아무개)부친(아무개, 향78)喪-서천서해병원4번분향실-요11‘

약간 다양하긴 한데...
공통적으로 년-월-일이 나오고 ‘D’로 시작되는 표기가 뒤따릅니다.
그리고나서 특정 그룹핑 내지는 검색어들이 이어집니다.

내용 길어질까 봐 두 가지만 말씀드리면,

첫째, ‘D6’ ← 이건 무슨 표기일까요?

하루는, 유대인의 관점으로 성경을 살피고 있는 열린다성경 시리즈 중 '광야이야기'에서 다음과 같은 내용을 보게 되었습니다.

유대인들은 '요일'을 말할 때 절대로 월요일(Monday), 화요일(Tuesday) 수요일(Wednesday)과 같은 표현을 쓰지 않는다. 이것은 우상숭배와 관련된 표현이기 때문이다. 영어의 본고장인 영국 사람들의 주류는 앵글로 색슨족인데, 이들이 섬기던 다양 한 '신'들의 이름이 영어의 요일 이름에 모두 반영되어 있다. 예를 들어, 오딘(Wednesday), 토르(Thursday), 프레야(Friday) 등의 단어로 바뀐 것이다. 유대인들은 요일을 나타내는 단어로 첫째 날(욤-리숀, 일요일), 둘째 날(욤-쉐니, 월요일), 셋째 날(욤-쉴리쉬, 화요일), 넷째 날(욤-리비이, 수요일) 등의 표현을 쓴다. 이는 창세기 1장에 나오는 7일간의 천지 창조와 관련된 성서적 표현이다.

교회생활에서는 요일표시가 의외로 중요하여 고민하던 차 나름 기준이 생겼는데요,
그래서 Day의 ‘D’, 그리고 첫째 날의 ‘1’을 결합하는 방식으로 다음과 같이 규칙을 정한 것입니다.

D1 : 첫째 날, 주일
D2 : 둘째 날, 월요일
D3 : 셋째 날, 화요일
D4 : 넷째 날, 수요일
D5 : 다섯째 날, 목요일
D6 : 여섯째 날, 금요일
D7 : 일곱째 날, 토요일

그래서 오늘을 이렇게 표기하면 ‘2013-07-29-D2’가 되겠군요. ^^

둘째, 그룹핑은 어떻게 하는 게 답일까?

답은, 다른 사람 혹은 내가 시간이 흐른 후 지금 이 자료를 쉽게 검색할 수 있으려면 어떤 검색어를 넣어 이름을 지어야 하겠는가 스스로 질문하여 보면 나옵니다.

어디 이 이름짓기뿐이겠습니까?

거의 모든 일이 사용자 입장, 상대방 입장에서 헤아리면 답이 나오지요.
그게 인생 아니던가요?

하나님 입장
성도 입장
아내 입장
자식 입장
등등...

위 예로 든 몇 개를 보면 ‘새벽’, ‘문상’, ‘목장명’, ‘아무개’ 등의 검색어 및 성경본문도 있습니다.

한 해가 지나며

올해 내가 새벽설교를 몇 번 했나?
올해 내가 문상설교를 몇 번 했나?
올해 내가 아무개 목장을 몇 번 갔나?
올해 내가 이 본문으로 설교를 했었나?

이런 질문에 바로 답을 찾기 위해 이름짓기를 구성한 것입니다.

앗! 벌써 분량이...

아무쪼록 지나가는 이야기 한 토막이지만
도움되셨기를 바라며...

그럼 다음에 또 만나요. ^^

 

2013-07-29-D2, 제 페이스북(http://www.facebook.com/bygrace.byun) 게시글

 

Posted by bygracetistory

댓글을 달아 주세요