What are frameworks? - 프레임워크는 무엇일까?
모든 프로그램들은 눈송이처럼 각자 다릅니다만,
그들의 프로그램의 코드에는 당신의 관심을 끌고 싶어하는 유사점들을 가지고 있습니다.
또는, 이러한 유사점들이 어떻게 개발자들에게 이점으로 사용될 수 있는지에 대한 겁니다.
프로그래밍에서는, 개발을 간단화하기 위해 라이브러리로 포장된 코드를 재사용하여 같은 에러를 피하는 것은,
평범한 관행입니다.
이러한 라이브러리들은 대부분의 프로그래밍 언어들을 위해 존재합니다.
그들은 좋은 문서를 제공하며, 많은 사람들에게 사용되는 잘 테스팅 된 코드를 제공합니다.
인터넷 스토어, 온라인 은행, 소셜 네트워크와 같은 거대한 어플리케이션들은,
유저 인증, 데이터베이스 상호작용, 알림 보내기와 같은 똑같은 컴포넌트나 기능이 필요합니다.
이러한 컴포넌트나 기능을 재사용하기 위해서,
개발자들은 특정한 분야의 소프트웨어를 생성했는데,
이를 framework (프레임워크) 라고 부르며, 모든 유명한 프로그래밍 언어들을 위해 있습니다.
framework는 만능이며, 소프트웨어의 재사용 가능한 조각인데,
이는 어플리케이션이나 그들의 파트에서 개발을 용이하게 해 줍니다.
이는 코드 템플릿으로 구성되어 있으며,
특정한 어플리케이션의 니즈를 위해 쉽게 확장 가능한 일반적인 기능성을 제공합니다.
저-수준 태스크의 컨트롤을 양도하고, 고-수준의 문제에 집중하기 위해서,
당신은 프레임워크에 의해 제공되는 API를 사용해야 합니다.
이는 총 개발 시간을 상당히 줄여 줄 수 있습니다.
몇몇 프레임워크들은 너무 거대해서, 사실,
서로 다른 프레임워크나 라이브러리들을 하나의 이름 아래 통합 한 겁니다.
Frameworks vs libraries - 프레임워크 vs 라이브러리
잠깐 보았을 때는, 프레임워크와 라이브러리는 매우 비슷 해 보이나, 그렇지 않습니다.
프레임워크를 사용하는 어플리케이션들은 프레임워크 위에 만들어졌으며,
특정한 기능을 얻기 위해 프레임워크의 코드를 확장합니다.
어떤 의미에서, 프레임워크는 어플리케이션의 뼈대로서 사용됩니다.
또 다른 한편으로 라이브러리는, 전체적인 영향을 끼치지 않는 연산자들을 제공합니다.
이는 프레임워크와 라이브러리 사이의 중요한 차이점입니다.
하지만, 라이브러리들은 프레임워크의 일부로서 제공 될 수 있습니다.
당연하게도, 프레임워크와 라이브러리 간의 비슷한 점이 있다는 것은 분명합니다.
프레임워크를 사용하는 프로그래머는 내부의 소스 코드를 수정하지 않고,
프레임워크를 사용하는 유저로서 행동합니다.
Inversion of Control - 제어의 역전 (IoC)
프레임워크에 기본적으로 따라오는 규칙은 Inversion of Control (IoC) 입니다.
프레임워크에서는, 라이브러리나 표준 유저 어플리케이션과 같지 않게,
전체적인 프로그램 제어 흐름은 개발자가 아니라 프레임워크가 명령합니다.
이는 프레임워크가 당신의 코드를 불러오며, 그 반대는 아니라는 의미입니다 :
---
title : Inversion of Control - 제어의 역전
---
flowchart
Framework -- calls --> Your-Code -- calls --> Library
이러한 방식으로 call 하는 이유는,
프레임워크가 해결 가능한 임무를 위한 템플릿을 제공하며,
프레임워크 개발자에 의해 정의된 템플릿 사이의 상호작용 때문입니다.
프레임워크의 유저는 그저 템플릿을 가지고 어플리케이션에 특화된 코드를 확장합니다.
Advantage and disadvantages - 장점과 단점
지금까지 프레임워크 특징에 무게를 달아 볼 시간입니다.
긍정적인 말로 시작하며, 프레임워크를 사용하는 것은 수많은 강력한 장점을 가지고 있습니다 :
- 빠른 프로토타이핑과 개발
- 프로젝트 구조 표준화하기 : 같은 구조로 비슷한 프로젝트를 이해하는 것이 더 쉽습니다.
- 전세계의 회사들이 광범위하게 사용합니다.
- 프레임워크 저자들에 의해 버그가 고쳐지며, 보안이 업데이트됩니다.
- 잘 디자인 된 뼈대 : 규칙으로서, 프레임워크는 최신 관행을 사용하며,
어플리케이션을 위한 단단한 뼈대를 제공하는 패턴을 사용합니다.
장점들에도 불구하고, 평범한 단점이 있습니다 :
- 맞지 않는 프레임워크를 선택하는 것은 어플리케이션을 구현하기 더 힘들게 만듭니다.
- 어플리케이션 느려짐 : 프레임워크는 종종 프로그래머들에게 감춰진 무거운 것들을 수행합니다.
- 라이브러리들은 쉽게 재배치 할 수 있지만, 더이상 알맞지 않는 프레임워크를 재배치하기엔 어렵습니다.
- 당신이 프레임워크에서 맞닥들이는 버그는 당신의 작업에 영향을 끼칩니다.
위의 목록은 프레임워크에 있어 장점과 단점의 완벽한 리스트는 아닐 겁니다.
하지만, 당신은 프레임워크를 사용하는 더 많은 예제를 볼 수 있으며, 스스로 이들을 탐색 할 겁니다.
How to choose frameworks - 프레임워크 선택하기
규칙으로서, 각각의 프로그래밍 언어는 선택 할 수 있는 여러 개의 프레임워크가 있습니다.
당연하게도, 당신이 들어 간 회사가 이미 몇 개의 프레임워크를 이미 사용하고 있다면,
당신에게 선택권은 없습니다.
하지만 만약 당신에게 선택권이 있다면, 가능한 모든 혜택을 고려하고, 결정을 내릴 때 만들어질 문제를 고려해 보세요.
여기 알맞는 프레임워크를 선택하기 위한 일반적인 조언들이 있습니다 :
- 훌륭한 문서를 가지며 잘 알려진 프레임워크에 관심을 기울이세요.
이는 정말 간단히 사용할 수 있으며, 이러한 프레임워크에 이미 익숙한 개발자들을 쉽게 찾을 수 있습니다.
몇몇 유명한 프레임워크들은 심지어 특정 유형의 어플리케이션을 개발하는 데 사실상 표준이 되었습니다.
이러한 프레임워크들이 첫 번쨰로 고려되어야 합니다.
- 만약 당신이 절대로 바뀌지 않을 작은 어플리케이션을 작성한다면, 프레임워크 없이 개발 할 수 있습니다.
게다가, 이러한 어플리케이션에 있어 프레임워크는 불필요하며 부가적인 복잡성을 도입할 수도 있습니다.
하지만, 당신은 가벼운 프레임워크라고 불리는 것을 고려 할 것이며,
당신의 어플리케이션에 일부분만을 위한 프레임워크를 선택 할 겁니다.
이는 일반적인 정보입니다.
우리가 말했듯이, 프로그램들은 서로 다르며, 사용 가능한 프레임워크도 마찬가지입니다.
가장 훌룽한 것은 특정한 프레임워크들을 아는 것이며, 이들과 가까이 작업할 수 있는 겁니다.
Conclusion - 결론
당신이 보다시피, 프레임워크는 간단히 전체 어플리케이션의 뼈대거나, 그것의 일부입니다.
프레임워크 사용에 있어 상당한 혜택들 속에는, 빠른 개발과 표준이 있으며, 디자인이 잘 된 구조의 어플리케이션이 있습니다.
하지만, 특정한 업무를 위해 프레임워크를 잘못 선택했을 때 일어날 수 있는 결함을 잊으면 안됩니다.
words to remember
universal : 만능인, 만국의, 모든 사람의
relinquish : 포기하다, 그만두다, 양도하다, 기권하다
in a sense : 어떤 의미에서, 어떤 점에서
evident : 분명한, 분명히 나타난 === evidence : 증거
up-to-date : 최신
firm : 단단한, 굳은, 단호한
de facto : 사실상
'Hyperskill - 컴퓨터 CS 및 영어 독해 > Introduction to Docker' 카테고리의 다른 글
YAML - YAML 문법과 사용법 (0) | 2024.07.09 |
---|---|
Interfaces - 인터페이스 (0) | 2024.07.03 |
What is object oriented programming - 객체지향 프로그래밍은 무엇인가 (0) | 2024.06.28 |
Web development - 웹 개발 (0) | 2024.06.22 |
HTTP: HyperText Transfer Protocol - HTTP에 대해서 (0) | 2024.06.21 |