회사의 프론트엔드 담당자로서 작은 프로젝트를 진행하고 있다. 기획자도 없고 디자이너도 없고 퍼블리셔도 없어서 내가 혼자 기획,디자인, 퍼블리싱 거기다 프론트 엔드 로직 개발까지 다 하고 있다. 해보고 싶어서, 재미있어서 하고 있지만 전문성도 떨어지고 시간도 많이 부족하다.
이 간극을 메우기 위해 사용한게 react 디자인 컴포넌트의 인기 스타 material-ui, 근래에 리네이밍된 mui 이다. mui를 쓰면서 느낀 장단점을 기술해 본다.
# 장점
- 모던한 UI 구성 가능
UI에도 유행이 있어 동시대의 UI는 거의 비슷비슷하다. mui에서 유행하는 UI 컴포넌트를 제공해 주니 이걸 활용하면 모던한 UI를 만들 수 있다. 역으로 mui가 제공하는 컴포넌트만 둘러봐도 어떤 스타일이 유행하는지 알 수 있다.
2. 디자이너나 퍼블리셔 없이 손쉽고 간단하게 UI 구현 가능
mui를 사용하면 정말 쉽다. 이렇게 쉬워도 되나 싶을 정도로 쉽다. 디자이너나 퍼블리셔가 없어도 어느정도 사이트 구현이 가능해진다. 하다보면 프론트 개발이 우습게 느껴질 정도로 손쉽다.
3. 많은 레퍼런스
mui가 인기가 있어서 레퍼런스가 많다. 어떻게 구현해야 하는지 디테일한 부분을 몰라서 검색하면 레퍼런스를 쉽게 찾을 수 있다.
# 단점
- mui 가 망하면?
의존도가 높아지다 보니 mui가 망하면 어떻게 되는거지? 하는 걱정도 든다. 망해서 지원을 안 하면 프론트 엔드는 완전 날아가는 건데.
2. 획일화된 UI
유행하는 UI로 사이트를 만들면 사용자가 이질감 없이 사용할 수 있겠지만 그 만큼 개성없고 획일화된 UI를 제공한다는 얘기다. 한마디로 매력없다.
3. 프론트엔드 개발능력 퇴화
다양한 UI 컴포넌트를 제공하는 건 좋은데 그러다 보니 의존도가 높아지게 되고 점점 프론트 개발 능력이 퇴화하고 있다는 느낌이 든다. 일일이 구현해야 능력이 좋아지는 것도 아니고 속도가 중요한 회사 업무에 대한 올바른 태도도 아니겠지만 쓰면 쓸 수록 개발 능력의 퇴화에 대해 불안해 지는건 어쩔 수 없다.
4. 생각한대로 만드는게 아니라 제공하는 대로 만들게 됨
이렇게 만들면 좋지 않을까? -> mui 검색해 봄 -> 그런건 없고 다른걸 제공 -> 그럼 제공하는 방식으로 만들어야 겠다.
이런 방식으로 개발하게 된다. 만들고 싶은 대로가 아니라 제공하는 것에 맞춰서 개발하게 된다.
5. 잘 쓰려면 연구가 필요
mui 는 다양한 방식으로 구현할 수 있다. 예를 들어 색상을 바꾸고 싶으면 mui가 제공하는 컴포넌트에 내장 기능으로 바꿀 수도 있고 style 태그를 먹일 수도 있고 스타일드 컴포넌트로 할 수도 있고…다양한 커스텀 기능을 지원하다 보니 일관된 개발 방식을 유지할 수 없다. 어떻게 써야 할지도 연구하고 공부를 해야 한다. 쉽게 쓰려고 mui를 쓰는 건데 공부를 해야 한다니 뭔가 이치에 안 맞는 느낌이다.
결론: 쓰다보니 단점이 많아 졌지만, 디자이나와 퍼블리셔가 없는 상황에서 프론트 엔드 개발을 하는데 mui 만한 대안이 없다.