Computer Science

1.미들웨어 (Middleware)소프트웨어 개발에서 클라이언트와 서버 사이에서 중간 역할을 수행하는 소프트웨어 계층을 의미미들웨어는 애플리케이션과 시스템 간의 원활한 데이터 흐름을 보장하는 필수적인 구성 요소로 API 기반 시스템에서 인증, 로깅, 로드 밸런싱 등의 기능을 수행한다.    2.미들웨어 종류2-1. 웹 서버 미들웨어(WS)클라이언트로부터 HTTP 요청을 받아 애플리케이션 서버로 전달해준다.   2-2.애플리케이션 서버 미들웨어(WAS)클라이언트 요청을 받아 비즈니스 로직을 처리하고 데이터베이스와 연동하고 웹 애플리케이션 실행 환경을 제공한다.    2-3.데이터베이스 미들웨어데이터 요청을 최적화하여 전달하고 애플리케이션과 데이터베이스사이의 연결을 관리한다.   2-4.메시지 큐 미들웨어비..
1.URI 스킴(URI Scheme)특정 프로토콜을 정의하는 방식으로, 웹 브라우저나 앱이 특정 리소스 찾고 접근할 수 있도록한다.URI의 요소의 일부이다. URI에서 http, https와 같은 부분이 프로토콜로 URI 스킴이다. ://?#    2.딥링크(Deeplink)딥링크는 사용자가 특정 앱의 특정 화면으로 바로 이동할 수 있도록 해주는 링크이다.URI Scheme을 활용하여 구현한다. URI Scheme값을 앱에 등록하여 웹에서 클릭하여 앱의 페이지로 연결한다.하지만 이런 기본적인 딥링크는 앱이 설치되어 있을 때만 동작하고 앱이 없으면 아무런 동작도 하지않는다.myapp://product/123   3.유니버설 링크(Universal Link)IOS에서 딥링크의 문제를 해결하기 위한 기능으로 ..
1.리버스 엔지니어링 (Reverse Engineering)리버스 엔지니어링은 이미 존재하는 제품, 시스템, 소프트웨어, 하드웨어 등을 분석하여 그 구조와 동작 원리를 파악하고 복원하는 과정을 말한다. 주로 기존 제품의 내부 동작을 이해하거나, 오류를 수정하거나, 보안 취약점을 찾기 위해 사용한다.      2.클론 코딩 (Clone Coding)다른 사람의 애플리케이션이나 서비스를 본따서 똑같은 기능을 구현하는 과정을 말한다.주로 학습 목적이나 아이디어의 구현을 위해 사용한다.      3.리버스 엔지니어링 vs 클론 코딩리버스 엔지니어링은 기존 시스템을 분석하고 이해하는 데 초점을 맞추며, 원본의 동작 방식을 파악하고 그것을 기반으로 새로운 정보나 개선점을 도출하는 데 사용하고 , 클론 코딩은 이미 ..
1.코드베이스(Codebase)소프트웨어 개발에서 사용하는 전체 소스 코드 파일들의 집합을 의미(소스 코드,라이브러리 및 종속성,설정 파일,테스트 코드,문서화 )
1.SDK (Software Development Kit)소프트웨어 개발 키트로 말할수있고 특정 플랫폼, 서비스 또는 하드웨어에서 소프트웨어를 개발할 수 있도록 제공되는 도구 모음이다.     2.일반적인 SDK 구성요소2-1.라이브러리 (Library) / API라이브러리는 특정 기능을 쉽게 사용할 수 있도록 미리 작성된 코드 모음이고 API는 이러한 라이브러리의 공개된 인터페이스로, 다른 프로그램이 이 라이브러리의 기능을 호출하고 활용할 수 있게 해준다.    2-2.문서화 (Documentation)개발자가 SDK를 이해하고 효율적으로 사용할 수 있도록 돕는 자료이다.문서화는 API 설명서, 예제 코드, 사용법, 참조 가이드 등으로 이뤄져있다.    2-3.샘플 코드 (Sample Code)SDK에..
1.마이그레이션(Migration)기존의 데이터, 시스템, 애플리케이션, 인프라 등을 새로운 환경으로 이전하는 과정환경 변경을 목적으로 한다.  다음과같은 자바스크립트 파일을 타입스크립트 환경으로 마이그레이션 한다면function add(a, b) { return a + b;}console.log(add(5, 10));  이렇게 코드를 마이그레이션 할수있을것이다. 이처럼 언어, 프레임워크, 데이터베이스, 인프라 변경을 마이그레이션이라고 한다.function add(a: number, b: number): number { return a + b;}console.log(add(5, 10));     2.리팩토링(Refactoring)리팩토링은 코드 구조를 변경하지만 애플리케이션의 아키텍처는 그대로 유지한..
1.Vendor Lock-in(벤더 락인)사용자가 특정 공급업체나 기술에 종속되어, 다른 공급업체나 기술로 쉽게 전환하기 어려운 상태(클라우드 서비스, 소프트웨어, 하드웨어)     2.Vendor Lock-in(벤더 락인)에 대해 고려해야할점특정 기술 스택이나 클라우드 서비스를 선택할 때, 기술의 유연성을 고려해야한다.특정 클라우드 제공업체의 서비스를 깊게 사용하게 되면, 해당 벤더에 대한 의존도가 커지기 때문에 다른 서비스로의 이전이 어려워질수있다.  표준화된 API와 기술을 사용하는 것이 벤더 락인을 예방하기에 유리하다.(RESTful API)
1.플러그인(Plugin)기존 프로그램의 기능을 확장하거나 새로운 기능을 추가할 수 있도록 만들어진 독립적인 모듈을 의미한다.원래 소프트웨어의 핵심 코드 변경 없이 기능을 확장이 가능한 특징을 가지고있다.    예전에 했던 마인크래프트의 플러그인을 생각해보자플러그인은 새로운 기능들을 추가해줬지만 기본적으로 게임의 틀을 벗어나지않았었다.즉, 소프트웨어의 핵심 기능을 건드리지 않고 확장을 할수 있도록 설계된다는거다.      2.모드모드는 기존 소프트웨어의 동작 방식을 변경하는 설정 또는 상태다.소프트웨어나 게임, 애플리케이션에서 기본적인 동작 방식을 변경하는 설정이나 기능 이라고 할수있다.(개발 모드, 배포모드)    마인크래프트의 모드는 애플리케이션의 내부 구조를 변경하거나 확장하는 코드 수정을한다.애플..
아사_
'Computer Science' 카테고리의 글 목록