relay 의 data-masking 의 양날의 검에 대하여
- data-masking을 통해서 각 컴포넌트별로 독립성을 보장하지만, 반대로 data masking 이 되어서 해당 컴포넌트가 어떤 역할을 하는지에 대한 정보를 사용처에서 볼 수가 없음.
- 이게 1~2 depth 라면 상관없지만 중첩이 심해지니 오히려 각 컴포넌트가 너어무 독립적이어서 유기성이 떨어지는게 문제. 서로 연결되어 쓰이는 코드들의 맥락을 한번에 파악하기 어려움. 부모와 자식이 너무 서로를 모름. 서로 너무 연결되어있어도 당연히 문제겠지만, 서로 너무 몰라도 문제다.
- 과도한 캡슐화의 슬픔…?
- 가령, ProductDetail 을 보려면 계속 타고타고 내려가서 Fragment 쫓아가야함.이게 props drilling 으로 각 컴포넌트가 서로 결합된거랑 뭐가 다른가..싶은 생각.
- 오히려 props drilling 은 데이터를 최상위에서 관리하고, 각 자식들은 데이터를 내려받아 UI만 그리면 되는데, relay 구조에서는 각 자식들이 ui 에서 필요한 데이터들을 fetch 해야하니, 자식<>부모 간의 연결고리는 끊어지지 않는데 서로 뭘하는지 모르고 데이터 & UI 에 대한 책임은 나눠가져서 혼란스럽다고 생각이 듦.
- 오히려 복잡도만 높아져서 DX 가 더 악화되는 기분;
- 이럴바에 그냥 relay 안쓰는게 더 낫지 않을까?
- best practice 를 찾지 못해서 그러는걸까..