본문 바로가기

Research/Computer Science12

DB 인덱스 인덱스란 인덱스는 DB 테이블에 대한 검생 성능을 높여주는 데이터 구조다. 존재하는 테이블 위에 구축한다. 예를 들어 기존 테이블이 책 본문이라고 한다면, 인덱스는 책의 목차 페이지다. 특정 데이터를 DB에서 조회한다고 했을 때, 해당 데이터가 어디에 있는지 모르기 때문에 full scan을 하게 된다. 하지만 이미 Index로 정렬된 상태라면 어느 위치에 있는지 잘 알기 때문에 빠르게 데이터를 찾을 수 있다. 인덱스의 작동 순서는 이렇다. 인덱스로 간다 인덱스에 저장된 데이터의 물리 주소 참조 데이터의 물리 주소로 가서 데이터를 가져온다 ) (도표 출처 : https://coding-factory.tistory.com/746) 인덱스의 종류 B+Tree Index Bitmap Index IOT(Inde.. 2023. 3. 28.
Dependency Injection DI(의존성 주입, Dependency Injection)이란 의존성 주입(DI, Dependency Injection)은 디자인 패턴 중 하나로 클래스 내 의존관계를 가진 인스턴스를 생성하는 것 대신 주입을 하는 것이 특징이다. DI의 유형 의존성 주입의 유형은 여러가지가 있다. Constructor Injection Setter Injection Interface Injection Field Injection DI의 장점 코드의 유연성과 재사용성이 높아서 생산성이 높아진다 테스트와 유지보수가 간편해진다 확장성이 좋다 가독성이 좋다 DI의 단점 클래스가 점점 많아지면 복잡도가 커진다 주입된 클래스 추적이 어렵다 프레임워크에 대한 의존성이 커진다 생성자 주입 시나리오 1 일반적인 시나리오는 이렇다. No.. 2023. 3. 28.
REST API REST API란 무엇이고 어떻게 사용하나? API란 무엇인가? API(Application Programming Interface)란 어플리케이션 끼리 연결을 하기 위한 약속이다. API를 작성하는 것은 웹 앱에서 원하는 기능을 수행하는 URL과 인터페이스를 만드는 것이다. API를 만들면 클라이언트가 원하는 행위를 처리해줄 수 있다. 예를 들어, 클라이언트가 보낸 데이터를 DB에 저장하거나 저장한 데이터를 읽고 클라이언트에게 보내주는 등 말이다. REST란 무엇인가? REST(Representational State Transfer)은 분산 하이퍼아미디어 시스템(예: WWW)를 위한 소프트 아키텍처 형식 중 하나다. RESTful API의 구성 요소 Resources(자원) : 주문, 상품, 고객 등.. 2023. 3. 27.
OOP(Object-Oriented Programming) OOP란 무엇이고, 다른 프로그래밍 패러다임과 어떤 차이가 있나? OOP는 프로그램 패러다임 중 하나이다. 프로그래밍 패러다임의 유형을 예로 들라 하면 Procedule, Functional, OOP 이 3개가 대표적으로 거론됩니다. 프로그래밍 패러다임을 구분하면 이렇습니다. 명령형(How) 절차지향 : 순차적인 처리 과정에 집중. C, C++ 객체지향 : 객체들의 집합으로 상호작용에 집중. C++, Java, C#, Python, Swift, Ruby, Perl, ... 선언형(What) 순수 함수를 조합하는데 집중. Closure, Haskel, Lisp, ... 명령형에서 절차 지향이 컴퓨터 친화적이면 객체지향은 개발자 친화적인 패러다임이라고 보면 됩니다. Procedule(절차형) 프로그래밍 프로.. 2023. 3. 27.