본문 바로가기

CS study

(47)
[DataSource]HikariCP DataSource 연동 과정 및 구현체 https://www.javadoc.io/doc/com.zaxxer/HikariCP/latest/com.zaxxer.hikari/com/zaxxer/hikari/package-summary.html com.zaxxer.hikari package summary - HikariCP 5.1.0 javadoc Latest version of com.zaxxer:HikariCP https://javadoc.io/doc/com.zaxxer/HikariCP Current version 5.1.0 https://javadoc.io/doc/com.zaxxer/HikariCP/5.1.0 package-list path (used for javadoc generation -link option) https://javadoc..
[디자인 패턴]프록시(Proxy) 패턴 설명과 예시 https://refactoring.guru/ko/design-patterns/proxy 프록시 패턴 / 디자인 패턴들 / 구조 패턴 프록시 패턴 다음 이름으로도 불립니다: Proxy 의도 프록시는 다른 객체에 대한 대체 또는 자리표시자를 제공할 수 있는 구조 디자인 패턴입니다. 프록시는 원래 객체 refactoring.guru 개요 프록시 패턴은 구조 패턴의 하나로, 어떤 객체에 대한 접근을 제어하는 대리인(프록시) 객체를 두어 직접적인 접근을 방지하는 패턴이다. 이 패턴은 실제 서비스 객체의 참조를 감싸는 프록시 객체를 생성하여, 클라이언트가 서비스 객체에 접근할 때 프록시 객체를 통해 간접적으로 접근하게 만든다. 프록시 패턴은 접근 제어, 비용이 많이 드는 연산의 지연 실행, 원격 객체의 접근 등 ..
3주차 - 랜덤I/O, 순차 I/O와 인덱스, B+Tree, B-Tree 질문 1. 랜덤 I/O와 순차 I/O에 대해서 설명해주세요. 랜덤 I/O vs 순차 I/O 랜덤 I/O는 디스크에서 비연속적인 위치에 있는 데이터를 읽는 방식이며, 순차 I/O는 데이터를 연속적인 순서로 읽는 방식이다. - 당연하게도 순차 I/O가 더 빠르다. (디스크 상의 연속적인 위치에 저장) - 데이터베이스 시스템에서는 종종 랜덤 I/O가 필요하다. 데이터베이스에는 다양한 쿼리가 수행되며, 이 쿼리들은 테이블의 여러 위치에 저장된 데이터를 요구하기 때문. 특히 인덱스 검색이나 특정 조건에 맞는 레코드 검색과 같은 작업에서 랜덤 I/O가 필수적이다. - 인덱스 레인지 스캔은 데이터를 읽기 위해 주로 랜덤 I/O를 사용하며, 풀 테이블 스캔은 순차 I/O를 사용한다. 2. 인덱스에 대해서 설명해주세요...
DataBase 2주차 정리 - SQL, DDL, DML, DCL, JOIN, 쿼리 순서 질문 1. SQL에 대해서 설명해주세요. C언어와 같은 프로그래밍 언어와 어떤차이가 있나요? 특정 어휘와 특정 구문을 갖는 프로그래밍 언어의 정의를 고려하면 SQL은 프로그래밍 언어라고 할 수 있다. 그러나 범용 사용이 가능한 GPL(General Purpose Language)보다는 실제로는 DSL(Domain-Specific Language) 에 가깝다. SQL은 데이터베이스 관리 및 데이터 조작을 위해 설계된 특수 목적 언어(Domain-Specific Language, DSL)이다. 이 언어는 데이터를 저장, 검색, 수정, 삭제하는 등의 기능을 제공한다. SQL과 DSL SQL은 프로그래밍 언어의 일반적 정의에 부합한다. 특정 어휘와 구문을 사용하며, 명령을 실행할 수 있기 때문이다. 그러나 일반..
1주차 스터디 노트(DB, 스키마, RDBMS, Key, 제약조건) 1. 파일시스템과 데이터베이스의 차이점에 대해서 설명해주세요. 파일 시스템은 간단한 데이터 저장 목적으로 사용되고, 데이터베이스는 데이터의 일관성, 성능, 보안, 중복 최소화 등 다양한 측면에서 향상된 기능을 제공한다. 언뜻 보면 두 구조는 비슷해 보인다. 하지만 핵심적으로 말하자면 다음과 같은 차이가 있을 것이다. 파일시스템은 데이터를 파일 형태로 저장하며, 데이터베이스는 구조화된 방식으로 데이터를 저장한다. 파일 시스템? : 데이터를 파일에 저장 파일시스템은 운영 체제의 일부로, 파일을 저장하고 관리하는 방식이다. 데이터 접근과 관리가 기본적이고, 복잡한 쿼리나 트랜잭션 지원이 없다. 데이터베이스? : 정의된 데이터 형식, 구조화된 데이터를 저장 데이터를 테이블 등의 구조로 저장하며, 복잡한 쿼리, ..
예시를 통해 알아보는 Java의 Call by Value, Call by Reference 개념 개요 java에서는 call by value로 jvm이 동작하고, c++등에서는 call by reference로 참조에 의한 복사로 객체들이 생성되고 동작된다고 한다. (물론, 최신 트렌드에서는 이를 적당히 합하여 사용한다. 원론적인 이야기이다.) 오늘은 이 개념에 대해 의의와 실제 동작 과정에서 어떻게 이루어지는지 알아볼 것이다. 한 눈에 보는 두 개념의 차이 요약 : 참조에 의한 호출은 그냥 무조건 메모리 주소 자체를 참조하는 거고, 값에 의한 호출은 그 값의 복사본을 만들어서(만들때 원본을 참조) 운영한다는 차이이다. Call by reference : 원본 데이터 자체를 직접 조작. Call by value : 원본 데이터를 보호하면서 독립적인 복사본을 통해 작업을 수행. call by valu..
[Elasticsearch] RDBMS에 비해 왜 빠를까? 역인덱싱에 대해 개요 NoSQL의 경우 일반적으로 RDBMS보다 빠르다고 하는데, 구체적으로 왜 그런지 조사해보았다. RDBMS(관계형 데이터베이스 관리 시스템)와 NoSQL(비관계형 데이터베이스)은 데이터를 저장하고 관리하는 방식에서 근본적인 차이가 있다. 아래와 같은 이유로 차이가 발생한다. 구조적 차이 SQL의 주요 초점은 데이터 중복을 줄이는 것. RDBMS의 경우 테이블 형식으로 데이터를 저장하며, 엄격한 스키마를 따른다. 데이터는 행과 열로 구성되며, SQL(Structured Query Language)을 사용하여 데이터를 조작한다. 이를 통해 데이터의 무결성과 일관성, 트랜잭션 등의 규칙을 엄격하게 지킬 수 있다. NoSQL은 반대로 유연하고 빠른 동적 스키마를 제공한다. NoSQL 데이터베이스는 비관계형..
URI/URL/URN, Restful 원칙 개요 기존 개념의 추가 정의 시간이다. 알고는 있었지만 명확하게 설명하지 못했던 내용들을 다시 복기하고, 정리하고자 한다. Restful을 설명하기 전에, 헷갈렸던 URI/URL부터 짚고 넘어가 보자. URI/URL/URN 1. URI (Uniform Resource Identifier) 정의: URI는 인터넷에서 자원을 식별하는 데 사용되는 문자열이다. '자원'은 웹 페이지, 문서, 이미지, 파일, 그리고 백엔드에서 자주 사용하는 API Endpoint 를 포함하는 개념이다. 기능: URI는 특정 자원을 식별하고, 해당 자원이 어떻게 접근될 수 있는지에 대한 정보를 제공한다. 종류: URI에는 두 가지 주요 형태가 있다. URL (Uniform Resource Locator) URN (Uniform R..