‘남극의 눈물’ 다큐멘터리를 보면서 남극도 울고 나도 울었다.

 

남극 황제펭귄의 번식 과정을 보고 '개고생이란 이런 것이구나'를 느꼈다. 

 

황제펭귄은 남극 한겨울에 알을 낳는 유일한 동물이다.

 

그때 천적들이 추위를 피해 남극을 떠나기 때문이다.

 

근데 알고 보니 동료 펭귄 놈들이 죄다 천적이다.

 

남의 알을 뺐는 것도 모자라 새끼도 납치해 간다.

 

사는 게 참 하드코어다.

 

 

 

암컷이 알을 낳으면 수컷이 2개월 간 알을 품는다.

 

그런데 알을 품는 자세가 거의 고문이다.

 

발등 위에 알을 올리고 아랫뱃살로 덮어서 알을 감싼다.

 

알이 빠져나갈까봐 물 먹을 때 빼고 거의 움직이지 못한다.

 

알이 영하 50도 추위에 20초만 노출되어도 얼어버리기 때문이다.

 

수컷은 알을 품는 4개월 동안 몸무게가 절반으로 줄어든다.

 

그러는 동안 암컷은 20km를 걸어서 해안가로 간다.

 

먹이를 구하기 위해 수심 500미터까지 잠수한다.

 

몸속에 저장한 음식물을 토해서 알에서 깨어난 새끼에게 먹인다.

 

내가 황제펭귄으로 태어났다면 하느님의 자식이 되거나 속세를 떠난 스님 펭귄이 됐지 싶다.

 

 

 

진짜 놀라운 장면은 황제펭귄이 자식을 다 키우고 나서 보인 행동이다.

 

생후 6개월이면 새끼 펭귄은 솜털이 빠지면서 어엿한 성체의 모습을 갖춘다.

 

그러면 부모 펭귄은 새끼를 두고 영영 떠나버린다.

 

죽을 고생하면서 새끼를 키웠지만 미련 따위 없다.

 

새끼도 부모에게 울며 불며 매달리지 않는다.

 

묵묵히 제 살길을 찾아간다.

 

이렇게 자식은 부모로부터 완전히 독립한 개체로 살아간다.

 

그것이 자연의 기본 룰이다.

 

 

 

인간은 부모로부터 독립하는 시기가 다른 동물보다 늦다.

 

우선 생물학적 이유가 있다.

 

'고등 사회동물'일수록 양육기간이 길다고 한다.

 

망아지는 태어나자 마자 걷기 시작하고 만 3살이면 번식이 가능하다.

 

인간은 생후 1년 후에나 걷고 신체가 성숙하기까지 15년이 걸린다.

 

교육과 놀이를 통해 사회적 능력을 습득하기까지 오랜 보살핌이 필요하다. 

 

 

 

특이하게 인간은 신체가 성숙해도 바로 독립하지 않는다.

 

문명이 발전하면서 사회화 과정은 더욱 길고 복잡해졌기 때문이다.

 

내가 7만년 전 구석기 인으로 태어났다면, 돌도끼 다루기, 사냥감 몰아가기, 별자리 보고 지리 파악하기, 등을 배웠을 것이다.

 

그 당시 부족 사회로부터 배우는 지식과 기술은 생존에 관한 문제로 비교적 한정되었다.

 

현대 사회는 훨씬 복잡하기에 살아가는데 필요한 지식의 종류도 다양하고 배우는 기간도 길어졌다.

 

대다수의 현대인이 만 19세까지 교육을 받으며 대개 그때까지 독립은 늦어진다.

 

여기까지는 문화 인류학의 영역이다.

 

 

 

그런데 나의 독립 과정은 생물학과 문화인류학으로 설명하기 어렵다.

 

나는 15세에 신체가 성숙했고, 대학 교육까지 마쳤지만 부모의 둥지에서 벗어나지 못했다.

 

 

 

독립에는 두 가지 조건이 필요하다.

 

하나는 '정신적 독립'이고, 다른 하나는 '경제적 독립'이다.

 

 

 

정신적 독립은 사춘기 때  8할 이뤘다고 생각한다.

 

나는 '혼자 차도를 건너지 말라'는 엄마의 말을 초등학교 3학년때까지 따를 정도로 순한 아이였다.

 

하지만 중2병이 창궐하면서 인생의 크고 작은 일을 스스로 결정하기 시작했다.

 

그 무렵 내 모친의 요구사항은 딱 세 가지였다.

 

첫째, 오토바이 타지 말 것.

 

둘째, 담배 피우지 말 것.

 

셋째, 술 마시지 말 것.

 

금기 3종 세트 박살 내기는 중학교 때 시작해서 고등학교 때 완성했다.

 

독립보다는 반항에 가깝긴 해도, 이 것이 '정신적 독립의 상징'이라고 생각한다.

 

적어도 그 이후부터 인생의 중요한 결정에서 부모의 동의나 허락을 구하진 않았다.

 

 

 

하지만 반쪽짜리 독립이었다.

 

20대 후반까지 경제적으로 자립하지 못했다.

 

20대 나의 직업은 '소비자'였다.

 

생산하지 못하고 소비에 최선을 다했다.

 

필요한 재원은 부모로부터 각출했다.

 

학비, 생활비, 유흥비, 품위 유지비, 해외문화 체험비, 취업 준비 자금, 등 그 종류도 다양했다.

 

부모의 둥지에서 벗어나 스스로 삶을 개척한다고 믿었다.

 

하지만 내가 누리는 삶의 기반이 부모로부터 나오는 한 주체적인 삶이라고 할 수 없다.

 

 

 

스물아홉, 첫 직장을 얻고 독립을 이뤘다고 생각했다.

 

하지만 그때부터 고난의 시작됐다.

 

직장에서는 날것의 문제가 쏟아졌고, 스스로 해결할 힘이 부족했다.

 

현실의 무게에 눌려 무기력한 날이 계속됐다.

 

직장 생활이 힘든 이유가 궁금했고 '늦은 독립'에서 근본 원인을 찾았다.

 

'생존 능력이 부족한 나'를 처음으로 인정했다.

 

나는 안목 있는 소비자였지만, 형편없는 생산자였다.

 

오랜 기간 부모의 울타리 안에서 현실의 어려움을 외면하고 산 대가였다.

 

 

 

독립에는 골든 타임이 존재한다는 사실을 깨달았다.

 

시기를 놓칠수록 회복이 어렵다.

 

나의 독립은 10년이 늦었고 복구에는 최소 20년 이상 걸릴 것을 각오했다.

 

독립을 위한 노력 중 하나가 '빚청산'이다.

 

20대 때 부모에게 지원받은 총액을 계산하여 매달 분할 납부 중이다.

 

주변에서는 부모님 용돈을 주는 나더러 효자라고 한다.

 

물론 빚을 모두 청산하면 입금이 중단될 것을 모르고 하는 말이다.

 

 

 

홀로 남겨진 솜털 뽀송 새끼 펭귄이

 

첫 사냥을 위해 차가운 남극 바다로 뛰어들 때,

 

나도 모르게 눈물이 났다.

 

첫 사냥에는 아마도 실패할 것이다.

 

운 나쁘면 범고래를 만나 목숨을 잃을지도 모른다.

 

그래도 새끼 펭귄은 묵묵히 어려움을 마주하며 살아갈 것이다. 

 

 

 

나는 황제 펭귄처럼 살기로 했다.

 

부모의 품에서 벗어나 홀로 바다에 뛰어드는 용기를 배우고 싶다.

 

먹이를 구하기 위해 고군분투하는 노력을 본받고 싶다.

 

이것이 나의 독립 선언이며 독립 운동이다.

 

개발자라는 업의 무게를 잘 알지 못하는 개발자 지망생이 쓴 글입니다.
귀엽게 봐주시면 감사하겠습니다!


1. 개발자에 도전하기 전까지(~2022)


1년 전, 퇴사하다

2021년 12월 15일 회사를 그만뒀다.
사무 행정직으로 3년간 일한 곳이었다.
회사 이름을 특정하진 않겠다.
‘직원들의 부동산 투기로 사회적 지탄을 받는 건설 공기업’ 정도로 설명하겠다.

퇴사 소식을 주변에 알렸다.
‘너는 (투기로) 얼마를 해 먹었길래 안정적인 직장을 때려치우냐?’라고 물었다. (사실 해먹은 건 없다)
퇴사한 이유야 백만 가지지만 있어 보이는 이유 하나만 꼽자면,
‘살면서 딱 한 번은 원하는 일을 해보고 싶었기 때문’이다.

상기 본인은 퇴직을 허락받았지만, 퇴직 사유로 '살면서 딱 한 번은 원하는 일을 해보고 싶어요'라고 적진 못했다.


남들 따라 대학가고, 남들 보기 좋은 직장에 취업하며 살았다.
내가 좋아하는 일, 잘하는 일을 고민하고 진로를 선택한 건 아니다.

대개 공기업은 평생 다닐 생각으로 입사하는 곳이다.
30대 중반에 접어든 나이, 조직 분위기에 서서히 젖어드는 입사 3년차,
지금이 회사를 그만 둘 수 있는 마지막 시점이라고 생각했다.

자유를 갈망하며 따수운 잠자리를 뒤로하고 동물원 우리를 탈출하는 비장한 원숭이의 눈빛으로
사직서를 제출했다.

그래서, 하고 싶은 일이 뭔데?

눈빛은 비장했지만, 막상 하고 싶은 일이 뭔지 몰랐다.
객관식 인생을 살았는데, 갑자기 서술형 문제가 잘 풀리겠나
나를 이렇게 만든 사회가 원망스러웠다. (지 잘못은 생각 안하고)
이놈의 세상 어쩌다 이렇게 됐나 싶어서 (뜬금없이) 현대사 책을 꺼내 읽었다.

한 문구가 내 마음을 후벼 팠다.
‘지난 100년의 역사를 이끌어 온 것은 IT기술이다’’
컴맹 + IT 문외한인 나인데 이상하리만치 이 문장이 와닿았다.
시간도 많겠다 IT 역사를 파봤다. (역사와 기원을 살피는 건 문과의 습성이다)

요약하자면,
약 100년 전 세계 대전을 겪으며 컴퓨터의 원형이 탄생했고,
트랜지스터와 반도체 기술의 발전으로 약 50년 전 개인용 컴퓨터(PC)가 등장했으며,
30년 전 인터넷 혁명으로 전 세계가 연결됐고,
15년 전 스마트폰이 탄생하며 인터넷이 손안으로 들어왔다.

내 할아버지는 일제강점기 때 만주로 이주하셨는데,
고향인 거제도로 편지를 보내는 데 한 달 넘게 걸렸다고 한다.
지금은 스마트폰을 쥐고 손가락 몇 번만 움직이면 전 세계로 소식을 전할 수 있다.

300만 년 인류의 역사에서 이런 일이 가능해진 시점이 15년밖에 안 됐다고 생각하니
IT 기술이 가져온 변화가 실로 엄청나게 느껴졌다.
나도 변화의 물결에 동참하고 싶었다.
이렇게 (망상에 가까운) 이상을 품고 프로그래머가 되기로 결심했다.

만주에서 찍은 것으로 추정(?)되는 할아버지, 할머니 사진. 해방 후 한국으로 돌아오지 않으셨으면 지금 내 국적은 중화인민공화국일 것이다.

 

2. 인공지능 국비지원 교육(1 ~ 6月)


준비 없이 뛰어든 대가

인공지능이 대세라는 (안일한) 생각으로 국비지원 교육을 알아봤다.
코딩테스트 없이 면접만 보고 참여할 수 있는 교육 과정을 찾았다.
교육이 퇴사일로부터 보름 후에 시작되어 시기도 딱 맞았다.
인공지능 이론을 날치기로 외워서 면접을 치렀다.
면접에 합격하자 역시 나는 될 놈이라는 자신감이 밀려왔다. (알고 보니 정원 미달)

6개월 오프라인 과정이었는데, 코로나 때문에 온라인으로 진행했다.
처음으로 프로그래밍 언어(파이썬)를 배웠다.
교육은 인공지능 프로그램을 만드는 과제를 자율적으로 수행하는 방식이었다.
마지막 한 달 동안 팀을 꾸려 프로젝트를 실시했다.

프로그래밍 기초가 제로인 상황에서 인공지능을 공부하려니 어려운 점이 많았다.
걷지도 못하는 내가 축구를 하러 매일 운동장에 끌려 나가는 심정이었다.

프로젝트로 진행했던 이더리움 가격 추세 예측 모델. 머신러닝 모델님은 파란색 박스를 매도 시그널로 빨간색 박스를 매수 시그널로 예측하셨다. 프로젝트에 성공했다면 난 지금 돈방석에 앉아있을 것이다.

그래도 적성에는 맞았다

학창 시절 수학을 못했다.
논리적 사고에는 재능이 없다고 생각하며 살았다.
프로그래밍을 배우면서,
코드를 논리적이고 체계적으로 쌓아가는 과정에 장시간 몰입하는 내 모습을 발견했다.
‘나에게 이과 머리가 있을지도 모른다’는 생각에 사춘기 소년처럼 설렜다.

세상의 변화를 읽는 사람이 되겠다는 포부로 프로그래머에 도전했지만,
이 업이 적성에 맞지 않으면 무슨 소용이겠나.
실무를 경험해보진 않았지만 적어도 프로그래머가 되기 위한 공부는 아주 재밌었다.
34년 인생, 이제야 재밌는 공부를 찾았다는 사실만으로 본전은 뽑았다고 생각했다.

인공지능으로 당장 밥벌이를 할 수 있을까?

하지만 인공지능 분야를 커리어의 출발점으로 삼지 않기로 했다.
AI 전문 인력은 주로 석박사나 경력직 위주로 소수만 채용한다.
그에 반해 AI를 이해하는 개발자(주로 백엔드 엔지니어)에 대한 인력 수요는 상대적으로 많은 편이다.

퇴직금이 증발하고 있는 상황에서 AI를 딥하게 공부할만한 여유가 없었다.
상대적으로 학력이나 경력에 대한 허들이 낮은 백엔드 개발자로 커리어를 시작하기로 했다.

백엔드 직무는 머신러닝 직무와 접점이 많은 만큼,
백엔드 엔지니어링 역량과 인공지능 분야에 대한 이해도를 동시에 갖춘다면
언젠가는 머신러닝 엔지니어로 커리어를 전환할 기회가 찾아올 것으로 판단했다.

 

3. 네카라쿠배 도전과 실패(7~9)


스타트업 vs 대기업

보수적인 문화를 가진 대규모 조직(전 직장)에 대한 피로감 때문에 스타트업에 취업하려고 했다.
문제는 스타트업도 실력과 경력이 골고루 부족한 나를 받아주지 않는다는 점이었다.
대기업 공채의 허점을 노리는 쪽으로 전략을 바꿨다.

채용 인원이 많을수록 개개인에 대한 검증은 느슨해질 수밖에 없다.
코딩테스트를 턱걸이로 통과하고 세 치의 혀로 면접을 뚫어낸다면,
문 닫고 입사하는 최후의 1인이 될 수 있을 것으로 판단했다.

코딩테스트와 CS 준비

인공지능 교육을 수료하고 본격적으로 취업 준비에 나섰다.
보통 대기업은 코딩테스트로 지원자를 필터링한 다음 기술 면접(+포트폴리오)을 통해 최종 지원자를 선발했다.

시중 서점에 나와 있는 알고리즘 문제 책을 샀다. 100여 개의 코딩 문제를 3번 정도 풀어봤다.
또 운영체제, 네트워크, 데이터베이스 책 중 가장 쉬운 것을 골라 읽고 면접에 나올만한 내용을 정리했다.

9월부터 진행된 대기업 공채에 지원했지만 코딩테스트에서 모두 탈락했다.
넘치는 욕심에 비해 실력이 너무 부족하다는 사실을 깨달았다.

백엔드 모르는 백엔드 지원자?

코딩테스트에 탈락한 사실보다 내 마음을 더 불편하게 한 것은 따로 있었다.
백엔드에 지원했지만 백엔드에 관해 아는 것이 1그램도 없다는 사실이었다.
취업 후기를 찾아보니 아무리 짧아도 3개월 정도는 웹 개발 교육에 투자한 취업자가 대부분이었다.

아는 거라곤 인공지능 토막 지식 + 단기 속성 코딩테스트 실력밖에 없는 내가,
운 좋게 취업한들 살벌한 실무 현장에서 살아남을 수 있을까?
지나친 욕심 탓에 스스로를 스트레스 구덩이로 밀어 넣는 것 같아 겁시 났다.

 

4. 우아한 테크코스 지원(10 ~ 12月)


우테코가 뭔데?

시무룩한 표정으로 교육 플랫폼(인프런)에서 백엔드 관련 온라인 강의를 뒤적이고 있었다.
우연히 인프런에서 주관하는 개발 세미나(인프콘) 영상을 발견했다.
공부에 집중도 안 되겠다 한정수 님의 발표 영상을 봤다.

한정수 님은 1년 차 개발자일 때 가장 후회되는 일 중 하나가 ‘우아한 테크 캠프에 참석하지 않은 것’이라고 했다.
개발자로 이미 취업했는데 취업 교육 프로그램에 참석하지 않은 일이 후회된다고?
우아한 테크 캠프가 뭐길래 그러나 싶었다.

1년의 시간을 투자할 가치가 있나?

알고 보니 우아한 형제들(’배달의 민족’을 만든 회사다)에서 운영하는 개발자 교육 프로그램이었다.
때마침 우아한 테크 캠프와 유사하지만, 교육 기간이 10개월로 더 긴 ‘우아한 테크코스’ 교육생을 모집하고 있었다.
선발 과정을 포함한다면 교육 수료까지 1년 넘게 걸리는 셈이었다.

교육 수료 후 취업 특전이 주어지지만, 취업이 보장되는 구조는 아니었다.
퇴직금은 이미 사라졌고, 남은 것은 마이너스 통장 하나.
앞으로 1년간, 손가락 빨면서 학업에 열중하는 선택이 과연 옳을지 고민스러웠다.

실력보단 가능성을 봅니다

합격시켜준 적도 없는데 합격 후를 고민하는 나 자신이 미웠다. (생각이 많은 편)
일단 지원해놓고 고민하기로 했다.

그런데, 자기소개서 항목을 보다가 깜짝 놀랐다.
1년간 공기업 취업을 준비하면서 못해도 50개 넘는 자소설을 써온 나였다.
지금껏 접해온 어느 자소서보다 실력이 아닌 가능성을 높게 평가한다는 느낌이 들었다.
(교육생 채용이니 그럴 수도 있다고 생각하지만, 어느 조직이든 실력 있는 사람 위주로 뽑아서 운영하는 일이 가장 쉽고 효과적인 방식일 것이다)

34년 인생, 가능성 하나로 버텨온 나였다. (쌓아 온 실력이랄 게 없다는 뜻)
목욕을 재개하고 일주일간 경건한 마음으로 자소서 문항 하나하나를 채워갔다.
살면서 작성한 자기소개서 중 MSG가 가장 적게 들어간(들어가긴 했다), 나름 진솔한 글이었지 싶다.

테스트를 한 달 동안 본다고?

자기소개서만큼이나 선발 과정도 독특했다.
매주 과제를 주고 혼자 힘으로 미션을 해결하는 과정을 한 달 동안 반복하는 ‘프리코스’를 거쳐야 했다.
우테코도 나를 검증하지만, 나 역시 우테코를 검증할 수 있는, 일종의 상견례 과정이었다.

매주 밤잠을 설쳐가며 코딩하는 지원자도 많이 봤다.
나는 사람이란 모름지기 태양주기 리듬에 따라 살아야 한다고 믿는다. (밤샐 체력이 없다는 뜻)
대신 깨어있는 시간을 최대한 활용하여 꾸준히 하는 데 중점을 뒀다.
계산해보니 4주 동안 237시간 정도를 과제에 투자했다.
과제를 하지 않는 시간에도 최대한 과제를 생각하려고 애썼다. (천재들이 이렇게 한다길래 한번 따라 해봤다)

문제가 풀리지 않아 일주일간 끙끙대다가 해답의 실마리를 찾았을 때, 그 희열은 엄청났다.
때로는 지나친 희열이 현실 감각을 마비시켜서
‘내 코드는 빌 게이츠 할아버지가 봐도 손댈 곳이 없다’라는 착각에 빠지곤 했다.
하지만, 과제 제출 후 다른 사람의 코드를 참고하며 피드백을 진행할 때면,
내 코드가 너무 부끄러워 모니터를 마주할 수 없었다.
더 이상 히키코모리처럼 혼자 공부하는 것이 아니라, 우테코에서 동료와 함께 공부해야 할 이유를 찾았다.

이렇게 4주를 보내니 1년을 투자해도 좋다는 확신이 섰다.

프리코스 과제 중 문제가 풀리지 않을 때마다 산책하며 영감을 받았던 공원. 마치 아티스트가 된 기분이라 좋았다.

최종 코딩 테스트

운 좋게 1차 합격을 해서 최종 코딩테스트를 보러 고속버스를 타고 서울로 갔다.

서울행 고속 버스 안에서 찍은 눈오는 풍경. 승객이 추위에 떨까봐 고속버스 기사님은 4시간 동안 히터를 풀가동했다. 서울에 도착하니 탈진한 찐빵이 된 기분이었다. (이래서 사람은 서울로 가야하나 보다)


사실 마음을 비우고 최종 테스트에 임했다.
작년도 문제를 두고 모의 테스트를 해봤는데 시간 내에 요구 기능을 구현하지 못했기 때문이다.
그래서 코드 품질은 제쳐두고 최소한의 기능 구현에만 집중하기로 전략을 짰다.
그런데 작년 보다 문제 난이도가 쉬워서 최소한의 기능 구현에는 성공했다.

최종 코딩테스트 답안으로 제출했던 코드의 일부. 제출 직후에 클래스명 스펠링 Coach(코치)를 Couch(소파)로 잘못 입력한 사실을 깨닫고 눈물을 머금었다.(참고로 호주에서 1년 간 어학연수를 마쳤다)


우테코에 최종 합격했다.
간절이 원하니 운도 따라주나보다.

 

5. 한가지 목표 (2023~)


‘2023년 목표는 우테코에서 교육받으며 개발자로서 기초 체력을 기른 다음 네카라쿠배에 합격하는 것이다’
라고 썼다가 다 지웠다.
그럴듯해 보이는 목표라 또 속을뻔 했다.

살다 보니 눈앞에 늘 미션(대입, 취업, 등)이 놓여 있었고, 성과를 내고자 달려왔다.
하지만 ‘왜 미션을 완수해야 하는지’ 깊이 있게 고민하지 못했다.
내가 좋아하는 일이 무엇인지 탐색하기보다는 어떻게 대기업에 입사할지부터 고민했다.

공기업에 취업했을 때는 인생의 큰 허들을 넘었다고 생각했다.
하지만 내가 선택한 트랙 자체가 잘못됐다는 사실을 깨달았을 때,
걷잡을 수 없는 우울함이 밀려왔다.

주어진 일에서 의미를 찾으려 노력도 해봤고 나약한 자신을 채찍질해봤지만 별 효과가 없었다.
그렇게 반쯤 자포자기하는 마음으로,
지금껏 걸어온 길을 되돌아가기로 했다.
그런 면에서 2022년은 사춘기 때 못다 한 자아 탐구의 시기였다. (과정이 부실하면 뒤늦게 문제가 생기기 마련이다)

2023년 목표를 하나만 꼽자면 ‘나 자신을 잘 살피는 일’이다.
좀 더 구체적으로 말하자면 ‘내가 정말 개발이라는 업을 좋아하는지 탐구하기’이다.

우테코에서 10개월간 교육을 받을 예정인 만큼 개발자가 되기 위한 트랙에 본격적으로 올라서게 된다.
'개발자로 실력을 쌓아 취업하는 일'과 '내가 왜 개발을 하고 있는지 고민하는 일'을 동시에 진행했으면 한다.
(컴퓨터 공학에서는 이걸 ‘멀티스레드 방식’이라고 한단다)

목표로 한 길이 정말 내 길이라면 다행이고, 아니라도 빨리 되돌아올 수 있지 않을까.
부디 내 길이길 바란다.

‘하루 3분 네트워크 교실(아미노 에이지, 김현주, 영진닷컴)’ 참조

1) Echo

  • (ICMP 타입) ICMP의 타입3이 ‘에코 응답(Echo Reply) 타입 8이 ‘에코 요청(Echo Request)’에 해당함
  • (의미) 송신 측에서 에코 요청을 보내면, 수신 측에서 에코 응답을 보냄으로써 데이터 그램이 수신처에 도달했는지 여부를 확인
  • (ping) 임의의 수신처에 에코 요청을 보내는 소프트웨어로 네트워크 관리에 필수적으로 쓰임
    • (기능)
      • 송수신처 간 데이터 송수신 가능 여부확인
      • 요청과 응답에 소요되는 시간을 측정함으로써 네트워크 상태를 확인

2) Time Exceeded

  • (ICMP 타입) ICMP 타입11이 ‘시간 초과에 의한 패킷 파기(Time Exceeded)’ 메시지에 해당함
  • (의미) 시간 초과(TTL)로 패킷을 파기했음통지하는 메시지
  • (traceroute) 타입11을 사용한 네트워크 체크용 소프트웨어로 수신처에 도달하기까지 경유한 라우터를 알려줌
    • (작동방식)
      • 데이터그램이 라우터를 경유할 때마다 시간 초과(TTL)는 1씩 감소함
      • TTL이 0이 될 경우 데이터 그램은 파기됨
      • 데이터 그램을 파기한 라우터는 송신처에 ‘Time Exceeded’를 보냄
    • (기능) 수신처까지 경유하는 라우터를 조사함
      • ‘TTL=1’에서 수신처에 패킷을 보내면 첫 번째 라우터에서 Time Exceeded를 보냄
      • ‘TTL=2’에서 수신처에 패킷을 보내면 두 번째 라우터에서 Time Exceeded를 보냄
      • 이후 TTL을 1씩 늘려가면서 수신처까지 패킷을 전달
      • 수신처까지 데이터가 도달해 응답 패킷을 수신하면, 지금까지 Time Exceeded를 보낸 라우터를 표시하여 경유 라우터를 나타냄

‘하루 3분 네트워크 교실(아미노 에이지, 김현주, 영진닷컴)’ 참조

1) ICMP

  • (용어) ‘Internet Control Message Protocol’의 약자
  • (의미)인터넷 제어 메시지 프로토콜’ 또는 ‘에러 보고 프로토콜’을 의미
    • A호스트에서 B호스트로 IP 패킷을 송신하고 싶지만, 라우터가 호스트B의 네트워크 경로를 모른다고 할 때,
    • 라우터는 수신처에 도달할 수 없다는 의미를 나타내는 송신 불능 메시지를 호스트A에 통지함
  • (타입과 코드)
    • 타입은 ICMP의 종류, 코드는 그 상세 내역을 의미

2) ICMP의 종류

  • (ICMP의 종류) 크게 2종류의 메시지가 존재
    • (Query 메시지) 상태를 조사하기 위해 사용되는 메시지
    • (Error 메시지) 에러를 통지하기 위한 메시지

3) TTL

  • (용어)Time To Live’의 약자로 ’생존 시간’을 의미
  • (의미) IP 데이터그램TTL라우터경유할 때마다 1씩 감소하고, 0이 되면 해당 데이터그램은 파기
  • (운영체제 별 TTL)
    • (Linux) 64개
    • (Windows) 128개

‘하루 3분 네트워크 교실(아미노 에이지, 김현주, 영진닷컴)’ 참조

1) 메트릭

  • (메트릭) 최적의 경로를 결정할 때 적용하는 판단 기준
    • (종류) 라우터의 수, 회선의 속도, 정체 상태, 에러 발생률
    • (적용 방법) 판단 기준에 따라 계산한 값 중 최소 값을 갖는 경로를 최적 경로로 판단

2) RIP

  • (용어) IGP(Interior Gateway Protocol)의 한 종류로 Routing Information Protocol의 약자임
  • (의미) 거리방향을 의미하는 ‘디스턴스 벡터’에 따른 작동 방식을 가지는 라우팅 프로토콜
  • (라우팅 업데이트) 라우터가 다른 라우터와 교환하는 정보를 라우팅 업데이트(Routing update)라고 함
    • (교환 정보) 라우팅 테이블 그 자체를 교환함
    • (교환 주기) 30초에 1회
    • (경로 파기) 업데이트를 6번 수신받지 않을 경우 장애가 발생한 것으로 간주하여 해당 라우터를 사용하는 경로를 파기
    • (메트릭) RIP는 메트릭으로 홉 수(라우터 개수)를 사용함
  • (RIP의 동작)
    1) 자신(라우터)에 접속된 네트워크를 포함하여 인접한 라우터 정보가 RIP에 의해 라우팅 테이블에 추가됨
    2) 다음 업데이트에서 이전에 업데이트한 정보를 라우터 간에 송수신함으로써 컨버전스(모든 라우터가 동일한 경로 정보를 가지는 상태)에 도달함
    3) 홉 수(메트릭)가 더 짧은 경로가 등장할 경우, 라우팅 테이블에 최적의 경로가 업데이트됨

‘하루 3분 네트워크 교실(아미노 에이지, 김현주, 영진닷컴)’ 참조

1) 자율화 시스템

  • (라우팅 프로토콜) 라우터는 동적 라우팅을 실현할 라우팅 프로토콜(Routing Protocol)을 사용하는데, 라우팅 프로토콜은 근접해 있는 라우터 간네트워크 정보교환하기 위한 규칙을 말함
  • (자율화 시스템) 인터넷에는 많은 네트워크가 존재하기 때문에 하나의 단체에 의해 관리되는 네트워크를 집합체로 통합한 것을 자율화 시스템(Autonomous System)이라고 함.

2) 라우팅 프로토콜의 종류

  • (라우팅 프로토콜의 종류) 라우팅 프로토콜은 AS(자율화 시스템) 간 라우팅AS 내부 라우팅으로 나뉨
    • (EGP) AS 간 라우팅을 EGP(Exterior Gateway Protocol)이라고 부름
    • (IGP) AS 내부 라우팅을 IGP(Interior Gateway Protocol)이라고 부름

3) 라우팅 프로토콜의 역할

  • (라우팅 프로토콜 역할) 경로 정보언제, 어떻게, 누구에게 어떤 정보를 전송할지 결정
    • 1) 라우터는 자신이 접하고 있는 네트워크테이블유지관리함
    • 2) 라우팅 프로토콜을 사용하여 네트워크 정보를 서로 교환
    • 3) 교환한 정보를 사용하여 라우팅 테이블갱신

‘하루 3분 네트워크 교실(아미노 에이지, 김현주, 영진닷컴)’ 참조

1) 라우팅 테이블

  • (역할) 수신처 네트워크 주소라우팅 테이블을 비교하여 데이터 전송 경로를 찾아냄
  • (구성) 수신처 네트워크, 다음 네트워크, 메트릭, 인터페이스
  • (수신처 불명) 라우팅 테이블에 수신처 네트워크가 없을 경우, 수신처 불명으로 데이터그램 파기

2) 라우팅 종류

  • (최적경로 탐색) 수신처 네트워크까지의 최적경로를 찾아내기 위해서 다른 네트워크 경로를 모두 파악한 후 라우팅 테이블 작성
  • (정적 라우팅) 관리자수동으로 경로를 입력하는 방식으로, 우회로 변경이 필요할 경우 해당 작업을 수동으로 수행하여야 한다는 단점이 있다.
  • (동적 라우팅) 라우터자동으로 정보교환해서 경로를 파악하여 라우팅 테이블을 작성하는 방식
    • (장점)
      • 자동으로 라우팅을 수행하면서 장애를 제거할 수 있음
    • (단점)
      • 1) 라우터 간 정보 교환으로 인한 회선 전송 압박으로 데이터 전송에 사용되는 분량이 줄어듬
      • 2) 최적 경로 계산이 필요한 만큼 라우터의 처리 능력이 요구됨
      • 3) 모두 라우터가 동일한 정보를 가져야 하는 컨버전스(Convergence)가 요구됨

‘하루 3분 네트워크 교실(아미노 에이지, 김현주, 영진닷컴)’ 참조

1) 브로드캐스트 도메인

  • (브로드캐스트 도메인) 브로드캐스트가 도달하는 범위
  • (충돌 도메인과 브로드캐스트 도메인) 충돌 도메인은 스위치가 구분하고, 브로드캐스트 도메인은 라우터가 구분

2) ARP와 라우터

  • (ARP와 라우터) ARP를 통해 수신처 MAC를 파악하지만, ARP는 브로드캐스트이고 라우터는 브로드캐스트를 중지시키기 때문에, APR가 라우터를 넘어서 전송되지 않는 문제점 발생

3) 디폴트 게이트웨이

  • (디폴트 게이트웨이) 컴퓨터가 다음에 데이터를 보낼 라우터를 의미함
  • (디폴트 게이트웨이와 ARP)
    • (디폴트 게이트웨이 MAC 주소 입수) 다른 네트워크에 데이터를 보낼 때, 호스트는 디폴트 게이트웨이로 ARP를 수행하여 디폴트 게이트 웨이의 MAC 주소를 입수
    • (패킷 전송) 호스트는 수신처 MAC 주소를 디폴트 게이트웨이로, 수신처 IP 주소를 수신처 호스트로 설정하여 패킷을 전송함
    • (수신처 호스트 ARP) 디폴트 게이트웨이는 라우팅을 하고, 수신처(또는 중계 라우터)에 ARP를 수행
    • (수신처 MAC 주소 입수) ARP에 의해 입수한 MAC 주소를 수신처 MAC 주소로, 자신의 MAC 주소를 송신처 MAC 주소로 갱신하여 패킷 송신

+ Recent posts