Computer Science (6) 썸네일형 리스트형 메시지 큐(Message Queue) 정리 메시지 큐(Message Queue)분산 시스템에서 애플리케이션 간 비동기 통신을 가능하게 하는 핵심 인프라메시지 큐의 기본 원리비동기 처리: 요청을 큐에 넣어두고 나중에 처리할 수 있어, 요청과 처리 시점을 분리. 이를 통해 시스템은 응답 대기 시간 없이 즉시 다음 작업을 수행할 수 있다.낮은 결합도(Decoupling): 생산자(Producer)와 소비자(Consumer)가 서로의 상태나 속도에 관계없이 독립적으로 동작할 수 있다. 생산자는 메시지를 큐에 전송하기만 하면 되고, 소비자는 자신의 처리 속도에 맞춰 메시지를 가져간다.높은 안정성: 소비자가 일시적으로 장애가 발생하더라도 메시지는 큐에 안전하게 보관된다. 서비스가 복구되면 큐에 저장된 메시지부터 처리를 재개할 수 있어 데이터 손실을 최소화한.. HTTP 버전 별 특징 HTTP 버전별 변화 정리HTTP(HyperText Transfer Protocol)란?웹에서 브라우저와 서버가 데이터를 주고받는 애플리케이션 계층 프로토콜인터넷이 발전하면서 HTTP는 여러 버전으로 개선되어 왔고, 각 버전에 따라 웹의 구조, 성능, 보안성이 달라진다.HTTP/1.0주요 특징1 TCP 연결 = 1 HTTP 요청: 요청마다 새로운 TCP 연결 생성RTT(Round Trip Time) 증가: 연결 설정과 해제가 반복되어 지연 발생단순한 요청/응답 구조: 상태를 유지하지 않는 무상태 프로토콜RTT 증가 문제 해결 방법당시 개발자들은 성능 향상을 위해 다양한 최적화 기법을 사용함:1. 이미지 스프라이트(Image Spriting)/* 여러 이미지를 하나로 합쳐서 HTTP 요청 수 감소 */.i.. 디자인 패턴 총정리 디자인 패턴싱글톤 패턴 (Singleton Pattern)하나의 클래스에 오직 하나의 인스턴스만 생성하도록 보장하는 패턴장점인스턴스 생성 비용 절약: 메모리 효율성 향상전역 접근: 애플리케이션 전체에서 동일한 인스턴스 사용지연 초기화: 필요한 시점에만 인스턴스 생성단점의존성 증가: 전역 상태로 인한 결합도 상승TDD 어려움: 테스트 간 독립성 훼손 (테스트는 서로 독립적이고 순서에 상관없어야 함)멀티스레딩 이슈: Thread-Safe 구현 필요사용 사례데이터베이스 연결 모듈커넥션 풀스레드 풀설정 객체구현 방법// Thread-Safe한 싱글톤 (권장)public class Singleton { private Singleton() {} private static class SingletonHol.. Java 가비지 컬렉션 자바 가비지 컬렉션의 동작 알고리즘자바의 가비지 컬렉션은 더 이상 사용되지 않는 객체들을 자동으로 메모리에서 제거하는 JVM의 핵심 기능이다. 가비지 컬렉션은 개발자가 수동으로 메모리 관리를 하지 않아도 되도록 하여 메모리 누수를 방지하고 개발 생산성을 향상시킨다. 약한 세대 가설 (Weak Generational Hypothesis)자바의 가비지 컬렉션은 약한 세대 가설이라는 전제를 기반으로 설계되었다. 이 가설은 다음 두 가지 관찰에 기반한다.대부분의 객체는 금방 접근 불가능한 상태(Unreachable)가 된다.오래된 객체에서 새로운 객체로의 참조는 매우 적게 존재한다.이러한 가설에 따라 JVM은 힙 메모리를 Young Generation과 Old Generation으로 분할하여 효율적인 메모리 .. 얉은 복사 VS 깊은 복사 (Python, Java) 얕은 복사와 깊은 복사얕은 복사(Shallow Copy)는 객체의 참조값(주소값)만을 복사하는 방식이고, 깊은 복사(Deep Copy)는 객체의 실제 값을 새로운 메모리 공간에 복사하는 방식이다.얕은 복사 (Shallow Copy)얕은 복사는 객체의 최상위 속성만 복사하고, 중첩된 객체나 배열은 원본과 같은 참조를 공유한다. 이는 메모리를 절약하고 빠른 복사가 가능하지만, 중첩된 객체를 수정하면 원본에도 영향을 미치는 특징이 있다.얕은 복사의 특징메모리 효율성: 주소값만 복사하므로 메모리 사용량이 적다.빠른 속도: 참조만 복사하므로 복사 과정이 빠르다.참조 공유: 중첩된 객체를 원본과 복사본이 공유한다.깊은 복사 (Deep Copy)깊은 복사는 객체의 모든 레벨의 중첩된 속성까지 완전히 새로운 메모리 공.. AST & JavaScript 컴파일러 동작 방식 AST란?추상 구문 트리(abstract syntax tree, AST) 또는 간단히 구문 트리(syntax tree)는 프로그래밍 언어로 작성된 소스 코드의 추상 구문 구조의 트리이다.이 트리의 각 노드는 소스 코드에서 발생되는 구조를 나타낸다.구문이 추상적이라는 의미는 실제 구문에서 나타나는 모든 세세한 정보를 나타내지는 않는다는 것을 의미한다.예를 들어, 그룹핑을 위한 괄호는 암시적으로 트리 구조를 가지며, 분리된 노드로 표현되지는 않는다.마찬가지로, if-condition-then 표현식과 같은 구문 구조는 3개의 가지에 1개의 노드가 달린 구조로 표기된다.출처: 위키백과 AST를 한국어로 한다면 추상 구문 트리이다.본인은 어려운 용어를 이해할 때 그 말을 끊어서 뜻을 이해하는데 AST도 그렇게 .. 이전 1 다음