개발 환경과 개발 도구 개념 (환경, IDE, 엔진, 프레임워크, 라이브러리, SDK, 인터페이스, 플러그인)


    개발이란 개발 환경(엔진, 프레임워크)에서 개발 킷, 개발 도구(함수, 라이브러리)를 불러와 사용 가능한 개발 언어로 인터페이스에 맞게 특정 플랫폼이나 운영체제 등의 시스템에서 동작할 수 있는 프로그램이나 소프트웨어를 만드는 것을 말합니다.

    개발도구

    OS & 플랫폼 : 기반 인프라 및 실행 환경

    소프트웨어가 작동할 수 있는 근간을 마련해 주는 환경입니다. 이 계층 없이는 그 어떤 코드도 실행될 수 없습니다.

    플랫폼은 운영체제와 달리 자원 관리에 집중하지 않는다는 차이점이 있습니다.

    운영체제 (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 댓글