CS 기초 지식 55

운영체제에서 shell 이란?

"셸(shell)"은 운영체제에서 사용되는 인터페이스 중 하나로, 사용자와 컴퓨터 간의 상호작용을 돕는 프로그램입니다. 사용자가 명령어를 입력하여 컴퓨터에 작업을 지시하거나 관리 작업을 수행할 때 도움을 주는 역할을 해요. 예를 들어, 우리가 키보드로 텍스트를 입력하면 셸은 그 명령을 이해하고 컴퓨터에 전달해주는 중요한 역할을 해요. 쉘은 다양한 종류가 있지만, 가장 많이 사용되는 것은 "명령 줄 쉘(Command-line shell)"이에요. 이것은 키보드에서 텍스트 명령을 입력하고, 컴퓨터가 그 명령을 읽고 실행하게 해주는 프로그램이에요. 윈도우즈에서는 "명령 프롬프트(Command Prompt)"가, 맥이나 리눅스에서는 "터미널(Terminal)"이 명령 줄 쉘이에요. 보통 그래픽 사용자가 인터페이..

CDN이란?

https://namu.wiki/w/CDN CDN - 나무위키 CDN을 쓰면 트래픽이 줄어들기 때문에 서버 유지 비용도 저절로 감소한다. 원리는 caching과 비슷하다. 자주 쓰이는 파일들을 중간중간에 replica로 만들어 놓아서 클라이언트가 replica에 접근할 수 namu.wiki CDN이란? 물리적인 거리와 네트워크 혼잡으로 인한 대기 시간은 웹 애플리케이션의 성능과 사용자 경험에 부정적인 영향을 미칩니다. 이런 문제를 해결하기 위해 Content Delivery Network (CDN)은 분산된 서버 네트워크를 활용하여 콘텐츠 제공을 저장하여 효율적인 컨텐츠 배포를 해주는 기술입니다. 특징은 다음과 같습니다. 웹 페이지, 이미지, 동영상 등의 컨텐츠를 본래 서버에서 받아와 캐싱 해당 컨텐츠에..

3계층 웹 아키텍처란?

3계층 웹 아키텍처는 소프트웨어 개발에서 사용되는 아키텍처 패턴 중 하나입니다. 이 패턴은 애플리케이션을 세 가지 주요 계층으로 나누는 방식을 나타냅니다. 각 계층은 특정한 역할과 책임을 가지며, 서로 독립적으로 작동할 수 있습니다. 이렇게 계층을 나눔으로써 유지보수성, 확장성 및 개발 효율성을 향상시킬 수 있습니다. 다음은 3계층 웹 아키텍처의 각 계층과 역할에 대한 간략한 설명입니다: 1. **프레젠테이션 계층 (Presentation Layer)**: 이 계층은 사용자와 상호작용하며, 웹 브라우저나 모바일 앱과 같은 클라이언트 인터페이스를 담당합니다. 사용자 인터페이스(UI)를 구성하고, 사용자 입력을 받아 처리하며, 결과를 사용자에게 표시합니다. HTML, CSS, JavaScript 등을 사용하..

DR 전략이란?

DR(Diaster Recovery) 전략은 조직이 재난이나 중단 상황에서 비즈니스 연속성을 유지하고 데이터 및 서비스를 복구하는 계획과 절차의 모음입니다. DR 전략은 시스템 장애, 자연 재해, 사람의 실수, 사이버 공격 등으로부터 비즈니스 및 IT 환경을 보호하고 회복하기 위해 구축됩니다. 주요 목표는 비즈니스 연속성을 유지하고 서비스 중단 시간을 최소화하는 것입니다. DR 전략은 조직의 요구 사항과 리스크 프로필에 따라 다양하게 구성될 수 있지만, 일반적으로 다음과 같은 구성 요소를 포함합니다: 1. **비즈니스 Impact 평가:** 시스템 장애 또는 중단이 발생했을 때 어떤 비즈니스 영향을 받을지 평가합니다. 핵심 시스템과 데이터를 식별하고 중요도에 따라 우선순위를 정합니다. 2. **비즈니스 ..

API 와 API 서버란?

API는 '프로그램과 프로그램을 연결시켜주는 매개체'이다. 꽃들과 다양한 꽃에 대한 정보 (꽃 공급 농장주, 꽃 이름, 색깔, 가격, 매출 물량.. 등)를 데이터베이스에 들어있는 데이터라고 보자. 이곳에 일하시는 분 (꽃집 관리자) = API 꽃집 방문 손님이나 꽃집 회계사, 주인, 파트너 등 (요청자/애플리케이션) 여기에서 보이듯, 보통 손님과 회계사는 액세스 권한이 다르다. 같은 데이터 베이스(꽃집)로 접속하나, 각자 영역에 따라 조회/사용 영역이 다른 것이다. 이런 권한과 영역, 액세스 등이 API 명세서와 인증 Authentication에서 관리된다. 그 조건하에서 각자 CRUD – Create(생성), Read(조회), Update(갱신), Delete(삭제)– 기능을 활용하여 각자의 앱을 구축..

프록시란?

프록시(Proxy)는 컴퓨터 네트워크에서 중간 매개 역할을 수행하는 서버나 시스템을 가리키는 용어입니다. 프록시는 클라이언트와 서버 사이에서 데이터 통신을 중계하고, 클라이언트의 요청을 대신 처리하여 특정 목적을 달성하거나 보안과 성능 측면에서 이점을 제공합니다. 프록시의 주요 기능은 다음과 같습니다: 1. 익명성과 개인 정보 보호: 프록시를 사용하면 클라이언트의 IP 주소가 실제 서버에 노출되지 않고 프록시 서버의 IP 주소가 노출되기 때문에 익명성이 보장될 수 있습니다. 이는 개인 정보 보호와 보안 측면에서 유용합니다. 2. 캐싱: 프록시는 이전에 서버로부터 받은 데이터를 저장하여, 동일한 요청이 다시 발생할 때 서버에 접근하지 않고 저장된 데이터를 제공합니다. 이를 통해 네트워크 트래픽을 줄이고 성..

Rest Api란?

REST API는 "Representational State Transfer Application Programming Interface"의 약자로, 웹 서비스와 클라이언트 간의 통신을 위한 아키텍처 스타일입니다. REST는 네트워크 아키텍처의 설계 원칙을 기반으로 하며, 주로 HTTP 프로토콜을 사용하여 데이터를 전송합니다. 클라이언트들이 가장 대중적으로 웹서버를 통해 정보를 얻을 때 사용하느 방법입니다. 두개의 컴퓨터가 서버를 통해 대화하는 방식이라고 생각하면 쉽습니다. 예를 들어 레시피 웹사이트는 AI 모델을 사용하여 ChatGPT REST API를 사용하여 동일한 재료를 기반으로 대체 레시피를 제안할 수 있습니다. REST API는 다음과 같은 특징을 가지고 있습니다: 1. **자원 중심**: R..

api 호출이란?

API 호출은 소프트웨어 애플리케이션에서 서비스나 기능을 사용하기 위해 다른 소프트웨어 서비스에 요청을 보내는 행위를 의미합니다. "API"는 "Application Programming Interface"의 약자로, 애플리케이션 간 상호작용을 위한 인터페이스를 제공하는 방법을 말합니다. API 호출은 일반적으로 네트워크를 통해 이루어집니다. 하나의 소프트웨어 애플리케이션이 다른 애플리케이션의 기능을 이용하고자 할 때, API를 통해 요청을 보내게 됩니다. 이 요청은 일반적으로 HTTP 프로토콜을 사용하여 전달되며, JSON, XML 등의 데이터 형식으로 요청과 응답을 주고받습니다. API 호출은 다양한 용도로 사용될 수 있습니다: 1. **데이터 조회**: 다른 서비스나 데이터베이스로부터 정보를 조회하..

VPN이란?

VPN은 "Virtual Private Network"의 약자로, 공용 네트워크(예: 인터넷)를 통해 안전하게 개인 네트워크 또는 기업 네트워크에 액세스할 수 있게 해주는 기술입니다. VPN은 인터넷을 통해 데이터를 전송할 때 암호화와 인증을 사용하여 데이터의 기밀성과 보안성을 유지합니다. VPN을 사용하면 사용자는 외부 네트워크에 연결된 것처럼 보이면서 인터넷을 통해 안전한 터널을 통해 데이터를 전송할 수 있습니다. 주요 VPN의 기능과 이점은 다음과 같습니다: 1. 안전한 통신: VPN은 암호화 기술을 사용하여 데이터를 안전하게 전송합니다. 이는 외부에서 데이터를 엿듣거나 조작하는 것을 방지합니다. 따라서 개인 정보, 비즈니스 데이터, 인증 정보 등을 안전하게 전송할 수 있습니다. 2. 원격 액세스:..

엔드포인트란?

엔드포인트(Endpoint)는 컴퓨터 네트워크에서 두 시스템이 서로 통신하기 위해 사용되는 접속점을 의미합니다. 간단히 말하면, 데이터나 서비스에 접근할 수 있는 지점이라고 할 수 있습니다. Endpoint란 API가 서버에서 자원(resource)에 접근할 수 있도록 하는 URL입니다. 엔드포인트는 네트워크에서 데이터 송수신을 위한 종단 시스템으로 간주됩니다. 일반적으로, 클라이언트 애플리케이션(또는 사용자)은 엔드포인트를 통해 서버 또는 서비스에 접근하고, 서버는 클라이언트로부터의 요청을 처리하고 응답을 반환합니다. 예를 들어, 웹 서비스의 경우 엔드포인트는 웹 서버의 URL(Uniform Resource Locator)입니다. 클라이언트는 해당 URL을 사용하여 웹 서버에 접근하고 웹 페이지를 요청..