개발이란 개발 환경(엔진, 프레임워크)에서 개발 킷, 개발 도구(함수, 라이브러리)를 불러와 사용 가능한 개발 언어로 인터페이스에 맞게 특정 플랫폼이나 운영체제 등의 시스템에서 동작할 수 있는 프로그램이나 소프트웨어를 만드는 것을 말합니다.
플랫폼은 운영체제와 달리 자원 관리에 집중하지 않는다는 차이점이 있습니다.
운영체제 (Operation System)
하드웨어를 관리하고 애플리케이션이 실행될 수 있도록 자원을 배분·제어하는 시스템 소프트웨어입니다. 개발자는 OS 위에서 모든 도구를 설치하고 코드를 실행합니다. 선택한 OS에 따라 지원되는 개발 도구나 배포 환경이 달라질 수 있습니다.플랫폼 (Platform)
애플리케이션이 실행되는 하드웨어 아키텍처나 소프트웨어 프레임워크의 총체적 기반을 뜻합니다. 넓은 의미로는 서비스가 운영되는 생태계(클라우드, 모바일 OS 등)를 포함합니다. "어느 플랫폼을 타깃으로 개발하느냐"는 기술 스택 전체에 영향을 미칩니다.IDE & 엔진 : 핵심 개발 도구
개발자가 코드를 작성하고 프로그램으로 빌드하는 데 매일 사용하는 핵심 소프트웨어입니다.IDE (Integrated Development Environment)
코드 편집기, 컴파일러, 디버거, 터미널 등 개발에 필요한 모든 도구를 하나로 통합한 대형 소프트웨어입니다. 코드를 작성하는 순간부터 빌드·테스트·배포까지 한 환경 안에서 처리할 수 있어 생산성이 높습니다. VS Code는 엄밀히 말하면 에디터지만, 풍부한 플러그인 생태계 덕분에 IDE처럼 활용됩니다.엔진 (Engine)
특정 분야(게임, 그래픽, 웹 렌더링 등)의 복잡한 핵심 기능을 미리 구현해 두고, 재사용할 수 있도록 만든 거대한 소프트웨어 코어입니다. 물리 연산, 렌더링 파이프라인, 메모리 관리처럼 밑바닥부터 구현하면 수년이 걸릴 기능들을 제공합니다.
프레임워크 & 라이브러리 & SDK : 코드 구현 및 기능 확장
실제 비즈니스 로직을 구현할 때 가져다 쓰는 재료와 규칙들입니다.프레임워크는 내가 들어가서 일해야 하는 구조화된 공장같은 개념이고 라이브러리는 내가 필요할 때 꺼내 쓰는 도구 상자로 볼 수 있습니다.
프레임워크 (Framework)
애플리케이션의 기본 구조(뼈대)를 제공합니다. 개발자가 프레임워크를 호출하는 게 아니라, 프레임워크가 개발자의 코드를 정해진 흐름에 따라 호출합니다. 규칙을 따르는 대신 반복 작업이 크게 줄어듭니다.라이브러리 (Library)
특정 기능을 수행하는 함수나 클래스들의 집합입니다. 프레임워크와 달리 개발자가 필요할 때 주도적으로 호출해서 사용합니다. 제어권은 항상 개발자에게 있습니다. 하나의 프로젝트에서 수십 개의 라이브러리를 동시에 사용하는 것도 일반적입니다.
SDK (Software Development Kit)
특정 플랫폼이나 서비스용 소프트웨어를 개발할 수 있도록 라이브러리, API, 문서, 샘플 코드, 개발 도구 등을 하나로 묶어 제공하는 패키지입니다.라이브러리가 기능 하나에 집중한다면, SDK는 특정 플랫폼 전체를 공략하기 위한 종합 세트입니다.
인터페이스 : 소통과 연동
시스템과 시스템, 혹은 인간과 시스템이 데이터를 주고받는 방식입니다.인터페이스 & API
서로 다른 소프트웨어 구성 요소들이 상호작용할 수 있도록 연결해 주는 통로이자 규약입니다. 웹 개발에서는 주로 서버와 클라이언트가 데이터를 주고받는 REST API 또는 GraphQL 형태로 사용됩니다. UI(사용자 인터페이스)나 CLI(명령줄 인터페이스)도 모두 인터페이스의 일종입니다.플러그인 : 개인화 및 생산성 향상
개발자 개인의 개발 효율을 극대화하기 위해 도구 위에 얹어 쓰는 요소입니다. 같은 IDE를 써도 플러그인 구성에 따라 생산성이 크게 달라집니다.플러그인 & 확장 프로그램
기존 소프트웨어(IDE, 브라우저 등)에 특정 기능을 추가하기 위해 설치하는 부가 프로그램입니다. 핵심 소프트웨어를 수정하지 않고도 기능을 확장할 수 있어, 개발자마다 자신에게 맞는 환경을 자유롭게 구성할 수 있습니다.정리하면 아래와 같습니다.
OS / 플랫폼 - 코드가 돌아갈 서버와 운영체제
IDE - 코딩부터 디버깅까지 하는 통합 도구
엔진 - 복잡한 물리·그래픽 처리를 해주는 코어
프레임워크 - 앱의 뼈대를 잡아주는 구조적 규칙
라이브러리 - 부품처럼 가져다 쓰는 기능성 코드 조각
SDK - 특정 플랫폼 개발을 위한 종합 패키지
인터페이스 - 시스템 간 데이터를 주고받는 통로 (API)
플러그인 - IDE의 기능을 확장해 주는 추가 도구

0 댓글