OSI 7계층 & 스트프웨어 공학

SIMWOOHYUN·2025년 6월 15일
post-thumbnail

🔧 네트워크와 소프트웨어 공학 정리


📡 OSI 7계층 모델 (Open Systems Interconnection Model)

OSI 7계층 모델은 네트워크 통신을 계층적으로 나눈 개념적 모델로, 서로 다른 시스템 간의 상호 운용성을 보장하기 위한 국제 표준입니다.

계층이름주요 기능예시 프로토콜 / 장비
7Application Layer (응용 계층)사용자와 가장 밀접하게 연결되어 있으며, 응용 프로그램이 네트워크 기능을 사용할 수 있게 해줍니다.HTTP, FTP, SMTP, POP3
6Presentation Layer (표현 계층)데이터 포맷(부호화, 암호화, 압축)을 변환하여 서로 다른 시스템 간 호환성 제공JPEG, MPEG, TLS, ASCII ↔ Unicode 변환
5Session Layer (세션 계층)통신 세션의 설정, 유지, 종료를 담당NetBIOS, RPC, PPTP
4Transport Layer (전송 계층)데이터의 신뢰성 있는 전송 보장, 오류 검출 및 복구, 흐름 제어TCP, UDP
3Network Layer (네트워크 계층)논리적 주소(IP)를 기반으로 경로를 결정하고 패킷을 전달IP, ICMP, ARP, 라우터
2Data Link Layer (데이터 링크 계층)물리적으로 연결된 장치 간의 프레임 전송, MAC 주소 기반Ethernet, PPP, 스위치
1Physical Layer (물리 계층)전기적 신호 또는 광 신호를 통해 데이터 전송UTP 케이블, 광케이블, 허브

🧠 OSI 모델은 실제 구현체가 아니라 개념 모델입니다. 실전에서는 TCP/IP 4계층 모델이 더 많이 사용됩니다.


🌐 프로토콜(Protocol)이란?

프로토콜은 컴퓨터나 네트워크 장치 간의 통신을 위해 정해진 약속이나 규칙입니다. 모든 장치는 같은 프로토콜을 따라야 통신이 가능합니다.

🔗 주요 프로토콜 예시

프로토콜설명계층
HTTP/HTTPS웹 페이지 전송 (HyperText 전송)응용 계층
FTP/SFTP파일 전송 (파일 서버 ↔ 클라이언트)응용 계층
DNS도메인명을 IP로 변환응용 계층
TCP연결 지향형, 신뢰성 보장 (순서 보장, 재전송)전송 계층
UDP비연결형, 빠르지만 신뢰성 낮음 (스트리밍, 게임)전송 계층
IP각 장치에 IP 주소를 부여하고 라우팅 담당네트워크 계층
ICMP네트워크 상태 진단 (핑 테스트 등)네트워크 계층
ARPIP 주소 → MAC 주소 변환네트워크 계층

📍 IP 네트워크 주소 지정

📌 IP 주소란?

IP 주소는 인터넷 상에서 장치를 식별하기 위한 고유 주소입니다.

  • IPv4: 32비트, 4개의 8비트 옥텟 (예: 192.168.1.1)
  • IPv6: 128비트, 더 많은 주소 제공 (예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334)

📌 공인 IP vs 사설 IP

  • 공인 IP: 전 세계에서 고유한 주소. 인터넷 상에서 직접 접근 가능
  • 사설 IP: 내부 네트워크에서만 사용, NAT 장비가 공인 IP로 변환
구분예시
사설 IP192.168.0.0 ~ 192.168.255.255
172.16.0.0 ~ 172.31.255.255
10.0.0.0 ~ 10.255.255.255
공인 IPISP에서 제공하는 인터넷 상 유효 주소

📌 서브넷 마스크

  • 서브넷 마스크는 IP 주소를 네트워크 영역과 호스트 영역으로 나누는 기준입니다.
  • 예: 255.255.255.0 → 네트워크: 앞 24비트, 호스트: 마지막 8비트

🖥 소프트웨어 공학 (Software Engineering)

소프트웨어 공학은 체계적, 정량적, 반복 가능한 방식으로 고품질 소프트웨어를 개발·운영·유지보수하는 학문입니다.

🔧 소프트웨어 생명주기 (SDLC, Software Development Life Cycle)

  1. 요구사항 분석: 사용자 요구 파악, 기능 정의
  2. 설계: 시스템 아키텍처, UI/UX, DB 구조 설계
  3. 구현(코딩): 프로그래밍 언어로 시스템 구현
  4. 테스트: 단위/통합/시스템/인수 테스트 수행
  5. 배포: 실제 사용자 환경에 시스템 제공
  6. 운영 및 유지보수: 오류 수정, 기능 개선

🧪 소프트웨어 개발 방법론

방법론특징장점단점
폭포수 모델순차적, 문서 중심관리 용이, 명확한 단계변경 대응 어려움
애자일 모델반복적, 사용자 피드백 중심빠른 대응, 유연함문서화 부족 가능성
스크럼(Scrum)스프린트 단위 반복 개발팀 협업, 역할 명확일정 관리 어려움 가능

🎯 소프트웨어 품질 특성 (ISO/IEC 25010)

  • 기능성: 요구한 기능을 충족시키는 능력
  • 신뢰성: 오류 없이 안정적으로 동작하는 능력
  • 이식성: 다양한 환경에서도 동작할 수 있는 능력
  • 효율성: 자원 사용 대비 성능
  • 사용성: 사용자가 쉽게 이해하고 사용할 수 있는 정도
  • 유지보수성: 소프트웨어를 쉽게 수정할 수 있는 능력
  • 보안성: 데이터와 기능을 외부로부터 안전하게 보호

✅ 마무리 정리

구분핵심 내용 요약
OSI 7계층네트워크 통신을 7단계로 나누어 구조화한 개념
프로토콜데이터 전송을 위한 규칙의 집합
IP 주소네트워크 상 장치 식별자 (IPv4, IPv6, 서브넷, NAT)
소프트웨어 공학품질 높은 소프트웨어 개발을 위한 체계적 접근

네트워크와 소프트웨어 공학은 IT 개발자라면 반드시 이해하고 있어야 할 기본기입니다. 이 글을 통해 개념을 정리하고 현업 적용에도 도움이 되길 바랍니다!

0개의 댓글