본문 바로가기

ComputerScience

(72)
[Database] SQL이란, 그리고 SQL문이 실행되는 과정과 원리 SQL SQL(Structured Query Language)은 데이터베이스에서 데이터를 생성, 검색, 업데이트, 삭제하기 위한 표준 프로그래밍 언어입니다. SQL은 관계형 데이터베이스 관리 시스템(RDBMS)에 주로 사용되며, 1986년에 표준화되었습니다. SQL의 주요 특징은 다음과 같습니다. DDL(Data Definition Language): 데이터베이스 구조를 정의하고 수정하기 위한 명령어를 포함합니다. CREATE, ALTER, DROP 등의 명령어가 여기에 속합니다. DQL(Data Query Language): 데이터베이스에서 특정 데이터를 조회하기 위한 명령어를 포함합니다. 가장 일반적인 예는 SELECT 문입니다. DML(Data Manipulation Language): 데이터베이스..
[Java] 인터페이스가 다중 상속이 가능한 이유? 왜 클래스는 단일 상속만 가능한데, 인터페이스는 2개 이상 구현이 가능할까요? 일단 인터페이스에 대해 간단히 다시 요약해보겠습니다. 인터페이스 클래스가 어떤 메소드를 반드시 구현해야 하는지를 명시하는 역할을 합니다. 클래스는 인터페이스를 구현함으로써 이 인터페이스가 요구하는 메소드들을 모두 정의해야 합니다. 인터페이스는 메소드와 상수만을 가질 수 있으며, 이들은 모두 public이어야 합니다. interface printable{ void print(); } class A6 implements printable{ public void print(){ System.out.println("Hello"); } public static void main(String args[]){ A6 obj = new A6(..
[Database] 데이터베이스란 데이터베이스 데이터베이스는 구조화된 정보 또는 데이터의 조직된 모음으로, 일반적으로 컴퓨터 시스템에서 전자적으로 저장됩니다. 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어됩니다. 데이터와 DBMS는 연관된 응용 프로그램과 함께 데이터베이스 시스템으로 불리며 종종 간단히 데이터베이스로 줄여집니다. 오늘날 가장 일반적으로 사용되는 데이터베이스 유형 내의 데이터는 일련의 테이블에서 행과 열로 모델링됩니다. 이를 통해 처리 및 데이터 쿼리가 효율적으로 이루어집니다. 데이터는 쉽게 액세스, 관리, 수정, 업데이트, 제어 및 조직될 수 있습니다. 대부분의 데이터베이스는 구조화된 쿼리 언어(SQL)를 사용하여 데이터를 작성하고 쿼리합니다. Structured Query Language (S..
[DesignPattern] 18개 디자인 패턴 총 정리, 요약 Abstract Factory: Family Creator Makes groups of related items. 관련된 항목들의 그룹을 만듭니다. Builder: Lego Master Builds objects step by step, keeping creation and appearance separate. 단계적으로 객체를 생성하며, 생성과 외관을 분리합니다. Prototype: Clone Maker Creates copies of fully prepared examples. 완전히 준비된 예제의 복사본을 생성합니다. Singleton: One and Only A special class with just one instance. 하나의 인스턴스만 가지는 특별한 클래스입니다. Adapter: Uni..
[Network] REST API vs GRAPHQL REST API vs GRAPHQL REST와 GraphQL은 둘 다 데이터를 노출하고 현대적인 응용 프로그램을 구동하는 데 사용되는 두 가지 API 접근 방식입니다. 그러나 각각은 특정 상황에서 더 적합한 선택일 수 있습니다. REST CRUD 작업에 대해 GET, POST, PUT, DELETE와 같은 표준 HTTP 메서드를 사용합니다. 별도의 서비스 또는 응용 프로그램 간에 간단하고 일관된 인터페이스가 필요한 경우에 잘 작동합니다. 캐싱 전략은 구현하기가 간단합니다. 하지만 관련된 데이터를 별도의 엔드포인트에서 가져오기 위해 여러 Round-Trip이 필요할 수 있습니다. GraphQL 클라이언트가 필요한 정확한 데이터를 쿼리하기 위한 단일 엔드포인트를 제공합니다. 클라이언트는 중첩된 쿼리에서 필요..
[Network] RESTful web API design REST REST 아키텍처 스타일은 웹이 1991년에 팀 버너스 리에 의해 탄생함으로써 시작되었습니다. 웹은 하이퍼텍스트를 활용하여 정보를 연결하는 방식으로, 인터넷에서 정보를 공유하는 방법을 제시했습니다. 웹의 기본 구성 요소는 다음과 같습니다. 표현 형식: HTML 식별자: URI 전송 방법: HTTP HTTP는 정보를 웹에서 전송하는 데 사용되는 프로토콜로, 1994년에 로이 필딩이 주도하여 개발되었습니다. 필딩은 HTTP 1.0의 명세 작업에 참여하면서, 기존의 웹과 호환성을 유지하면서 HTTP를 개선하고자 했습니다. 그는 HTTP Object Model 개념을 도입하여 HTTP를 객체 지향적으로 설계할 수 있는 방법을 제시했습니다. 이후, 2000년에 "Representational State ..
[DesignPattern] 상태 패턴 (State Pattern) 상태 패턴 (State Pattern) 상태 패턴을 사용하면 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있다. 마치 객체의 클래스가 바뀌는 것과 같은 결과를 얻을 수 있다. 상태를 별도의 클래스로 캡슐화한 다음 현재 상태를 나타내는 객체에게 행동을 위임하므로 내부 상태가 바뀔 때 행동이 달라지게 된다는 사실을 쉽게 알 수 있습니다. 클라이언트의 관점에서 지금 상태에 따라 사용하는 객체의 행동이 완전히 달라져 마치 그 객체가 다른 클래스로부터 만들어진 객체처럼 느껴집니다. 상태패턴을 사용하지 않으면, 상태마다 모든 분기를 if문을 사용하여 분기 처리하여야 합니다 즉, 확장에 닫혀있게 되고, 상태패턴을 이용하면 확장에 비교적 열려있게 됩니다. 상태 패턴의 구성은 다음과 같습니다. Context..
[DesignPattern] 컴포지트 패턴(Composite Pattern) 컴포지트 패턴컴포지트 패턴(Composite Pattern)으로 객체를 트리구조로 구성해서 부분-전체 계층을 구현한다. 컴포지트 패턴을 사용하면 클라이언트에서 개별 객체와 복합 객체를 똑같은 방법으로 다룰 수 있습니다. 부분-전체 계층 구조(part-whole hierarchy)란, 부분들이 계층을 이루고 있지만 모든 부분을 묶어서 전체로 다룰 수 있는 구조를 뜻합니다. (트리에서 부모 노드와 자식 노드들의 가장 작은 부분들이 합쳐져서 트리의 전체 구조가 된다는 것을 생각하면 이해하기에 쉽다.) 트리와 구분되는 점은 트리에선 모든 Leaf 노드가 부모 노드가 될 수 있지만, 컴포지트 패턴에서는 Composite 객체만 Leaf 객체들을 관리하는 부모 노드가 될 수 있다는 것입니다. 컴포지트 패턴의 구성에..