배웠다고 하긴 모자라서 TIL이라고 하긴 좀 그렇긴 한데..
210831 디버깅 외적인 고민
최근 진행하는 프젝에서 semantic URL을 만들기 위해 노력중이다. 문제는 filter다. 필터 A,B,C가 있을 때, A는 필수, B와 C는 선택사항으로 남겨놓고 그걸 URL에 반영하고 싶다. 단, 모듈간 응집도를 최대한 낮춰서.
if A == 'a':
if B == 'ㄱ':
if C == '1':
elif C == null:
~
이렇게 말고
function A(case):
~
function B(case):
~
function C(case):
~
function A();
function B();
function C();
이렇게 하고 싶어. 프로그래머라면 정말 당연한 욕구죠?
그 방법으로 미들웨어를 채택했는데, 맞는지 모르겠다.
각 라우터에 {mergeParams:true}
옵션을 줘서 모듈 분리는 했지만?
새로운 필터 D를 A와 B 사이에 추가한다고 하면 B를 수정해줘야 한다. 조금 마음에 안드는?
[ Javascript ] middleware
그런데 semantic한 pretty URL을 만들면서, 과연 이게 정말 restful한가에 대한 의문이 들었다. 너무 덕지덕지 붙어있지 않아?
[ Web / HPPT ] RESTful API
거의 모든 곳에서 RESTful한 API를 원하고 있기 때문에 참 많이도 들어봤지만 아직도 전혀 모르겠는 용어다. 프로그래밍 처음에 시작할 때 객체지향, 절차지향을 이해하려고 했던 것보다 훨씬 오랜 시간을 들였는데 아직도 모르겠어. 명확한 용어 정의가 되어있지 않은게 가장 큰 이유겠죠? 그래도 예전보다는 나아져서 새로운 지식을 이해할 수 있게 되었다🤸🏻♀️🤸🏻♀️
이론! Richardson Maturity Model (about, 감사하게도 존재하는 한글 번역은 여기) 그리고 실용! ms의 Web API 디자인 모범 사례
나는 level 3의 하이퍼미디어를 전혀 쓰지 않고 있었다. 하이퍼링크 해준다면 클라이언트 측을 좀 더 잘 이해시킬 수 있을 것 같고.. 지금의 uri도 나쁘지 않을지도?
결과적으로는 미들웨어를 채택한 코드가 잘 돌아가서, ~~왜 되지?~~ 일단 그 상태로 놔두기로 했다. 코드의 완성도도 중요하지만 MVP인만큼 다른 주요 기능을 개발하는게 우선이라고 생각했기 때문에… 나중에 더 좋은 방법을 알게 되었으면 좋겠다.
댓글남기기