no image
[AWS SAA] Solutions Architect Associate 합격 후기
개인 사정으로 미뤄두던 Associate 티켓을 사용해 시험을 봤습니다. 다행히 커트라인을 넘겨 합격을 했는데, 이 시험에 대해 이야기를 해보려고 합니다. 준비물 자신을 증명할 수 있는 신분증, 신용카드 신분증에는 주민등록증, 면허증, 여권 등이 있고, 신용카드는 영문 이름을 확인하기 위함입니다. 이외의 준비물은 필요 없었습니다. 소지품이 많다면 사물함을 따로 제공해주고 있으니 거기에 보관하셔도 됩니다. 시험 준비팁 아키텍트를 위한 시험인 만큼 어떤 설계가 더 효과적인지 아는 것이 중요합니다. AWS 자격증 관련 다른 글에서 설명했던 기본적인 기술들에 대해 잘 숙지한 후 덤프 문제를 풀어보는 것이 많은 도움이 될 것 같습니다. 제가 특히 도움을 많이 받았던 책은 '우에노 후미아키', '코바야시 쿄혜이' ..
2023.12.18
no image
[면접 대비 기초] 11. 리눅스 디렉토리 개념과 루트 디렉토리
리눅스에서는 윈도우나 맥의 '폴더'라는 개념을 '디렉토리'라고 합니다. 리눅스를 지속적으로 다루다 보면 파일의 수도 많아질 것이고, 이에 따라 디렉토리 관리도 필연적으로 필요해집니다. 이번 포스팅에서는 디렉토리, 파일 관리에 들어가기 전 리눅스 OS를 설치하면 기본적으로 존재하는 디렉토리에 대해 알아보겠습니다. 루트 디렉토리란 리눅스 OS에서 제일 상위에 있는 디렉토리를 뜻합니다. 이 루트 디렉토리에서 현재 위치한 디렉토리에 존재하는 파일과 디렉토리들을 출력하난 'ls' 명령어를 사용하면 다음과 같은 디렉토리들이 존재합니다. 이 구성 요소들 중 중요한 디렉토리들에 대해 알아보겠습니다. bin 사용자 및 관리자가 사용하는 명령어의 실행 파일이 배치돼 있는 디렉토리입니다. 이 디렉토리에는 시스템과 관련된 주..
2023.12.11
no image
[면접 대비 기초] 10. 리눅스 명령줄(Commend-line) 기본 조작 방법
리눅스를 잘 다루기 위해서는 기본적인 조작 방법과 명령어를 숙지해야할 필요가 있습니다. 리눅스에 로그인하게 되면 명령어를 입력할 수 있는 행이 주어지는데 이를 명령줄(커맨드 라인)이라고 합니다. 기본적인 조작 방법이라 다른 리눅스와 크게 다르지는 않겠으나 이 포스팅에서 사용된 리눅스는 'Rocky Linux'입니다. 아래의 gif는 먼저 언급한 순서부터 차례대로 실행했습니다. 커서 이동 방법 좌: ← or Ctrl + b 우: → or Ctrl + f 맨 앞으로 이동: Ctrl + a 맨 뒤로 이동: Ctrl + e 한 단어씩 앞으로 이동: Alt + b 한 단어씩 뒤로 이동: Alt + f 문자 삭제 커서 앞 한 글자 지우기: BackSpace or Ctrl + h 커서 뒤 한 글자 지우기: Delet..
2023.12.10
no image
[면접 대비 기초] 09. 프롬프트와 셸(Shell)의 종류
프롬프트 리눅스에 처음 로그인하게 된다면 다음과 같은 문자열이 보일 겁니다. 이를 프롬프트라고 하며 현재 어떤 사용자로 로그인 돼있는지, 호스트 이름은 무엇인지, 지금 위치한 디렉토리를 알 수 있습니다. 또한 이 뒤의 기호로 슈퍼 사용자(root) 구분이 가능합니다. 이렇게 처음 로그인하면 드디어 명령어를 입력할 수 있는 상태가 됩니다. 로그인과 함께 등장하는 셸을 '로그인 셸'이라고 합니다. 쉽게 비유하자면 '웹 시작 페이지'라고 생각해도 좋을 것 같습니다. 리눅스에서 사용하는 sh 셸이나 bash 셸 등 여러 가지가 존재하지만, 시작 페이지를 지정하듯이 시작할 때 어떤 셸을 사용할지 지정할 수 있습니다. 이를 로그인을 하면 사용하게 되는 셸이라서 '로그인 셸'이라고 이름 붙인 것 같습니다. 현재 자신..
2023.12.09
no image
[면접 대비 기초] 08. 리눅스 셸과 커널
셸과 커널 이 개념을 다루기 전에 리눅스에서 명령어가 어떻게 실행이 되는지 알아보겠습니다. 간단하게 현재의 날짜와 시간을 출력하는 date 명령어를 실행했다고 가정해보겠습니다. 키보드로 date를 입력합니다. date 문자열을 받아들입니다. date 명령어를 찾습니다. 발견한 명령어를 실행합니다. 실행한 결과로 얻은 문자열을 화면에 표시합니다. 이 과정에서 명령어를 입력하는 부분이 "셸"입니다. 그리고 명령어가 입력된 후 해당하는 명령어를 찾아 실행 및 사용자 화면에 출력하는 부분을 "커널"이 담당합니다. 간단하게 이미지로 표현하면 다음과 같다고 볼 수 있습니다. 이처럼 커널을 셸이 감싸고 있는 모습 때문에 Shell(조개 껍질)이라는 이름이 붙었다고도 볼 수 있습니다. 이렇게 셸과 커널은 깊은 연관이 ..
2023.12.08
no image
[면접 대비 기초] 07. CIDR(Classless Inter-Domain Routing)
CIDR(Classless Inter-Domain Routing) 클래스로 IP를 구분했을 때 여러 회사들은 A 클래스를 할당받아 사용했습니다. 하지만 약 1600만개나 되는 IP 주소들을 효율적으로 사용하지 못했으며, 이렇게 부여된 IP는 다른 기관에서 사용하게 할 수도 없었습니다. 이렇게 낭비되는 것을 방지하기 위해 CIDR란 개념이 등장했습니다. 이렇게 네트워크 주소를 구분하기 위한 접두사를 서브넷 마스크(Subnet Mask)라고 합니다. 서브넷 마스크는 CIDR의 중요한 개념으로 IP처럼 32 비트의 크기를 가지고 있으며 2진수 0과 1로 이루어져 있으며 1은 네트워크 주소를, 0은 호스트 주소를 뜻합니다. 이를 우리가 보기 쉽게 10진수로 표현한 것입니다. 예를 들어 11111100이라는 서브..
2023.12.06
no image
[면접 대비 기초] 06. IP 클래스
이전 포스팅에서 IPv4는 네트워크 주소와 호스트 주소로 나뉜다고 설명드렸습니다. 이를 나누는 기준이 고정돼있지 않은 것은 호스트 IP 주소가 얼마나 필요한지에 따라 네트워크 크기를 다르게 할당하기 위함입니다. 이 개념을 클래스(Class)라고 합니다. 클래스(Class) A 클래스는 첫 번째 옥탯은 고정된 네트워크 주소를 갖고 있고 나머지 호스트 주소 번호는 자유롭게 설정이 가능합니다. B는 두 번째 옥탯까지 고정된 네트워크 주소를 갖고 있으며, C는 세 번째 옥탯까지 입니다. 이렇게 설정된 클래스는 다음과 같은 개수의 주소를 가질 수 있습니다. (이러한 구분을 서브넷 마스크로도 표현이 가능합니다. 이는 다음 포스팅에서 다뤄보도록 하겠습니다.) A 클래스: 약 1600만개 B 클래스: 약 6.5만개 C..
2023.12.05
IT 시작해보기 블로그 방문을 환영합니다.
안녕하세요! 23년 초부터 IT 업계로 전향해 공부를 시작했습니다. 새로운 분야에 대해 학습하다 보니 너무 어렵고, 이해가 안돼서 저처럼 이해가 힘드신 분들을 위해 쉽게 설명하는 블로그를 작성하고 있습니다. 주로 제가 지금 배우고 있는 내용, 필요한 내용을 공부하며 글을 올리고 있습니다. 공부 시작을 클라우드 엔지니어 관련 지식으로 시작하다보니 현재 CS, AWS, Kubernetes처럼 인프라에 대한 기본 지식에 대해 다루고 있습니다. 이와 함께 준비 중인 것으로 JAVA 기반 백엔드, 프레임워크, DBMS까지 추가로 다뤄보기 위해 준비중에 있습니다. 점차 방문객이 많아지는 만큼 쉽고, 좋은 정보를 제공할 수 있도록 노력하겠습니다. 혹시 궁금한 사항이 있거나, 글 내용에 문제가 있으면 바로 댓글로 남겨..
2023.12.05
no image
[면접 대비 기초] 05. IPv4와 IPv6 주소 체계
IPv4 우리가 인터넷 연결 관련한 문제를 접했을 때 IP에 대해 처음 접할 것입니다. 우리가 흔히 봤던 다음과 같은 설정에서 사용되는 IP는 IPv4 버전의 체계가 사용됩니다. IP는 32 비트인 IPv4와 128 비트인 IPv6로 나뉩니다. IPv4 주소를 표기할 때는 4개의 옥텟(Octet)이라고 불리는 8비트 단위로 나누고 각 옥텟은 "."으로 구분합니다. 이 때 v4의 IP 주소는 10진법으로 표기되므로 자리마다 0~255 값을 쓸 수 있습니다. 이러한 IPv4는 네트워크 주소와 호스트 주소로 나뉘게 됩니다. 하지만 이 둘을 구분하는 경계점이 고정돼 있지 않은 것이 특징입니다. IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당할 수 있는 클래스(Class)라는 개념..
2023.12.04
반응형

개인 사정으로 미뤄두던 Associate 티켓을 사용해 시험을 봤습니다. 다행히 커트라인을 넘겨 합격을 했는데, 이 시험에 대해 이야기를 해보려고 합니다.

 

준비물

  • 자신을 증명할 수 있는 신분증, 신용카드
    • 신분증에는 주민등록증, 면허증, 여권 등이 있고, 신용카드는 영문 이름을 확인하기 위함입니다.

 

이외의 준비물은 필요 없었습니다. 소지품이 많다면 사물함을 따로 제공해주고 있으니 거기에 보관하셔도 됩니다.

 

 

시험 준비팁

아키텍트를 위한 시험인 만큼 어떤 설계가 더 효과적인지 아는 것이 중요합니다. AWS 자격증 관련 다른 글에서 설명했던 기본적인 기술들에 대해 잘 숙지한 후 덤프 문제를 풀어보는 것이 많은 도움이 될 것 같습니다.

 

제가 특히 도움을 많이 받았던 책은 '우에노 후미아키', '코바야시 쿄혜이' 등을 포함한 4명이 집필해주신 <그림과 작동 원리로 쉽게 이해하는 AWS 구조와 서비스>입니다. 이 책은 AWS가 무엇인지부터 시작해 해당 서비스의 전체적인 서비스들에 대해 간단히 소개해주는 책입니다.

 

단순하게 덤프 문제를 반복해서 풀어도 시험에 합격하는 사람들이 많이 있긴 하지만, 내용을 이해하고 문제를 푸는 것이 종류가 500가지가 넘는 문제를 일일이 숙지하는 것 보다는 효율적이었다고 생각됩니다. 어쩌다보니 광고처럼 됐지만, 제공받은 것 없이 내돈내산으로 읽어보고 도움이 됐어서 이렇게 작성했습니다. 혹여 필요하시다면 아래 링크에서 구매할 수 있습니다.


* 해당 링크를 통해 상품을 구매하시게 되면 쿠팡으로부터 일정액의 수수료를 받아 블로그 운영에 도움이 됩니다.

그림과 작동 원리로 쉽게 이해하는 AWS 구조와 서비스:AWS의 전체 구조와 기술이 한눈에 들어오는 아마존 웹 서비스 핵심 가이드, 위키북스

 

 

시험 특징

시험은 시험장을 선택 후 직접 가서 보는 방식을 선택했고, 간단한 확인 절차와 함께 입장하게 됩니다. 총 65문제가 주어지지만, 이 중 점수에 포함되는 것은 단 50문제이고 나머지 15문제는 점수에 포함되지 않습니다. 하지만, 점수가 포함되는지, 아닌지는 알 수는 없습니다.

 

당시 진행했던 시험장에서는 신청한 시간이 되기 15분 전부터 입장이 가능했고, 총 140분(2시간 20분)이 주어졌지만, 40분만에 문제를 다 풀고 나올 수 있었습니다. 다른 시험은 보통 시험 즉시 결과가 나온다고 하는데 AWS 시험은 24시간 이내에 결과가 이메일로 온다고 내용이 출력되며 시험이 마무리됩니다. 저는 약 12시간 정도 뒤에 메일을 통해 시험 결과 메일과 벳지 획득을 축하한다는 메일이 도착했습니다. 또 시험을 보고 어느 부분이 취약한지도 알려주는 것이 특징이었습니다.

 

다만 주의해야할 것은 시험 장면이 모두 카메라에 찍히고 있으므로 왠만하면 별 문제가 없겠지만, 부정행위가 일어나지 않도록 하는게 중요할 것 같습니다. (예를 들어 핸드폰 진동/무음 모드가 풀려있다면 곤란...) 혹시 더 궁금한 점이 있다면 댓글 달아주시면 답변해드리겠습니다!

 

+ 다음 웹사이트는 영어로 되어 있지만 AWS SAA 문제를 풀어볼 수 있으니 이용해보는 것을 권장드립니다! 서비스의 종류와 문제 유형을 파악하는 것 2가지만 해도 충분히 합격이 가능합니다!
AWS SAA C03

 

ExamTopics - Biggest Actual IT Exams Database - Validation

 

www.examtopics.com

 

반응형

'자격증 > AWS SAA' 카테고리의 다른 글

[AWS SAA] End. 복구 전략  (0) 2023.10.15
[AWS SAA] 61. AWS Backup(백업)  (0) 2023.10.14
[AWS SAA] 60. 재해 복구를 위한 AWS 서비스 및 기능  (2) 2023.10.13
[AWS SAA] 59. 재해 복구  (0) 2023.10.12
[AWS SAA] 58. AWS Outposts  (0) 2023.10.11
반응형

리눅스에서는 윈도우나 맥의 '폴더'라는 개념을 '디렉토리'라고 합니다. 리눅스를 지속적으로 다루다 보면 파일의 수도 많아질 것이고, 이에 따라 디렉토리 관리도 필연적으로 필요해집니다. 이번 포스팅에서는 디렉토리, 파일 관리에 들어가기 전 리눅스 OS를 설치하면 기본적으로 존재하는 디렉토리에 대해 알아보겠습니다.

 

루트 디렉토리란 리눅스 OS에서 제일 상위에 있는 디렉토리를 뜻합니다. 이 루트 디렉토리에서 현재 위치한 디렉토리에 존재하는 파일과 디렉토리들을 출력하난 'ls' 명령어를 사용하면 다음과 같은 디렉토리들이 존재합니다. 이 구성 요소들 중 중요한 디렉토리들에 대해 알아보겠습니다.

 

  1. bin
    사용자 및 관리자가 사용하는 명령어의 실행 파일이 배치돼 있는 디렉토리입니다. 이 디렉토리에는 시스템과 관련된 주요 명령어들이 자리하고 있습니다.

  2. sbin
    bin과 비슷하게 실행 파일을 포함하는 디렉토리입니다. 하지만 다른 점은 관리자용 명령어가  배치돼 있다는 점입니다.
  3. dev
    디바이스 파일이 배치돼 있는 디렉토리입니다. 디바이스 파일이란 디스크나 키보드 등 하드웨어를 다루기 위한 파일을 뜻합니다.

  4. etc
    리눅스에서 돌아가는 다양한 애플리케이션들과 리눅스 자체 설정 파일이 패치되는 디렉토리입니다.

  5. home
    사용자별로 할당되는 홈 디렉토리가 배치돼 있습니다. 예를 들어 사용자 이름이 user라면 home 디렉토리 안에 user라는 디렉토리가 부여됩니다. 사용자는 홈 디렉토리 안에서 자유롭게 파일이나 디렉토리를 작성하고 작업을 진행할 수 있습니다.

  6. tmp
    임시 파일들이 들어 있는 디렉토리입니다. 애플리케이션 실행 중 임시로 작업 결과를 파일로 보존할 때 보통 사용됩니다. 리눅스 배포판 중에는 이 디렉토리 안의 파일을 일정 주기마다 삭제하도록 설정돼 있기도 함으로 중요 파일은 여기에 보관하면 안 됩니다.
  7. usr
    설치한 애플리케이션의 실행 파일, 문서, 라이브러리 등이 이 디렉토리에 배치됩니다. 이 아래에는 bin,  sbin, etc 등이 포함되 있어 루트 디렉토리와 비슷한 모습을 하고 있습니다.

  8. var
    변화하는(variable) 데이터를 저장하기 위한 디렉토리입니다. 애플리케이션 실행 중 만들어진 데이터나 로그, 메일 등이 저장됩니다.
반응형
반응형

리눅스를 잘 다루기 위해서는 기본적인 조작 방법과 명령어를 숙지해야할 필요가 있습니다. 리눅스에 로그인하게 되면 명령어를 입력할 수 있는 행이 주어지는데 이를 명령줄(커맨드 라인)이라고 합니다. 기본적인 조작 방법이라 다른 리눅스와 크게 다르지는 않겠으나 이 포스팅에서 사용된 리눅스는 'Rocky Linux'입니다. 아래의 gif는 먼저 언급한 순서부터 차례대로 실행했습니다.

 

커서 이동 방법

  • 좌: ← or Ctrl + b
  • 우: → or Ctrl + f

 

  • 맨 앞으로 이동: Ctrl + a
  • 맨 뒤로 이동: Ctrl + e

 

  • 한 단어씩 앞으로 이동: Alt + b
  • 한 단어씩 뒤로 이동: Alt + f

 

문자 삭제

  • 커서 앞 한 글자 지우기: BackSpace or Ctrl + h

 

  • 커서 뒤 한 글자 지우기: Delete or Ctrl + d

 

  • 커서 앞 한 단어씩 지우기: Ctrl + w

 

커서 기준 앞, 뒤 삭제하기와 붙여넣기

  • 커서 뒤쪽 삭제하기: Ctrl + k

 

  • 커서 앞쪽 삭제하기: Ctrl + u

 

  • 삭제된 내용 복구하기: Ctrl + y

삭제된 모든 내용이 복구가 되는 것이 아닌 가장 최근 삭제한 내용이 복구되는 것입니다.

 

 

지속 실행 중인 명령어 정지: Ctrl + C

 

화면 정리: Ctrl + l or Clear 명령어 입력

Ctrl + l (영문 L) 입력
clear 명령어 입력

 

자동 완성

  1. 명령어 자동 완성: 명령어 입력 중 Tab


  2. 완성 가능한 경우가 여럿일 경우 해당 내용 출력: Tab 2번 입력

명령어 이외에도 cd 명령어로 이동할 디렉토리 명 등 선택할 수 있는 사항들을 보여줍니다. 이를 통해 오타를 상당 수 줄일 수 있습니다.

 

사용했던 명령어 확인

  • 명령어 리스트 출력: history 명령어 입력

 

  • 한 단계씩 출력
    1. 이전에 사용한 명령어: ↑ or Ctrl + p
    2. 다음에 사용한 명령어: ↓ or Ctrl + n

 

  • 사용했던 명령어 검색: Ctrl + r

프롬프트가 변경되며 검색 모드로 들어가는 것을 확인할 수 있습니다. 입력을 진행하면 사용했던 명령어를 바탕으로 찾기 시작합니다.

 

반응형
반응형

프롬프트

리눅스에 처음 로그인하게 된다면 다음과 같은 문자열이 보일 겁니다. 이를 프롬프트라고 하며 현재 어떤 사용자로 로그인 돼있는지, 호스트 이름은 무엇인지, 지금 위치한 디렉토리를 알 수 있습니다. 또한 이 뒤의 기호로 슈퍼 사용자(root) 구분이 가능합니다.

RedHat Linux와 유사한 Rocky Linux를 사용했습니다.
root로 로그인하면 맨 뒤 기호가 다른 것을 볼 수 있습니다.

 

 

이렇게 처음 로그인하면 드디어 명령어를 입력할 수 있는 상태가 됩니다. 로그인과 함께 등장하는 셸을 '로그인 셸'이라고 합니다. 쉽게 비유하자면 '웹 시작 페이지'라고 생각해도 좋을 것 같습니다. 리눅스에서 사용하는 sh 셸이나 bash 셸 등 여러 가지가 존재하지만, 시작 페이지를 지정하듯이 시작할 때 어떤 셸을 사용할지 지정할 수 있습니다. 이를 로그인을 하면 사용하게 되는 셸이라서 '로그인 셸'이라고 이름 붙인 것 같습니다.

 

현재 자신이 사용하고 있는 셸을 확인하고자 한다면 'echo $shell'을 입력하면 됩니다.

 

이렇게 직접 입력하고 그 결과를 확인하는 방법을 대화형(인터렉티브) 방식이라고 합니다. 반면 실행하고 싶은 명령어들을 미리 파일에 기록하고 그 파일을 셸에 넘겨주는 방식으로 수행하는 방식도 있는데, 이 파일을 셸 스크립트라고 합니다.

 

셸의 종류

  1.  sh
    AT&T 벨 연구소의 스티븐 본(Steven Bourne)이 만들어 본 셸이라고도 불리는 sh 셸은 상당히 오래전에 개발된 셸입니다. 이는 리눅스뿐만 아니라 다른 여러 운영 체제에서 사용할 수 있지만, 앞서 언급한 것처럼 오래된 셸이라 기능이 적기 때문에 현재는 로그인 셸로는 잘 사용되지 않습니다.

  2. csh
    이 셸도 sh처럼 오래됐으며 C셸이라고도 불립니다. sh보다 대화형 조작이 편리해 인기가 많았지만, 문법이 sh와는 크게 달라 스크립트 작성에는 적합히자 않습니다. 현재는 더 개선된 tcsh가 등장해 잘 사용되지 않습니다.

  3. bash
    sh를 바탕으로 기능이 여럿 추가된 셸입니다. sh와 호환성이 있기 때문에 sh를 대체해 많이 사용되고 있습니다. 또한, 대화형 조작에 필요한 기능을 두루 갖추고 있기 때문에 많은 리눅스에서 기본 로그인 셸로 사용되며 스크립트 작성에도 많이 사용되고 있습니다.

  4. zsh
    bash와 tcsh의 기능에 더해 더욱 다양한 기능이 추가된 셸입니다. 이를 익히기에는 시간이 걸려 초보자들에게는 적합하지 않지만, 다양한 기능이 존재하는 만큼 숙지한다면 작업 효율을 크게 늘릴 수 있습니다.
반응형
반응형

셸과 커널

이 개념을 다루기 전에 리눅스에서 명령어가 어떻게 실행이 되는지 알아보겠습니다. 간단하게 현재의 날짜와 시간을 출력하는 date 명령어를 실행했다고 가정해보겠습니다.

 

  1. 키보드로 date를 입력합니다.
  2. date 문자열을 받아들입니다.
  3. date 명령어를 찾습니다.
  4. 발견한 명령어를 실행합니다.
  5. 실행한 결과로 얻은 문자열을 화면에 표시합니다.

 

이 과정에서 명령어를 입력하는 부분이 "셸"입니다. 그리고 명령어가 입력된 후 해당하는 명령어를 찾아 실행 및 사용자 화면에 출력하는 부분을 "커널"이 담당합니다. 간단하게 이미지로 표현하면 다음과 같다고 볼 수 있습니다.

 

 

 

이처럼 커널을 셸이 감싸고 있는 모습 때문에 Shell(조개 껍질)이라는 이름이 붙었다고도 볼 수 있습니다. 이렇게 셸과 커널은 깊은 연관이 있지만 둘로 나눠 사용하는 이유는 개발 용이성과 사용 편의성 때문입니다. 커널을 굳이 바꾸지 않아도 다른 셸을 탑재해 테스트를 신속하게 진행해볼 수 있고, 역할이 나뉘는 만큼 운영체제가 단순화됨으로 효율성 또한 올라갑니다.

반응형
반응형

CIDR(Classless Inter-Domain Routing)

클래스로 IP를 구분했을 때 여러 회사들은 A 클래스를 할당받아 사용했습니다. 하지만 약 1600만개나 되는 IP 주소들을 효율적으로 사용하지 못했으며, 이렇게 부여된 IP는 다른 기관에서 사용하게 할 수도 없었습니다. 이렇게 낭비되는 것을 방지하기 위해 CIDR란 개념이 등장했습니다.

 

 

이렇게 네트워크 주소를 구분하기 위한 접두사를 서브넷 마스크(Subnet Mask)라고 합니다. 서브넷 마스크는 CIDR의 중요한 개념으로 IP처럼 32 비트의 크기를 가지고 있으며 2진수 0과 1로 이루어져 있으며 1은 네트워크 주소를, 0은 호스트 주소를 뜻합니다. 이를 우리가 보기 쉽게 10진수로 표현한 것입니다.

 

 

예를 들어 11111100이라는 서브넷 마스크가 존재한다면 해당 IP 옥탯의 네트워크 주소와 호스트 주소는 다음과 같이 구분됩니다.

 

 

이 방법으로 첫 번째 IP를 해석해보자면 첫 번째에서 세 번째 옥탯은 전부 네트워크 주소이고 마지막 네 번째 옥탯만이 호스트 주소인 것을 알 수 있습니다. 따라서 이는 아래와 같이 구분지을 수 있습니다.

 

 

서브넷 마스크를 지정해줄 때 규칙은 서브넷 마스크 옥탯의 첫 자리를 1로 시작해 1부분이 연속된 자릿수를 표현해줘야 한다는 것입니다. 예를 들자면 아래와 같습니다.

 

 

첫 번째 IP 예시에서는 간단하게 0과 255로 이루어져 해당 옥탯이 전부 네트워크 IP이거나 호스트 IP 였습니다. 그렇다면 다른 숫자는 어떨까요? 우선 옥탯에는 어떤 숫자가 들어갈 수 있는지 정리해보겠습니다.

 

 

한개의 옥탯을 기준으로 봤을 때 IP 주소는 0~255까지 총 256개의 값을 가질 수 있습니다. 이 256개를 서브넷 마스크 2^(1의 개수)만큼 쪼개서 사용한다고 생각하면 편할 것 같습니다.  즉, 아래와 같이 표현됩니다.

 

 

이렇게 나뉘기 때문에 서브넷 마스크 옥탯이 0 이었을 경우 0~255까지 범위를 가질 수 있었고, 옥탯이 255일 경우 1개의 값으로 고정되었던 것입니다. 그렇다면 옥탯이 128일 경우는 어떨까요?

 

 

총 128개의 IP를 갖게 되는데, 시작하는 지점을 알 수가 없습니다. 이를 표현하기 위한 것이 네트워크 ID 입니다. 네트워크 ID는 네트워크의 제일 첫 번째 IP를 지정하는 규칙이 있습니다. 따라서 네트워크 ID가 100인 옥탯에 서브넷 마스크가 128이라면 100~227까지의 호스트 IP를 가질 수 있는 것입니다. 이러한 이유로 첫 번째 IP는 사용하지 않고 남겨둬야 합니다.

 

이로써 클래스로 구분했을 때 발생했던 IP 부족 문제를 조금 더 효율적으로 분리할 수 있게 됐습니다. 하지만 IP에 서브넷 마스크에 숙지해야할 숫자가 너무  많습니다. 그런데 서브넷은 규칙을 가지고 있다고 언급했습니다. 바로 1이 연속해야한다는 특징입니다. 때문에 간단하게 1의 개수로도 이를 표현할 수가 있었습니다. 이를 CIDR라고 합니다. 즉, 처음의 예시는 아래와 같이 표현할 수 있습니다.

 

 

 

이렇게 IPv4에 대한 기본적인 지식들에 대해 알아봤습니다. 마무리하기 전에 네트워크에서 기본적으로 예약되는 부분은 크게 2가지가 있습니다. 바로 바로 위에서 언급한 네트워크 ID와 브로드캐스트 IP입니다. 이는 각각 맨 첫 번째와 맨 마지막 번째 IP를 예약하게 됨으로 IP의 범위를 지정해 사용할 때 이를 염두해두고 서브넷 마스크를 지정해야 합니다. 브로드캐스트에 대해서는 다음에 다뤄보도록 하겠습니다.

반응형
반응형

이전 포스팅에서 IPv4는 네트워크 주소와 호스트 주소로 나뉜다고 설명드렸습니다. 이를 나누는 기준이 고정돼있지 않은 것은 호스트 IP 주소가 얼마나 필요한지에 따라 네트워크 크기를 다르게 할당하기 위함입니다. 이 개념을 클래스(Class)라고 합니다.

 

클래스(Class)

 

 

 

A 클래스는 첫 번째 옥탯은 고정된 네트워크 주소를 갖고 있고 나머지 호스트 주소 번호는 자유롭게 설정이 가능합니다. B는 두 번째 옥탯까지 고정된 네트워크 주소를 갖고 있으며, C는 세 번째 옥탯까지 입니다. 이렇게 설정된 클래스는 다음과 같은 개수의 주소를 가질 수 있습니다. (이러한 구분을 서브넷 마스크로도 표현이 가능합니다. 이는 다음 포스팅에서 다뤄보도록 하겠습니다.)

 

  • A 클래스: 약 1600만개
  • B 클래스: 약 6.5만개
  • C 클래스: 약 250개

 

클래스 구분

 

 

A 클래스는 맨 앞 옥텟 주소가 0~127 범위입니다. 즉, 2진수로 풀었을 때 맨 앞 자리가 0인 주소가 A 클래스입니다. 하지만 0은 네트워크 ID로 사용되고, 127은 자신을 의미하는 루프백(Loopback) 주소로 사용되므로 제외됩니다. 때문에 실제로 사용가능한 주소는 1.0.0.0 ~ 126.255.255.255 입니다.

 

 

 

B와 C 클래스도 이처럼 나타낼 수 있습니다. B 클래스는 첫 옥탯을 이진수로 나타냈을 때 10 000000 ~ 10 111111까지이며 이는 128~191까지를 나타냅니다. C 클래스는 110 00000 ~ 110 11111로 192~223까지 입니다.

 

이렇게 나눠진 클래스는 첫 옥탯만을 확인해도 클래스를 구분할 수 있습니다.

 

클래스풀, 클래스리스

이렇게 구분된 클래스 기반 IP 주소 체계를 클래스풀(Classful)이라고 부릅니다. IP 주소 체계를 처음 만들었을 때는 클래스 개념을 도입한 것이 확장성이 높고 주소 낭비가 적은 좋은 선택이었습니다. 하지만 인터넷이 상용화되면서 인터넷에 연결되는 호스트 숫자가 폭발적으로 증가헀습니다. 기존 클래스풀 기반 주소 체계는 이를 감당하기 힘들어지기 시작했습니다.

 

뿐만 아니라 A 클래스를 할당 받은 여러 회사에서 실제로 이 클래스의 IP 주소(약 1600만개)를 효율 적으로 사용하지 못하고 낭비 중이라는 사실이 드러났습니다. 그리고 이렇게 낭비되고 있는 주소를 다른 기관이 사용하도록 할 수도 없었습니다. 이러한 문제를 해결하기 위해 클래스 개념 자체를 버린 클래스리스(Classless) 주소 체계가 등장했습니다. 이를 CIDR(Classless Inter-Domain Routing) 기반 주소 체계입니다. 이외에도 NAT와 사설 IP를 함께 사용하는 방법, IPv6 사용하는 방법이 등장했습니다. 이에 따라 자연스럽게 클래스풀 주소 체계는 현재 사용하지 않게 됐습니다.

 

클래스리스 방법에 대해서는 다음 포스팅에서 하나씩 알아보도록 하겠습니다.

반응형
반응형

안녕하세요! 23년 초부터 IT 업계로 전향해 공부를 시작했습니다. 새로운 분야에 대해 학습하다 보니 너무 어렵고, 이해가 안돼서 저처럼 이해가 힘드신 분들을 위해 쉽게 설명하는 블로그를 작성하고 있습니다. 주로 제가 지금 배우고 있는 내용, 필요한 내용을 공부하며 글을 올리고 있습니다.

 

공부 시작을 클라우드 엔지니어 관련 지식으로 시작하다보니 현재 CS, AWS, Kubernetes처럼 인프라에 대한 기본 지식에 대해 다루고 있습니다. 이와 함께 준비 중인 것으로 JAVA 기반 백엔드, 프레임워크, DBMS까지 추가로 다뤄보기 위해 준비중에 있습니다.

 

점차 방문객이 많아지는 만큼 쉽고, 좋은 정보를 제공할 수 있도록 노력하겠습니다. 혹시 궁금한 사항이 있거나, 글 내용에 문제가 있으면 바로 댓글로 남겨주세요! 최대한 빨리 피드백 드리도록 하겠습니다.

 

그냥 지나칠 수 있는 이러한 글조차 봐주셔서 감사합니다. 늘 행복하세요 ♥

반응형
반응형

IPv4

우리가 인터넷 연결 관련한 문제를 접했을 때 IP에 대해 처음 접할 것입니다. 우리가 흔히 봤던 다음과 같은 설정에서 사용되는 IP는 IPv4 버전의 체계가 사용됩니다.

 

IP는 32 비트인 IPv4와 128 비트인 IPv6로 나뉩니다. IPv4 주소를 표기할 때는 4개의 옥텟(Octet)이라고 불리는 8비트 단위로 나누고 각 옥텟은 "."으로 구분합니다. 이 때 v4의 IP 주소는 10진법으로 표기되므로 자리마다 0~255 값을 쓸 수 있습니다.

 

 

이러한 IPv4는 네트워크 주소와 호스트 주소로 나뉘게 됩니다. 하지만 이 둘을 구분하는 경계점이 고정돼 있지 않은 것이 특징입니다. IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당할 수 있는 클래스(Class)라는 개념을 도입하게 됐습니다. 이는 다음 포스팅에서 알아보겠습니다.

  • 네트워크 주소: 호스트들을 모은 네트워크를 지칭하는 주소로 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고 합니다.
  • 호스트 주소: 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소입니다.

 

IPv6

IPv6는 32 비트 주소 체계를 갖고 있는 IPv4의 주소 고갈 문제를 해결하기 위해 개발됐습니다. 128 비트 체계인 IPv6는 32 비트 체계의 IPv4보다 약 340경 배나 더 많은 주소를 제공할 수 있게 됐습니다.

 

IPv6의 주소는 16 비트를 16진수로 표현해 8자리로 나타냅니다. 하지만 대부분 0의 숫자를 갖게 되므로, 이를 축약해 '0000'을 '0' 하나로 표현하거나 연속되는 0 그룹을 ':' 만을 남겨 표시하기도 합니다. 때문에 다음 IPv6는 모두 같은 주소를 나타내게 됩니다.

 

 

IPv6는 점점 상용화되고 있지만 간단하게 여기까지 알아보고 IPv4를 집중해서 포스팅하겠습니다.

반응형