8장] 프레임워크와 라이브러리
🚨 프레임워크
• iOS 애플리케이션을 만든다고 생각하면 개발자는 버튼부터 한 땀 한 땀 코딩하지 않는다
-> 버튼은 이미 애플이 만들어놓음
• 이렇게 만들어놓은 코드를 개발자가 사용
• 프레임워크는 개발자에겐 '사전' 과 같은 개념이다
• 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합
• 작업(work)의 구조(frame)가 정해져 있는 라이브러리 (Frame+work)
- 애플에서 제공해주는 프레임워크인 코코아(UIkit, AppKit 등)를 사용하면
애플의 애플리케이션을 더 쉽고 빠르게 만들 수 있다
- 자바 혹은 코틀린 언어를 사용하는 안드로이드 또한 안드로이드 프레임워크를 사용하면
안드로이드에 올라가는 애플리케이션을 쉽게 만들 수 있다
ex) 애플(Apple)의 프레임워크
• AppKit : 맥 OS 에 올라가는 애플리케이션을 개발하기 위한 프레임워크
• UIkit : iOS 혹은 tvOS 에 올라가는 애플리케이션을 개발하기 위한 프레임워크
=> 애플의 프레임워크들을 통칭해서 코코아(Cocoa) 프레임워크라고 부른다
모바일 / 웹 / 서버 프레임워크
구분 | 프로그래밍 언어 | 프레임워크, 라이브러리 |
애플(Apple) | Swift, Objective-C | Cocoa(UIKit, AppKit...) |
구글(Google) | Java, Kotlin | Android Framework |
웹 ( 웹은 특정회사의 소유가 아니기 때문에 프레임워크는 여러 사람들/기업들이 제작 ) |
JavaScript | Angular.js |
React.js | ||
Vue.js | ||
서버 ( 서버도 특정 회사의 소유가 아니므로 다양한 프레임워크가 존재 ) |
자바 | 스프링(Spring) 프레임워크 |
파이썬 | 장고(Django) 프레임워크 | |
루비(Ruby) | 레일스(Rails) 프레임워크 |
🚨 라이브러리
• 프로그래밍에서의 라이브러리란 필요한 기능들이 모여있는 코드의 묶음
• 다른 사람들이 만들어놓은 코드를 이용한다는 측면에서 프레임워크와 같다
• 프레임워크가 더 큰 개념
• 각종 라이브러리와 코드들이 모여 프레임워크가 된다
• 한 프로젝트에서 프레임워크는 하나만 쓸 수 있지만, 라이브러리는 함께 사용 가능
• 사용 전 설명을 확인해야 한다 - 무료인지, 사용료를 받는 지 등등
9장] 협업, 소스관리, 디자인
🚨 소스 관리 - 깃 (Git)
• 리눅스 개발자 '리누스 토발즈' 가 개발한 프로그램
• 커밋(Commit) : 깃(Git) 을 통해 개발자들은 개발 단계별로 '깃발'을 꽂을 수 있다
• 커밋로그 : 커밋 시 작성하는 메모
브랜치(Branch)
• 가지, 분기 라는 뜻으로, 새로운 가지를 뻗는 것
• 한창 개발을 하고 있는데, 새로운 방향의 개발을 추가해야 할 때,
개발자는 기존 개발에 이어서(덮어씌어) 작업하지 않고, 새롭게 가지를 쳐서(브랜치) 작업할 수 있다
-> 기존 브랜치에 커밋을 하는 것이 새로운 브랜치에 영향을 주지 않고,
마찬가지로 새로운 브랜치에 커밋을 하는 것이 기존 브랜치에 영향을 주지 않는다
머지(Merge)
• 브랜치에서 각각 작업한 코드들을 합치는 작업(작업된 부분이 겹치지 않으면 자연스럽게 합쳐준다)
• 겹치는 부분이 있다면 깃(Git) 은 충돌(Conflict) 을 알려주고 어떤 부분이 충돌됐는지 보여줌
원격저장소
• 깃(Git) 을 기반으로 한 깃허브(GitHub), 비트버킷(Bitbucket) 와 같은 저장소
🚨 개발자와 디자이너의 협업
스케치, 재플린, XD 등 디자이너의 작업 결과물을 수치로 보여주는 프로그램을 이용해서 디자이너가 가이드를 작업해주고 그 가이드대로 개발자가 작업을 한다. 가이드를 이용해서 디자이너와 개발자의 접점을 줄여 갈등을 관리할 수 있지만,
개발자와 디자이너는 서로의 분야에 대한 계속적인 공부와 배려가 필요하다.
개발자는 계속 UI 에 관심을 가져야한다.
개발자는 프레임워크와 라이브러리를 제공해 주는 기능을 활용하기 때문에
디자이너는 프레임워크에서 제공하는 가이드 문서를 어느 정도 숙지하고 있어야 한다.
애플은 HIG(Human Interface Guideline)를 제공하여 애플의 기기 방침을 제공하고 ,
구글은 Material Design 이라는 가이드를 제공하고 있다.
이런 각 프레임워크의 가이드를 숙지하고 있어야 한다.
감사합니당 (●'◡'●)
'📖 책 도서' 카테고리의 다른 글
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식 - [6장] 웹(Web) / [7장] 데이터베이스와 이미지 처리 (3) | 2022.02.27 |
---|---|
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식 - [4장] API 와 JSON / [5장] 애플리케이션 (0) | 2022.02.27 |
IT도서 : 비전공자를 위한 이해할 수 있는 IT지식 - [2장] 프로그래밍 언어 & 운영체제 / [3장] 네트워크, 클라이언트, 서버 (0) | 2022.02.27 |
IT도서 : 비전공자를 위한 이해할 수 있는 IT 지식 (3) | 2022.02.27 |