캡처 필터 (Capture Filter) – 패킷을 캡처할 때부터 걸러냅니다.디스플레이 필터 (Display Filter) – 캡처한 이후 화면에 보여줄 패킷을 필터링합니다.🎯 1. 캡처 필터 (Capture Filter)Wireshark 실행 전에 설정합니다. (예: tcp port 80)목적필터 예시설명특정 IPhost 192.168.0.10IP가 192.168.0.10인 트래픽만송신 IPsrc host 192.168.0.10출발지 IP가 192.168.0.10수신 IPdst host 192.168.0.10목적지 IP가 192.168.0.10특정 포트port 80포트 80의 트래픽만TCP만tcpTCP 트래픽만UDP만udpUDP 트래픽만TCP + 특정 포트tcp port 443TCP 443 포트(HT..
✅ BlockingQueue란?java.util.concurrent.BlockingQueue는 생산자-소비자 패턴에 적합한 멀티스레드 안전 큐 인터페이스입니다.쓰레드 간 데이터 전달용 큐로,큐가 **비어 있을 때 take() 호출 시 대기(block)**하고,큐가 **가득 찼을 때 put() 호출 시 대기(block)**합니다.✅ 주요 메서드 특징메서드 설명 동작put(E e)큐가 꽉 차면 블로킹생산자가 데이터를 넣음take()큐가 비어있으면 블로킹소비자가 데이터를 꺼냄offer(E e)큐가 꽉 차면 false 반환비블로킹poll()큐가 비어있으면 null 반환비블로킹✅ 주요 구현체 비교구현체내부 구조특성큐 용량용도ArrayBlockingQueue배열고정 크기고정생산자/소비자 기본형LinkedBlocki..
✅ Java 큐/스택 계열 컬렉션 비교 컬렉션 특징 주요 메서드 시간 복잡도 용도 / 사용 시점Stack후입선출(LIFO) 구조push(), pop(), peek()O(1)계산기, 괄호 검사, DFSQueue (인터페이스)선입선출(FIFO) 구조offer(), poll(), peek()O(1)일반적인 작업 대기열LinkedListQueue, Deque 동시 구현add(), remove(), get() 등O(1) (양 끝 삽입/삭제)큐, 덱 용도로 유연하게 사용 가능ArrayDequeDeque 구현체, 스택/큐 대체 가능addFirst(), addLast(), pollFirst() 등O(1)Stack, Queue 대체로 우수PriorityQueue우선순위 큐 (힙 기반)offer(), poll(), pe..
✅ Java 주요 컬렉션 비교표 컬렉션 특징 주요 메서드 성능 중복 허용 정렬 보장 쓰레드 안전ArrayList배열 기반 리스트. 인덱스 접근이 빠름.get: O(1)add/remove: O(n) (중간에서)허용삽입 순서 유지❌LinkedList이중 연결 리스트 기반. 삽입/삭제 빠름get: O(n)add/remove: O(1) (앞뒤에서)허용삽입 순서 유지❌HashSet해시 기반. 순서 없음. 빠른 검색add/remove/contains: O(1)❌ 중복 불가❌❌LinkedHashSetHashSet + 삽입 순서 유지HashSet과 동일❌✔ 삽입 순서 유지❌TreeSet이진 탐색 트리 기반 (Red-Black Tree)add/remove/contains: O(log n)❌✔ 정렬됨 (자연순/비교기)..

👀 Observer 패턴 (관찰자 패턴)✅ 정의객체의 상태 변화가 있을 때, 그 변화를 관심 있는 다른 객체(옵저버)에게 자동으로 알려주는 디자인 패턴즉, **“어떤 객체를 관찰하고 있다가, 변화가 생기면 알려줘!”**라는 구조를 구현하는 방식입니다.🎯 기본 구성 요소구성요소설명Subject관찰 대상. 상태가 변경되면 옵저버들에게 알림Observer변화를 감지하고 반응하는 객체Notify()Subject가 상태 변화 시 Observer에게 알리는 메서드🧵 구조 Subject (Publisher) ├── observers[] 등록 └── 상태 변경 시 notify() 호출 ↓Observer A (Subscriber)Observer B (Subscriber)📦 예제 – 자바 코드// O..
✅ 1. CRON (크론)📌 정의유닉스/리눅스 계열 운영체제에서 사용되는 시간 기반 작업 스케줄러주기적으로 반복되는 작업을 자동으로 실행하기 위해 사용📌 동작 방식리눅스의 cron daemon이 정해진 시간에 등록된 명령을 실행설정 파일인 **crontab**을 사용하여 작업 등록📌 Cron 표현식 예시* * * * * 명령어│ │ │ │ ││ │ │ │ └── 요일 (0=일요일~6=토요일)│ │ │ └──── 월 (1~12)│ │ └────── 일 (1~31)│ └──────── 시 (0~23)└────────── 분 (0~59)📌 예시# 매일 자정에 스크립트 실행0 0 * * * /home/user/backup.sh# 매 5분마다 실행*/5 * * * * /usr/bin/python3 /h..
Thread, Coroutine, Green Thread는 모두 동시성(Concurrency) 과 병렬성(Parallelism) 을 다루기 위한 실행 단위이지만, 운영 방식과 무게감, 어디서 스케줄링되는지(OS vs 사용자) 에 따라 명확히 구분됩니다.🧵 1. Thread (쓰레드)✅ 정의OS(운영체제)가 관리하는 실행 단위하나의 프로세스 내부에서 여러 개의 작업을 동시에 처리할 수 있게 해줌무거움 (Heavyweight): 생성, 전환, 관리 비용이 큼✅ 특징각각 독립된 스택(stack) 을 가짐OS 수준에서 스케줄링되며, CPU 코어 수만큼 진짜 병렬 실행 가능하지만 context switching(문맥 교환) 비용이 큼✅ 예시Thread t1 = new Thread(() -> { System..
✅ 1xx: 정보 응답 (Informational) 상황 상태코드 의미요청을 받았고 처리 중임100Continue전환 프로토콜 제안 (업그레이드)101Switching Protocols🟢 2xx: 성공 응답 (Success) 상황 상태코드 의미요청 성공, 리소스 있음200OK새 리소스 생성됨 (POST/PUT)201Created요청은 성공했으나 응답 본문 없음204No Content클라이언트가 보낸 헤더 조건 충족206Partial Content (Range 요청에 사용)🟡 3xx: 리디렉션 (Redirection)상황 상태코드 의미 의미리소스가 임시로 다른 URI에 있음302Found (Temporary Redirect)리소스가 영구적으로 이동됨301Moved Permanently캐시된..
✅ Path Variable이란?path variable은 URL 경로의 일부로 동적인 값을 전달하기 위한 방법입니다. 예를 들어 /users/123에서 123은 id라는 path variable입니다. RESTful API에서 자원을 명확하게 식별하기 위한 URL 패턴으로 널리 사용됩니다.1. Path Variable을 사용하는 이유① RESTful한 API 설계GET /users/123: ID가 123인 사용자를 조회DELETE /products/987: ID가 987인 상품 삭제HTTP 메서드(GET, POST, PUT, DELETE)와 결합하여 자원 중심의 API 구조를 설계할 수 있습니다.② 자원의 명확한 식별URL을 통해 특정 자원을 바로 가리킵니다.예: /articles/2024, /orde..