Community

(오늘 본 유투브에서 프론트엔드의 아키텍쳐에 관한 이야기가 나와 댓글로 적어본 내용을 SNS 형식으로 다시 재구성 해보았습니다. 링크에는 제가 정리했던 프론트엔드 아키텍쳐에 관한 아티글을 링크해두었

(오늘 본 유투브에서 프론트엔드의 아키텍쳐에 관한 이야기가 나와 댓글로 적어본 내용을 SNS 형식으로 다시 재구성 해보았습니다. 링크에는 제가 정리했던 프론트엔드 아키텍쳐에 관한 아티글을 링크해두었습니다.) ... 웹에서 프론트엔드/백엔드 경계가 없던 2000년대 시절 웹에서 HTML+CSS+JS 영역을 View라고 부르고 데이터를 Model, 라우터 서버스크립트 영역을 Controller라 부르면서 이것을 MVC 패턴 혹은 MVC 아키텍쳐라고 하였습니다. 이때의 MVC 아키텍쳐는 사실 프론트엔드의 것이라고 보기는 어려웠습니다. 이후 jQuery시절이 끝나고 웹 어플리케이션이라는 개념이 생기면서 웹 프론트엔드가 생겨날 무렵 기존 MVC 개념을 바탕으로 하는 backbone이나 ember와 같은 MVC 프레임워크들이 나오기 시작하였습니다. 그러나 knockoutjs, angularjs와 같이 HTML에서 템플릿과 치환자 그리고 데이터 바인딩과 자동 업데이트라는 방식이 기존의 MVC 개념보다 훨씬 더 효율적이고 쉽게 화면과 모델을 만들 수 있다는 것을 알게 되면서 이러한 방식이 대세가 되어 웹은 MVC를 건너뛰고 MVVM 아키텍쳐가 주류가 되었고 이 기조는 지금까지 이어집니다. 이후 React가 나오고 MVC, MVVM에서 FLUX 패턴이나 현재에 이르는 상태관리처럼 웹이 이러한 새로운 아키텍쳐에 대한 선구자적인 역할을 하게 되었습니다. 이때는 개념이 정립이 되지 않은 채로 만들어졌기에 이게 MVC가 맞는가? 하는 논란도 있었고 angularjs의 경우는 MVW (Whatever)이라 부르면서 굳이 이런방식에 이름을 붙이고 정하려 하지말고 가장 효율적인 패턴을 적용한다는 의미로 불러달라고 했습니다. 이렇게 선언형 뷰를 만드는 방식은 이후 안드로이드나 ios Swift등으로 수출(?)이 되면서 잘 정리된 MVVM 아키텍쳐가 되었고, 이후에 나온 스토어를 따로 두고 행동에 의해 데이터가 변경되고 이를 반영하는 방식의 FLUX 패턴이나 상태관리 패턴들은 이후 MVI 아키텍쳐라는 이름으로 정리하고 되면서 벤더에 나중에 정리되어 적용이 되고 있는데 반해 웹은 계속 발전 중입니다. 웹 프로트엔드가 과도기라고 하면 과도기가 맞지만 (20년째 과도기...) 어떻게 보면 벤더가 없기에 계속 선구자의 역할을 하고 있고 그러다 보니 매년 새로운게 나오고 뭔가 정리가 되려고 하면 새로운 개념들이 또 나오고 있는 형국입니다. 그러다 보니 하나의 정형화된 아키텍쳐가 되기도 전에 새로운 라이브러리와 넘쳐나는 새로운 개념과 아젠다들로 뒤덮여 있다보니 웹 프론트에서는 이렇다 할 만한것으로 정해지지 못하는 것 처럼 보이지만 그래서 더 새롭고 선구자적인 개념들을 먼저 겪을 수 있는 것 같아서 웹 프론트엔드가 참 매력적이라고 생각합니다. 프론트엔드에서 MV* 아키텍쳐가 무엇인지 궁금하시다면 아래 글을 한번 읽어 보세요 :)

알림

알림이 없습니다