[TIL]2020-10-26 MVC

Seungjae Han·2020년 10월 26일
0
post-thumbnail

MVC

MVC에 대한 개념부터 배웠다. Model-View-Controller로 이루어진 패턴이다.
Model은 DB와 CRUD하는 공간이다.
Controller는 라우터와 대화하는 공간이다.
View는 최종적 컨드롤러가 보여주고자 하는 UI들을 말한다.

[출처 : https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC ]

이렇게 이루어 지면 어떤 장점이 있을까? 사용자의 인터페이스와 비즈니스로직 즉, 데이터를 CRUD하는 부분을 나눔으로써 애플리케이션의 시각적 요소와 실행되는 비즈니스 로직을 서로 영향없이 쉽게 수정이 가능하다는 점이 장점으로 여겨진다. 이러면 협업과 일처리에 관해서 편리하다는 장점을 가질 수 있다.

하지만 생각해보면 한계점도 나타난다. 여러가지의 model과 view들을 controller에서 처리를 하게 된다면? 이러면 controller의 크기가 비대해져 결국 수정하기 힘든 상태가 될 것이다. 요즘은 web의 크기가 크기때문에 데이터를 controller가 처리하기 힘든 상태가 올 것이다.

세상에는 아주 많은 소프트웨어 개발 방법론이 존재하고 MVC는 그 중 하나다. 각각의 방법론을 살펴보며 알맞는 상황에 좋은 방법론을 사용하는 것이 맞다고 생각한다.

ORM(Object-relational Mapping)

ORM은 객체와 관계와의 설정을 의미 한다. Javascript 내에서 생성하는 객체와 SQL에서 생성하는 ORM을 일치시킬 수 있다. 단순하게 Javascript 객체와 sql과의 대화를 편하게 만들어 주는 것이다. 전에는 mysql을 사용하면서 sql문으로 데이터베이스를 만들어주고 javascript내에서 mysql 라이브러리를 이용해 qeury문을 보내주는 형식을 취한다. 하지만 sequelize를 (sequelize는 orm을 할 수 있는 라이브러리)이용하면 이처럼 긴 SQL문을 이용하지 않아도 되고 객체적인 접근으로 생산적으로 프로그램을 짤수있다.

아직까지는 큰 불편함은 못느꼈다. 분명 ORM에서도 단점이 존재할텐데 아직까지는 MySQL을 굳이 직접 접근하지 않아도 된다는 장점과 긴 SQL문을 작성하지 않고 편하게 프로그램을 짤 수 있다는 장점에 매료되어있다. 불편함이 생긴다면 그에 대해서도 이야기 해보겠다.

profile
공부하는 개발자 재밌게 일하고 싶습니다.

0개의 댓글