본문 바로가기

Computer Science

(14)
[Third Party] 서드 파티의 개념 서드파티(Third Party)란?어떤 시스템, 소프트웨어, 계약, 또는 서비스에서 제3자를 의미서드파티는 일반적으로 기본적인 관계에 직접적으로 포함되지 않은 외부 주체를 가리킴단, 분야에 따라 서드파티 용어의 쓰임새가 달라짐분야 별 서드파티의 의미게임 및 디지털 콘텐츠 게임 분야에서 서드파티(Third Party)란 콘솔 게임기 제조사가 제공하는 라이선스를 기반으로, 특정 플랫폼(PS5, XBOX)에서 게임만 제작하는 외부 게임 개발사를 의미Ex) PlayStation에서 판매되는 Ubisoft의 '어쌔신 크리드', EA의 FIFA 시리즈, Capcom의 Street Figther 반대 개념으로는 퍼스트 파티(First Party)가 있는데, 퍼스트 파티는 콘솔 게임기 제조사가 소프트웨어(게임)까지 개..
[Cloud Service] 클라우드 서비스의 개념 클라우드 서비스란?인터넷을 통해 컴퓨팅 자원, 데이터 저장, 소프트웨어, 플랫폼 등의 IT 관련 서비스를 원격으로 제공하는 서비스클라우드 서비스를 이용하면 하드웨어와 소프트웨어를 구입하거나 유지 관리할 필요 없이 컴퓨팅 리소스를 활용 가능 클라우스 서비스의 모델IaaS (Infrastructure as a Service)클라우드를 통해 컴퓨팅, 스토리지, 네트워킹, 가상화와 같은 주문형 인프라 리소스를 조직에 제공 고객이 자체 데이터 센터 인프라를 관리, 유지 관리 또는 업데이트 할 필요는 없지만 운영체제, 미들웨어, 가상 머신, 앱 또는 데이터를 책임 짐인프라(Infrastructure)란?- IT에서 인프라란 컴퓨터 시스템을 운영하기 위한 기반 시설- 쉽게 말해, 컴퓨터가 제대로 작동하도록 돕는 필수..
[Software Engineering] CBD 방법론 CBD(Component Bassed Development) 방법론 소프트웨어를 독립적이고 재사용 가능한 컴포넌트들로 구성하여 개발하는 방식이 컴포넌트들은 일반적으로 특정 기능을 제공하며, 다른 시스템이나 애플리케이션에서 재사용이 가능각 컴포넌트는 독립적이고 잘 정의된 인터페이스를 통해 상호작용핵심 개념컴포넌트(Component) : 독립적으로 개발될 수 있는 모듈, 보통 특정 기능을 수행하는 코드 집합재사용성 : 기존에 개발된 컴포넌트를 다른 프로젝트나 시스템에서 재사용인터페이스 : 컴포넌트 간의 통신을 정의하는 규약으로, 각 컴포넌트는 명확하게 정의된 인터페이스를 통해 다른 컴포넌트와 상호작용모듈화 : 시스템을 작은 단위로 나누어 개발함으로써 복잡성을 줄이고 유지보수를 용이하게 함CBD 방법론의 등..
[Database] 트랜잭션의 개념과 ACID 원칙 트랜잭션(Transaction)의 개념데이터베이스의 논리적인 작업 단위여러 개의 SQL 문들을 하나의 논리적 작업으로 묶어서 실행하며, 이 작업이 모두 성공적으로 수행된 경우에만 변경된 데이터를 영구적으로 저장하고, 그렇지 않은 경우에는 모든 변경을 취소데이터베이스의 일관성과 무결성을 유지하기 위한 중요한 개념 중 하나트랜잭션을 관리하기 위해서는 ACID 원칙이라는 4가지 특징이 매우 중요트랜잭션의 특징 4가지 - ACID 원칙원자성 (Atomicity)All or Nothing 트랜잭션 내에서 수행한 작업들이 모두 성공하거나 모두 실패하는 원칙 트랜잭션 내의 모든 작업은 하나의 단위로 처리되기 때문에 중간에 오류가 발생할 경우 모든 작업이 취소 됨 Ex) 은행 계좌에서 100원을 인출하고 다른 계좌에 ..
[Network] RESTful API vs Socket 통신 차이 통신 방식 RESTful APIHTTP 프로토콜을 기반으로 요청/응답 모델을 따름 클라이언트가 서버에 요청을 보내면 서버는 그에 대한 응답을 반환하고 연결이 종료상태 없는(stateless) 방식으로 각 요청은 독립적으로 처리소켓 통신양방향 실시간 통신을 지원하는 지속적인 연결을 통해 데이터를 전송연결이 유지되는 동안 클라이언트와 서버 간에 데이터를 지속적으로 송수신 가능연결 유지 여부 RESTful API기본적으로 연결을 유지하지 않음 (stateless)요청이 끝나면 연결이 종료되고, 새로운 요청을 할 때마다 새로운 연결이 설정소켓 통신연결 유지클라이언트와 서버는 한 번 연결을 맺으면 그 연결을 통해 데이터를 지속적으로 주고 받음응답 방식 RESTful API클라이언트가 요청을 보내면 서버는 그에 대..
[Software Architecture] REST API과 RESTful API REST API의 개념REST(Representational State Transfer) 원칙을 기반으로 만들어진 API웹의 기존 기술과 HTTP 프로토콜을 활용한 소프트웨어 아키텍처 스타일로 자원의 상태 정보를 주고받는 방식HTTP URI를 통해 자원을 식별하고, HTTP 메서드를 통해 해당 자원을 처리HTTP 메서드 : GET, POST, PUT, DELETERESTful API의 개념REST 원칙을 엄격히 준수하여 설계된 API를 의미REST의 이상적이고 완전한 구현을 뜻하며 자원 중심 설계와 HTTP 프로토콜의 올바른 사용을 강조일관성, 가독성, 유연성을 제공하여 개발자 경험과 시스템의 유지보수성을 높임RESTful API가 각광받는 이유멀티플랫폼 지원IoT, 모바일, 태블릿, 웹 브라우저 등 다..
[OOP] SOLID 원칙 SOLID 원칙이란?객체 지향 프로그래밍에서 코드 품질을 높이고 유지보수를 용이하게 하기 위한 다섯 가지 기본 원칙 SOILD 원칙 5가지SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Priciple) : 개방 폐쇄 원칙 LSP(Listov Substitution Priciple) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존 역전 원칙 단일 책임 원칙 - SRP (Single Responsibility Principle)'클래스(객체)는 단 하나의 책임만 가져야 한다'는 원칙 → 책임 = 기능 담..
[알고리즘] 시간 복잡도와 공간 복잡도 복잡도(Complexity)흔히 알고리즘에서 쓰이는 복잡도(Complexity)란 그 알고리즘이 얼마나 효율적인지를 나타내는 지표의 의미특정 알고리즘이 어떠한 입력에 대하여 연산을 수행할 때 얼마만큼의 시간이 걸리는지(시간 복잡도,Time Complexity)와 얼마만큼의 메모리를 사용하는지(공간 복잡도, Space Complextiy) → 이 2가지 관점에 대한 효율성을 측정하기 위한 개념즉, 알고리즘의 성능을 판단하는 척도시간 복잡도(Time Complextiy)알고리즘이 얼마나 시간적으로 효율적인지, 즉 얼마나 짧은 시간 안에 연산을 수행할 수 있는지를 나타내는 지표로 의미적으로는 시간적인 개념이지만 실제로 코드에서 측정되는 대상은 '실행되는 연산의 횟수'동일한 알고리즘이어도 실행되는 컴퓨터 성능이..