본문 바로가기

Developer609

CAP 정리에 대해서 알고 계신가요? CAP 정리는 분산 데이터베이스 시스템이 CAP 중 2개의 속성만을 제공할 수 있다는 이론입니다. CAP 정리에 따르자면, 일관성(Consistency), 가용성(Availability), 분할 내성(Partition Tolerance) 등 3가지 속성을 모두 만족하는 분산 데이터베이스 시스템은 존재하지 않습니다.각 속성에 대해서 설명해주시겠어요? 🤔일관성(Consistency) 은 모든 클라이언트 요청은 어느 노드에 연결되어도 같은 데이터를 볼 수 있음을 의미합니다.가용성(Availability) 은 노드 일부에 문제가 발생하여도 시스템은 클라이언트의 모든 요청에 유효한 응답을 전해줄 수 있어야 함을 의미합니다.분할 내성(Partition Tolerance) 은 노드 사이에 통신이 불가능한 상황(파티.. 2025. 12. 4.
시스템 간 비동기 연동 방식에는 무엇이 있나요? 분리된 시스템 간의 비동기 연동은 시스템 간의 결합도를 낮출 수 있으며, 호출된 시스템의 응답을 기다리지 않으므로 더욱 빨리 사용자의 요청에 응답할 수 있다는 장점이 있습니다. 비동기 연동 방식으로 메시징 시스템 활용, 데이터베이스 활용, CDC 활용 방식을 알고 있습니다.각 방식에 대한 설명과 고려 사항을 설명해 주세요. 😀메시징 시스템 활용 방식은 두 시스템 사이에 메시징 시스템을 두어 비동기로 연동하는 방식입니다. 해당 방식은 한 시스템에서 메시지를 생성해서 메시징 시스템에 송신한 이후, 다른 시스템에서 메시징 시스템으로부터 메시지를 읽어와 메시지를 처리합니다. KafKa, RabbitMQ가 주로 메시징 시스템으로 활용됩니다. 해당 방식은 처리량이 높은 것이 장점입니다. 하지만, 메시지 유실, 메.. 2025. 12. 3.
HTTP/1.1과 HTTP/2.0에 대해서 설명해주세요. HTTP/1.1에 대해서 설명해주세요.HTTP는 웹상에서 클라이언트와 서버 간 통신을 위한 프로토콜입니다. HTTP/1.0의 경우에는 한 개의 요청과 응답마다 TCP 커넥션을 생성하여 사용됐습니다. 하지만, 이러한 방식은 매 요청마다 연결을 생성하는 오버헤드가 발생합니다. HTTP/1.1은 이러한 문제를 지속 커넥션(Persistent Connection) 이라는 지정한 타임아웃만큼 커넥션을 종료하지 않는 방식으로 해결합니다.또한 파이프라이닝(Pipelining) 을 지원하여 요청의 응답 지연을 감소합니다. 파이프라이닝에서 HTTP 요청은 연속적이며, 순차적으로 전달됩니다. 기존에는 요청한 이후에 응답을 기다리고 그 다음 요청을 보냈는데요. 파이프라이닝에서는 필요한 모든 자원에 대한 요청을 순차적으로 서.. 2025. 11. 28.
프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유는 무엇인가요? 컨텍스트 스위칭(Context Switching)이란?컨텍스트 스위칭은 CPU나 코어에서 실행 중이던 프로세스나 스레드가 다른 프로세스나 스레드로 교체되는 과정을 말합니다. 이는 멀티태스킹 시스템에서 여러 작업을 효율적으로 관리하기 위해 필수적인 메커니즘입니다.컨텍스트(Context)란?컨텍스트는 프로세스나 스레드의 현재 상태를 의미합니다. 여기에는 CPU의 레지스터 상태(프로그램 카운터, 스택 포인터 등)와 메모리 상태가 포함됩니다. 컨텍스트는 프로세스나 스레드가 실행을 중단하고 나중에 다시 시작할 때 필요한 모든 정보를 담고 있습니다.컨텍스트 스위칭이 필요한 이유멀티태스킹 시스템에서는 여러 프로세스나 스레드가 동시에 실행되는 것처럼 보이도록, CPU가 짧은 시간 단위로 작업을 전환하며 여러 작업을 처.. 2025. 11. 27.
📌 MariaDB vs PostgreSQL vs Oracle – 실무 개발자를 위한 핵심 비교 정리 DB 선택은 시스템 설계에서 가장 중요한 의사결정 중 하나입니다.오늘은 MariaDB, PostgreSQL, Oracle 세 가지 DB를개발자 관점에서 명확하게 비교해보겠습니다.특히 SI/기관/대규모 시스템 경험 기준으로 실무에서 어떤 차이가 나는지 집중해서 설명합니다.1. 개요 – 각 DB의 포지션✔ MariaDBMySQL 기반의 오픈소스 DB.가볍고 빠르고, 단순 CRUD 기반 서비스에 적합.스타트업·내부관리·웹서비스에서 많이 사용.✔ PostgreSQL표준 SQL 준수율 최고 수준의 오픈소스 ORDBMS.복잡한 쿼리·분석·JSON 처리·MVCC 안정성에 강함.기관·SI·엔터프라이즈에서도 빠르게 확산 중.✔ Oracle대규모 금융/공공기관에서 사용하는 대표적인 상용 DB.RAC, Undo 기반 MVC.. 2025. 11. 26.
📌 PostgreSQL 기초 개념 정리 – 개발자를 위한 핵심 이해 PostgreSQL는 대표적인 오픈소스 관계형 데이터베이스(RDBMS)로,정확성·안정성·표준 SQL 준수율 때문에 최근 공공, 금융, SI 프로젝트에서도 빠르게 도입되고 있습니다.이 글에서는 PostgreSQL의 핵심 개념을 실무 개발자 관점에서 쉽게 정리합니다.1. PostgreSQL란?PostgreSQL는 객체-관계형 DBMS(ORDBMS) 로 분류되며,강력한 SQL 기능, 확장성, 고도화된 트랜잭션 처리(MVCC)를 기반으로 동작합니다.특징 요약:표준 SQL 준수율 최고 수준트랜잭션 안정성 우수 (MVCC)JSONB 기반 반-NoSQL 기능 제공확장 기능(TimescaleDB, PostGIS 등) 강력상용 DB에 필적하는 기능을 무료로 제공2. 트랜잭션 처리의 핵심: MVCCMVCC(Multi-Ve.. 2025. 11. 26.
localStorage와 sessionStorage의 차이점에 대해서 설명해주세요. localStorage와 sessionStorage는 브라우저에서 제공하는 클라이언트 측 저장소 API로, 둘 다 데이터를 키-값 쌍 형태로 저장합니다.차이점은 데이터의 지속성과 범위에 있습니다.localStorage는 데이터를 영구적으로 저장합니다. 브라우저를 닫거나 장치를 재부팅해도 데이터가 유지되며, 동일한 도메인 내의 모든 탭에서 데이터를 공유할 수 있습니다.사용 예로는 다크모드 같은 테마 설정이나 장바구니 데이터와 같이 장기적으로 유지해야 하는 데이터 저장에 적합합니다.sessionStorage는 데이터가 현재 브라우저 세션 동안만 유지되며, 브라우저 탭이나 창을 닫으면 데이터가 삭제됩니다. 또한, 같은 도메인이라도 탭 간에는 데이터를 공유하지 않습니다.사용 예로는 로그인 후 인증 데이터를 일시.. 2025. 11. 25.
REST란 무엇인가요? REST(Representational State Transfer) 는 자원의 표현을 이용하여 상태를 주고받는 것을 의미합니다. 여기서 자원이란 소프트웨어가 관리하는 모든 것을 의미하며 자원의 표현은 자원을 나타내기 위한 이름을 의미합니다. 가령, 서버가 관리하는 주문 데이터는 order 라고 표현할 수 있습니다. 최근에는 일반적으로 자원의 상태를 나타내기 위해 JSON 포맷을 사용합니다. REST는 네트워크 상에서 클라이언트와 서버의 통신 방식 중 하나이며, HTTP 프로토콜을 사용합니다. 구체적으로는 HTTP URI를 활용하여 자원을 명시하고 HTTP METHOD를 통해 CRUD 연산을 적용하는 것을 의미합니다.API(Application Programming Interface) 란 컴퓨터 프로그램 .. 2025. 11. 24.
캐싱 전략에 대해서 설명해주세요. 캐시는 성능 향상과 부하 감소를 목표로 합니다. 이때 캐시를 사용하는 양상이 서비스에 큰 영향을 끼치기도 합니다. 따라서, 캐싱 전략을 이해하는 것은 중요합니다.Cache Aside(Lazy Loading) 방식에 대해서 설명해주세요. 😀Cache Aside 방식은 캐시 히트 시 캐시에서 데이터를 불러오며, 캐시 미스 발생 시 원본 데이터베이스에서 조회하여 반환합니다. 애플리케이션은 캐시 미스가 발생하면 해당 데이터를 캐시에 적재합니다.해당 방식은 실제 요청된 데이터만 캐시에 저장되므로 불필요한 데이터 캐싱을 줄일 수 있습니다. 또한, 캐시에 문제가 발생해도 애플리케이션은 원본 데이터베이스에 직접 접근할 수 있기 때문에 서비스가 계속 작동할 수 있다는 장점이 있습니다. 하지만, 캐시 미스가 발생하는 경.. 2025. 11. 22.