일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- boj 11659
- vector unique erase
- TOPCIT
- c++
- 클라우드기반 IDE
- 객체 지향형 DB
- 프로그래밍 언어
- 백트래킹
- 네트워크형DB
- 개발프레임워크의 기술 동향
- aws winscp
- 객체관계형DB
- Flutter
- 메인 메모리 DB
- ANSI-SPARC
- 프로그래밍 언어 기술 동향
- 소프트웨어 개발도구
- 시간초과
- BOJ
- compare
- 멀티미디어DB
- compare구조체
- 계층형DB
- 소프트웨어아키텍처 기술 동향
- Backtracking
- 온라인처리
- 개발프레임워크
- 공간DB
- sync_with_stdio(0)
- 정렬
옐그's 코딩라이프
[TOPCIT][01] XIV. 소프트웨어 개발 동향 (에센스 정리 요약) 본문
학습 목표
1. 소프트웨어 개발도구와 프로그래밍 언어의 기술 동향에 대하여 설명할 수 있다.
2. 개발프레임워크와 소프트웨어아키텍처의 기술 동향에 대하여 설명할 수 있다.
핵심 키워드
- 소프트웨어 개발도구
- 프로그래밍언어
- 개발프레임워크
- 소프트웨어아키텍처
01 소프트웨어 개발도구와 프로그래밍 언어의 기술 동향
소프트웨어 개발도구의 기술 동향
1. 클라우드 기반의 통합개발환경 부각
- 통합개발환경이란? 코딩, 디버그, 컴파일, 배포 등 프로그램 개발과 관련된 모든 작업을 하나의 프로그램 개발환경에서 지원하는 소프트웨어
- 최근 어디에서나 개발이 가능하며, 통합개발 프로그램 설치가 필요 없는 클라우드 기반으로 발전하고 있음
- Codenvy, 구름IDE, Cloud9 등 클라우드 기반의 IDE가 있음
2. 소프트웨어 개발도구와 ALM(Application Lifecycle Management) 통합
- 기존엔 개발을 지원하는 성능/요구사항/이슈 관리 도구 등이 특정 목적과 특정 단계의 관리가 주목적이었던 도구
- 클라우드 등장에 따른 인프라의 복잡성과 더 빠르고 신속한 IT 서비스를 요구하는 시장 환경으로 개발/테스트/운영을 포괄하는 도구로 진화함
프로그래밍 언어 기술 동향
1. 자바스크립트의 확장버전 타입스크립트
자바스크립트
- 세계에서 가장 인기 있고 강력한 프로그래밍 언어 중 하나
- 페이지에 일부 효과를 추가하고 게임, 애니메이션, 드롭 다운 메뉴를 만들고 웹 인터페이스를 효과적으로 제어하여 웹 페이지를 대화식으로 만드는 데 자주 사용됨
타입스크립트
- 자바스크립트의 확장버전으로 자바스크립트의 기능을 포함하고 있음
- 컴파일 시점에 타입체크가 일어나는 '정적타입' 언어임
- 모든 브라우저 및 환경에 쉽게 컴파일 되어 유용함
- 모든 것이 클래스 또는 구성요소이기 때문에 코드 작성 및 학습이 쉬움
- 대형 응용프로그램에도 적용가능
2. 자바(Java)9 버전
- 모듈화 강화로 소형 디바이스 등에도 최적화가 가능하며 자바의 확장성과 성능이 향상됨
- AOT(Ahead Of Time) 컴파일 기능으로 가상시스템에서 실행하기 전에 네이티브 코드로 컴파일 되는 기능으로 응용프로그램의 시작 시간을 개선함
- 컴파일 전에 프로그램에 대한 피드백을 받을 수 있는 REPL(Real Eval Print Loop) 지원
3. 코틀린(Kotlin)
- 안드로이드 스튜디오를 제작한 JetBrain이 개발한 함수형 언어
- 2017년 구글에서 안드로이드 공식 프로그래밍 언어로 채택함
- 간단하며 성능이 뛰어나 안드로이드 기반의 개발을 위한 최적의 환경을 제공함
- 기존 안드로이드 API와 호환되면서 간결한 문법으로 앱을 개발할 수 있음
- 자바와 매우 유사하기 때문에 자바 개발자는 빠르고 쉽게 활용
4. 스위프트(Swift)
- 애플에서 iOS, macOS, watchOS, tvOS 등 애플 제품용 애플리케이션을 개발하기 위한 프로그래밍 언어로 자사의 플랫폼 위에서 좀 더 쉽고 빠르게 개발이 가능하도록 지원하기 위해 만들어짐
- 코딩과정이 단순해 개발이 용이하면서도 성능은 뛰어남
- 대화식이며 빠르게 이해가능
02 개발프레임워크와 소프트웨어 아키텍처 기술 동향
개발프레임워크의 기술 동향
1. 앵귤러4(Angular4)
- 구글에서 만들어 유지관리하는 자바스크립트 프레임워크
- 단일 페이지 응용프로그램에 사용되며 HTML DOM을 확장하여 사용자의 처리 요청에 신속하게 응답함
- SPA(Single Page Application) 프레임워크로 웹페이지 실행 시 해당 페이지의 주소를 바꾸지 않으면서도 동적으로 View 페이지를 불러와 사용하는 것을 말함
- 작은 응용 프로그램을 만들 때 도움이 되는 타입스크립트 2.1로 작성됨
- 단순한 정적 웹페이지가 아닌 프로그램 로직 및 백엔드 바인딩 기능 지원
2. 리액트(React.js)
- 페이스북에서 페이스북 웹개발에 사용하기 위해 만든 자바스크립트 라이브러리
- Backbone.js와 앵귤러와 같이 웹의 개발에 필요한 웹프론트 프레임워크의 기능을 제공함
- 웹페이지가 자주 변화하는 대규모 애플리케이션 구축에 유용함
- JSX(JavaScript XML)라는 기존의 XML를 허용하는 자바스크립트 확장 문법으로 자바스크립트 내 마크업 코드 작성을 지원함
- UI를 구성하는 개별적인 뷰단위로 Component 지원
- Virtual DOM을 통한 데이터 처리
3. 익스프레스(Express.js)
- 웹과 모바일 애플리케이션 개발에 필요한 최적의 기능을 제공하고 작고 유연한 Node.js의 웹 애플리케이션 프레임워크
- Node.js를 위한 빠른 웹개발이 가능하도록 지원함
- 구글의 크롬V8 자바스크립트 엔진을 활용한 이벤트기반의 백엔드 서버 개발언어
- 템플릿에 전달된 인자에 따라 HTML 페이지 동적 View가 가능하도록 처리
- 자바스클비트 코드로 작성된 미들웨어 구조 지원을 통해 필요한 기능을 결합하여 사용
소프트웨어아키텍처 기술 동향
1. 마이크로서비스 아키텍처(Microservice Architecture)
- 하나의 큰 애플리케이션을 여러 개의 작은 서비스 단위로 나누어 개별적인 데이터 저장소를 보유하고 독립된 실행환경을 구축함으로써 서비스 단위로 독립적인 개발, 빌드, 테스트, 배포, 모니터링, 라우팅, 확장이 가능한 아키텍처
- 빠른 비즈니스 변화에 대응이 가능하며 단시간에 배포 및 손쉽게 개선 및 변경이 가능함
- 서비스를 작은 크기로 나누고 독립적으로 개발함으로써 높은 개발생산성 제공
- 전체 배포가 아닌 서비스단위 배포를 통한 배포의 유연성
- 서비스 단위로 독립 확장을 통해 정교한 시스템 확장 가능
2. 도커(Docker)
- 가상머신처럼 독립적이고 격리된 공간을 제공하는 리눅스 컨테이너(Linux Container, LXC) 기술을 자동화하여 쉽게 사용할 수 있게 지원하는 오픈소스 플랫폼
- 도커라는 기업이 최초로 기술지원을 시작함
- 구글의 쿠버네티스라는 오픈소스 프로젝트로 기업용 도커가 있음
- 서버 가상화를 지원하는 하이퍼바이저 기반의 가상화보다 훨씬 가볍게 가상화 환경을 구성할 수 있음
- 개발 언어나 툴에 상관없이 애플리케이션 개발 가능
- 컨테이너를 활용해 개발된 애플리케이션의 패키지, 배포 및 관리가 용이함
- 이미지를 사용해 컨테이너 실행에 필요한 파일과 설정값 등을 포함
- 인프라의 요구사항과 관련없이 간단하고 빠른 개발 구성
- 다중 클라우드 플랫폼 지원
'TOPCIT' 카테고리의 다른 글
[TOPCIT][02] II. 데이터베이스 종류 이해 (1) (에센스 정리 요약) (0) | 2023.03.29 |
---|---|
[TOPCIT][02] I. 데이터와 데이터베이스의 이해 (에센스 정리 요약) (0) | 2023.03.28 |
[TOPCIT][01] XIII. 오픈소스 소프트웨어 동향 (에센스 정리 요약) (0) | 2023.03.26 |
[TOPCIT][01] XII. 소프트웨어 유지관리 (에센스 정리 요약) (0) | 2023.02.26 |
[TOPCIT][01] XI. 소프트웨어 형상관리 (에센스 정리 요약) (0) | 2023.02.25 |