반응형

제로트러스트
아무것도 믿지말고 항상 검증하라

제로트러스트 Zero Trust

"아무것도 신뢰하지 마라"

 

제로 트러스트(Zero Trust)는 현대 IT 보안 분야에서 중요한 개념으로,

"아무것도 신뢰하지 마라"는 원칙을 가지고 있습니다.

이는 인터넷상에서 정보를 주고받는 모든 행위에 대해 근본적으로 의심하고,

모든 접근을 검증하는 보안 접근 방식을 말합니다.

 

예를 들어, 크x 브라우저, 카카x 메신저, 알x 백신 등의 소프트웨어를 다운로드하고 사용할 때,

제로 트러스트 접근법은 이러한 애플리케이션들이 안전하다고 가정하지 않고,

그들의 보안 수준을 지속적으로 검증하고 모니터링하는 것을 의미합니다.


제로 트러스트의 등장 배경

 

전통적인 보안 모델은 내부 네트워크를 신뢰하고 외부를 불신하는 방식으로 구성되어 있었습니다.

이 모델은 방화벽과 가상 사설망(VPN)을 중심으로 하여,

내부 네트워크에 대한 접근을 기본적으로 신뢰했습니다.

하지만 클라우드 컴퓨팅, 모바일 장치, IoT 기기의 대중화로 인해

보안 환경이 변화하면서 이러한 전통적인 접근 방식의 한계가 드러났습니다.

제로 트러스트 모델은 이러한 변화에 대응하여 등장했습니다.

 


제로 트러스트의 핵심 원칙

  1. 최소 권한 (Least Privilege): 사용자는 필요한 최소한의 권한만을 부여받으며, 이를 통해 잠재적인 위협으로부터의 공격을 방지합니다.
  2. 인증 및 접근 제어 (Authentication and Access Control): 모든 사용자와 장치는 인증을 거쳐야 하며, 식별과 권한 검증이 이루어집니다.
  3. 네트워크 분할 (Network Segmentation): 네트워크는 보안 영역으로 세분화되며, 각 영역은 다른 영역과 격리됩니다.
  4. 다중 요인 인증 (Multi-Factor Authentication): 단일 인증 요소만으로는 부족하므로, 추가적인 보안 계층을 위해 다중 요인 인증을 사용합니다.
  5. 이상 징후 감지 (Anomaly Detection): 사용자 및 장치의 행위를 지속적으로 모니터링하여 이상 징후를 감지합니다.
  6. 암호화 (Encryption): 데이터의 안전한 전송과 저장을 위해 암호화를 사용합니다.

 

기존의 보안체제와 제로트러스트 보안의 차이점

구분 제로트러스트 보안 기존 보안 모델
신뢰 원칙 내부 및 외부 네트워크 모두를 기본적으로 불신 내부 네트워크를 신뢰하고 외부를 불신
접근 제어 지속적인 인증과 권한 검증 필요 일단 인증되면 네트워크 내부 자원에 대한 접근이 허용
네트워크 보안 네트워크 전체에 걸쳐 일관된 보안 정책 적용 주로 네트워크 경계에 중점을 둔 보안
인증 방법 다중 요인 인증(MFA) 및 동적 권한 부여 단일 요인 인증(예: 비밀번호)
보안 전략 최소 권한 원칙 및 지속적인 모니터링 전통적인 방어벽 및 안티바이러스에 의존
데이터 보호 모든 데이터 전송 및 저장에 대한 암호화 주로 중요한 데이터에만 암호화 적용
투명성 및 통제 높은 수준의 투명성 및 사용자 행동 분석 제한적인 통제 및 투명성
적응성 클라우드, 모바일, IoT 등 다양한 환경에 유연 주로 고정된 IT 환경에 적합
위협 대응 실시간 위협 탐지 및 대응 주로 과거의 위협 패턴에 기반한 대응

 


미국의 제로트러스트 보안 가이드라인

 

사이버보안 및 인프라보안국(CISA)은

2023년 4월 제로 트러스트 성숙도 모델(Zero Trust Maturity Model, ZTMM)의 업데이트 버전을 발표했습니다.

이 업데이트된 모델은 연방 기관들이 제로 트러스트 아키텍처로 전환하기 위한 종합적인 로드맵을 제공하며,

다섯 가지 주요 영역에 걸쳐 구현 지침을 제공합니다. 이 모델은 연방 기관뿐만 아니라

주, 지방, 부족, 영토 정부 및 민간 부문에서도 사용할 것을 권장합니다.

모델의 목적은 기관들이 시간이 지남에 따라 제로 트러스트 아키텍처의 최적화를 향해

소규모 개선을 할 수 있도록 하는 것입니다.

업데이트된 ZTMM의 핵심 초점은 데이터, 네트워크, 인프라에 대한 접근을 최소한으로 유지하고

그 접근의 정당성을 지속적으로 검증하는 것입니다.

새로운 성숙도 모델은 "초기(Initial)" 단계를 도입하고

전체적으로 네 단계의 성숙도(전통적, 초기, 고급, 최적)를 포함합니다.

각 단계에서 CISA는 제로 트러스트 아키텍처 구현을 위한 계획 및 결정을 고려할 때

고려해야 할 여러 새로운 기능을 추가하고 기존 기능을 업데이트했습니다.


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

Effective brainstorming

1. 서론

브레인스토밍의 정의

브레인스토밍은 창의적 아이디어를 자유롭게 발산하고 수집하는 과정입니다. 이 방법은 문제 해결, 아이디어 창출, 혁신적 사고를 촉진하기 위해 사용됩니다. 이 기법의 핵심은 비판 없이 다양한 아이디어를 자유롭게 제시하고, 이를 통해 새롭고 창의적인 해결책을 도출하는 것입니다.

역사적 배경 및 발전 과정

  1. 창시자 알렉스 오스본의 기여 (1939년대)
    • 브레인스토밍은 알렉스 오스본에 의해 1939년대에 처음 소개되었습니다.
      그는 광고 대행사 BBDO의 공동 설립자였으며, 기존의 회의 방식이 창의적 사고를 제한한다고 느꼈습니다.
    • 오스본은 창의성을 촉진하기 위해 '비판의 유예'와 '자유로운 사고의 흐름'을 강조했습니다.
      그의 접근 방식은 사람들이 아이디어를 자유롭게 공유하고, 비판 없이 서로의 생각을 확장할 수 있는 환경을 조성하는 데 중점을 두었습니다.
  2. 초기 적용 및 인기 (1940~1960년대)
    • 오스본의 아이디어는 기업과 조직에서 빠르게 채택되었습니다.
      특히, 기업들은 브레인스토밍을 새로운 제품 개발, 마케팅 전략, 조직 문제 해결 등에 활용하기 시작했습니다.
    • 그의 저서 "Your Creative Power" (1948년 출판)에서 오스본은 브레인스토밍 기법을 더 널리 알렸고, 이 책은 당시 많은 기업가와 교육자들에게 영향을 미쳤습니다.
  3. 브레인스토밍 기법의 발전 (1970~1990년대)
    • 1970년대와 1980년대에는 브레인스토밍 기법이 더욱 다양화되었습니다.
      이 기간 동안, 브레인스토밍은 단순히 아이디어 생성에 국한되지 않고, 복잡한 문제 해결과 의사결정 과정에도 통합되기 시작했습니다.
    • 이 시기에 브레인스토밍은 더 많은 분야와 조직으로 확산되었으며, 교육, 과학 연구, 공공 정책 수립 등에서도 적용되기 시작했습니다.
  4. 디지털 시대와 온라인 브레인스토밍 (2000년대 이후)
    • 인터넷과 디지털 기술의 발전은 브레인스토밍을 새로운 차원으로 이끌었습니다.
      온라인 협업 도구와 소프트웨어의 출현으로, 사람들은 지리적 제약 없이 아이디어를 공유하고 협력할 수 있게 되었습니다.
    • 이러한 디지털 도구들은 브레인스토밍 과정을 더욱 효율적이고 체계적으로 만들었으며, 더 넓은 범위의 참여자들과 실시간 피드백, 아이디어의 시각화 등을 가능하게 했습니다.

브레인스토밍의 중요성 및 목적

브레인스토밍은 창의적 사고를 자극하고, 다양한 관점을 통합함으로써 보다 포괄적이고 혁신적인 해결책을 찾는 데 중요한 역할을 합니다. 이 과정은 참가자들이 서로의 아이디어를 듣고 확장함으로써 생각의 한계를 넘어서게 하며, 문제 해결 및 프로젝트 기획에 있어 필수적인 도구가 됩니다. 또한, 이 과정은 팀워크와 협력을 증진시키고, 참가자들 사이의 의사소통과 이해를 높이는 데에도 기여합니다.


2. 브레인스토밍의 기본 원칙

브레인스토밍의 성공은 그것의 기본 원칙에 크게 의존합니다. 이러한 원칙들은 참가자들이 자유롭고 창의적인 사고를 촉진하며, 아이디어를 효과적으로 발전시키는 데 중요한 역할을 합니다.

수량 중시: 많은 아이디어 생성

  • 목적: 브레인스토밍의 첫 번째 목표는 가능한 한 많은 아이디어를 생성하는 것입니다. 수량이 중요한 이유는 단순히 많은 아이디어가 더 많은 선택지를 제공하기 때문이 아니라, 아이디어의 양이 많아질수록 품질도 상승할 가능성이 높다는 것입니다.
  • 실천 방법: 시간제한을 두고 참가자들이 가능한 한 많은 아이디어를 제시하도록 격려합니다. 이 과정에서 아이디어의 질보다는 양에 집중하고, 모든 아이디어를 기록합니다.

자유로운 사고: 창의적이고 비판적이지 않은 환경 조성

  • 목적: 브레인스토밍은 창의적 사고를 최대한 활용하기 위해 비판적인 분위기를 배제하는 것을 목표로 합니다. 이를 통해 참가자들이 더 자유롭고 혁신적인 아이디어를 제시할 수 있도록 합니다.
  • 실천 방법: 세션 중에는 모든 아이디어를 긍정적으로 받아들이며, 비판이나 평가는 나중 단계로 미룹니다. 또한, '어떤 아이디어도 너무 이상하거나 불가능하지 않다'는 분위기를 조성합니다.

상호 작용: 아이디어 공유 및 확장

  • 목적: 참가자들 사이의 상호 작용을 통해 아이디어가 확장되고, 다양한 관점이 통합됩니다. 이 과정에서 아이디어는 더욱 성숙하고 구체적으로 발전할 수 있습니다.
  • 실천 방법: 참가자들이 서로의 아이디어를 듣고, 그것에 기반하여 새로운 아이디어를 추가하거나 개선하는 것을 장려합니다. 이를 위해, 참가자들이 서로의 생각을 존중하고 경청하는 문화를 조성합니다.

비판 금지: 초기 단계에서는 비판적인 평가 지양

  • 목적: 초기 단계에서의 비판이나 부정적인 평가는 창의적 사고를 저해하고, 아이디어 발산을 억제할 수 있습니다. 따라서, 비판은 브레인스토밍의 후반부로 미루어, 초기에는 모든 아이디어를 수용하는 환경을 조성합니다.
  • 실천 방법: 모더레이터나 리더는 참가자들이 비판적인 의견을 표현하는 것을 삼가도록 안내합니다. 비판은 아이디어 평가 및 선별 단계에서 적절히 이루어집니다.

3. 브레인스토밍의 다양한 기법

브레인스토밍은 다양한 형태와 기법으로 실행될 수 있으며, 각각은 특정 상황이나 목적에 맞게 최적화될 수 있습니다. 이 섹션에서는 주요 브레인스토밍 기법들을 탐구합니다.

전통적 브레인스토밍

  • 개요: 가장 기본적인 형태로, 참가자들이 한 공간에 모여 아이디어를 자유롭게 공유합니다.
  • 적용: 주로 단순하고 직관적인 문제 해결이 필요할 때 사용됩니다.
  • 방법론: 한 사람이 아이디어를 말하고, 다른 참가자들이 이를 듣고 추가적인 아이디어를 제시합니다.

온라인 브레인스토밍

  • 개요: 디지털 플랫폼을 사용하여 원격으로 진행되는 브레인스토밍 방식입니다.
  • 적용: 지리적으로 분산된 팀이나 원격 작업 환경에서 유용합니다.
  • 방법론: 온라인 채팅, 비디오 컨퍼런스, 공유 문서 등을 통해 아이디어를 교환합니다.

역 브레인스토밍 (Reverse Brainstorming)

  • 개요: 문제를 반대의 관점에서 접근하여 해결책을 찾는 방법입니다.
  • 적용: 전통적인 해결책이 효과적이지 않은 복잡한 문제에 적합합니다.
  • 방법론: '문제를 어떻게 더 악화시킬 수 있을까?'와 같은 질문을 던져, 그 반대 방향의 해결책을 탐색합니다.

그룹 브레인스토밍 및 개별 브레인스토밍

  • 개요: 그룹 브레인스토밍은 여러 사람이 함께 아이디어를 공유하는 방식이며, 개별 브레인스토밍은 혼자서 아이디어를 생각하는 방식입니다.
  • 적용: 그룹 브레인스토밍은 다양한 관점을 필요로 하는 상황에, 개별 브레인스토밍은 독립적인 사고가 중요한 상황에 적합합니다.
  • 방법론: 그룹은 함께 논의하고, 개별은 혼자서 아이디어를 발전시키며, 나중에 이를 통합합니다.

SCAMPER 기법

  • 개요: SCAMPER는 창의적 사고를 촉진하기 위한 질문 기반 방법론입니다. 이 기법은 아이디어를 시스템적으로 분석하고 변형하는 데 사용됩니다.
  • 적용: 기존 아이디어나 제품을 개선하거나 새로운 관점을 찾을 때 유용합니다.
  • 방법론: SCAMPER는 대체(Substitute), 결합(Combine), 수정(Modify), 목적 변경(Put to another use), 제거(Eliminate), 역방향(Reverse), 축소 혹은 확장(Enlarge/Minimize)의 약어로, 각 단어는 특정한 질문을 제시합니다.

4. 브레인스토밍의 효과적인 진행 방법

브레인스토밍 세션의 성공은 그 준비와 실행 방법에 크게 의존합니다. 아래는 브레인스토밍을 효과적으로 진행하기 위한 단계별 접근 방식입니다.

준비 과정

  1. 목표 설정
    • 세션의 목적과 기대 결과를 명확히 합니다. 이는 참가자들이 집중할 수 있게 하고, 세션의 효율성을 높이는 데 중요합니다.
    • 목표는 구체적이고, 측정 가능하며, 실현 가능해야 합니다.
  2. 참가자 선정
    • 다양한 전문 지식과 배경을 가진 참가자들을 선정합니다. 이는 다양한 관점과 창의적인 아이디어의 풍부함을 증진시킵니다.
    • 너무 많은 참가자는 효율성을 저해할 수 있으므로, 일반적으로 5-8명의 참가자가 적합합니다.
  3. 환경 준비
    • 창의적 사고를 촉진할 수 있는 편안하고 자유로운 환경을 조성합니다.
    • 필요한 자료와 도구 (화이트보드, 포스트잇, 마커 등)를 준비합니다.
    • 온라인 브레인스토밍의 경우, 적절한 디지털 도구와 플랫폼을 설정합니다.

진행 과정

  1. 아이디어 수집
    • 모든 아이디어를 기록합니다. 이는 참가자들이 자유롭게 생각을 공유하도록 장려합니다.
    • 아이디어는 비판 없이 수용되어야 합니다. 이 단계에서는 양보다 질이 중요합니다.
  2. 정리 및 분류
    • 수집된 아이디어를 주제나 카테고리별로 정리합니다. 이는 아이디어를 분석하고 구조화하는 데 도움이 됩니다.
    • 아이디어 간의 연관성을 탐색하고, 유사한 아이디어를 그룹화합니다.

마무리 과정

  1. 아이디어 평가
    • 정리된 아이디어들을 평가하여 실행 가능하고 유망한 아이디어를 선별합니다. 이 때, 구체성, 혁신성, 실행 가능성 등을 기준으로 합니다.
    • 평가는 구조화된 방식으로 진행되며, 가능한 한 객관적이어야 합니다.
  2. 실행 계획 수립
    • 선정된 아이디어에 대해 구체적인 실행 계획을 수립합니다. 이는 아이디어가 실제로 구현되고 결과를 낳도록 하는 핵심 단계입니다.
    • 계획은 단계별 목표, 책임자, 일정, 필요 자원 등을 포함해야 합니다

5. 브레인스토밍의 성공 사례

브레인스토밍은 많은 조직과 프로젝트에서 혁신과 성공을 이끌어낸 중요한 요소로 작용해왔습니다. 이 섹션에서는 브레인스토밍이 실제로 어떻게 효과적인 결과를 낳았는지를 보여주는 성공 사례들을 살펴보겠습니다.

기업 사례 연구

  1. 테크놀로지 스타트업의 제품 개발
    • 한 신흥 기술 스타트업은 브레인스토밍을 통해 새로운 모바일 애플리케이션의 기능을 개발했습니다.
    • 이 회사는 다양한 배경을 가진 직원들을 모아 여러 창의적 아이디어를 도출했고, 이를 바탕으로 시장에서 차별화된 제품을 출시할 수 있었습니다.
  2. 대형 소매업체의 마케팅 전략
    • 대형 소매업체가 브레인스토밍 세션을 통해 새로운 마케팅 캠페인을 개발했습니다.
    • 이 세션은 다양한 부서의 팀원들이 참여하여, 전통적인 광고 방식을 넘어서는 독창적인 아이디어를 제안했고, 이를 통해 큰 성공을 거두었습니다.

혁신적인 제품 개발 사례

  1. 가전 제품 회사의 혁신
    • 한 가전 제품 회사는 브레인스토밍을 통해 새로운 디자인의 주방 기기를 개발했습니다.
    • 이 과정에서 참가자들은 전통적인 주방 기기의 기능과 디자인을 재해석하여, 사용자 경험을 향상시킬 수 있는 혁신적인 아이디어를 도출했습니다.

조직 문화 개선 사례

  1. 비영리 조직의 문화 개선
    • 비영리 조직은 내부 커뮤니케이션과 팀워크를 강화하기 위해 브레인스토밍을 활용했습니다.
    • 이 세션에서는 조직 문화를 개선하고, 직원들 간의 협업을 촉진하는 다양한 아이디어가 제시되었습니다. 결과적으로, 조직의 효율성과 직원 만족도가 크게 향상되었습니다.

6. 브레인스토밍의 한계 및 극복 방안

브레인스토밍은 효과적인 아이디어 발굴 방법이지만, 몇 가지 한계점을 가지고 있으며, 이를 인식하고 극복하는 것이 중요합니다.

한계: 아이디어의 질보다 양에 중점

  • 문제: 수량 위주의 접근은 때때로 표면적이거나 실현 불가능한 아이디어를 초래할 수 있습니다.
  • 극복 방안: 아이디어의 수집 단계 이후에 질적 평가 단계를 두어 아이디어를 세심하게 검토하고 정제합니다. 이를 통해 실용적이고 구현 가능한 아이디어만을 선별합니다.

한계: 그룹사고(Groupthink)

  • 문제: 참가자들이 동조하거나, 특정 의견에 치우치는 경향이 있을 수 있습니다.
  • 극복 방안: 다양한 배경을 가진 참가자들을 포함시켜 다양한 시각을 확보하고, 독립적인 사고를 장려합니다. 또한, 아이디어를 익명으로 제출하도록 하여 개인의 영향력을 줄입니다.

한계: 참가자 간의 동등하지 않은 참여

  • 문제: 일부 참가자들이 지배적으로 많은 아이디어를 제시하고, 다른 참가자들은 상대적으로 적게 기여할 수 있습니다.
  • 극복 방안: 세션 리더가 모든 참가자들에게 균등한 기회를 제공하고, 조용한 참가자들에게도 의견을 개진할 수 있는 기회를 주도록 합니다.

한계: 아이디어의 실행 단계로의 이행 부족

  • 문제: 좋은 아이디어가 도출되었어도 이를 실행으로 옮기는 데 실패할 수 있습니다.
  • 극복 방안: 브레인스토밍 후에 실행 가능한 아이디어를 선별하고, 구체적인 계획과 일정을 수립하여 실행 단계로의 전환을 보장합니다.

한계: 비효율적인 시간 관리

  • 문제: 브레인스토밍이 지나치게 장시간 진행되면 참가자들의 피로도가 증가하고 생산성이 감소할 수 있습니다.
  • 극복 방안: 시간 제한을 설정하여 세션을 효율적으로 관리하고, 필요시 여러 세션으로 분할하여 진행합니다.

7. 결론 및 미래 전망

브레인스토밍은 조직 내 창의적 사고와 혁신을 촉진하는 중요한 도구로 자리 잡았습니다. 이 방법은 다양한 분야에서 유용하게 활용되며, 지속적인 개선과 발전을 통해 더욱 효과적인 결과를 낳을 수 있습니다.

결론

  • 브레인스토밍은 창의적 아이디어의 발굴과 문제 해결에 효과적인 방법입니다.
  • 다양한 기법과 접근 방식을 통해 다양한 상황과 문제에 맞게 적용될 수 있습니다.
  • 한계점을 인식하고 극복하는 전략을 통해 그 효과를 극대화할 수 있습니다.

미래 전망

  • 디지털 기술과 온라인 협업 도구의 발전은 브레인스토밍을 더욱 효율적이고 접근 가능하게 만들 것입니다.
  • 다양성과 포용성에 대한 인식 증가는 브레인스토밍의 창의성과 효과를 더욱 증진시킬 것입니다.
  • 브레인스토밍은 앞으로도 조직의 혁신과 성장에 핵심적인 역할을 할 것으로 기대됩니다.

8. 참고 문헌

Osborn, Alex F. "Your Creative Power." (1948), "The Art of Innovation: Lessons in Creativity from IDEO, America's Leading Design Firm," by Tom Kelley (2001), "Groupthink: Psychological Studies of Policy Decisions and Fiascoes," by Irving L. Janis (1982), "Creativity, Inc.: Overcoming the Unseen Forces That Stand in the Way of True Inspiration," by Ed Catmull (2014), PB Paulus, JB Kenworthy "Effective brainstorming"

반응형
반응형

ACL (Access Control List) 정의 및 개념

 

ACL (Access Control List) 은 네트워크 보안의 핵심 구성 요소로,

네트워크 장비에서 데이터 패킷의 흐름을 제어하는 데 사용되는 일련의 지침입니다.

이 규칙들은 특정 조건에 따라 네트워크 트래픽을 허용하거나 차단합니다.

ACL은 주로 라우터와 스위치와 같은 네트워크 장비에 구성되며,

네트워크 보안을 강화하고 데이터 흐름을 관리하는 데 중요한 역할을 합니다.

 

특징 표준 ACL (Standard ACL) 확장 ACL (Extended ACL)
기준 소스 IP 주소 소스 및 목적지 IP 주소, 프로토콜, 포트 번호
주요 기능 특정 소스 IP에서 오는 트래픽 제어 보다 세밀한 트래픽 제어 (프로토콜, 포트 포함)
사용 사례 네트워크로 들어오는 특정 호스트 차단 특정 서비스(예: SSH, HTTP) 접근 제어

 

ACL 구성 시 고려해야 할 사항
네트워크 요구 사항 파악: ACL을 구성하기 전에, 네트워크의 요구 사항과 목적을 명확히 이해해야 합니다.
어떤 트래픽을 차단하거나 허용해야 하는지, 그리고 그 이유에 대해 정확히 알고 있어야 합니다.

최소 권한 원칙: 네트워크 보안에서 항상 최소 권한 원칙을 따르는 것이 중요합니다.
즉, 필요한 최소한의 트래픽만 허용하고, 나머지는 기본적으로 차단하는 방식으로 ACL을 구성합니다.

ACL 순서의 중요성: ACL 규칙은 순차적으로 처리되므로, 규칙의 순서가 매우 중요합니다.
더 구체적인 규칙을 먼저 배치하고, 더 일반적인 규칙을 나중에 배치해야 합니다.

테스트 및 검증: ACL을 적용하기 전에는 반드시 테스트를 거쳐야 합니다.
잘못 구성된 ACL은 네트워크 성능에 부정적인 영향을 미칠 수 있으며, 심지어 중요한 네트워크 트래픽을 차단할 수도 있습니다.

문서화 및 관리: 구성된 ACL은 문서화하여 관리하는 것이 좋습니다.
이는 나중에 네트워크 변경이나 문제 해결 시 유용하게 사용될 수 있습니다.

 

ACL (Access Control List) 설정 예제

 

시나리오
네트워크에서 특정 호스트가 인터넷에 접근하는 것을 차단하고 싶다고 가정합시다. 이를 위해 표준 ACL을 사용할 수 있습니다.

 

  1. 표준 ACL 구성:
    • access-list 1 deny ip 192.168.1.100 : IP 주소가 192.168.1.100인 호스트의 모든 트래픽을 차단합니다.
    • access-list 1 permit any : 위 조건을 제외한 모든 트래픽을 허용합니다.
  2. 라우터 인터페이스에 ACL 적용:
    • interface GigabitEthernet0/1
    • ip access-group 1 out : GigabitEthernet0/1 인터페이스에서 나가는 트래픽에 대해 ACL 1을 적용합니다.

확장 ACL 구성 예제:

외부 네트워크에서 특정 서버로의 SSH 접근을 차단하고자 할 때 확장 ACL을 사용할 수 있습니다.

  1. 확장 ACL 구성:
    • access-list 100 deny tcp any host 192.168.1.200 eq 22 : 모든 출발지에서 IP 주소가 192.168.1.200인 서버로의 TCP 포트 22(SSH) 접근을 차단합니다.
    • access-list 100 permit ip any any : 위 조건을 제외한 모든 트래픽을 허용합니다.
  2. 라우터 인터페이스에 ACL 적용:
    • interface GigabitEthernet0/0
    • ip access-group 100 in : GigabitEthernet0/0 인터페이스로 들어오는 트래픽에 대해 ACL 100을 적용합니다.
ACL 구성과 관련된 일반적인 실수 및 해결 방법

1. 규칙 순서 실수:
실수: ACL 규칙은 순차적으로 처리되므로, 순서를 잘못 설정하면 트래픽이 의도하지 않은 방식으로 필터링될 수 있습니다.
해결 방법: 규칙을 추가하기 전에, 각 규칙이 어떻게 트래픽을 처리할지 철저히 계획하고, 더 구체적인 규칙을 먼저 배치합니다.

2. 너무 광범위한 차단 규칙 설정:
실수: 너무 광범위한 트래픽을 차단하는 규칙을 설정함으로써 필요한 트래픽까지 차단하는 경우가 있습니다.
해결 방법: 필요한 트래픽과 차단해야 할 트래픽을 명확히 구분하고, 트래픽을 차단하기 전에 그 영향을 면밀히 고려합니다.

3. 테스트와 모니터링의 부족:
실수: 새로운 ACL을 적용한 후 적절한 테스트와 모니터링을 하지 않아 예상치 못한 문제가 발생하는 경우가 있습니다.
해결 방법: ACL을 네트워크에 적용한 후, 즉시 테스트를 실시하고 정기적으로 네트워크 트래픽을 모니터링하여, 필요한 조정을 즉시 수행합니다.

4. 문서화 및 업데이트 미흡:
실수: 구성된 ACL의 문서화를 소홀히 하여 나중에 설정을 이해하거나 변경하기 어려운 경우가 있습니다.
해결 방법: 모든 ACL 설정을 문서화하고, 변경사항이 있을 때마다 이를 업데이트하여 관리합니다.

ACL은 네트워크의 보안과 데이터 흐름 관리에 매우 중요합니다.

올바르게 구성되고 적용된 ACL은 네트워크를 보호하고,

불필요한 트래픽으로 인한 네트워크 성능 저하를 방지하는 데 도움이 됩니다.

하지만, 잘못 구성된 ACL은 네트워크의 정상적인 운영을 방해할 수 있으므로,

신중한 계획과 테스트가 필요합니다.

 

아래는 이해를 돕기 위하여 실습 내용을 담았으니 참고 해주세요

https://jdcyber.tistory.com/16

 

ACL 트래픽 필터링 실습 #1 (예제, 연습, 네트워크, 보안, 패킷 트레이서)

ACL 트래픽 필터링 실습 이 실습은 확장 ACL(Extended Access Control List)을 사용하여 네트워크 보안을 강화하는 방법에 대해 다룹니다. 확장 ACL은 IP 헤더의 출발지 주소, 목적지 주소, 프로토콜 등을 검

jdcyber.tistory.com

 

ACL 트래픽 필터링 실습 #2

ACL 트래픽 필터링 실습 #3



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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

 

반응형
반응형
ACL 트래픽 필터링 실습

 

이 실습은 확장 ACL(Extended Access Control List)을 사용하여 네트워크 보안을 강화하는 방법에 대해 다룹니다.

확장 ACL은 IP 헤더의 출발지 주소, 목적지 주소, 프로토콜 등을 검사하여 패킷의 허용 또는 차단을 결정합니다.

 

ACL 접근 제어 목록

(Access Control List)

허가되지 않은 이용자가 라우터나 네트워크의 특정 자원에 접근하려고 하는 것을 차단하는 기능입니다.

 

ACL에 대한 자세한 개념은 아래 글을 참고해 주세요!

https://jdcyber.tistory.com/17

 

ACL (Access Control List) 이란? ACL 구성 가이드: 네트워크 보안 강화를 위한 필수 지침 (쉬운 설명, 예

ACL (Access Control List) 정의 및 개념 ACL (Access Control List) 은 네트워크 보안의 핵심 구성 요소로, 네트워크 장비에서 데이터 패킷의 흐름을 제어하는 데 사용되는 일련의 지침입니다. 이 규칙들은 특

jdcyber.tistory.com

 

R1에서 조건에 맞게 Extended ACL를 구성해 봅시다.

(IP Header의 Source Address, Destination Address, Protocol 등을 검사하여 분류한 , 결과에 따라 패킷 출력을 결정)

조건
출발지 네트워크가 ‘13.13.30.0/24’인 트래픽이 내부 로컬 네트워크 ‘13.13.10.1’로 Telnet 접근을 차단하여라.
(목적: 이 규칙의 주요 목적은 내부 네트워크 '13.13.10.1'로의 무단 Telnet 접근을 차단하는 것입니다. Telnet 프로토콜은 암호화되지 않은 통신을 사용하기 때문에, 민감한 데이터가 노출될 위험이 있습니다. 따라서, 특정 출발지 네트워크 '13.13.30.0/24'에서 오는 Telnet 트래픽을 차단함으로써, 무단 접근과 데이터 유출을 방지하고 네트워크 보안을 강화합니다.)
명령어: access-list 110 deny tcp 13.13.30.0 0.0.0.255 host 13.13.10.1 eq 23

외부에서 내부 서버 ’13.13.10.100’으로 Ping이 되는 것을 차단하여라. 단, '13.13.10.100' 서버는 외부로 Ping이 되어야 한다.
(목적: 이 규칙은 외부에서 내부 서버 '13.13.10.100'으로의 Ping(즉, ICMP 'echo' 요청)을 차단하여, 서버가 네트워크 서비스 거부(DoS) 공격이나 다른 형태의 네트워크 공격에 노출되는 것을 방지합니다. 동시에, 서버가 외부로 Ping을 보낼 수 있도록 설정하여 네트워크 연결 상태를 확인할 수 있게 합니다.)
명령어: access-list 110 deny icmp any host 13.13.10.100 echo

출발지 네트워크가 ‘13.13.20.0/24’인 트래픽이 내부 로컬 웹서버 ‘13.13.10.100’으로 접근하는 것을 차단하여라.
목적: 이 설정은 '13.13.20.0/24' 네트워크에서 오는 트래픽이 내부 로컬 웹서버 '13.13.10.100'으로의 접근을 차단합니다. 이는 웹 서버를 무단 접근과 잠재적인 공격으로부터 보호하며, 웹 서버의 데이터 보안과 안정성을 유지하는 데 중요합니다.
명령어: access-list 110 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.100 eq 80

위에 조건을 제외한 나머지 트래픽은 허용한다.

 

위의 조건을 구성할 때에는 최대한 간결하게 ACL를 구성하며, ACL을 R1 Serial 1/0에 적용하여라.

명령어
conf t
(출발지 네트워크가 ‘13.13.30.0/24’인 트래픽이 내부 로컬 네트워크 ‘13.13.10.1’로 Telnet 접근을 차단)
access-list 110 deny tcp 13.13.30.0 0.0.0.255 host 13.13.10.1 eq 23

(외부에서 내부 서버 ’13.13.10.100’으로 Ping이 되는 것을 차단. 단, '13.13.10.100' 서버는 외부로 Ping 가능하도록 설정)
access-list 110 deny icmp any host 13.13.10.100 echo

(출발지 네트워크가 ‘13.13.20.0/24’인 트래픽이 내부 로컬 웹서버 ‘13.13.10.100’으로 접근하는 것을 차단)
access-list 110 deny tcp 13.13.20.0 0.0.0.255 host 13.13.10.100 eq 80

(위에 조건을 제외한 나머지 트래픽은 허용)
access-list 110 permit ip any any
!
(위의 조건을 구성할때에는 최대한 간결하게 ACL를 구성하며, ACL을 R1 Serial 1/0 에 적용)
int s1/0
ip access-group 110 in

 

확인
show ip access-lists

 

(해당 기능을 통해 아래 ICMP 스마트 공격을 방어할 수 있습니다.)

 

(ICMP 스마트 공격)
SA 13.13.10.100
DA 13.13.30.255

ICMP Echo-Reply
--------------------
SA 13.13.30.X
DA 13.13.10.100

규칙 번호 유형 출발지 주소 목적지 주소 프로토콜 포트 동작
110 Deny 13.13.30.0/24 13.13.10.1 TCP 23 Telnet 접근 차단
110 Deny Any 13.13.10.100 ICMP - 외부에서의 Ping 차단
110 Deny 13.13.20.0/24 13.13.10.100 TCP 80 웹 접근 차단
110 Permit Any Any IP - 모든 트래픽 허용
- Apply ACL - - - - R1 Serial 1/0 인터페이스에 적용

 

이 표는 각 ACL 규칙의 세부 사항을 명확하게 보여줍니다.

각 규칙은 특정 트래픽 유형을 차단하거나 허용하도록 설정되어 있으며,

마지막으로 이러한 규칙들이 R1 라우터의 Serial 1/0 인터페이스에 적용됩니다.


이 실습은 네트워크 보안을 강화하는 데 필수적인 ACL의 구성 및 적용 방법을 보여줍니다. 이를 통해 특정 네트워크의 접근을 제어하고, 민감한 자원을 보호할 수 있습니다. 또한, 위험한 네트워크 트래픽을 효과적으로 차단하여 네트워크의 안전성을 유지할 수 있습니다.


ACL이란?

ACL 트래픽 필터링 실습 #1

ACL 트래픽 필터링 실습 #2

ACL 트래픽 필터링 실습 #3




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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

프로그래밍 언어

수많은 프로그래밍 언어
도대체 뭘 먼저 배워야 해?

 

개발을 처음 배우거나 보안을 배우거나 iT업계로 들어올 때

수많은 컴퓨터 언어를 보고 멘붕이 오실 겁니다.

 

저걸 다 해야 하나..?

 

어떤 언어를 먼저 어떻게 배워야 하지?

 

오늘은 이 고민을 좀 덜어드리고

나에게 맞는 컴퓨터 언어는 어떤 것이 있을지 살펴보도록 하겠습니다.

 

먼저 각 언어들이 어떤 곳에서 쓰이고 있으며

내가 하고자 하는 일은 어떤 언어와 가장 잘 맞는지 알아보기 위해

프로그래밍 언어에 대해 간단히 알아보도록 하겠습니다.


나에게 맞는 스타일은 어떤 스타일일까?

프로그래밍 독학

 

프로그래밍 언어의 종류와 특성 그리고

나에게 맞는지를 확인하기 전에

절차 지향과 객체지향이라는 걸 알고 가면

이해하기 조금 수월할 것입니다.


절차 지향
절차 지향 프로그래밍에 쓰이는 언어를
절차 지향 언어라고 하며,
각 개체를 순차적으로 처리하여 프로그램 전체가
유기적으로 연결되어야 합니다.
자동차 제조를 예로 들자면, 자동차는 엔진, 차체,
핸들, 의자, 바퀴 순으로
차례대로 만들어져야 하며 서로 분리되어도 안 되고, 순서가 틀려도 안 됩니다.
대표적인 예로는 C 언어가 있습니다.

Chat GPT는 이렇게 설명합니다.
객체지향 언어 (OOP):
  • "객체" 중심: 여기서 객체는 데이터(속성)와 이 데이터를 처리하는 함수(메서드)를 포함하는 단위입니다.
  • 재사용성과 확장성: 코드를 재사용하기 쉽고, 시스템을 확장하거나 수정하기 쉽습니다. 예를 들어, 클래스(객체를 정의하는 틀)를 사용하여 비슷한 객체를 쉽게 생성할 수 있습니다.
  • 예시 언어: Java, Python, C++
객체지향
객체지향언어란 프로그램을 다수의 객체로 만들고,
이들끼리 서로 상호작용하도록 만드는
프로그래밍 언어입니다.
먼저 객체를 예를 들자면, 컴퓨터에 쓰이는 모든 부품(모니터, 키보드, 스피커 등)과
컴퓨터가 제공하는 모든 기능
(화면이 켜짐, 소리가 남 등)이 전부 객체입니다.
각 컴퓨터의 모든 부품 (객체)를
적절히 연결하고 조립해서
컴퓨터가 제대로 작동하도록 만드는 것이라고
볼 수 있습니다.

우리가 익히 들어 알고 있는
자바, c++, 파이썬 이외에도
최초의 객체지향언어인 시뮬라67,
비주얼 베이직 닷넷, 액션스크립트, 스위프트 등
그 종류는 다양합니다.

Chat GPT는 이렇게 설명합니다.
절차지향 언어:
  • 절차/함수 중심: 프로그램은 함수의 집합으로 구성되며, 각 함수는 일련의 연산을 수행합니다.
  • 순차적 실행: 프로그램은 코드가 작성된 순서대로 위에서 아래로 실행됩니다.
  • 효율성: 일반적으로 시스템 자원을 효율적으로 사용하며, 실시간 시스템이나 하드웨어에 가까운 프로그래밍에 적합합니다.
  • 예시 언어: C, Fortran, Pascal

 

(아주 간단히 아래 그림으로 대충 이해하시고 읽어주시기 바랍니다)

절차지향


그렇다면 대표적으로 추려본 각 프로그래밍 언어의 특징은 무엇이며 스타일에 따른 언어 선택은 어떻게 해야 할지 매칭해 보았습니다.
프로그래밍 언어 패러다임 개발자 성향 스타일
Java 객체지향 객체지향적 사고를 선호하는 개발자, 강한 타입 시스템과 긴밀한 메모리 관리를 중시하는 개발자 크로스 플랫폼 애플리케이션 개발, 대형 엔터프라이즈 시스템, 안드로이드 앱 개발
JavaScript 주로 객체지향, 일부 절차지향 유연하고 동적인 언어에 적응력이 있는 개발자, 프론트엔드 및 백엔드 모두에서 작업하기를 원하는 개발자 (Full-Stack) 웹 개발, Node.js를 이용한 서버 사이드 프로그래밍, 인터랙티브 웹 인터페이스
C 절차지향 저수준 프로그래밍에 관심 있는 개발자, 시스템 수준의 이해와 세밀한 제어를 추구하는 개발자 시스템 프로그래밍, 임베디드 시스템, 성능이 중요한 애플리케이션
C# 객체지향 객체지향 프로그래밍을 선호하는 개발자, 마이크로소프트 기술 스택과 통합된 개발 환경을 선호하는 개발자 .NET 프레임워크를 이용한 애플리케이션 개발, 게임 개발 (Unity), 윈도우 기반 애플리케이션
C++ 객체지향 및 절차지향 객체지향과 절차지향의 혼합을 선호하는 개발자, 복잡하고 성능 중심적인 시스템을 개발하는 개발자 고성능 컴퓨팅, 게임 개발, 시스템/애플리케이션 소프트웨어 개발
Python 주로 객체지향, 일부 절차지향 가독성과 간결함을 중시하는 개발자, 다양한 영역에 적용 가능한 스크립트 언어를 선호하는 개발자 웹 개발, 데이터 과학과 인공지능, 간단한 스크립트 작성에서부터 복잡한 애플리케이션 개발까지

 

이번에는 개발 자니까 직접 코드가 어떤 형태로 되어있는지 보면서 비교 한번 해볼까요?
아래는 대표적인 다른 언어 딱 두 가지 C언어와 Python입니다.

<C 언어>

#include <stdio.h>

int main()
{
    print("Hello")
    print("world")
    return 0;

}

 

<파이썬>

Print('Hello')
Print('world')

 

<C언어는 복잡하지만 빠르고 파이썬은 간결하지만 느리다>

C언어 : 컴파일러 (컴퓨터가 읽을 수 있는 기계어로

번역하여 컴파일을 만들어 컴퓨터가 한 번에

읽기 쉬워 속도가 빠릅니다)

파이썬 : 인터프리터 (컴퓨터가 한 줄씩 번역하고

읽는 과정을 거쳐서 속도가 조금 느립니다.)

 

아직 조금 어렵다면 아래 작성된 개발자 로드맵 글도 참고하여 읽어주시면 도움이 되실 겁니다.

https://jdcyber.tistory.com/13

 

개발자 입문부터 풀스택까지 로드맵 (공부 순서를 어떻게 해야 하나요?)

앞서 2가지 프로그래밍 언어를 소개하는 글을 통해서 어떤 프로그래밍 언어를 배워야 하는지 그 프로그래밍 언어는 어떤 것에 특화가 되어있고 목표로 잡은 것이 어떤 것이냐에 따라 달라진다

jdcyber.tistory.com


오늘은 나의 성향에 맞는 프로그래밍언어에 대해 알아보았습니다.

간략하게 프로그래밍 언어에 대해서도 살펴봤는데요.
다음 글은 이 언어들 중

나에게 어떤 언어가 나에게 가장 잘 어울리는지

확인해 보고 알아보는 시간을 갖도록 하겠습니다.


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

파이썬 독학
파이썬 독학


파이썬 독학 시리즈

파이썬 독학 #1 파이썬이란? (설치, 특징)


파이썬 (Python)이란 무엇인가?

'Life is too short, You need python.'

인생은 너무 짧으니 파이썬이 필요해

 

컴퓨터와 애플리케이션, 모든 전자기기가 동작하는 데는 잘 짜인 프로그램이 있어야 합니다.

이 프로그램은 프로그래밍 언어라고 불리는 무수한 코드들이 규칙을 통해 어우러져 있으며

이러한 컴퓨터 언어에는 우리가 자주 들었던 자바 C++ 파이썬 c언어 등이 있습니다.

우리는 컴퓨터 언어 중 간결하고 빠르고 배우기 쉬운 파이썬을 먼저 배워보려고 합니다.

 

파이썬을 배움으로써 우리는 데이터 분석, 인공지능,

IOT 기기, 웹서비스 등과 백엔드도 어느 정도 만질 수 있게 될 것입니다.

 

난이도가 굉장히 쉽고 초보자들에게도 접근성이 좋아 독학으로도 충분히 공부 가능한 언어지만

제가 더 쉽게 설명을 해드릴 테니 잘 따라와 주세요.

 

필요 목적에 따라 배워야 하는 언어가 다를 수 있습니다.

아래 사용 목적 별 배우면 좋을 언어를 정리해 놓을 테니 한번 확인해 주세요!

(링크)
https://jdcyber.tistory.com/13

 

개발자 입문부터 풀스택까지 로드맵 (공부 순서를 어떻게 해야 하나요?)

앞서 2가지 프로그래밍 언어를 소개하는 글을 통해서 어떤 프로그래밍 언어를 배워야 하는지 그 프로그래밍 언어는 어떤 것에 특화가 되어있고 목표로 잡은 것이 어떤 것이냐에 따라 달라진다

jdcyber.tistory.com

 

파이썬은 무료이며 대표 컴퓨터 언어인 C 언어와도 궁합이 좋습니다.

학교 다닐 때 노트 필기를 핵심만 뽑아서 아주 이쁘게 색깔 펜으로 잘 정리하는

친구를 보신 적이 있으실 겁니다.

파이썬은 프로그래밍 언어 중 그런 아이입니다.

 

구글에서 만들어진 소프트웨어의 50% 이상이

파이썬이며 드롭박스 인스타그램 등도

파이썬으로 만들어졌습니다.

파이썬 (Python) 설치

 

https://www.python.org/

 

Welcome to Python.org

The official home of the Python Programming Language

www.python.org

 

위 사이트에 접속하시고 다운로드에 마우스를 올리면

가지고 계시는 운영체제에 맞는 카테고리가 나옵니다.

원하시는 버전이 있다면 찾아서 다운로드하시면 되고,

그게 아니라면 최신 버전을 다운로드하시면 됩니다.

추후 필요에 따라 버전을 내릴 수 있으니 걱정 마시고 다운로드하시길 바랍니다.

 

설치 화면은 다음만 누르시면 설치가 완료됩니다.

 

윈도우라면 CMD 맥이라면 Terminal에서 python을 검색하여 설치가 잘 되었나 확인이 가능합니다.


혹시 저처럼 M1 모델이신 경우 Apple 칩을

사용하시기 때문에 위 방법대로 설치하시면 오류가 나실 수 있습니다.

보통 기본적으로 파이썬이 깔려있기 때문에

Terminal에서 python --version을 검색해 보시고

버전이 나오신다면 따로 설치하실 필요는 없습니다.

그저 pycharm을 애플 실리콘 버전으로 설치하시면 되는데요

저희는 따로 vscode로 진행할 것이기 때문에

특이사항이 없으신 경우 패스하셔도 됩니다.


설치를 하고 나서 작업을 하거나 공부를 시작하시기

전에 궁금증이 생기실 겁니다.

IDLE와 IDE는 무엇인가요?

IDLE (Integrated Development and Learning Environment)

파이썬을 위한 통합 개발 환경

 

 

파이썬에서만 제공되는 소프트웨어코드 에디터라고 생각하시면 좋습니다

파이썬에 특화되어 간단한 코드 실험도 가능하고

메모장도 포함이고 있어서 어느 정도 코드 실행도 해볼 수 있습니다.

실제로 코드를 짤 때도 사용이 가능합니다.

 

IDE (Integrated Development Environment)

통합 개발 환경

 

통합 개발 환경으로 코딩, 디버그, 컴파일, 배포 등

프로그램 개발에 관련된 모든 작업

하나의 프로그램 안에서 처리할 수 있도록 제공되는 소프트웨어입니다.

색깔이 자동으로 부여되기도 하고, 자동 완성이 되기도 하며

개발자들이 개발을 할 때 한 곳에서 빠르게 일을 처리하고

조금 수월하도록 도와주는 소프트웨어입니다.


다음 시간에는 개발 작업을 하거나 공부를 할 때

조금 더 수월하고 쉽게 하기 위해

비주얼 스튜디오 코드

(Visual studio code / vscode)를 설치하고

진행해 보도록 하겠습니다.

감사합니다.

 

파이썬 독학 #1은 여기서 마무리하겠습니다.

파이썬 독학 #2에서 만나요!

https://jdcyber.tistory.com/24

 

파이썬 독학 #2 (쉬운 설명, 개발환경 설정, vscode, 기본 명령어, Hello world)

이전 파이썬 독학 글을 못 보신 분들은 아래 링크를 살펴보고 와주세요! 파이썬 독학 #1 파이썬이란? (설치, 특징) https://jdcyber.tistory.com/14 파이썬 독학 #1 파이썬 (Python)이란? 설치 (쉬운 설명, 정의

jdcyber.tistory.com



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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

 

앞서 2가지 프로그래밍 언어를 소개하는 글을 통해서

어떤 프로그래밍 언어를 배워야 하는지

그 프로그래밍 언어는 어떤 것에 특화가 되어있고

목표로 잡은 것이 어떤 것이냐에 따라 달라진다고 말씀드렸습니다.

 

(앞서 2가지 글 보러 가기)

https://jdcyber.tistory.com/15

 

프로그래밍 언어 어떤 걸 먼저 배워야할까? (쉬운 설명, 특징, 목적, 파이썬, 자바, 자바 스크립트

수많은 프로그래밍 언어 도대체 뭘 먼저 배워야 해? 개발을 처음 배우거나 보안을 배우거나 iT업계로 들어올 때 수많은 컴퓨터 언어를 보고 멘붕이 오실 겁니다. 저걸 다 해야 하나..? 어떤 언어

jdcyber.tistory.com

" 아직 저는 무엇을 해야 할지 잘 모르겠어요,
마냥 개발자가 되고 싶은데 목표는 나중에 세울래요.
어떤 걸 가장 먼저 배워야 할까요?"

 

배움의 순서는 없고 정답은 없지만

앞서 걸어간 선배들의 길을 취합해 보고 가장 합리적이고 빠른 길은 무엇일까요?

그래서 준비했습니다.

아무것도 모르겠다면 아래 순서대로 배워라!

(배움의 순서에 따라 써 내려갔기에 각 카테고리 별 설명이 자세하지 않을 수 있습니다.)

 


 

HTML
(HyperText Markup Language)

기본 중의 기본

 

HTML은 모든 방면에서 필수적으로 쓰이는 배우기 쉬운 난이도에 속합니다.

웹 페이지를 만들고 구조화하는 데 사용되는 표준 마크업 언어이며

웹 페이지의 콘텐츠와 구조를 정의하는 데 사용되고

웹 브라우저에 의해 해석되어 사용자에게 시각적으로 표시됩니다.

<!DOCTYPE html>
<html>
  <head>
    <title>Page Title</title>
  </head>
  <body>
    <h1>My First Heading</h1>
    <p>My first paragraph.</p>
  </body>
</html>

(위와 같은 기본 구조를 가지고 있습니다.)

HTML은 웹 개발의 기초이며, 웹 페이지의 콘텐츠와 구조를 정의하는 데

필수적인 역할을 하므로 꼭 배워두셔야 합니다.


 

CSS
(Cascading Style Sheets)

 

 

CSS를 활용하면 만들어둔 웹 페이지를  아름답게 꾸밀 수 있습니다.

말인즉슨 HTML이나 XML 문서의 스타일을 지정하는 데 사용되는 스타일 시트 언어입니다.

웹 개발에서 CSS는 웹 페이지의 레이아웃, 색상, 글꼴 등을 조절하여

시각적인 표현을 개선하는 역할을 합니다.

CSS는 웹 페이지의 콘텐츠(HTML)와 디자인을 분리함으로써,

웹 개발자와 디자이너가 콘텐츠 구조에 영향을 주지 않고

시각적 스타일을 효율적으로 조절할 수 있게 해 줍니다.

CSS는 웹 개발에서 필수적인 기술 중 하나로,

HTML과 함께 사용되어 사용자에게 보다 매력적이고

기능적인 웹사이트를 제공하는 데 중요한 역할을 합니다

 

쉽게 얘기하자면

HTML로만 꾸민 웹페이지는 굉장히 투박하고 아무런 꾸밈이 없습니다.

이런 맨 얼굴에 화장을 해주는 것이 CSS입니다.

하지만 HTML과 CSS를 배웠다고 해서 이상적인 웹페이지를 만들 있는 것은 아닙니다.


Javascript

 

HTML + CSS로 이쁘게 생긴 사이트를 만들었다면 겉만 번지르르한 조금은 멍청한 웹페이지가 만들어졌을 겁니다.

이제 마우스로 클릭하여 움직이거나 현재 위치한 곳을 표시해 주거나 사진을 찍는 등의 기능이 들어간

인터랙티브 한 웹사이트로 발전하기 위해서 자바스크립트가 필요하죠
JavaScript는 웹 개발에서 매우 중요한 역할을 하며, 웹 기술의 발전과 함께 지속적으로 진화하고 있습니다.

그것의 유연성과 광범위한 사용으로 인해, 현대 웹 개발의 핵심 언어 중 하나로 자리 잡았습니다.

브라우저와 소통하는 언어인 자바스크립트는 꼭 배워야 합니다.

 

여기서 자바스크립트를 엄청 전문적으로 하라는 말은 아닙니다.

어느 정도 기본만 숙지하고 다음으로 넘어가셔도 됩니다.


 

Node JS

 

이제 우리는 자바스크립트를 웹페이지 안에서

브라우저를 통해서만 활용하는 것이 아니라 외부에서도 활용해 봐야 합니다.

이때 필요한 것이 바로 NodeJS

 

NodeJS를 잘 활용한다면 우리는 자바스크립트를 이용하여 웹 브라우저에서 벗어나

웹 서버를 만들 수 있고 파일을 생성할 수 있으며

데이터베이스와 통신하고 암호를 보호하고 쿠키를 제공할 수 있습니다.

또 실시간 애플리케이션을 구축할 수 있죠.

이러한 활동을 할 수 있는 곳이 바로 프레임워크라고 합니다.

Node.js는 그것의 효율성, 확장성 및 JavaScript와의 호환성으로 인해,

특히 웹 애플리케이션과 API 서버를 개발하는 데 널리 사용됩니다.

또한, JavaScript 개발자가 서버 측 프로그래밍에 쉽게 접근할 수 있게 하여,

풀스택 개발의 장벽을 낮추는 데 기여했습니다.


 

Express
(Express.js)

 

 

Express.js, 일반적으로 Express라고 불리는 이 프레임워크는

Node.js를 위한 가장 인기 있는 웹 애플리케이션 프레임워크 중 하나입니다.

Express는 웹 애플리케이션과 API를 빌드하는 데 사용되며,

Node.js의 핵심 기능을 확장하여 더 강력하고 유연한 웹 애플리케이션 개발을 가능하게 합니다.


Koa

 

 

이후 Koa를 한번 살펴볼 필요가 있습니다.

갑자기 koa는 들어본 적도 없는데요? 하실 수도 있습니다.

하지만 koa 웹 프레임워크를 주 프레임워크로 채택한 회사도 꽤 많이 있으며,

Express 제작자가 만든 koa는 Express를 하실 줄 안다면

 

배우는데 1시간 밖에 걸리지 않습니다.

1시간 만에 기술 능력에 한 줄 추가되는데 안 할 이유가 없겠죠

 

여기까지 오셨다면

데이터베이스를 구축해야 때가 오셨을 겁니다.


우선적으로 데이터베이스의 기본적인 개념과 원리를 학습합니다.

이는 데이터베이스가 어떻게 데이터를 저장, 검색, 업데이트, 삭제하는지 공부하신 후

관계형 데이터베이스 (SQL)을 학습하기 시작합니다.


 

SQL
(
Structured Query Language)


 

 

데이터베이스 관리 시스템에서 데이터를 저장, 검색, 수정 및 삭제하기 위해 사용되는 표준 프로그래밍 언어입니다.

관계형 데이터베이스 관리 시스템(RDBMS)에서 가장 널리 사용되는 언어로,

데이터베이스 스키마 생성 및 수정, 데이터 삽입, 업데이트, 삭제, 조회 등 다양한 작업을 수행합니다.

이곳에서 바로 많이 들어보셨을 Selct, Insert, 인덱싱, 쿼리 등을 배우시게됩니다.

SQL 데이터베이스 관리 조작에 필수적인 언어로,

관계형 데이터베이스를 사용하는 거의 모든 형태의 애플리케이션 개발에서 중요한 역할을 합니다.

데이터베이스와 상호 작용하는 필요한 강력한 기능을 제공하며,

데이터 기반 의사결정과 시스템 통합에 필수적인 도구입니다.


MySQL

 

MySQL 세계에서 가장 인기 있는

오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS) 하나입니다.

MySQL SQL (Structured Query Language) 사용하여 데이터를 관리하며,

다양한 운영 체제에서 사용할 있습니다.

기반 애플리케이션, 데이터 웨어하우징, e-commerce,

로깅 애플리케이션 다양한 분야에서 널리 사용됩니다.

MySQL 개발, 특히 PHP 함께

LAMP (Linux, Apache, MySQL, PHP/Python/Perl) 스택의 일부로서 매우 인기가 있습니다.

또한, 기업 환경에서도 성능, 확장성 신뢰성 때문에 널리 사용됩니다.

MySQL 소규모 프로젝트부터 대규모 엔터프라이즈 애플리케이션까지

다양한 요구 사항을 충족시킬 있는 유연한 데이터베이스 솔루션을 제공합니다.


난 관계형 데이터베이스가 싫다

Mysql이 싫다! 하시는 분들은 Nosql인 MongoDB를 사용하시면 됩니다.


 

mongoDB

 

 

MongoDB 고성능, 고가용성, 쉬운 확장성을 제공하는 오픈 소스 NoSQL 데이터베이스입니다.

전통적인 테이블 기반의 관계형 데이터베이스 시스템과 달리,

MongoDB 유연한 문서 지향(Document-Oriented) 모델을 사용합니다.

모델은 JSON 유사한 BSON 형식을 사용하여 데이터를 저장하며,

이로 인해 데이터 구조가 다양하고 변경이 자주 일어나는 애플리케이션에 적합합니다.

MongoDB 특히 대용량 데이터 처리, 실시간 분석, 모바일 소셜 애플리케이션,

콘텐츠 관리, IoT 등의 분야에서 강점을 가집니다. 데이터 구조의 변화가 잦거나,

데이터의 다양성과 복잡성이 높은 애플리케이션에 특히 적합합니다.

MongoDB는 SQL보다 훨씬 배우기 쉽습니다.


그런데
브라우저에서 HTML, CSS, JS를 배워보고

Backend에서 NodeJS를 학습했는데,
Javascript와 NodeJS가 너무 지루하고
자신에게 맞지 않는다고 생각이 들면
어떻게 해야 할까요?

 

Python

 

그때는 파이썬 (Python)을 배우시면 됩니다.

Life is too short, You need Python이라는 명언이 있죠

Python 고수준의 인터프리터 언어로,

간결하고 읽기 쉬운 코드를 통해 효율적인 프로그래밍을 가능하게 하는 프로그래밍 언어입니다.

Guido van Rossum 의해 1991년에 처음 발표되었으며,

다양한 프로그래밍 패러다임을 지원합니다.

Python 오픈 소스이며, 강력한 커뮤니티의 지원을 받고 있습니다.

Python 유연성, 확장성 개발자 친화적인 특성으로 인해,

세계적으로 많은 개발자와 기업들에게 사랑받고 있습니다.

초보자부터 전문가까지 다양한 수준의 프로그래머들이 사용할 있는

범용적이고 강력한 프로그래밍 언어입니다.

 

아래 파이썬 독학 시리즈를 연재중이니 확인해보세요!

https://jdcyber.tistory.com/14

 

파이썬 독학 #1 파이썬 (Python)이란? 설치 (쉬운 설명, 정의, IDLE, IDE, 특징, M1)

파이썬 독학 시리즈 파이썬 독학 #1 파이썬이란? (설치, 특징) 파이썬 (Python)이란 무엇인가? 'Life is too short, You need python.' 인생은 너무 짧으니 파이썬이 필요해 ​ 컴퓨터와 애플리케이션, 모든 전

jdcyber.tistory.com


파이썬을 배운 이후에는 어떻게 노선을 타야 할까요?

자바스크립트에서 NodeJS가 있었다면 파이썬에겐 Flask 있습니다.


Flask

Flask Python 기반의 가벼운 프레임워크입니다.
Armin Ronacher
Werkzeug Jinja2 라이브러리를 기반으로 만들었으며,

"마이크로" 프레임워크로 분류됩니다.

Flask "마이크로" 간단하고 핵심적인 기능만을 제공한다는 의미로,

Flask 자체는 최소한의 기능만을 제공하지만,
필요에 따라 다양한 확장 기능을 추가하여 사용할 있습니다.

Flask 간단한 개인 프로젝트부터 복잡한 기업 애플리케이션에 이르기까지

다양한 애플리케이션 개발에 적합합니다.

가벼움, 확장성, 그리고 Python 강력함으로

많은 개발자들에게 인기 있는 선택지가 되고 있습니다.

Flask를 활용하시다가 조금 더 심화된 많은 기능을 담은 프레임 워크에 대한 필요성이 느껴지신다면

그때 배우셔야 할 것은 바로


DJango

 

Django는 Python으로 작성된 고수준의 웹 프레임워크로,

빠른 개발과 깔끔하고 실용적인 디자인을 목표로 합니다.

Django는 "배터리 포함(batteries-included)" 접근 방식을 채택하여,

웹 애플리케이션 개발에 필요한 대부분의 기능을 기본적으로 제공합니다.

이러한 접근 방식은 개발자가 웹 애플리케이션의 핵심 기능 개발에 집중할 수 있게 해 주며,

개발 시간을 크게 단축시킵니다.

Django 대규모 애플리케이션 개발에 적합한 프레임워크로,

강력한 기능과 높은 수준의 추상화로 인해 많은 기업과 개발자들에게 인기가 높습니다.

뉴스 사이트, 소셜 네트워크, 콘텐츠 관리 시스템

다양한 종류의 웹사이트를 효율적으로 구축할 있습니다.


위에 순서대로 공부하시다 보면 중간에
파이썬과 자바스크립트
길로 가 나누어지셨을 텐데요
이 두 개의 구분이 사라지는 시간이 오게 됩니다.
바로 React를 배우게 된다면 말이죠

React

 

 

React (또는 React.js 또는 ReactJS라고도 ) 사용자 인터페이스를 구축하기 위한

JavaScript 라이브러리입니다.

Facebook에서 개발되었으며, 대규모, 고성능의 애플리케이션에서 데이터가 변경될

효율적으로 업데이트하고 렌더링하는 사용됩니다.

React 주로 싱글 페이지 애플리케이션(SPA) 레이어를 구축하는 사용됩니다.

React 동적인 애플리케이션 개발에 매우 효과적이며,

Facebook, Instagram, Airbnb 같은 많은 유명한 웹사이트와 앱에 사용됩니다.

그것의 유연성과 효율성으로 인해 세계적으로 널리 사용되는 프론트엔드 라이브러리 하나입니다.


반면에 백엔드에 특화되어 더욱 배워보고 싶으시다면 Docker를 배워야 할 시간입니다.


Docker

 

Docker는 컨테이너화를 통해 애플리케이션을 개발,

배포 및 실행하기 위한 오픈 소스 플랫폼입니다.

컨테이너화는 애플리케이션과 그 필요한 모든 의존성을 컨테이너라는 격리된 환경에 패키징 하는 것을 말합니다.

이는 애플리케이션이 다양한 컴퓨팅 환경에서 일관되게 동작할 수 있게 해 줍니다.

Docker는 개발자 및 운영 팀 사이의 협업을 강화하며,

애플리케이션의 배포와 확장을 용이하게 만들어,

현대적인 소프트웨어 개발 및 운영 방식의 핵심 요소로 자리 잡았습니다.


 

AWS AZURE ORACLE
  • AWS는 다양한 컴퓨팅, 스토리지, 데이터베이스 서비스를 제공하며, 백엔드 개발자가 필요로 하는 확장성, 유연성, 글로벌 인프라를 제공합니다.
  • 특히, AWS의 Lambda(서버리스 컴퓨팅), EC2(탄력적 컴퓨팅), RDS(관계형 데이터베이스 서비스)는 백엔드 개발에 널리 사용됩니다.
  • Azure는 마이크로소프트의 강력한 지원을 받으며, 특히 .NET 개발자에게 적합한 서비스와 통합을 제공합니다.
  • Azure의 Virtual Machines, App Services, Azure SQL Database는 백엔드 개발 및 배포에 필수적인 서비스입니다.
  • Oracle Cloud는 오라클 데이터베이스와의 통합에 특화된 클라우드 서비스를 제공하며, 엔터프라이즈급 애플리케이션에 적합합니다.
  • Oracle Cloud Infrastructure (OCI)는 고성능 컴퓨팅, 스토리지, 네트워킹 서비스를 제공하며, 특히 기업 데이터베이스 관리 및 분석에 강점을 가지고 있습니다.

 

백엔드 개발자가 이 클라우드 서비스들을 공부하고 활용함으로써,

효율적인 개발 환경을 구축하고, 더 넓은 범위의 서비스와 애플리케이션을 개발할 수 있는 능력을 갖출 수 있습니다.


 

정리

 

기본 웹 기술 학습 HTML → CSS → JavaScript 웹 페이지의 구조, 스타일링, 기능 구현
서버 사이드 프로그래밍: JavaScript(Node.js) JavaScript(Node.js) 백엔드 개발 기초, 서버 로직 구현
고급 JavaScript/Node.js 경로 Express.js → SQL → MySQL 백엔드 개발 심화, 데이터베이스 관리
Python 경로 Python → Flask → Django Python을 사용한 웹 개발, 다양한 웹 개발 측면에 초점
클라우드 및 컨테이너 기술 Docker → Kubernetes → AWS → Azure 애플리케이션 컨테이너화, 오케스트레이션, 클라우드 인프라 구축 및 관리
고급 프론트엔드 개발 React 동적인 사용자 인터페이스 구축에 필요한 현대적인 프론트엔드 프레임워크 학습

백엔드 개발 특화 순서 프론트엔드 개발 특화 순서
  1. HTML
  2. CSS
  3. JavaScript
  4. Node.js
  5. Express.js
  6. SQL
  7. MySQL
  8. Docker
  9. Kubernetes
  10. AWS/Azure
  1. HTML
  2. CSS
  3. JavaScript
  4. React
  5. 고급 JavaScript 프레임워크/라이브러리
    (예: Redux, React Router)
  6. 반응형 웹 디자인
  7. 웹 접근성 및 사용성
  8. 프론트엔드 테스팅 도구 (예: Jest, Cypress)

위 로드맵을 기본으로 여러 가지 갈래로 많이 나뉠 수 있습니다.

하나하나 기초부터 올라오시다 보면 지금도 다양하지만 앞으로 더 다양한 프레임워크 언어 등

트렌디한 개발 기술이 나올 것으로 예상됩니다.

공부 열심히 하시고 파이팅 하시길 바랍니다!


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형
패킷 (Packet) 이란 무엇일까요?

 

 

패킷은 패키지(package)와

덩어리를 뜻하는 버킷(bucket)의 합성어

통신망을 통해 전송하기 쉽도록 데이터를 잘게 나눈 전송 단위입니다.

 

본래 패킷은 소포를 뜻하는 용어인데

우체국에서 화물을 적당한 덩어리로 나누어 행선지를 표시하여

꼬리표를 붙이는 작업을 데이터 통신에 접목한 용어로 사용하고 있습니다.

 

즉 패킷은 UDP TCP IP 등 모두가 가지고 있는

데이터 조각이라고 이해하시면 편하십니다.

 

Ping 아시나요?

ping google.com
142.251.42.174의 응답: 바이트=32 시간=62ms TTL=116
142.251.42.174의 응답: 바이트=32 시간=62ms TTL=116
142.251.42.174의 응답: 바이트=32 시간=62ms TTL=116
142.251.42.174의 응답: 바이트=32 시간=62ms TTL=116
142.251.42.174에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 4, 손실 = 0 (0% 손실),
왕복 시간 (밀리초):
    최소 = 61ms, 최대 = 65ms, 평균 = 62ms

 

이렇게 저희는 자신의 컴퓨터에서 간단하게 cmd 혹은 터미널을 통해

구글에 ping 요청을 보내서 네트워크가 잘 이어지고 있는지

패킷을 보내고 받음으로써 검증합니다.

이처럼 패킷은 네트워크 간 주고받는 "무언가"입니다.

네트워크에서 그만큼 패킷이라는 개념은 생각보다 매우 중요합니다.

인터넷에서 하는 모든 작업에는 패킷이 사용되기 때문이죠,

인터넷에선 사용자 간 데이터를 주고받을 때 데이터는 패킷으로 전달됩니다.

패킷의 구조

 

그렇다면 패킷은 어떻게 생겼을까요?

 

데이터 부분을 잘게 쪼개서 패킷으로 전송한다

 

네트워크 패킷은 헤더(Header), 페이로드(Payload), 트레일러(Trailer) 세 부분으로 구성됩니다.

 

헤더는

패킷 길이, 프로토콜, 보낸/받는 사람의 IP 주소 등이

포함되며 UDP TCP IP 등 모두가 가지고 있는

데이터의 머리, 즉 중요한 게 담겨있는

데이터의 가장 앞부분이라고이라고 이해하시면 편하십니다.

헤더에는 주로 데이터 형식에 대한 정보나 시간 데이터, 주소 데이터로 구성되어 있고

데이터의 종류에 따라 정리되기 쉽게 규격화해 놓은 데이터입니다.

 

오늘은 패킷이 이런 거구나 하고 대략적으로만

알고 넘어가 주시면 좋을 것 같습니다.

 

패킷의 내용은 데이터로 전송될 때

인캡슐레이션과 디캡슐레이션을 하여전송하게 되는데요

인캡슐 레이션과 디캡슐레이션에 대한 내용이 궁금하시다면

아래 링크를 통해 확인해 주세요

https://jdcyber.tistory.com/28

 

인캡슐레이션? 디캡슐레이션? 데이터 전송하기 (쉬운 설명, 개념, 정의)

오늘은 인캡슐레이션과 디캡슐레이션이 무엇인지 확인해 보는 시간을 가지도록 하겠습니다. 아주 쉽게 설명해드릴테니 아래 검색 결과를 읽다가 포기하지 말아 주세요! 인캡슐레이션과 디캡슐

jdcyber.tistory.com


오늘의 정리

IP가 들어간 데이터는 패킷이라고 부르고 이 패킷은 데이터를 잘게 나눠 소분한 것이다.

패킷의 헤더에는 IP 주소 등 중요한 정보가 담겨있다.

위 정보들을 데이터로 교환할 때는 인캡슐레이션 디캡슐레이션을 한다.


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형
반응형

너무 말이 어렵게 느껴지더라도 조급해하지 마세요

그저 설명되어 있는 글을 읽고 아 그렇구나 하고 넘어가시면 됩니다.

하나하나 이해하려고 하면 할 수 없습니다.

 

시간이 지나며 차차 이해하시게 될 겁니다.

 

OSI 7 Layer Reference Model

(open system interconnection)

"한국말로 개방형 시스템"

 

OSI 7 계층이란 무엇일까요?

OSI 참조 모델이라고 불리는 이것은

모든 장치나 네트워크 통신장비를 만들고 구성할 때

이것을 보고 만들자라고 약속하고 정해놓은 기본이 되는 표준

 

, 기준인 7개의 레이어입니다.

 

쉽게 말해서 전세계에서 휴대폰 충전기를 만들 때

여러 회사에서 가지각색의 모양을 가진 수많은 충전기를 만들어내는 것이 아니라

라이트닝 단자로 만들자 혹은 C 타입 단자로 만들자라고 약속하고

일정한 모양을 규칙으로 정해놓고 혼선을 없애는 것과 같은 개념입니다.

 

만약 이러한 규칙이나 약속을 정해두지 않는다면 

수 많은 다른 모양의 충전기들이 나오고 수많은 휴대폰들이 다른 잭을 가지고 있게 되고

우리는 서로 충전기를 공유하지 못하고 매번 충전기를 사야 하는 어려움을 겪게 되겠죠??

 

그래서 필요한 것이 기준과 표준이며 네트워크 통신장비를 만들 때

이 OSI 7 계층이 바로 기준이 되었고 이 규칙은 1984년에 국제 표준화기구 (ISO)에서 발표되었습니다.

 

그렇다면 왜 7 계층이라는 단어를 쓰게 되었을까요?

 

(너무 어렵게 생긴 위 사진을 이해하려 하지 마세요)

쉽게 설명드리겠습다.

 

군대에서 상급자가 하급자에게 명령을 내릴 때 가장 아래 병사인 이등병까지

명령이 잘 전달되어야 임무를 수행하겠죠?

7 계층 역시 같은 구조입니다.

 

하지만 순서만 반대로 생각하시면 돼요

맨 아래 1에서부터 상위 6번까지 모든 것이 완벽하게 연결되어야 비로소 7이 동작하게 됩니다.

 

바로 이러한 모습이

완벽한 수직적 모습을 갖추고 있기 때문에 "계층"이라는 단어를 쓰게 되었습니다.

그래서 우리는 이것을 7 계층이라고 합니다.

 

이렇게 OSI 7 계층은 통신이 일어나는 과정을 총 7가지로 구분 지어놓고

단계별로 정의하여 네트워크를 구성하고 데이터의 흐름을 파악할 수 있도록 각각 고유한 형태를 이루고 있습니다.

각 계층은 독립되어 있으며 한 부분에서 문제가 생긴다면

빠르게 문제가 생긴 부분을 파악할 수 있고 그 부분을 보안할 수 있도록 모습이 고안되었습니다.

 

우리는 이미 이걸 이해하고 있을지도 모릅니다.

 

예를 하나 들어보도록 할게요

컴퓨터에서 인터넷이 갑자기 안됩니다.

왜 이러지? 인터넷 문제인가? 하면서 인터넷 선을 뽑았다 다시 꽂았다 하면서 확인하잖아요?

우리는 이미 OSI 7 계층에서의 3단계 네트워크 단계를 이해하고 있는 겁니다.

만약 접속이 문제가 아니라면 아래 물리계층 1단계 데이터 계층 2단계도 문제가 없는 것이니

4번 전송 계층부터 문제점을 확인해 나아가면 됩니다.

 

이해가 좀 되시나요?

 

오늘 이 글에서는 아래 내용만 기억하시고

넘어가시면 좋을 같습니다.

1. 모든 장치나 네트워크 통신장비를 만들고 구성할 때 기준으로 약속하고
모습을 정해놓은 7가지 약속이 있고 우리는 이걸 OSI 7계층으로 부르고 있다.


2. 7계층이라고 부르는 이유는 수직적으로 운용되기 때문이다.
(1이 되어야 2가 되고 모든 것이 순차적으로 완료되어야 7이 동작한다.)

3. 7계층은 각각 독립된 형태를 유지하고 있어 문제가 발생하면 파악도 빠르고 해결도 빠르다.

 

네트워크를 준비하시는 분들은 CCNA 시험에 대해서 궁금하실 것 같은데요

아래 자세히 설명해놨으니 참고해주시기 바랍니다.

https://jdcyber.tistory.com/47

 

CCNA란 무엇일까요? (소개, 시험, 덤프, 네트워크)

​ CCNA (Cisco Certified Network Associate)란 무엇일까요? CCNA는 네트워크 기술 능력을 검증하는 가장 기초적인 시험입니다. 여기서 C는 Cisco라는 미국 캘리포니아에 있는 네트워크 하드웨어, 보안 서비스

jdcyber.tistory.com


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

댓글에 남겨주신 내용

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

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

-

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

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

감사합니다!

반응형

+ Recent posts