[노개북] 실용주의 프로그래머 #9

·2022년 3월 28일
0
post-thumbnail

📚 노마드 개발자 북클럽 aka. 노개북 - 실용주의 프로그래머 3주 완독 챌린지의 기록을 남긴다.
챌린지 이동

💡 연습문제 풀기

2장 직교성 - #2

모드리스modeless 대화상자와 모달modal 대화상자 가운데 어떤 것이 더 직교성이 좋은 설계를 만들까?

풀이

일단 모드리스와 모달 대화상자가 무엇이고, 어떤 차이점이 있는지를 알아보았다.
검색 결과 모달은 대화 상자가 실행되어 새로운 뷰가 열리면, 그 대화상자가 종료되기 전까지는 기존 뷰에 접근하거나 제어할 수 없는 방식을 말한다. 자바스크립트의 alert, confirm이 이에 해당한다. 뷰를 관리하는 컨트롤은 새로운 상태(mode)에 들어선 것이고, 새로운 뷰에만 이벤트를 전달해준다.
모드리스는 모달리스라고도 불리며, 즉 모달 대화상자의 반대 개념이다.
따라서 모드리스 방식에서는 대화 상자가 실행되더라도 기존 뷰를 제어할 수 있다. 즉 기존 뷰와 새로운 뷰 모두에게 이벤트를 전달할 수 있다. 새로운 뷰가 열리더라도 새로운 상태에 진입한 것은 아니며, 따라서 modeless 라는 이름이 붙었다는 해석이 있다.
그렇다면 문제로 돌아와, 모드리스 대화상자와 모달 대화상자 중 어떤 것이 더 직교성 높은 설계일까. 책에 따르면 직교성이란 일종의 독립성을 말하고, 결합도를 줄이는 것을 의미한다. 하나가 바뀌어도 나머지에 영향을 주지 않는 설계에 직교성이 있다고 말할 때, 이를 모달과 모드리스의 실행 방식에 적용해보자. 먼저 모달의 경우, 대화상자가 열리면 기존 뷰에는 접근하지 못하는 제한이 생긴다. 이는 새로운 모드로의 진입이 기존 뷰에 영향을 미친 것으로, 결합도를 높이는 방식이라고 해석할 수 있다. 반면 모드리스는 대화상자를 열어 새로운 뷰가 열리더라도 기존뷰에는 제한이 없으며 이벤트의 전달도 양쪽에게 가능하다. 따라서 나는 모드리스 대화상자가 직교성 높은 설계를 만든다고 판단하였다.

참고링크

[C#] 늘 헛갈리 Modal vs Modeless
[프로그래밍] 모달과 모달리스는 무엇이고 어떤 차이가 있을까?

책의 해설

제대로만 한다면, 아마 모드리스일 것이다. 모드리스 대화상자를 사용하는 시스템은 어떤 특정한 시점에 어떤 일이 일어나고 있는지 신경을 덜 쓰게 된다. 이런 시스템은 시스템의 상태에 대해 기본적인 가정을 가지고 있는 모달 시스템보다 더 발달된 모듈간 의사소통의 인프라를 가질 가능성이 높다. 모달 시스템이 가진 가정은 결합도를 높이고 직교성을 떨어뜨리게 된다.

profile
걸음마 개발 분투기

0개의 댓글