개발자는 항상 무엇을 만든다. 그렇다면 어떻게 만들어야 할까?
만들다보면 더 잘 만들고 싶고, 기능들을 더 추가하고 싶고, 제공하고 싶고... 분명 욕심이 나는게 사실이다.
이런 욕심들을 채우기 위해 많은 것들을 담으려고 노력하면...? 안된다!
어떤 제품을 만들 때는 그 제품의 가치를 증명받아야 한다.
제품에 담은 컨셉을 많은 사람들에게 가치가 있고 좋은 방법임을 납득시키고 이해시키려면 해당 부분에 선명도를 높여야하는데, 다른 여러가지 부가적은 부분들이 많으면 그 선명도가 떨어진다. 그렇게 되면 가치가 높은 것들도 그 만큼의 평가를 받지 못할 수 있다.
그래서! 핵심적인 부분만 초기 제품에 담는것이 매우 중요하다 👍
물론 소프트웨어 개발에도 마찬가지!
React
의 MVPReact
의 초기 버전은 2013년 정도에 출시되었다.
React 초기버전 보러가기
계속 사용중인 React
의 초기버전을 보니 새롭다 🎈
0.3이 최초 버전으로 releases 되어 있는 것을 볼 수 있고, 다운로드도 받아볼 수 있다!
다운로드 받아서 README.md를 보면,
MVP만 딱 포함되어 있는 완전 초창기 버전이라고 할 수 있다.
이 React
초기 버전의 README문서를 보면서, 개발을 할 때 어떻게 하는 것이 효과적인 지를 알아볼 수 있을 것 같다.
좀 더 자세히 보면, React
는 웹 애플리케이션의 UI
를 만들기 위한 library
라고 정의한다.
여기서 보면 React
는
MVM
, MVVM
.. 의View
를 다루는 DOM
과 연결되어 있는 UI
를 해결하고 싶다는 것을 알 수 있다.
DOM
의 문제를 해결하고 싶다! => REACT
의 MVP
README문서를 좀 더 살펴보면, 3가지의 컨셉을 가지고 있다.
1. 선언적이다.
Declarative: React uses a declarative paradigm that makes it easier to reason about your application.
- 이 부분은 현재까지도 유지되고 있는
React
의 철학중 하나이다.- 선언적인 코드가 생산되도록 유도 -> 대표 컨셉중 하나가 될 수 있다.
2. 효율적이다
Efficient: React minimizes interactions with the DOM by using a mock representation of the DOM.
DOM
과 interaction하는 것을 최소화한다DOM
에 모의 표현을 사용하여DOM
을 처리한다
(=DOM
을 없앤다는 측면, 완전히 없애진 않고mock
형태로 가짜DOM
을 제공해서DOM
과의 연결성을 최소화한다)
3. 유연하다.
Flexible: React works with the libraries and frameworks that you already know.
library
orframework
같은 것들과 같이 동작할 수 있어서 유연성이 높다.
초기 React
의 목적은 SPA
을 만드는데에 있어서 모든 것들을 제공해주려는 것이 아니라, UI
부분의 문제점만을 해결하고 싶다는 것을 알 수 있다. 그리고 이 컨셉을 React
는 오랫동안 유지한다.
React
초기버전에 추구하는 컨셉이 대부분 들어가 있는 것이 인상적이다. React
뿐만 아니라, 많이 사용되고 있는 다른 Framework
의 초기버전들도 궁금해져서 한번 보러 가야겠다 ㅎㅎㅎ 🛴