728x90
반응형
11. 개발 프레임 워크 - 소프트웨어 구축
목차
개발 프레임 워크란?
소프트웨어 개발에 필요한 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러가지 기능들을 제공해주는 반제품 형태의 소프트웨어
소프트웨어 개발에 바탕이 되는 템플릿과 같은 역할을 하는 클래스들과 인터페이스의 집합
소프트웨어 개발 시 동통적인 부분을 제공
프레임워크의 특징
특징 | 설명 |
개발비용 감축 | API를 사용하면 이미 개발된 기능을 재사용하여 처음부터 구현할 필요가 없으므로 개발 프로세스를 가속화하고 비용을 절감할 수 있습니다. |
반복 작업 줄이기 | API는 자주 사용되는 작업을 자동화하고 표준화하여 개발자가 핵심 비즈니스 로직에 더 집중할 수 있도록 돕습니다. 이를 통해 반복적인 작업을 줄이고 개발자의 생산성을 높일 수 있습니다. |
쉬운 유지 관리 | API를 통해 기능을 외부에 노출시키면 내부 시스템 구현을 변경하지 않고도 외부 시스템과의 상호 작용을 조정할 수 있습니다. 이는 유연성을 높이고 유지 보수를 쉽게 만듭니다. |
새로운 수익 채널 확대 | 기업은 자사의 기능을 API로 외부에 노출시킴으로써 외부 개발자들이 이를 활용하여 새로운 애플리케이션을 개발하고, 기업은 이를 통해 추가적인 수익을 창출할 수 있습니다. 새로운 비즈니스 모델을 탐색하고 새로운 시장에 진입할 수 있는 기회를 제공합니다. |
비지니스 확장 | API는 기업이 다른 기업과 협업하고 파트너십을 형성하여 새로운 시장에 진입하고 확장할 수 있는 기회를 제공합니다. 다양한 비즈니스 간의 통합을 용이하게 만들어 새로운 기회를 모색할 수 있습니다. |
프레임워크의 구분
JAVA(출제된다면, 가장 확률이 높음)
- 전자정부 표준 프레임워크
- 현실에서 정말 자주 쓰이는 프레임워크
- 국내 공공기관에 납품하려면 사용해야하는 프레임워크
- Spring Framework:
- 특징:
- Spring은 경량화된 프레임워크로서, 자바 기반의 엔터프라이즈 애플리케이션을 개발하는 데 사용됩니다.
- 제어의 역전(Inversion of Control, IoC) 및 의존성 주입(Dependency Injection, DI)과 같은 핵심 개념을 기반으로 합니다.
- 다양한 모듈로 구성되어 있어 필요한 기능을 선택적으로 사용할 수 있습니다. 예를 들어, Spring MVC는 웹 애플리케이션 개발을 위한 모듈 중 하나입니다.
- 스프링은 AOP(Aspect-Oriented Programming)도 지원하여 관점 지향 프로그래밍을 쉽게 구현할 수 있습니다.
- 사용 사례:
- 기업 수준의 웹 애플리케이션과 서비스 개발
- 클라우드 네이티브 애플리케이션 개발
- RESTful 웹 서비스 및 마이크로서비스 아키텍처 구현
- 특징:
- 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)
컴퓨터 프로그램에서 자주 사용되는 루틴이나 리소스를 모아 놓은 것
내부 라이브러리는 각 언어가 가지고 있는 라이브러리이며 외부 라이브러리는 다른 개발자들이 공유한 라이브러리입니다.
라이브러리 예시
- jQuery
- 자바스크립트 기반의 라이브러리로, HTML 문서를 탐색하고 조작하는 데 유용합니다. 이벤트 처리, 애니메이션 등의 기능을 간단한 코드로 구현할 수 있습니다.
- Requests
- 파이썬의 HTTP 라이브러리로, HTTP 요청을 보내고 응답을 받는 데 사용됩니다. RESTful API와의 통신 등에 유용하게 사용됩니다.
- NumPy
- 파이썬의 수치 계산을 위한 라이브러리로, 다차원 배열과 행렬 연산을 효율적으로 처리합니다. 데이터 과학 및 공학 분야에서 널리 사용됩니다.
- Pandas
- 파이썬의 데이터 조작 및 분석을 위한 라이브러리로, 데이터 프레임과 시리즈를 다루는 기능을 제공합니다. 데이터 처리 및 전처리에 사용됩니다.
- OpenCV
- 컴퓨터 비전을 위한 라이브러리로, 이미지 및 비디오 처리 기능을 제공합니다. 객체 검출, 얼굴 인식 등 다양한 컴퓨터 비전 작업에 사용됩니다.
- React
- 자바스크립트 기반의 UI 라이브러리로, 사용자 인터페이스를 구축하기 위한 컴포넌트 기반의 접근 방식을 제공합니다. 단일 페이지 애플리케이션을 개발하는 데 널리 사용됩니다.
- TensorFlow
- 머신러닝 및 딥러닝을 위한 오픈 소스 라이브러리로, 다양한 머신러닝 모델을 개발하고 학습시키는 데 사용됩니다.
- Express.js
- Node.js를 위한 웹 애플리케이션 프레임워크로, 간단하고 빠르게 웹 서버를 구축하는 데 사용됩니다.
API
소트트웨어 간의 인터페이스, 프레임워크와 라이브러리를 활용하여 API형태로 개발하게 됩니다.
API가 활용하는 사이트들을 보면, 자신들의 데이터를 타인들에 쉽게 가져갈 수 있도록 합니다.
두 개 사이트가 간편하게 데이터를 통하게 해주는 인터페이스입니다.
정처기에서는 운영체제나 프로그래밍 언어가 제공하는 기능을 응용 프로그램에서 사용할 수 있도록 만든 인터페이스로 기억하시면 좋습니다.
API 특징
- 개발비용 감축
- API를 사용하면 기능을 처음부터 구현할 필요 없이 이미 개발된 기능을 재사용할 수 있습니다. 이로써 개발 프로세스가 가속화되고 비용이 절감됩니다.
- 반복 작업 줄이기
- API는 자주 사용되는 작업을 자동화하고 표준화하는 데 도움을 줍니다. 반복적인 작업을 줄이고 개발자가 핵심 비즈니스 로직에 더 집중할 수 있도록 합니다.
- 쉬운 유지 관리
- API를 통해 기능을 외부에 노출시키면, 내부 시스템 구현을 변경하지 않고도 외부 시스템과의 상호 작용을 조정할 수 있습니다. 이는 유연성을 높이고 유지 관리를 쉽게 만듭니다.
- 새로운 수익 채널 확대
- 기업은 자사의 기능을 API로 외부에 노출시킴으로써 새로운 수익 모델을 탐색할 수 있습니다. 외부 개발자들이 제공되는 API를 사용하여 새로운 애플리케이션을 개발하고, 기업은 이를 통해 수익을 창출할 수 있습니다.
- 비지니스 확장
- API는 기업이 파트너십을 형성하고 다른 기업과의 협업을 통해 새로운 시장에 진입하고 확장할 수 있도록 돕습니다. 다양한 비즈니스 간의 통합을 용이하게 만들어 새로운 기회를 모색할 수 있습니다.
728x90
반응형
'정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 13. 배치프로그램 구현 - 1과목 소프트웨어 구축 (0) | 2024.03.24 |
---|---|
12. 모듈 구현 - 1과목 소프트웨어 구축 (0) | 2024.03.20 |
[정처기] 10. 개발환경 구축 - 1과목 소프트웨어 구축 (1) | 2024.03.19 |
[정보처리기사실기] 9. UI 구현 - 1과목 소프트웨어 구축 (0) | 2024.03.18 |
[정보처리기사] 8. UI 설계 - 1과목 소프트웨어 구축 (2) | 2024.03.17 |
댓글