프레임워크란 - 어떤 프로그램을 만들기위한 기본 틀 이라고 생각하면 된다 - 사전적 정의로는 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것이라고 나와있지만 무슨소리인지 모르겠다. 예시 - 컴퓨터 본체를 조립하는 회사라고 했을 때 1) 메인보드에 CPU를 장착하고 2) 메인메모리를 달고 , 3) 하드디스크를 장착 등 이처럼 본체를 조립하기 위한 일련의 과정 또는 틀을 프레임 워크라고 한다 장점 - 프레임워크를 사용하면 프로그램을 편리하고 빠르게 만들 수 있다. (생산성 향상) - 체계적으로 만들어진다 (유지보수가 쉽다) 라이브러리란 - 재사용이 가능한 필요기능으로 반복적인 코드 작성을 없애기 위해 언제든지 필요한 곳에서 호출하여 사용할 수 있도록 Class나 Function으로 만들어진 것 - 예를들어 컴퓨터 본체를 조립한다고 했을 때 우리는 직접 CPU , Memory , 메인보드 , HDD 등을 만들지 않고 이미 만들어져있는것을 가져다 사용한다. 예시 - 컴퓨터 본체를 조립하기 위해 필요한 CPU , Memory , 메인보드 등의 각각의 모듈들 장점 - 코드의 중복을 줄인다 (가독성 , 유지보수 향상) - 프로그래밍 시간을 줄일 수 있다. (생산성 향상) 프레임워크 VS 라이브러리 프레임 워크 - 내가 개발을 하기위해 지켜야하는 틀 라이브러리 - 내가 개발을 하기위해 필요로 하는 미리구현 되어있는 대상 IT, 미디어/소프트웨어 프레임워크는 무엇이고 프레임워크의 종류는 어떤 것이 있을까?2022. 2. 1. 프레임워크는 개발자가 어플을 개발하기 위해서 사용하는 소프트웨어이다. PPT를 만들 때 템플릿이 있으면 디자인을 처음부터 만들 필요가 없다. 프레임워크는 프로그래머들에게 있어서 PPT 템플릿과 같은 존재다. 프로젝트를 진행할 때 프레임워크 도구를 사용하면 처음부터 코딩할 필요가 없는 것이다. 프레임워크란?프레임워크는 소프트웨어 개발에 있어서 하나의 뼈대 역할을 한다. 소프트웨어 프레임워크를 사용하여 프로그램을 개발하면 처음부터 코딩하는 것보다 훨씬 빠르게 개발할 수 있다. 소프트웨어를 개발하는 것은 되게 복잡하다. 코딩은 물론이고 디자인과 수많은 디버깅을 하려면 많은 노가다 작업이 필요하다. 이런 막노동을 하다 보면 몸도 마음도 많이 지칠 건데 프레임워크를 사용하면 개발자의 삶이 더 편해진다. 소프트웨어 프레임워크를 사용하면 다음과 같은 장점이 있다.
프레임워크의 종류웹 애플리케이션 개발 프레임워크 Laravel (라라벨) 라라벨은 PHP 기반 웹 애플리케이션 프레임워크이다. 오픈소스 프레임워크이고 이해하기 쉬운 구조를 지니고 있다. 구글에 의하면 PHP 웹 애플리케이션 개발에 최적화되었다고 합니다. 라라벨 공식 홈페이지 라라벨 코리아 커뮤니티(Laravel Korea Community) laravel korea community 라라벨 코리아 커뮤니티 - 한글 매뉴얼 laravel.kr 앵귤러 앵귤러는 웹에서 애플리케이션을 쉽게 구축할 수 있도록 도와주는 오픈 소스 프레임워크이다. 앵귤러는 구글의 많은 내부 도구에서 사용되기도 한다. 앵귤러를 사용하여 만들어진 웹사이트들은 다음과 같다.
앵귤러 공식 홈페이지 Angular 가이드 Angular 가이드 angular.kr 데이터 과학 프레임워크 아파치 스파크 아파치 스파크는 대규모 데이터 처리를 위한 엔진이다. 아파치 스파크를 사용하여 애플리케이션을 빠르게 개발할 수 있다. 정말 많은 회사에서 아파치 스파크를 사용하고 있지만 요약해보자만 다음과 같다.
Apache Spark™ - Unified Engine for large-scale data analytics Run now Installing with 'pip' $ pip install pyspark $ pyspark QuickStart Machine Learning Analytics & Data Science df = spark.read.json("logs.json") df.where("age > 21").select("name.first").show() # Every record contains a label and feature vector df = sp spark.apache.org 파이 토치 파이 토치는 연구, 프로토타입 제작에서 사용되는 오픈 소스 프레임워크이다. 파이 토치는 페이스북의 AI 연구 팀에서 개발한 프레임워크이고 컴퓨터 비전 및 자연어 처리에 사용된다. 파이 토치를 사용해 개발된 웹사이트는 다음과 같다.
파이토치(PyTorch) 튜토리얼에 오신 것을 환영합니다 — PyTorch Tutorials 1.10.1+cu113 documentation Shortcuts tutorials.pytorch.kr 텐서 플로우 텐서 플로우는 머신러닝을 위해 개발된 오픈소스 프레임워크이다. 연구원 혹은 개발자가 프로그램을 빠르게 구축할 수 있도록 도와준다. 도구, 라이브러리, 커뮤니티 리소스가 많고 유용하다. TensorFlow 모두를 위한 엔드 투 엔드 오픈소스 머신러닝 플랫폼입니다. 도구, 라이브러리, 커뮤니티 리소스로 구성된 TensorFlow의 유연한 생태계를 만나 보세요. www.tensorflow.org 모바일 개발 프레임워크 아이오닉 아이오닉은 안드로이드, IOS를 포함한 모든 모바일 플랫폼을 개발하기 위한 오픈소스 프레임워크이다. 아이오닉을 사용하여 개발된 프로그램은 다음과 같다.
Cross-Platform Mobile App Development: Ionic Framework Ionic Framework's app development platform builds amazing cross-platform mobile, web, and desktop apps all with one shared code base and open-web standards. ionicframework.com 자 마린 자 마린은 3700개의 회사에서 6만 명 이상의 커뮤니티 사람들이 활발하게 사용하고 있는 무료 오픈소스 애플리케이션 개발 플랫폼이다. 자 마린을 이용하여 개발된 애플리케이션은 다음과 같다.
Xamarin | Open-source mobile app platform for .NET Xamarin is a free and open source mobile app platform for building native and high-performance iOS, Android, tvOS, watchOS, macOS, and Windows apps in C# with .NET. dotnet.microsoft.com 플러터 플러터는 구글의 UI 툴킷이다. iOS와 안드로이드에서 좋은 성능을 발휘한다. 플러터를 이용하여 개발된 애플리케이션은 다음과 같다.
Flutter - 가장 빠른 아름다운 네이티브 앱 Flutter(플러터)는 하나의 코드베이스로 모바일, 웹, 데스크톱에서 네이티브로 컴파일 되는 구글의 아름다운 UI 툴킷입니다. Flutter는 기존 코드와 함께 동작하고, 전세계 개발자와 조직에 쓰이고 flutter-ko.dev |