목록분류 전체보기 (40)
은학의 코딩 일기장
네트워크를 공부하다 보면 가장 먼저 접하게 되는 개념이 OSI 7계층과 TCP/IP 계층 모델이다.개념 자체는 오래전부터 존재하지만, 요즘 들어 다시 중요해지는 이유는 명확하다.클라우드 환경, 마이크로서비스 아키텍처, 트래픽 증가로 인해 문제 발생 지점을 빠르게 좁히는 능력이 점점 더 중요해졌기 때문이다.이 글은 다음과 같은 사람에게 도움이 된다.네트워크 개념을 이론으로만 알고 있는 개발자장애 대응이나 로그 분석 시 네트워크 계층이 헷갈리는 경우OSI와 TCP/IP를 “외우는 개념”이 아니라 “써먹는 기준”으로 이해하고 싶은 사람OSI 7계층 모델 다시 정리OSI(Open Systems Interconnection) 모델은 네트워크 통신 과정을 7단계로 나눈 개념적 모델이다.실제 구현 모델이라기보다는 문..
프로세스(Process)는 실행 중인 프로그램을 의미하며,운영체제가 CPU, 메모리, 파일과 같은 시스템 자원을 할당하고 관리하는 기본 단위입니다.단순히 디스크에 저장된 프로그램 파일이 아니라,메모리에 적재되어 실제로 실행되고 있는 상태를 프로세스라고 부릅니다.운영체제는 다수의 프로세스를 동시에 관리하며,각 프로세스가 서로 간섭하지 않고 효율적으로 실행되도록 제어합니다.프로세스의 주요 개념1. 프로그램 vs 프로세스프로그램(Program)디스크에 저장된 실행 파일 (정적인 상태)프로세스(Process)프로그램이 메모리에 올라가 실행 중인 상태 (동적인 상태)같은 프로그램이라도 여러 번 실행하면서로 다른 프로세스가 생성됩니다.2. 프로세스의 구성 요소프로세스는 다음과 같은 정보들을 포함합니다.코드(Code..
라우팅이란?라우팅은 네트워크 간에 데이터 패킷을 전달하는 과정을 말합니다. 네트워크에 연결된 여러 장치(노드)들이 서로 통신하기 위해 데이터 패킷을 전달할 경로를 선택하는 것을 라우팅이라고 합니다. 이 작업은 주로 라우터라는 네트워크 장치에 의해 수행되며, 라우터는 패킷을 최적의 경로로 전달하여 목적지까지 도달하게 합니다. 라우팅의 핵심은 경로 선택으로, 목적지에 도달할 수 있는 여러 경로 중 가장 효율적인 경로를 결정하는 것입니다. 이를 위해 라우팅 테이블을 사용하며, 각 네트워크 장치는 자신이 알고 있는 네트워크 경로 정보를 기반으로 라우팅 테이블을 구성합니다. 라우팅 프로토콜라우팅 프로토콜은 네트워크 장치들이 서로 통신하며, 경로 정보를 공유하고 업데이트하는 규칙 및 절차를 말합니다. 이를 통..
IP주소란 IP 주소는 네트워크에 연결된 장치들이 서로 통신하기 위해 사용하는 고유한 숫자 식별자입니다. IP 주소는 인터넷과 같은 네트워크에서 데이터를 전송하고 수신하는 데 필수적입니다. IP 주소는 크게 두 가지 종류로 나뉩니다: IPv4와 IPv6. IPv4 (Internet Protocol version 4):32비트 주소 체계를 사용하며, 숫자 4개가 점으로 구분된 형태로 나타납니다. 예: 192.168.0.1IPv4는 약 43억 개의 고유한 주소를 제공하지만, 네트워크 장치 수가 급격히 증가하면서 주소가 부족해졌습니다.IPv6 (Internet Protocol version 6):128비트 주소 체계를 사용하며, 훨씬 더 많은 수의 주소를 제공합니다. IPv6 주소는 16진수로 작성된 8개의..
Promise란?자바스크립트 비동기 통신에 사용되는 객체중 하나로 비동기 작업의 완료 또는 실패를 나타냄기존 callback 방식의 call back 지옥을 해결하기 위해 Promise가 사용됨Promise의 이점비동기 처리 시점을 명확하게 표현할 수 있다.연속된 비동기 처리 작업을 수정, 삭제, 추가하기 편하고 유연하다.비동기 작업 상태를 쉽게 확인할 수 있다.코드의 유지 보수성이 증가한다.Promise 3가지 상태Pending(대기) : 비동기 로직이 아직 완료되지 않은 상태Fullfilled(이행) : 비동기 작업이 처리되어 프로미스가 결과값을 반환해준 상태rejected(실패) : 비동기 작업이 실패된 상태후속 처리 메소드thenthen 메소드는 두 개의 콜백 함수를 인자로 전달 받습니다.첫 번째..
TCP (Transmission Control Protocol)TCP는 연결 지향적 프로토콜로, 인터넷 프로토콜 스위트의 중요한 요소 중 하나입니다. TCP는 데이터의 신뢰성과 순서를 보장하며, 데이터가 전송된 순서대로 도착하고 손실되거나 손상된 경우 이를 복구하는 기능을 제공합니다.특징:연결 지향적: 데이터를 전송하기 전에 송신자와 수신자 사이에 연결을 설정합니다.신뢰성: 데이터가 정확하게 도착하는지 확인하고, 손실되거나 손상된 패킷은 재전송됩니다.흐름 제어: 수신자의 처리 능력을 고려해 데이터 전송 속도를 조절합니다.혼잡 제어: 네트워크 혼잡을 방지하기 위해 전송 속도를 조절합니다.패킷 순서 보장: 송신된 데이터 패킷의 순서가 유지되도록 합니다.장점:데이터의 신뢰성과 정확성을 보장합니다.패킷의 순서를..
자바스크립트 ⇒ 싱글스레드언어 ( 한번에 하나의 작업만 처리)때문에 비동기 방식은 자바스크립트가 아닌 브라우저의 web apis에서 비동기 + 논블로킹 방식으로 처리됨이벤트루프란?브라우저의 동작을 제어하는 관리자역할싱글 스레드인 자바스크립트의 작업을 멀티 스레드로 돌려 작업을 동시에 처리시키게 하던가, 또는 여러 작업 중 어떤 작업을 우선으로 동작시킬 것인지 결정하는 세심한 컨트롤을 하기 위해 존재하는 것이 바로 이벤트 루프 이벤트 루프를 이용한 프로그램 방식을 이벤트 기반(Event Driven) 프로그래밍이라고함자바스크립트의 내부 구성도call stack : 자바스크립트 엔진이 코드실행을 위해 사용하는 메모리구조callback queue : 비동기 작업이 완료되면 실행되기위해 대기하는 공event..
스코프참조 대상 식별자를 찾아내기 위한 규칙변수 / 함수의 유효범위를 뜻함전역 스코프 (Global scope) : 스크립트 전체에서 참조되는 것을 의미하며, 어느 곳에서든 참조 된다.지역 스코프 (Local scope) : 정의된 함수 내에서만 참조되는 것을 의미하며, 밖에서는 참조 되지 않는다.렉시컬 스코프함수를 어디 선언하는지에 따라 상위 스코프가 결정되는 자바스크립트를 포함한 대부분의 프로그래밍 언어는 렉시컬 스코프를 따름var x = 1;function foo() { var x = 10; bar();}function bar() { console.log(x);}foo(); // 1bar(); // 1위와 같은 상황에서 bar 함수에서 참조하는 x 변수는 bar 함수의 상위 스코프가 무엇인지에 따라..