트래픽 & 성능 측정 지표?
·
CS/네트워크
🚀 트래픽 & 성능 측정 지표: 네트워크 성능을 평가하는 핵심 개념! 네트워크 성능을 측정할 때 “트래픽(Traffic)”이라는 용어를 자주 듣게 된다.🔍 트래픽이란 무엇이며, 네트워크의 성능을 평가하는 주요 지표는 어떤 것들이 있을까?💡 Throughput(처리량), 대역폭(Bandwidth), 패킷 손실(Packet Loss) 등의 개념을 쉽게 정리해보자!🌍 트래픽(Traffic)이란? 트래픽이란 네트워크에서 주고받는 데이터의 양을 의미한다.웹사이트를 방문하거나, 동영상을 스트리밍하거나, 파일을 다운로드할 때마다 트래픽이 발생한다.✔ 트래픽이 많을수록 네트워크 부하가 커지며, 속도 저하가 발생할 수 있음 💡 즉, 트래픽이란 네트워크에서 흐르는 데이터의 흐름을 의미하며, 네트워크 성능과 직결된..
HTTP vs HTTPS
·
CS/네트워크
🌐 HTTP vs HTTPS 웹사이트 주소를 보면 http:// 또는 https://로 시작하는 경우가 있다.🔍 HTTPS가 HTTP보다 더 안전하다는 것은 알겠는데, 왜 그런 걸까?🔒 SSL/TLS 인증서를 통해 웹사이트의 신원을 어떻게 검증하는 걸까?이제 HTTPS와 SSL/TLS 인증서의 개념과 작동 방식에 대해 알아보자! 🚀🔍 HTTP란?📌 HTTP (HyperText Transfer Protocol, 하이퍼텍스트 전송 프로토콜)HTTP는 웹 브라우저와 웹 서버 간 데이터를 주고받는 프로토콜이며, 텍스트, 이미지, HTML, CSS, JavaScript 등을 전송하는 역할을 한다.🚨 하지만! HTTP는 암호화되지 않아서 해킹 위험이 크다.🚨 HTTP의 문제점 (보안 취약)✅ 데이터가..
OSI 7계층 & TCP/IP 4계층
·
CS/네트워크
🖧 OSI 7계층 & TCP/IP 4계층 완전 정복 🌍네트워크에서 데이터가 어떻게 이동하는지 제대로 이해하려면 OSI 7계층과 TCP/IP 4계층을 깊이 파악해야 한다!단순한 암기가 아니라, 각 계층이 왜 존재하는지, 어떤 역할을 하는지, 실제로 무슨 일이 벌어지는지까지 쉽게 알아보자!🌎 OSI 7계층: 네트워크 통신을 단계별로 나눈 모델OSI 7계층 모델은 네트워크에서 데이터를 전송할 때 일어나는 과정을 단계별로 정리한 개념 모델이다.각 계층은 독립적으로 동작하지만, 서로 협력하여 데이터를 송수신한다.데이터는 위에서 아래로 캡슐화(Encapsulation) 과정을 거치고, 반대로 아래에서 위로 역캡슐화(Decapsulation) 된다.🏗 OSI 7계층 자세히 알아보기  계층   역할 & 설명 7..
네트워크 분류 & 패킷
·
CS/네트워크
🌎 네트워크의 분류네트워크는 연결 범위나 메시지를 교환하는 방식에 따라 다양한 방식으로 분류할 수 있다. 이를 이해하면 보다 적절한 네트워크 구조를 선택할 수 있다. 🔍🏠 네트워크 범위에 따른 분류네트워크는 연결 범위에 따라 크게 다음과 같이 나뉜다.1️⃣ LAN (Local Area Network)가까운 지역을 연결하는 근거리 통신망일반적으로 건물 내, 회사, 학교 등의 내부 네트워크데이터 전송 속도가 빠르고, 네트워크 관리가 용이함예시: 사무실 내부 네트워크, 가정용 Wi-Fi 네트워크2️⃣ WAN (Wide Area Network)먼 지역을 연결하는 광역 통신망인터넷이 대표적인 WAN서로 다른 LAN이 연결될 때 필요장거리 통신이 가능하지만 속도는 LAN보다 상대적으로 느림예시: 국가 간 인터..
네트워크란?
·
CS/네트워크
🖧 네트워크를 이해해야 하는 이유 📱 요즘 스마트폰 앱 중 인터넷 없이 온전히 작동하는 앱이 얼마나 될까? 거의 대부분의 앱은 인터넷이 연결되어야만 제대로 동작한다. 그래서, 이런 앱을 개발하는 사람이라면 컴퓨터 네트워크에 대한 기본적인 이해가 필요하다. 네트워크 개념을 알면 데이터를 주고받는 원리를 파악하고, 더 안정적이고 효율적인 서비스를 만들 수 있다.🌍 컴퓨터 네트워크란?네트워크는 여러 개의 노드(Node)가 연결된 구조로, 마치 그래프(Graph)처럼 생겼다. 📊 이 연결 덕분에 우리는 데이터를 주고받을 수 있다.🌐 인터넷이란?인터넷은 쉽게 말해 네트워크들의 네트워크다. 단순한 개별 네트워크가 아니라, 여러 개의 네트워크가 서로 연결되어 데이터를 주고받을 수 있는 거대한 시스템이다. 즉..
멀티 스레드 VS 멀티 프로세스
·
CS/운영체제
현대 소프트웨어 개발에서는 효율적인 동시 실행(Concurrency)과 병렬 처리(Parallelism)가필수적이다.특히, 백엔드 개발에서는 서버가 동시에 많은 요청을 처리해야 하기 때문에, CPU 활용을 극대화하고, 안정성을 유지하는 실행 방식을 선택하는 것이 중요하다.멀티 프로세스와 멀티 스레드는 이러한 동시 실행을 구현하는 대표적인 두 가지 방식이다.각각의 방식은 성능, 자원 관리, 안정성 측면에서 장단점을 가지고 있으며,어떤 방식이 적절한지는 애플리케이션의 특성과 요구사항에 따라 달라진다.그럼 이제, 멀티 프로세스와 멀티 스레드가 각각 어떻게 동작하는지, 그리고 언제 어떤 방식을 선택하는 것이 좋은지자세히 알아보자.멀티 스레드(Multi-Thread) vs 멀티 프로세스(Multi-Process)..
컴퓨터 시스템의 심장, 메모리 관리 전략
·
CS/운영체제
메모리 관리 전략을 이해하는 건 백엔드 개발자에게 꼭 필요하다.효율적인 메모리 관리는 애플리케이션 성능을 높이고,자원을 아끼는 데 큰 도움이 되기 때문이다.서버는 동시에 많은 사용자 요청을 처리해야 하기 때문에,메모리 할당과 회수를 잘 관리하는 게 성능과 안정성에 직접적인 영향을 준다.메모리 관리를 통해 메모리 누수 같은 문제를 예방해 시스템의 장기적인 안정성을 보장할 수 있다그럼 메모리 관리 전략에 대해서 알아보자. 메모리 관리의 중요성 컴퓨터 시스템에서 메모리 관리는 핵심적인 역할을 수행한다. 모든 컴퓨터 응용 프로그램은 실행을 위해 메모리를 필요로 하며, 이를 효율적으로 관리하는 것이 시스템의 성능과 안정성을 결정짓는 중요한 요소다. 메모리 관리는 사용 가능한 메모리 리소스를 할당하고, 불필요하게..
PCB?
·
CS/운영체제
프로세스 제어 블록(PCB, Process Control Block)은 운영 체제의 핵심 구성 요소 중 하나로,각 프로세스를 관리하고 추적하기 위해 설계된 데이터 구조다. PCB는 단순히 프로세스의 정보를 저장하는 역할뿐만 아니라, 운영 체제가 프로세스를 효율적으로 관리하고 CPU의 활용을 극대화하는 데 필수적인 기능을 제공한다. 이번 글에서는 PCB의 구조, 역할, 그리고 문맥 교환(Context Switching)에서의 중요성을 심층적으로 살펴보자. PCB란 무엇인가?PCB는 운영 체제가 각 프로세스를 관리하기 위해 사용하는 데이터 구조다. 운영 체제는 멀티태스킹 환경에서 수많은 프로세스를 동시에 실행해야 하며, 각 프로세스의 상태와 정보를 효과적으로 관리해야 한다. PCB는 프로세스와 관련된 모든 ..
리눅스 vs 윈도우
·
CS/운영체제
운영체제에 대해 공부를 하다 보니언뜻 궁금한 것이 리눅스와 윈도우 두가지중리눅스운영체제가 개발에 있어 더욱자주 또 많이 쓰인다는 것을 느꼈다.왜 리눅스가 더 많이 쓰일까?윈도우는 왜 개발환경에 적합하지 않을까?두 운영체제의 차이가 무엇일까? 라는 의문에 도달하였고개발자로서 당연히 가질수 있는 의문이기에 이에 대해 공부할 필요성을 느꼈다. 운영체제의 기본 개념운영체제에 대해서는 정리해놓은 블로그 글이 있다. 아래 글을 참고하도록 하고 오늘은 리눅스와 윈도우의 차이점에 대해서 집중 조명 해 보자. https://geishastory.tistory.com/248 운영체제란?운영체제를 왜 알아야 할까?운영체제는 사용자를 위한 프로그램이라기보다프로그램을 위한 프로그램이라고 보는것이 맞다.그렇기에 프로그램을 만드는..
시스템 호출?
·
CS/운영체제
애플리케이션은 대량의 데이터 처리와 높은 성능이 요구되는 경우가 많기에,시스템 호출의 원리와 동작 방식을 이해하면 병목 현상을 분석하고 최적화하는 데 큰 도움이 된다.예를 들어, 파일 읽기나 네트워크 요청 처리에서 비효율적인 시스템 호출을 줄이거나, 비동기 I/O 기술을 활용하여 처리 속도를 높이는 방식으로 성능을 개선할 수 있다.또한, 리소스 관리 측면에서도 시스템 호출을 잘못 사용하면 메모리 누수, 파일 디스크립터 부족, 소켓 연결 초과와 같은 문제를 초래할 수 있다.이러한 문제를 예방하고 안정적인 애플리케이션을 설계하려면 시스템 호출의 동작 방식과 에러 처리 메커니즘을 이해해야 한다. 운영 체제와의 효율적인 상호작용을 통해 성능, 안정성, 확장성을 모두 갖춘 서버를 구현하는개발자가 되기 위해 필수적..