반응형

딥러닝을 공부하다 보면 반드시 마주치는 개념 중 하나가 바로 "활성화 함수(Activation Function)"입니다.
입력값에 가중치를 곱하고, 편향을 더한 후, 그냥 바로 다음 층으로 전달하면 되는 것 아닌가?

 

그렇지 않습니다.

딥러닝이 단순 선형 계산을 넘어서 복잡한 문제를 해결할 수 있게 만드는 비결이 바로 활성화 함수에 있습니다.

이번 글에서는 대표적인 활성화 함수인 Sigmoid, Tanh, ReLU를 중심으로,

각각의 차이점, 장단점, 선택 기준을 자세히 정리해보겠습니다.

 

1. 활성화 함수란 무엇인가?

🧠 활성화 함수는 뉴럴 네트워크 안에서 뉴런의 출력값을 결정해주는 함수입니다.

  • 뉴런의 출력 결정자: 입력값 × 가중치 + 편향 → 활성화 함수 통과출력값 생성
  • 비선형성 도입: 함수 덕분에 신경망은 단순한 계산기에서 벗어나 복잡한 문제를 해결하는 뇌처럼 작동 있습니다.

즉 입력값 × 가중치 + 편향 계산이 끝난 뒤, 이 결과를 그대로 다음 뉴런으로 보내는 것이 아니라, 활성화 함수를 거쳐 비선형성(non-linearity)을 부여한 뒤 전달합니다.

 

2. 비선형성이 중요한가?

왜 비선형 함수가 필요한가?
딥러닝은 여러 층(layer)의 뉴런이 데이터를 계층적으로 처리하는 구조입니다.
그런데 각 층에서 **선형 함수(예: y = ax + b)**만 사용하면?
아무리 층을 많이 쌓아도 결국에는 하나의 선형 함수로 뭉쳐져버립니다.

👉 즉, 아무리 복잡한 구조라도 복잡한 문제는 절대 풀 수 없게 되는 것이죠.
비선형 함수, 즉 활성화 함수가 들어감으로써
  • 곡선, 경계, 패턴, 반복 같은 복잡한 형태의 데이터도 학습할 수 있게 되고
  • 이미지 인식, 음성 처리, 자연어 처리 같은진짜 어려운 문제들 있게 됩니다.

3. 대표적인 활성화 함수 종류

 

Sigmoid 함수

 특징
  • 출력값이 항상 0과 1 사이
  • 입력값이 커질수록 출력은 1에 가까워지고, 작아질수록 0에 가까워짐
  • 확률처럼 해석하기 좋음 → 출력층에서 이진 분류할 때 유용
 단점
  • 기울기 소실(Vanishing Gradient) 문제
    → 입력이 너무 크거나 작으면 기울기가 거의 0이 되어 학습이 안 됨
  • 중심이 0이 아님 → 학습 수렴이 느림

Tanh 함수 (Hyperbolic Tangent)

 특징
  • 출력값이 -1과 1 사이
  • Sigmoid보다 중심이 0에 가까워서 더 좋은 성능을 낼 수 있음
 단점
  • 여전히 기울기 소실 문제가 있음
  • 깊은 네트워크에서는 여전히 학습이 느려질 수 있음

사용 예시: RNN(순환 신경망), 시간 기반 데이터


ReLU 함수 (Rectified Linear Unit)

 특징
  • 입력이 0보다 작으면 0, 크면 그대로 출력
  • 계산이 매우 단순하고 빠름
  • 기울기 소실 문제 거의 없음 → 학습 속도 빠르고 수렴도 좋음
  • 현재 대부분의 CNN, DNN에서 기본 활성화 함수로 사용
 단점
  • 입력이 음수이면 항상 0 → 뉴런이 죽는 문제(Dead Neuron)
      이를 보완하기 위한 함수들: Leaky ReLU, PReLU

사용 예시: CNN, DNN 대부분의 심층 네트워크


Softmax 함수

특징
  • 다중 클래스 분류 문제에서 출력층에 사용
  • 모든 출력값을 0~1 사이의 확률로 변환
  • 전체 클래스 어떤 클래스일 가능성이 가장 높은지를 나타냄

사용 예시: “고양이 / / 토끼처럼 3 이상 클래스 분류 문제


4. 활성화 함수 선택 기준

문제 유형 추천 활성화 함수 이유
회귀 문제 출력층 없음 or 선형 함수 그대로 수치 예측
이진 분류 출력층 Sigmoid 확률(0~1) 표현
다중 분류 출력층 Softmax 클래스 확률 계산
일반적인 은닉층 ReLU / Leaky ReLU 빠르고 효율적
순환 신경망(RNN ) Tanh 시간 기반 데이터 학습 적합

5. 실제 사용 사례로 이해해 보기

📷 이미지 인식 (CNN)
→ ReLU 함수가 기본적으로 사용됨. 빠르고 연산량이 많아도 효율적

🌀 순환 신경망 (RNN)
→ Tanh 함수가 시간 흐름을 잘 표현하고, 상태 유지에 적합

📊 고양이 vs 강아지 이진 분류
→ 출력층에 Sigmoid 함수로 확률 계산

📚 다중 클래스 텍스트 분류
→ Softmax로 각 분류별 확률 계산


6. 핵심 용어 정리표

용어 정의
활성화 함수 입력값을 비선형적으로 변환하여 출력값을 만드는 함수
비선형성 직선이 아닌 곡선적 관계를 학습할 있는 능력
Sigmoid 함수 0~1 사이 출력, 이진 분류에 적합
Tanh 함수 -1~1 출력, 중심이 0으로 수렴 속도 빠름
ReLU 함수 0보다 작으면 0, 크면 그대로 출력, 기본 함수
Softmax 함수 다중 분류에서 클래스 확률 계산

마무리 정리

  • 활성화 함수는 뉴럴 네트워크의 ‘지능’에 해당하는 핵심 구성 요소입니다.
  • 단순 선형 모델이 아닌, 복잡하고 다양한 문제를 해결할 수 있게 만들어줍니다.
  • 학습 속도, 안정성, 문제 유형에 따라 적절한 함수를 선택하는 것이 중요합니다.
  • 외우기보다는 직관과 예시를 통해 감을 잡아두면, 추후 모델 설계나 튜닝에서 매우 도움이 됩니다.

 

다음 시간에는 손실함수에 대해 알아보겠습니다.

https://jdcyber.tistory.com/99

 

딥러닝 손실 함수 (MSE와 Cross-Entropy) 차이

딥러닝 모델은 데이터를 입력받아 어떤 결과를 예측합니다.그런데 이 예측이 정답과 얼마나 차이 나는지는 어떻게 판단할까요?바로 손실 함수(Loss Function)가 그 역할을 합니다.손실 함수는 모델

jdcyber.tistory.com

https://jdcyber.tistory.com/100

 

딥러닝은 어떻게 학습할까? 순전파부터 NPU까지 한눈에 정리

이번 글에서는 딥러닝이 실제로 어떤 방식으로 작동하는지,그리고 왜 AI 전용 하드웨어인 NPU가 필요하게 되었는지까지를하나의 흐름으로 이해하고 싶은 분들을 위한 정리글입니다.https://jdcyber.

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

뉴럴 네트워크란 무엇인가?

뉴럴 네트워크(Neural Network)는 인간의 뇌 구조에서 아이디어를 얻은 인공지능 모델입니다.
쉽게 말해,

인간의 뇌가 수많은 뉴런(신경 세포)들이 서로 연결되어 정보를 처리하듯이,

컴퓨터도 비슷한 구조로 데이터를 처리할 수 있도록 설계한 것이죠.

 

🧠 사람의 뇌 vs 인공 신경망

  • 사람 뇌: 뉴런(신경 세포)들이 전기 신호를 주고받으며 사고, 판단, 기억을 합니다.
  • 인공 신경망: 가상의 뉴런(노드)들이 수학적인 연산을 통해 입력 데이터를 처리하고, 결과를 만들어냅니다.

 

뉴럴 네트워크의 기본 구성 요소

1. 입력층 (Input Layer)

외부에서 들어온 데이터를 처음 받아들이는 층입니다.
예를 들어, 이미지라면 픽셀 정보가 이 층으로 들어오고, 음성이라면 음파의 수치값이 입력됩니다.

2. 은닉층 (Hidden Layer)

가장 중요한 계산이 이뤄지는 층입니다.

  • ‘은닉층’이라는 이름은 눈에 보이지 않지만 내부에서 중요한 처리를 담당한다는 의미입니다.
  • 이 안에서 수많은 ‘뉴런’들이 입력값에 가중치를 곱하고, 편향을 더한 후 활성화 함수를 통과시켜 다음 층으로 전달합니다.

3. 출력층 (Output Layer)

최종 결과가 나오는 층입니다.

  • 예를 들어, 고양이 vs 강아지 이미지를 분류한다면
    → 출력층은 “고양이일 확률: 80%, 강아지일 확률: 20%”처럼 결과를 내보냅니다.
💡 예시

입력값
“고양이 사진”이라는 이미지가 입력되었다고 가정했을때,  이미지는 수많은 픽셀(: [0.6, 0.2, 0.9]) 조합으로 표현되고,  숫자들이 입력값입니다.

가중치
  • 입력값: [0.6, 0.2, 0.9]
  • 가중치: [0.8, 0.1, 0.3]
 곱하면: 0.6×0.8 + 0.2×0.1 + 0.9×0.3 = 0.48 + 0.02 + 0.27 = 0.77

편향
위 계산 결과가 0.77인데, 편향이 0.2라면?

→ 0.77 + 0.2 = 0.97

활성화 함수
  • 앞서 계산한 값이 0.97이라면, ReLU는 그대로 0.97
     만약 계산값이 -0.5였다면? → ReLU 0으로 만듦

 

뉴런(Neuron)은 무엇을 하나요?

각 뉴런은 다음과 같은 과정을 수행합니다:

  1. 입력값을 받아
  2. 각 입력에 가중치(weight)를 곱하고
  3. 편향(bias)을 더한 뒤
  4. 활성화 함수(activation function)를 거쳐
  5. 그 결과를 다음 뉴런으로 전달합니다.

💡 예를 들어 뉴런 하나에 [0.5, 0.8]이 들어오고, 가중치가 [1.2, 0.3], 편향이 0.1이라면:

  • 계산: (0.5×1.2) + (0.8×0.3) + 0.1 = 약 0.98
  • 여기에 ReLU 같은 활성화 함수 적용 → 다음 층으로 결과 전달

이러한 계산이 수천 개의 뉴런, 수백 개의 레이어에서 동시에 일어난다고 상상해보세요!


💡 전체 정리 (한 줄로 다시)

입력값에 각 가중치를 곱하고, 편향을 더해,

활성화 함수를 통과시킨 후 그 결과를 다음 뉴런에 전달하는 것 —
이게 바로 뉴럴 네트워크에서 한 뉴런이 하는 일입니다.

 단순한 과정을 수천, 수만 개의 뉴런이 동시에 처리하니까 어마어마한 연산량이 필요하고,

그래서 우리가 NPU 같은 연산 가속기 쓰게 되는 것이죠


뉴럴 네트워크는 어떻게 학습할까요?

초기에는 랜덤한 가중치를 사용하지만, 학습을 반복하면서 정답과의 오차를 줄이기 위해 가중치를 조금씩 수정해나갑니다.

이 과정을 역전파(Backpropagation)라고 부릅니다.

  1. 순전파(Forward): 입력 → 예측값 도출
  2. 오차 계산: 예측값 vs 실제값 차이
  3. 역전파(Backward): 오차를 따라 가중치를 업데이트
  4. 반복 학습: 예측이 점점 더 정확해짐

이걸 수백 번, 수천 번 반복하면 모델이 점점 ‘똑똑해진다’고 볼 수 있는 것이죠.

https://jdcyber.tistory.com/98

 

NPU를 위한 AI 기초 딥러닝의 핵심, 활성화 함수 완전 정복 (ReLU, Sigmoid, Tanh 차이와 선택 기준)

딥러닝을 공부하다 보면 반드시 마주치는 개념 중 하나가 바로 "활성화 함수(Activation Function)"입니다.입력값에 가중치를 곱하고, 편향을 더한 후, 그냥 바로 다음 층으로 전달하면 되는 것 아닌가

jdcyber.tistory.com

 

 

뉴럴 네트워크의 강점

  • 데이터를 넣으면 자동으로 특징을 뽑아내고,
  • 복잡한 패턴을 스스로 학습할 수 있으며,
  • 음성, 이미지, 텍스트 등 다양한 형태의 데이터를 처리할 수 있습니다.

예를 들어, 이전에는 사람이고양이는 귀가 뾰족하고 눈이 크다 규칙을 일일이 만들어줘야 했다면, 이제는 데이터를 충분히 보여주기만 해도 뉴럴 네트워크가 스스로 그런 특징을 찾아냅니다.


마무리 정리

뉴럴 네트워크란?

뉴럴 네트워크란?

인간의 뇌를 흉내 낸 인공지능 모델
뉴런들이 입력값을 계산해서 다음 층으로 전달하고,
학습을 반복하며 점점 더 정확한 판단을 하게 되는 구조입니다.

이러한 신경망 구조가 바로 딥러닝(Deep Learning) 핵심이며,

오늘날 음성 인식, 이미지 분류, 자율주행, 챗봇까지 수많은 AI 기술의 기반이 됩니다.

https://jdcyber.tistory.com/93

 

NPU를 위한 AI 기초 (1-1): 인공지능<Ai>, 머신러닝<ML>, 딥러닝<DL>의 관계 완전 정복

NPU 정복을 위한 로드맵 이후 두번째 글입니다.https://jdcyber.tistory.com/92 NPU에 흥미를 느낀 30대 비전공자의 공부 로드맵“NPU(Neural Processing Unit)를 공부하고 이해하고자 비전공자의 NPU 무작정 파헤

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형
반응형

NPU 정복을 위한 로드맵 이후 두번째 글입니다.

https://jdcyber.tistory.com/92

 

NPU에 흥미를 느낀 30대 비전공자의 공부 로드맵

“NPU(Neural Processing Unit)를 공부하고 이해하고자 비전공자의 NPU 무작정 파헤치기 3개월 로드맵에 따라 기초부터 FuriosaAI 실습까지 체계적으로 공부하고, 블로그에 정리하며 시행착를 기록해보겠

jdcyber.tistory.com

 

 

안녕하세요! 이번 시리즈에서는 NPU(Neural Processing Unit)라는 AI 가속기 기술을 이해하고 활용하기 위해,

가장 기초적인 AI(인공지능) 지식부터 차근차근 다루는 ‘NPU 기초 입문편’입니다.

이번 글에서는 “인공지능(AI), 머신러닝(ML), 딥러닝(DL)”이 무엇이고,

어떻게 발전해 왔는지, 그리고 이 셋이 서로 어떤 관계에 있는지 자세히 정리해보겠습니다.

많은 분들이 용어가 비슷하다 보니 헷갈려하기도 하고, “AI=딥러닝인가?”라고 잘못 오해하는 경우도 있습니다.

이 글을 통해 용어 정리를 깔끔히 하고, 이후 NPU의 필요성을 이해하는 데 필요한 기초 지식을 탄탄히 쌓아봅시다.


1. 인공지능(AI)이란 무엇인가?
정의: 인간처럼 학습하고 사고하는 ‘지능’을 컴퓨터로 구현하려는 광범위한 학문/기술 영역입니다.
과거에는 사람이 직접 만든 규칙(“만약 X라면 Y를 해라”)을 기계에 입력하는 ‘전문가 시스템’이 많았어요.
'규칙 기반 전문가 시스템’처럼 사람이 일일이 규칙을 설계하는 방식도 포함했지만 요즘은 규칙 대신 데이터를 통해 패턴을 자동으로 찾는 쪽(머신러닝, 딥러닝)이 주류가 되었으며 음성 인식, 자율주행, 로봇 제어, 의료 분석 등 다양한 영역에서 현재도 빠르게 발전 중입니다.

 

AI는 기계가 “어떻게 학습”하고 “어떻게 의사결정”을 할 수 있을지에 대한 다양한 시도들의 집합입니다.

  • 효율성: 반복적이거나 복잡한 일을 기계가 대신해주면 사람은 더 창의적인 일에 집중 가능
  • 확장성: 데이터가 늘어날수록 새로운 가능성을 만들어내기 쉬움

2. 머신러닝(ML): AI를 실현하는 핵심 방법
정의: 머신러닝(ML)은 AI의 하위 분야로, 데이터를 통해 패턴을 학습하고 이를 토대로 예측이나 분류를 수행하는 알고리즘을 연구하는 분야입니다.
과거에는 프로그래머가 모든 규칙을 코딩해야 했습니다(“만약 입력이 A라면 B를 출력하라” 식).
그러나 머신러닝에서는 시스템이 스스로 데이터에서 규칙이나 패턴을 찾아내기 때문에, 복잡한 문제도 비교적 쉽게 해결할 수 있습니다.
머신러닝의 대표 알고리즘
  • 선형 회귀(Linear Regression): x와 y의 관계를 직선 혹은 평면 등으로 모델링해 예측
  • 의사결정트리(Decision Tree): 트리 구조를 따라 분기하며 데이터를 분류 or 예측
  • 서포트벡터머신(SVM): 고차원 공간에서 데이터를 분리할 최적의 경계면(마진)을 찾음
  • 랜덤 포레스트(Random Forest): 여러 개의 의사결정트리를 앙상블해 성능을 높임

이 외에도 추천 시스템, 강화학습(알파고 같은 에이전트 학습) 등 다양한 기법들이 존재하며, 특정 문제 성격이나 데이터 형태에 따라 맞춤형으로 알고리즘을 선택할 수 있습니다.


위 내용에 대해 조금 더 자세히 알고싶으시다면 아래 링크를 클릭해주세요

(작성 예정)


이렇듯 머신러닝은 데이터를 통해 학습해 자동화 수준을 높이지만, 데이터 전처리특징 추출(feature engineering) 과정을 사람이 직접 설정해야 하는 경우가 많았습니다.
즉, 모델에 들어가기 전에 어떤 특징(예: 이미지에서 가장자리, 색상 분포 등)을 추출해줄지 사람이 설계해야 했죠.
이러한 한계를 극복하고, 복잡한 특징까지 모델이 스스로 학습하도록 한 것이 바로 딥러닝입니다.


3. 딥러닝(DL): 머신러닝의 진화
정의: 딥러닝(Deep Learning)은 머신러닝 중에서도 인공신경망(Artificial Neural Network) 기법을 활용한 분야입니다.
여러 ‘은닉층(Hidden Layer)’이 깊게 연결된 구조(Deep Neural Network)를 통해, 기존 머신러닝이 다루기 어려웠던 복잡한 패턴도 스스로 학습할 수 있도록 했습니다.
인공신경망(ANN)의 핵심
  • 뉴런(Neuron): 생물학적 뉴런에서 착안해, 입력신호 × 가중치 + 편향 → 활성화 함수 과정을 통해 신호를 전달
  • 계층적 구조: 입력층(Input) → 은닉층(Hidden) → 출력층(Output)으로 이루어지며, 층이 많을수록(깊을수록) 더욱 복잡한 패턴을 학습할 수 있음
  • 학습(Training): 예측 오차를 역전파(Backpropagation)로 전달해, 가중치와 편향을 조금씩 업데이트(Gradient Descent 등)
 

위 내용에 대해 조금 더 자세히 알고싶으시다면 아래 링크를 클릭해주세요

(작성 예정)


이러한 딥러닝을 통해 우리는 빅데이터(방대한 양의 데이터 활용), GPU,TPU,NPU 등을 통한 대규모 연산, 새로운 알고리즘 발전 등을 이루어냈으며, 딥러닝 기술을 통해 이미지 분류, 음성 인식, 자연어 처리 등 여러 분야에서 획기적인 성능 향상이 나타났습니다.


인공지능 머신러닝 딥러닝의 관계 AI > ML > DL
계층 구조 (AI > ML > DL)
인공지능(AI): 가장 상위 개념. 규칙 기반에서부터 자율주행, 로보틱스 등 다양한 접근을 모두 포함하는 광범위한 학문.
머신러닝(ML): AI를 구현하는 하나의 방법론. 데이터 기반 학습 알고리즘이 핵심.
딥러닝(DL): 머신러닝의 하위 분야 중에서도 인공신경망에 특화된 영역. 대규모 데이터, 복잡한 패턴까지 자동으로 학습 가능.

 

일반적으로 “딥러닝 모델 = AI”라고 말하는 건 완전히 틀린 말은 아니지만,

정확히 말하면 딥러닝은 AI의 한 분야라는 점을 기억하면 좋겠습니다.


마무리

 

오늘은 AI, 머신러닝, 딥러닝이 각각 무엇인지, 그리고 이들이 서로 어떻게 연결되어 있는지 알아보았습니다. 간단히 정리하자면,

  1. AI(인공지능): 인간처럼 사고하고 학습하는 시스템을 구현하려는 광범위한 분야
  2. ML(머신러닝): 데이터를 기반으로 패턴을 찾아 학습해 문제 해결을 시도하는 AI 하위 분야
  3. DL(딥러닝): 머신러닝 중 인공신경망을 기반으로, 대규모 복잡한 문제를 해결할 수 있는 기법

다음 글에서는 본격적으로 뉴럴 네트워크(Neural Network)에 대하여 깊이 파고들 예정입니다.

특히 뉴럴 네트워크의 내부 구조(가중치, 활성화 함수, 역전파 등)를 이해해야, 왜 딥러닝이 계산량이 많고 따라서 NPU와 같은 하드웨어 가속기가 중요한지 명확히 알 수 있을 것 입니다.

https://jdcyber.tistory.com/97

 

뉴럴 네트워크란 무엇인가? (NPU 개념 공부)

뉴럴 네트워크란 무엇인가?뉴럴 네트워크(Neural Network)는 인간의 뇌 구조에서 아이디어를 얻은 인공지능 모델입니다.쉽게 말해,인간의 뇌가 수많은 뉴런(신경 세포)들이 서로 연결되어 정보를 처

jdcyber.tistory.com

 


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형
반응형

“NPU(Neural Processing Unit)를 공부하고 이해하고자 비전공자의 NPU 무작정 파헤치기 3개월 로드맵에 따라 기초부터 FuriosaAI 실습까지 체계적으로 공부하고, 블로그에 정리하며 시행착를 기록해보겠습니다!”

 

인공지능이 Ai가 난리인 이 시점에 모델 개발보다 이에 산출된 데이터를 어떻게 잘 활용할 수 있는지가 중요하다고 생각했고, 빅데이터 분석 및 온톨로지 방법에 대하여 흥미가 생겼습니다.

또한 이러한 데이터 정제 과정도 결국 인공지능이 사람보다 잘 할 수 있다고 생각이 들었고, 이를 처리하는 NPU가 너무 흥미롭게 다가왔습니다.

아래 로드맵은 인공지능을 이용하여 만들었으며 NPU시장에서 매력적인 퓨리오사Ai라는 매력적인 회사를 알게되어 예시나 실습은 퓨리오사Ai의 NPU 제품으로 최대한 해달라는 프롬프트를 넣어서 작성했습니다.

아직 아무것도 알아보지 않았지만, NPU의 기술력을 공공연하게 적어놓지 않았을 것으로 예상되고 인공지능은 어떻게든 대답을 해내기 때문에 만들어서라도 저에게 교육을 해줄 것으로 보여집니다.

이 또한 잘못된 지식이라도 재미있게 공부해보고 추후 전문가에게 컨펌을 받아 바로잡아 복습해보는 즐거움도 있을 것 같습니다.

그럼 지금부터 해당 로드맵을 따라가면서 웹사이트 및 시중에 나와있는 자료로 무작정 공부를 시작해보겠습니다.


1. 로드맵 개요

  • 학습 기간: 총 12주 (3개월)
  • 목표
    1. NPU의 개념 및 필요성 이해
    2. CPU, GPU와 비교하여 NPU가 제공하는 장점 및 아키텍처적 차이 학습
    3. 간단한 딥러닝 모델을 예시로 NPU 가속 경험하기
    4. FuriosaAI NPU를 활용한 간단한 실습 진행
    5. 블로그를 통해 학습 과정 및 예제 공유

아래는 12주 동안 어떤 식으로 공부를 진행하면 좋을지, 각 주차별로 나눈 로드맵입니다.


2. 단계별 로드맵

Week 1~2: 기초 다지기 (NPU의 배경 지식)

  1. AI/딥러닝 기초 개념 학습
    • 뉴럴 네트워크가 무엇이며 왜 빠른 연산이 필요한지 이해
    • 머신러닝과 딥러닝의 차이, 신경망(Neural Network) 기본 동작 원리
    • CPU, GPU의 역할 비교
  2. 하드웨어 가속의 필요성
    • 빅데이터 시대에서 늘어나는 연산량 이해
    • GPU가 딥러닝 가속에 도움을 주는 방식 (SIMD, 병렬 연산)
    • NPU가 등장하게 된 배경(전력 효율, 높은 병렬 처리 효율 등)

Week 3~4: NPU 기본 구조 이해

  1. NPU란 무엇인가
    • 일반적인 NPU 아키텍처 소개
    • 메모리 구조(온칩 메모리, 캐시, DMA 등)와 연산 방식
    • NPU가 네트워크 연산(Conv, Pooling, Fully Connected)을 처리하는 큰 흐름
  2. CPU, GPU, NPU 비교
    • 하드웨어적 특징(코어 구조, 메모리 대역폭, 병렬 연산 처리 방식)
    • 장단점 비교(에너지 효율, 연산속도, 개발 난이도 등)
  3. 예시: FuriosaAI NPU 간단 소개
    • FuriosaAI가 제공하는 NPU(Warboy, Burr 등)의 주요 특징
    • 대략적인 성능 지표(OPS, 전력 소모 등)

Week 5~6: 딥러닝 모델 & NPU 활용 흐름 알기

  1. 딥러닝 모델의 NPU 탑재 과정
    • 모델 학습(주로 GPU/CPU) → 모델 압축/최적화 → NPU에 올려서 추론
    • 모델 최적화 기법(양자화, 프루닝, Fuse 연산 등) 개념 간단 이해
  2. 온디바이스 AI와 에지 컴퓨팅 개념
    • 클라우드 추론과 엣지 추론의 차이
    • 전력, Latency, 보안 측면에서 NPU의 이점
  3. FuriosaAI SDK 또는 관련 툴 살펴보기
    • FuriosaAI가 공개한 SDK / 개발자 문서가 있다면, 설치 방법, 예제 코드
    • 파이썬 기반으로 작성된 예제가 있으면 따라 해보기

Week 7~8: FuriosaAI NPU 실습 준비

  1. 개발 환경 세팅
    • FuriosaAI NPU 사용을 위한 개발 환경(드라이버, SDK 설치 등)
    • TensorFlow, PyTorch 등 주요 프레임워크에서 NPU 지원 여부 확인
    • FuriosaAI가 지원하는 ONNX 모델 변환 프로세스 등
  2. 간단 예제 모델 변환
    • MNIST, CIFAR-10, 혹은 간단한 Image Classification 모델(ResNet-18 등)을 ONNX로 변환
    • FuriosaAI에서 제공하는 변환 툴(예: furiosa-compiler 등)이 있다면 사용해보기
    • 변환 시 주의 사항(양자화, 연산 호환성 등)
  3. 테스트 & 벤치마크
    • 로컬 환경에서 추론 속도, 정확도 측정 방법
    • GPU vs NPU 처리 속도 비교(가능하다면)

Week 9~10: FuriosaAI NPU 심화 실습

  1. 실습 모델 변경
    • 좀 더 복잡한 네트워크(예: MobileNet, YOLO 등)
    • 실제 예제 데이터셋(작은 규모)으로 추론 실험
  2. 최적화 시도
    • 양자화(Quantization)나 기타 최적화 기법을 적용해보기
    • FuriosaAI NPU에서 지원하는 최적화 옵션 살펴보기
  3. 성능 분석
    • Latency, Throughput, Power Consumption(가능하다면) 등 다양한 지표 측정
    • 측정 결과를 블로그에 표나 그래프로 정리해볼 것

Week 11~12: 정리 및 확장

  1. 학습 내용 정리 & 블로그 연재 마무리
    • 지금까지 배운 내용 정리(아키텍처, 개발 환경, 최적화, 실습 결과)
    • 에러나 시행착오 사례, 해결 방법 아카이빙
  2. 응용 분야 & 추가 학습 방향
    • NPU가 적용될 수 있는 다양한 산업(자율주행, 로보틱스, IoT 등)
    • AI 액셀러레이터 시장 동향(CPU, GPU, FPGA, ASIC 등)
    • FuriosaAI NPU의 미래 로드맵(가능하다면 공식 자료 참조)
  3. 향후 스터디 or 프로젝트 아이디어
    • 에지 디바이스에서 실시간 추론(카메라 영상 인퍼런스) 프로젝트
    • 모델 경량화 기술 연구(QAT, Pruning 등)
    • 다른 NPU(Acorn, Habana, EdgeTPU 등)와 성능 비교해보기

3. 블로그 작성 팁

  1. 정의 및 배경 지식 강조
    • 처음 듣는 용어가 많으므로, 용어 설명과 함께 블로그 글을 쓰면 독자 이해도가 높아집니다.
    • 글 서두에 핵심 개념(예: 양자화, 가속기, ONNX 등)을 간단히 요약해두면 좋습니다.
  2. 이미지/도식 활용
    • NPU 구조나 데이터 흐름을 시각적으로 표현하면 이해가 쉬워집니다.
    • 그림이나 다이어그램을 간단히 첨부해 설명해 보세요.
  3. 실습 위주 접근
    • FuriosaAI NPU로 모델 추론하는 과정(스크린샷, 코드 snippet 등)을 자세히 올리면 독자가 따라하기 쉽습니다.
  4. 시행착오와 해결책 기록
    • 설치 과정이나 모델 변환 과정에서 발생한 에러는 어떻게 해결했는지 꼼꼼히 기록하세요.
    • 초보자들이 같은 에러를 만났을 때 큰 도움이 됩니다.

4. 마무리

위 로드맵은 전공 지식이 전혀 없는 초보자에게도 NPU 개념부터 FuriosaAI 실습까지 차근차근 학습해나갈 수 있도록 구성한 예시입니다. 실제로 공부하다 보면 본인의 이해도나 시간 여건에 따라 각 단계에 더 오랜 시간을 할애하거나, 과감히 생략할 부분이 생길 수도 있습니다. 중요한 것은 **“왜 NPU가 필요한지, 그리고 실제로 어떻게 사용할 수 있는지”**에 대한 큰 그림을 그리는 것입니다.

3개월 정도 꾸준히 진행하면서 블로그에 정리한다면, “처음 AI 하드웨어 가속 개념을 접했을 때의 막막함”을 느낄 다른 사람들에게도 큰 도움이 될 것입니다. 부담 가지지 말고, 한 번에 모든 걸 마스터하려 하기보다 “기본 개념 → 작은 예제 실습 → 조금 더 심화된 실습”으로 확장해 가며 기록해보세요.


자 그럼 지금부터 비전공자 30대의 NPU 여행 시작하겠습니다.

 

다음글

https://jdcyber.tistory.com/93

 

NPU를 위한 AI 기초 (1-1): 인공지능<Ai>, 머신러닝<ML>, 딥러닝<DL>의 관계 완전 정복

NPU 정복을 위한 로드맵 이후 두번째 글입니다.https://jdcyber.tistory.com/92 NPU에 흥미를 느낀 30대 비전공자의 공부 로드맵“NPU(Neural Processing Unit)를 공부하고 이해하고자 비전공자의 NPU 무작정 파헤

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형
반응형

2023년 6월, 사이버 범죄 조직인 클롭(Clop) 랜섬웨어 그룹은 MOVEit 파일 전송 소프트웨어의 취약점을 악용하여 다수의 기업과 기관을 공격했습니다.

이들은 SQL 인젝션을 통해 악성 파일을 업로드하고, 이를 실행하여 데이터를 암호화하거나 탈취했습니다.

이러한 공격에 대응하기 위해서는 소프트웨어의 최신 보안 패치 적용, 웹 애플리케이션 방화벽 도입, 파일 업로드 제한 및 검사, 로그 모니터링, 네트워크 세그멘테이션 등의 기술적 방안이 필요합니다.


클롭(Clop) 랜섬웨어 그룹은 2019년부터 활동을 시작한 사이버 범죄 조직으로, 주로 대규모 기업과 기관을 대상으로 랜섬웨어 공격을 수행해 왔습니다. 이들은 단순한 데이터 암호화에 그치지 않고, 탈취한 데이터를 공개하겠다고 협박하여 피해자에게 이중의 압박을 가하는 것으로 알려져 있습니다.


이번 공격에서 클롭 그룹은 MOVEit 파일 전송 소프트웨어의 SQL 인젝션 취약점을 악용했습니다.

SQL 인젝션은 웹 애플리케이션의 입력값을 통해 악의적인 SQL 코드를 주입함으로써 데이터베이스를 조작하거나 민감한 정보를 탈취하는 공격 기법입니다.

 

공격 과정은 다음과 같습니다:

  1. 취약점 탐색: 클롭 그룹은 MOVEit 소프트웨어의 특정 버전에 존재하는 SQL 인젝션 취약점을 식별했습니다.
  2. 악성 파일 업로드: 이 취약점을 통해 human2.aspx라는 이름의 악성 ASPX 파일을 서버에 업로드했습니다. 이 파일은 원격에서 공격자가 명령을 실행할 수 있도록 설계되었습니다.
  3. 원격 코드 실행: 업로드된 악성 파일을 통해 서버에서 명령을 실행하여 데이터를 암호화하거나 탈취했습니다.

이 공격으로 인해 다수의 기업과 기관이 데이터 유출 및 서비스 중단과 같은 심각한 피해를 입었습니다.

특히, 민감한 정보가 외부로 유출되어 기업의 신뢰도 하락과 금전적 손실을 초래했습니다.


공격이 발생한 후, 피해 기업들은 다음과 같은 대응 조치를 취했습니다:

  1. 긴급 패치 적용: MOVEit 소프트웨어의 제조사는 즉각적으로 취약점을 수정한 보안 패치를 배포하였으며, 기업들은 이를 신속하게 적용했습니다.
  2. 시스템 점검 및 복구: 침해된 시스템을 격리하고, 백업 데이터를 활용하여 시스템을 복구했습니다.
  3. 보안 강화: 향후 유사한 공격을 방지하기 위해 웹 애플리케이션 방화벽을 도입하고, 파일 업로드에 대한 보안 정책을 강화했습니다.

예방을 위한 기술적 방안:

이러한 공격을 예방하기 위해서는 다음과 같은 기술적 조치가 필요합니다:

  1. 정기적인 보안 패치 적용: 소프트웨어와 시스템의 최신 보안 패치를 주기적으로 적용하여 알려진 취약점을 제거해야 합니다.
  2. 웹 애플리케이션 방화벽(WAF) 도입: SQL 인젝션과 같은 웹 공격을 탐지하고 차단할 수 있는 WAF를 구축하여 공격을 사전에 방지해야 합니다.
  3. 파일 업로드 보안 강화: 서버에 업로드되는 파일의 유형과 크기를 제한하고, 업로드된 파일에 대한 정밀 검사를 수행하여 악성 파일의 실행을 방지해야 합니다.
  4. 실시간 로그 모니터링: 서버 로그를 실시간으로 모니터링하고, 비정상적인 접근이나 파일 업로드 시도를 탐지하여 신속하게 대응할 수 있도록 해야 합니다.
  5. 네트워크 세그멘테이션: 중요 시스템과 일반 시스템을 분리하여 공격 발생 시 피해 범위를 최소화해야 합니다.
반응형
반응형
내부 네트워크 구축

네트워크를 공부하다 보면 가장 먼저 실습하게 되는 부분이 바로 내부 네트워크를 구성하는 것입니다.

이 글에서는 내부 네트워크를 가상으로 구축해 보면서, 실습을 통해 어떻게 네트워크를 설계하고, 설정할 수 있는지 알아보겠습니다.


목표 설정

  1. 내부망 가상 구축
    네트워크를 설계하고 가상으로 구축하여 실습합니다.
  2. 내부 네트워크 가상 설계
    설계도를 기반으로 각 네트워크 장비와 IP를 할당합니다.
  3. 네트워크 IP 할당 내용 정리
    네트워크의 각 장비에 맞는 IP를 설정합니다.
  4. 프로세스 기술 요약 및 명령어 정리
    네트워크 구축 시 필요한 명령어를 정리합니다.

내부 서버 설계

내부 네트워크 구축을 마친 후, 내부 서버 설계를 진행합니다. 서버 설계가 중요한 이유는, 각 서버와 클라이언트가 원활하게 통신할 수 있도록 하기 위함입니다. 또한, 서버들이 네트워크에 제대로 통합되도록 설정해야 합니다.

  1. 기본 준비
    • EVE 사이트 접속 및 구성
      EVE-NG(Emulated Virtual Environment for Network Gateways)는 가상화된 네트워크 환경을 만들 수 있는 도구입니다.
    • VMware 환경 구성
      VMware는 가상 머신을 이용한 실습 환경을 구성할 수 있는 도구로, 이를 통해 여러 서버 및 네트워크 장비를 구현할 수 있습니다.

EVE-NG와 VMware란?

EVE-NG는 네트워크 시뮬레이션을 위한 에뮬레이터로, 다양한 네트워크 장비를 가상 환경에서 실행하고 실험할 수 있는 도구입니다. 이를 통해 실제 환경처럼 네트워크를 구성하고 문제를 해결할 수 있습니다.
VMware는 가상화 소프트웨어로, 물리적인 서버 없이도 가상화된 환경을 구축하여 여러 서버를 동시에 운영할 수 있게 해줍니다. 이를 통해 네트워크 실습을 가상 환경에서 구현할 수 있습니다.


배경 및 목표

이 네트워크 구축의 목적은 사이버 보안 기업의 조직도 및 네트워크 구성을 바탕으로 내부 네트워크를 설계하는 것입니다. 이를 통해:

  • 효과적인 네트워크 분배 및 재구성
    네트워크의 성능과 효율성을 높입니다.
  • 보안 강화
    각 부서별로 VLAN을 할당하여 보안을 강화합니다.
  • 원활한 네트워크 서비스 제공
    네트워크가 원활하게 운영되도록 합니다.

내부망 가상 구축

이제 기업의 조직도를 바탕으로 네트워크를 설계하고, VLAN을 어떻게 할당할지 구상해보겠습니다. 내부 네트워크 설계는 다음과 같은 목표로 진행됩니다:

  1. 조직도 및 배치도 분석
    사무실 배치도와 조직도를 기반으로 각 부서에 VLAN을 할당합니다.
  2. 보안을 강화하고 효율적인 통신을 위한 VLAN 설계
    C 레벨, 개발팀, 경영지원팀, 영업팀, 마케팅팀 등 부서별로 VLAN을 할당하고, 보안 강화를 위한 설정을 적용합니다.

내부 네트워크 가상 설계

구성된 조직도와 배치도를 기반으로 내부망을 설계합니다. 네트워크 통신 오류가 발생할 수 있으므로, 모든 포트를 이중화하여 안정성을 확보하고, 두 개의 인터넷 라우터를 연결하여 외부 네트워크와의 연결을 다중화합니다. 각 부서별 VLAN을 할당하여 보안을 강화하고, 서버실을 구성하여 7대의 서버와 100대의 PC를 설정합니다.

  • C 레벨 VLAN 99
  • 개발팀 VLAN 11
  • 경영지원팀 VLAN 12
  • 영업팀 VLAN 13
  • 마케팅팀 VLAN 14

네트워크 IP 할당 내용 정리

설계를 바탕으로 EVE를 사용하여 실제 네트워크를 구성해봅니다. 설정은 아직 진행하지 않았으며, 장비와 포트만 연결한 상태입니다. 이후, 각 장비에 IP를 할당하고, 설정을 진행할 예정입니다.

  • 기본 IP 설정
    PC와 서버에 물리적 IP를 설정하고, 나머지 장비들에 대한 기본 설정을 집어넣습니다.
  • VLAN 1 관리용 IP
    관리용 IP는 VLAN 1에 설정하여, 네트워크 관리자가 네트워크를 관리할 수 있도록 합니다.


프로세스 요약

  1. 스위치 구간에 Trunk & Ether Channel 구성 및 RSTP 활성화
  2. 스위치 관리용 IP 주소 설정 (VLAN 1)
  3. 모든 스위치에 VLAN 11개 생성 및 Access 설정
  4. Inter-VLAN 설정 및 NAT 설정
  5. HSRP를 이용한 로드 분산 및 장애 대비

명령어 예시

명령어들을 적절히 사용하여 네트워크를 구성합니다. 아래는 주요 명령어들입니다:

  • 기본 설정 명령어
hostname <장비 이름>
enable secret cisco
no ip domain-lookup
no cdp run
  • VLAN 생성 및 설정
vlan 11
vlan 12
  • 트렁크 포트 설정
switchport mode trunk
switchport trunk encapsulation dot1q

서버 설계 및 네트워크 통합

이제, 네트워크와 서버를 통합하여 내부 서버들을 설정합니다. 서버는 각 VLAN에 맞춰 다음과 같이 구성됩니다:

  • DHCP 서버 (VLAN 101)
  • FTP 서버 (VLAN 102)
  • Web 서버 (VLAN 103)
  • DNS 서버 (VLAN 104)
  • Mail 서버 (VLAN 105)

서버들은 네트워크와 통합되어야 하므로, 각 서버에 맞는 네트워크 설정을 해야 합니다.

  • DMZ Web 서버 구성
     
ip nat inside source static tcp <내부 IP> 80 <외부 IP> 80
  • DHCP 서버 구성
ip helper-address <DHCP 서버 IP>
  • FTP 서버 구성
    서버 공유 권한을 부여하여, 네트워크에서 접근할 수 있게 합니다.

테스트 및 최종 설정

모든 네트워크 구성과 서버 설정이 완료되면, 실제 PC에서 접속 테스트를 진행합니다. DHCP, FTP, Web, DNS, 이메일 서버 등 각 서비스들이 정상적으로 작동하는지 확인하고, 네트워크 트래픽이 적절하게 처리되는지 확인합니다.


이 네트워크 구축 실습을 통해, 네트워크 설계 및 보안을 고려한 효율적인 내부망 구축 방법을 배우고, 각 단계별로 필요한 명령어와 설정들을 실습할 수 있었습니다.

이 과정을 통해 내부망의 구축뿐만 아니라 보안을 강화하고 네트워크의 효율성을 높일 수 있음을 알 수 있었습니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

root # pvs
PV       VG       Fmt  Attr  PSize  PFree
/dev/sda2 centos  lvm2 a--   <19.00g 0
/dev/sdb1         lvm2 ---  <100.00g <100.00g

먼저 알고 계셔야 할 내용

 

LVM 볼륨이란?

LVM(Logical Volume Management)은 리눅스에서 논리적 볼륨을 관리하기 위한 시스템입니다. 하드디스크나 SSD를 물리적으로 나누지 않고, 논리적으로 유연하게 파티션을 구성하고 관리할 수 있도록 해줍니다. LVM을 사용하면 볼륨 크기 조정이 용이하고, 디스크 추가 및 확장이 쉽습니다.

  • LVM 구성 요소:
    • PV (Physical Volume): 물리적 디스크나 파티션.
    • VG (Volume Group): 여러 PV를 모은 논리적 그룹.
    • LV (Logical Volume): VG 내에서 실제로 데이터를 저장하는 논리적 볼륨.
    • PE (Physical Extent): PV를 나눈 작은 블록 단위.
    • LE (Logical Extent): LV를 나눈 작은 블록 단위.

파티션이란?

파티션은 하드디스크를 효율적으로 나누어 사용하는 방식입니다. 파티션을 나누면 운영체제에서 디스크를 효율적으로 사용할 수 있게 됩니다. LVM에서는 파티션을 논리적 볼륨으로 관리할 수 있도록 지원합니다.


LVM 구성 순서

  1. LVM을 구성할 디스크 선택
  2. 사용하고자 할 디스크를 선택합니다. 여기서는 /dev/sdb를 예로 들겠습니다.
  3. 선택한 디스크(파티션)의 시스템 타입을 LVM으로 지정하여 파티션을 생성
  4. 디스크를 파티셔닝한 뒤, 해당 파티션의 시스템 ID를 LVM으로 변경합니다.
root # fdisk /dev/sdb
Command (m for help): n        # 새 파티션 추가
Select (default p): p          # 파티션 유형 선택
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048): (Enter)
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199): (Enter)
Command (m for help): t        # 파티션 타입 변경
Hex code (type L to list all codes): 8e  # Linux LVM 타입
Command (m for help): p        # 파티션 정보 확인
Command (m for help): w        # 설정 저장

PV (물리적 볼륨) 생성

이제 /dev/sdb1 파티션을 물리적 볼륨(PV)으로 설정합니다.

root # pvcreate /dev/sdb1

pv 명령어 예시:

root # pvs
PV       VG       Fmt  Attr  PSize  PFree
/dev/sda2 centos  lvm2 a--   <19.00g 0
/dev/sdb1         lvm2 ---  <100.00g <100.00g

VG (볼륨 그룹) 생성

물리적 볼륨(PV)을 사용해 볼륨 그룹(VG)을 생성합니다.

root # vgcreate testvg /dev/sdb1

vgs 명령어 예시:

root # vgs
VG     #PV   #LV  #SN  Attr   VSize   VFree
centos 1     2    0    wz--n- <19.00g  0
testvg 1     0    0    wz--n- <100.00g <100.00g

LV (논리적 볼륨) 생성

볼륨 그룹(VG)을 이용해 논리적 볼륨(LV)을 생성합니다.

root # lvcreate -n datalv -L 70GB testvg
root # lvcreate -n backuplv -l +100%FREE testvg

lvs 명령어 예시:

root # lvs
LV        VG      Attr    LSize   Pool   Origin   Data%   Meta%   Move   Log   Cpy%Sync   Convert
root      centos  -wi-ao-- <17.00g
swap      centos  -wi-ao--   2.00g
backuplv  testvg  -wi-a---- <30.00g
datalv    testvg  -wi-a----  70.00g

파일 시스템 포맷

생성된 논리적 볼륨에 파일 시스템을 생성합니다. 여기서는 ext4 파일 시스템을 사용합니다.

root # mkfs.ext4 /dev/testvg/datalv
root # mkfs.ext4 /dev/testvg/backuplv

LV 파일 시스템을 마운트

논리적 볼륨을 마운트할 디렉토리를 생성하고 마운트합니다.

root # mkdir /data
root # mkdir /backup
root # mount /dev/testvg/datalv /data
root # mount /dev/testvg/backuplv /backup

df -h 명령어 예시:

root # df -h
/dev/mapper/testvg-datalv    70G   53M   67G   1% /data
/dev/mapper/testvg-backuplv  30G   45M   28G   1% /backup

자동 마운트 설정

/etc/fstab 파일에 자동 마운트를 설정합니다. 시스템 재부팅 후에도 자동으로 마운트되도록 설정합니다.

root # vi /etc/fstab
/dev/testvg/datalv   /data   ext4   defaults   0 0
/dev/testvg/backuplv /backup ext4   defaults   0 0

변경 후 mount -a 명령어로 fstab 설정을 적용합니다.


위의 실습 과정을 통해 리눅스에서 LVM을 구성하고, 논리적 볼륨을 생성하여 파일 시스템을 마운트하는 방법을 설명했습니다.

이 과정은 리눅스 시스템에서 디스크를 유연하게 관리하고, 필요에 따라 용량을 확장하거나 축소할 수 있는 강력한 방법을 제공합니다.


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

반응형
반응형

LAN(Local Area Network)이란?

LAN근거리 통신망을 의미합니다.

이는 보통 같은 건물, 캠퍼스 또는 한정된 지역 내의 네트워크를 가리킬 때 사용됩니다.

예를 들어, 집이나 회사에서 컴퓨터들이 동일한 네트워크 내에서 서로 연결되어 있는 경우, 이들은 모두 하나의 LAN에 속합니다.

LAN의 기본 특징

  1. 공유된 자원: LAN은 네트워크 내의 컴퓨터들이 자원(파일, 프린터 등)을 공유할 수 있도록 지원합니다.
  2. 속도와 범위: LAN은 속도가 빠르고, 물리적으로 제한된 범위(대개 100m 이내)에서 운영됩니다. 이는 근거리에서의 빠른 데이터 전송이 가능하게 만듭니다.
  3. IP 대역과 서브넷: 동일한 IP 대역 서브넷 마스크를 사용하는 네트워크 내의 기기들이 모두 LAN에 속합니다. 즉, IP 주소가 같거나 비슷한 범위에 속하는 컴퓨터들이 LAN 내에서 서로 통신할 수 있습니다.

LAN을 이해하기 위해서는 서브넷 마스크에 대한 이해가 필요합니다.

이는 네트워크의 구간을 나누는 기준으로, 각 컴퓨터가 같은 서브넷에 있을 때만 서로 통신할 수 있음을 의미합니다.

(서브넷, IP, MAC 주소에 대한 더 자세한 설명은 아래 링크에서 확인하실 수 있습니다.)

서브넷 마스크와 서브넷팅에 대한 설명 (https://jdcyber.tistory.com/51)

 

서브넷 마스크, 서브넷, 서브넷팅, 프리픽스 란? (쉬운 설명, 개념, 정리, 계산법)

서브넷 마스크 서브넷 마스크는 서브넷을 만들 때 사용되는 것으로 서브넷을 네트워크 아이디와 호스트 아이디로 분리하는 역할을 합니다. 서브넷 마스크(subnet mask)는 32비트의 숫자로 ‘0’의

jdcyber.tistory.com

IP 주소와 MAC 주소의 관계에 대한 설명 (https://jdcyber.tistory.com/27)

 

iP 주소란 무엇일까? (쉬운 설명, 개념, 정의, 호스트 아이디, 네트워크 아이디, 서브넷 마스크)

iP 주소란 무엇인가요? 정답은 컴퓨터마다 가지고 있는 주소 즉 이름입니다. 192.168.123.132 위와 같은 형태의 아이피 주소를 많이 보셨을겁니다. 위와 같이 A컴퓨터 너의 이름은 오늘부터 192.168.123.1

jdcyber.tistory.com

 

ARP (Address Resolution Protocol)란?

ARP주소 확인 프로토콜로, IP 주소MAC 주소로 변환하는 데 사용됩니다.

LAN 내에서는 컴퓨터들이 서로 MAC 주소를 사용해 물리적으로 데이터를 주고받습니다.

하지만 사람이 MAC 주소를 기억하기는 어렵기 때문에, 각 컴퓨터는 IP 주소를 사용하여 다른 컴퓨터와 통신하려고 합니다.

그렇다면 IP 주소MAC 주소는 어떻게 연결될까요?

바로 ARP가 그 역할을 합니다.

ARP의 작동 방식

  1. ARP 요청: 한 컴퓨터가 네트워크에서 다른 컴퓨터와 통신하려고 할 때, 먼저 ARP 요청을 보냅니다. 이 요청은 "이 IP 주소를 가진 컴퓨터의 MAC 주소를 알려주세요"라는 내용입니다.
  2. ARP 응답: 요청을 받은 컴퓨터는 자신의 MAC 주소를 포함한 ARP 응답을 보냅니다.
  3. ARP 테이블: 이를 통해 ARP 요청을 보낸 컴퓨터는 IP와 MAC 주소가 매칭된 정보를 ARP 테이블에 저장해 놓고, 이후 같은 IP로 통신할 때 ARP 요청을 반복하지 않아도 됩니다.

ARP의 중요성

  • 통신의 핵심: LAN 내에서 데이터는 항상 MAC 주소를 통해 전송됩니다. 따라서 ARP는 네트워크 상의 장치들이 서로 소통할 수 있도록 해주는 중요한 역할을 합니다.
  • 네트워크 관리: 네트워크 관리자들은 ARP 테이블을 통해 어떤 IP가 어떤 MAC 주소에 연결되어 있는지 확인할 수 있어, 네트워크 트러블슈팅이나 보안 관리에 유용하게 활용됩니다.

LAN과 ARP의 관계

 

LAN 내에서 각 컴퓨터는 동일한 서브넷을 공유하고, 이를 통해 서로 직접 통신할 수 있습니다.

이 통신 과정에서 ARP가 필수적인 역할을 합니다.

ARP는 IP 주소MAC 주소 간의 연결을 담당하여, 네트워크 상에서 MAC 주소를 기준으로 데이터를 정확히 전송할 수 있도록 해줍니다.

  1. LAN에서는 IP 주소가 아닌 MAC 주소로 데이터가 전달됩니다. 따라서 IP 주소MAC 주소로 변환되어야 하고, 이 과정에서 ARP가 사용됩니다.
  2. 네트워크 내에서 ARP를 사용하여 IP 주소MAC 주소를 매칭시킴으로써, 컴퓨터들은 서로 MAC 주소를 통해 데이터를 주고받을 수 있습니다.

 


LAN(Local Area Network)은 근거리 네트워크로, 동일한 IP 대역서브넷 마스크를 사용하는 컴퓨터들이 서로 통신할 수 있게 해주는 네트워크입니다.

이 네트워크 내에서 ARP(주소 확인 프로토콜)는 IP 주소MAC 주소로 변환하여, 컴퓨터들이 실제로 데이터를 주고받을 수 있게 하는 중요한 역할을 합니다.

이처럼, LANARP는 네트워크 통신의 기본이 되는 중요한 개념입니다.

이 두 개념이 제대로 이해되면, 네트워크 설계와 문제 해결 시 큰 도움이 될 것입니다.

(더 자세한 내용은 서브넷, IP 주소MAC 주소에 대한 다른 글에서 확인해 주세요.)

https://jdcyber.tistory.com/26

 

MAC 주소? iP 주소? 무슨 차이지? (쉬운 설명, 개념, 정의)

Mac 주소? IP 주소? iP 주소, MAC 주소.. 저희가 IT 업계로 들어오거나 인터넷 통신 혹은 게임을 할 때에도 간간히 들어봤던 이름일 겁니다. 여러분은 무엇인지 둘의 차이는 무엇인지 알고 계신가요?

jdcyber.tistory.com

 


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

이웃 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형
반응형
 
리눅스의 아이노드 (i-node)


아이노드(i-node)는 리눅스 파일 시스템에서 사용되는 데이터 구조입니다.

간단히 말하면, 파일에 대한 중요한 정보를 담고 있는 "주민등록증" 같은 역할을 합니다.

이 아이노드는 파일이 실제로 어디에 저장되어 있는지, 파일의 크기, 수정 시간 등 파일에 관한 다양한 정보를 관리합니다.

 
아이노드는 무엇을 관리할까요?

아이노드는 파일에 대한 중요한 정보를 포함하고 있습니다.

이 정보는 다음과 같습니다:

  • 파일 소유권과 접근 권한: 이 파일을 누가 소유하고, 어떤 권한을 가지고 있는지.
  • 파일 내용이 저장된 물리적 주소: 파일의 데이터가 실제로 어디에 위치하는지.
  • 파일의 링크 수: 파일을 참조하는 링크가 몇 개 있는지.
  • 파일의 크기: 파일이 차지하는 크기.
  • 파일 생성 시간, 최근 사용 시간, 최근 수정 시간: 파일이 언제 만들어졌고, 언제 마지막으로 사용되었는지, 수정되었는지에 대한 정보.
  • 아이노드의 최근 수정 시간: 아이노드 자체가 수정된 시간.

이 정보들은 파일 시스템에서 파일이 어떻게 저장되고 관리되는지에 대한 중요한 정보를 제공합니다.

아이노드는 어떻게 구성될까요?

아이노드는 64바이트 크기의 표로, 파일에 대한 모든 정보를 담고 있습니다.

그리고 이 아이노드들은 아이노드 블록에 저장되며, 전체 디스크의 약 1% 정도를 차지합니다.

파일이나 디렉토리가 생성되면, 해당 파일을 관리할 아이노드가 만들어지고, 이 아이노드는 아이노드 테이블에 등록되어 관리됩니다.

- 아이노드(inode): 파일이나 디렉토리의 중요한 정보를 담고 있는 64바이트 크기의 데이터 구조입니다.
- 아이노드 테이블(inode table): 시스템 내의 모든 파일과 디렉토리의 아이노드를 관리하는 표입니다.
- 아이노드 번호(inumber): 아이노드가 아이노드 테이블에서 고유하게 등록된 번호입니다.

아이노드 테이블의 역할

아이노드 테이블은 파일 시스템에서 파일이나 디렉토리들이 어디에 저장되고 있는지 추적하는 역할을 합니다. 파일이나 디렉토리가 생성되면, 아이노드 번호는 i-list라는 표에 등록되고, 이 번호를 통해 해당 파일에 대한 정보를 빠르게 찾을 수 있습니다.


이번 시간에는 아이노드에 대해 살펴보았습니다.

다음 시간에는 아이노드와 관련된 심볼릭 링크(소프트링크)와 하드링크에 대해 알아보겠습니다.

이를 통해 파일의 다양한 참조 방식에 대해서도 더 깊이 이해할 수 있을 것입니다.

https://jdcyber.tistory.com/86

 

리눅스 파일 링크 완벽 가이드: 하드링크와 소프트링크의 차이점

하드링크 (Hard Link) 하드링크는 원본 파일과 동일한 데이터를 가리키는 또 다른 이름입니다.원본 파일과 하드링크가 같은 아이노드 번호를 가집니다. 즉, 이 두 파일은 사실상 같은 파일입니다.

jdcyber.tistory.com


궁금하신 사항은 댓글에 남겨주세요

댓글에 남겨주신 내용

추후 정리해서 올려드리겠습니다

구독 신청하시면 업로드 시 알려드릴게요!

-

조금이라도 도움이 되셨다면

공감&댓글 부탁드리겠습니다

감사합니다!

 
반응형

+ Recent posts