본문 바로가기
정보처리기사

11. 개발 프레임 워크 - 소프트웨어 구축

by 공불러 2024. 3. 20.
728x90
반응형

11. 개발 프레임 워크 - 소프트웨어 구축

개발 프레임 워크

목차

    개발 프레임 워크란?

    소프트웨어 개발에 필요한 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게  구현할 수 있도록 여러가지 기능들을 제공해주는 반제품 형태의 소프트웨어

     

    소프트웨어 개발에 바탕이 되는 템플릿과 같은 역할을 하는 클래스들과 인터페이스의 집합

    소프트웨어 개발 시 동통적인 부분을 제공

     

    프레임워크의 특징

    특징 설명
    개발비용 감축 API를 사용하면 이미 개발된 기능을 재사용하여 처음부터 구현할 필요가 없으므로 개발 프로세스를 가속화하고 비용을 절감할 수 있습니다.
    반복 작업 줄이기 API는 자주 사용되는 작업을 자동화하고 표준화하여 개발자가 핵심 비즈니스 로직에 더 집중할 수 있도록 돕습니다.

    이를 통해 반복적인 작업을 줄이고 개발자의 생산성을 높일 수 있습니다.
    쉬운 유지 관리 API를 통해 기능을 외부에 노출시키면 내부 시스템 구현을 변경하지 않고도 외부 시스템과의 상호 작용을 조정할 수 있습니다.

    이는 유연성을 높이고 유지 보수를 쉽게 만듭니다.
    새로운 수익 채널 확대 기업은 자사의 기능을 API로 외부에 노출시킴으로써 외부 개발자들이 이를 활용하여 새로운 애플리케이션을 개발하고, 기업은 이를 통해 추가적인 수익을 창출할 수 있습니다.

    새로운 비즈니스 모델을 탐색하고 새로운 시장에 진입할 수 있는 기회를 제공합니다.
    비지니스 확장 API는 기업이 다른 기업과 협업하고 파트너십을 형성하여 새로운 시장에 진입하고 확장할 수 있는 기회를 제공합니다.

    다양한 비즈니스 간의 통합을 용이하게 만들어 새로운 기회를 모색할 수 있습니다.

     

    프레임워크의 구분

    JAVA(출제된다면, 가장 확률이 높음)

    1. 전자정부 표준 프레임워크
      • 현실에서 정말 자주 쓰이는 프레임워크
      • 국내 공공기관에 납품하려면 사용해야하는 프레임워크
    2. Spring Framework:
      • 특징:
        • Spring은 경량화된 프레임워크로서, 자바 기반의 엔터프라이즈 애플리케이션을 개발하는 데 사용됩니다.
        • 제어의 역전(Inversion of Control, IoC) 및 의존성 주입(Dependency Injection, DI)과 같은 핵심 개념을 기반으로 합니다.
        • 다양한 모듈로 구성되어 있어 필요한 기능을 선택적으로 사용할 수 있습니다. 예를 들어, Spring MVC는 웹 애플리케이션 개발을 위한 모듈 중 하나입니다.
        • 스프링은 AOP(Aspect-Oriented Programming)도 지원하여 관점 지향 프로그래밍을 쉽게 구현할 수 있습니다.
      • 사용 사례:
        • 기업 수준의 웹 애플리케이션과 서비스 개발
        • 클라우드 네이티브 애플리케이션 개발
        • RESTful 웹 서비스 및 마이크로서비스 아키텍처 구현
    3. Struts Framework:
      • 특징:
        • Struts는 MVC(Model-View-Controller) 아키텍처를 구현하기 위한 프레임워크입니다.
        • 기본적으로 서블릿 기반의 웹 애플리케이션 개발을 위해 설계되었으며, MVC 아키텍처를 통해 비즈니스 로직과 프레젠테이션 로직을 분리합니다.
        • Struts는 액션(Action) 클래스, 폼(Form) 빈, JSP(JavaServer Pages) 등을 사용하여 웹 애플리케이션을 구현합니다.
        • 이전에는 매우 인기 있었지만, 최근에는 Spring과 같은 경량 프레임워크와의 경쟁에서 밀려 사용량이 감소하고 있습니다.
      • 사용 사례:
        • 기본적인 웹 애플리케이션 및 표준적인 CRUD(Create, Read, Update, Delete) 기능을 필요로 하는 애플리케이션 개발

    ORM(Object-Relational Mapping)

    아이바티스(iBatis)

    • SQL 매핑 기반의 ORM 프레임워크로, 데이터베이스와의 상호 작용을 쉽게 만듭니다.

    마이바티스(MyBatis)

    • 아이바티스의 후속 버전으로서, XML 또는 어노테이션 기반의 설정을 통해 SQL과 자바 객체 간의 매핑을 제공합니다.

    하이버네이트(Hibernate)

    • 객체-관계 매핑(ORM) 프레임워크로, 자바 객체와 데이터베이스 간의 매핑을 지원하여 개발자가 객체를 이용하여 데이터베이스를 조작할 수 있게 해줍니다.

    자바스크립트 프레임워크

    앵귤러JS(AngularJS)

    • 구글에서 개발한 프런트엔드 자바스크립트 프레임워크로, 단일 페이지 애플리케이션(SPA)을 개발하는 데 사용됩니다.

    리액트JS(ReactJS)

    • Facebook에서 개발한 UI 라이브러리로, 컴포넌트 기반의 사용자 인터페이스를 만드는 데 주로 사용됩니다.

    ExtJS

    • Sencha에서 개발한 자바스크립트 프레임워크로, 데이터 중심의 웹 애플리케이션을 구축하는 데 사용됩니다.

    프론트엔드 프레임워크 (Css 관련 프레임 워크)

    Bootstrap

    • Twitter에서 개발한 프론트엔드 프레임워크로, 반응형 웹 디자인 및 웹 애플리케이션 개발에 널리 사용됩니다.

    Foundation

    • ZURB가 개발한 반응형 프론트엔드 프레임워크로, 모바일과 데스크톱을 모두 지원하며, 다양한 컴포넌트를 제공합니다.

    MDL(Material Design Lite)

    • 구글에서 개발한 머티리얼 디자인 기반의 프론트엔드 프레임워크로, 모바일 및 웹 애플리케이션에 일관된 디자인을 적용할 수 있습니다.

    라이브러리(Libray)

    컴퓨터 프로그램에서 자주 사용되는 루틴이나 리소스를 모아 놓은 것

    내부 라이브러리는 각 언어가 가지고 있는 라이브러리이며 외부 라이브러리는 다른 개발자들이 공유한 라이브러리입니다.

    라이브러리 예시

    1. jQuery
      • 자바스크립트 기반의 라이브러리로, HTML 문서를 탐색하고 조작하는 데 유용합니다. 이벤트 처리, 애니메이션 등의 기능을 간단한 코드로 구현할 수 있습니다.
    2. Requests
      • 파이썬의 HTTP 라이브러리로, HTTP 요청을 보내고 응답을 받는 데 사용됩니다. RESTful API와의 통신 등에 유용하게 사용됩니다.
    3. NumPy
      • 파이썬의 수치 계산을 위한 라이브러리로, 다차원 배열과 행렬 연산을 효율적으로 처리합니다. 데이터 과학 및 공학 분야에서 널리 사용됩니다.
    4. Pandas
      • 파이썬의 데이터 조작 및 분석을 위한 라이브러리로, 데이터 프레임과 시리즈를 다루는 기능을 제공합니다. 데이터 처리 및 전처리에 사용됩니다.
    5. OpenCV
      • 컴퓨터 비전을 위한 라이브러리로, 이미지 및 비디오 처리 기능을 제공합니다. 객체 검출, 얼굴 인식 등 다양한 컴퓨터 비전 작업에 사용됩니다.
    6. React
      • 자바스크립트 기반의 UI 라이브러리로, 사용자 인터페이스를 구축하기 위한 컴포넌트 기반의 접근 방식을 제공합니다. 단일 페이지 애플리케이션을 개발하는 데 널리 사용됩니다.
    7. TensorFlow
      • 머신러닝 및 딥러닝을 위한 오픈 소스 라이브러리로, 다양한 머신러닝 모델을 개발하고 학습시키는 데 사용됩니다.
    8. Express.js
      • Node.js를 위한 웹 애플리케이션 프레임워크로, 간단하고 빠르게 웹 서버를 구축하는 데 사용됩니다.

    API

    소트트웨어 간의 인터페이스, 프레임워크와 라이브러리를 활용하여 API형태로 개발하게 됩니다.

    API가 활용하는 사이트들을 보면, 자신들의 데이터를 타인들에 쉽게 가져갈 수 있도록 합니다.

    두 개 사이트가 간편하게 데이터를 통하게 해주는 인터페이스입니다.

    정처기에서는 운영체제나 프로그래밍 언어가 제공하는 기능을 응용 프로그램에서 사용할 수 있도록 만든 인터페이스로 기억하시면 좋습니다.

    API 특징

    • 개발비용 감축
      • API를 사용하면 기능을 처음부터 구현할 필요 없이 이미 개발된 기능을 재사용할 수 있습니다. 이로써 개발 프로세스가 가속화되고 비용이 절감됩니다.
    • 반복 작업 줄이기
      • API는 자주 사용되는 작업을 자동화하고 표준화하는 데 도움을 줍니다. 반복적인 작업을 줄이고 개발자가 핵심 비즈니스 로직에 더 집중할 수 있도록 합니다.
    • 쉬운 유지 관리
      • API를 통해 기능을 외부에 노출시키면, 내부 시스템 구현을 변경하지 않고도 외부 시스템과의 상호 작용을 조정할 수 있습니다. 이는 유연성을 높이고 유지 관리를 쉽게 만듭니다.
    • 새로운 수익 채널 확대
      • 기업은 자사의 기능을 API로 외부에 노출시킴으로써 새로운 수익 모델을 탐색할 수 있습니다. 외부 개발자들이 제공되는 API를 사용하여 새로운 애플리케이션을 개발하고, 기업은 이를 통해 수익을 창출할 수 있습니다.
    • 비지니스 확장
      • API는 기업이 파트너십을 형성하고 다른 기업과의 협업을 통해 새로운 시장에 진입하고 확장할 수 있도록 돕습니다. 다양한 비즈니스 간의 통합을 용이하게 만들어 새로운 기회를 모색할 수 있습니다.
    728x90
    반응형

    댓글