추천패턴
71
1 asked
디자인 패턴을 공부중에 궁금한게 생겨서 질문 드립니다.
채팅 같은걸 구현할때 응답이 엄청 다양한 형태로 온다면 어느 패턴이 좋을까요?
Answer 1
0
좋은 질문입니다.
채팅은 구조상 최초에 테이블 구조를 잡아두더라도 시간이 지나면서 기능이 추가됨에 따라 데이터가 optional하게 추가되는 경향이 생깁니다. 가령 예를 들면 채팅 메시지로 처음 제품은 만들겠지만 채팅에 대해 이모지 응답, 읽은 사람 숫자 등의 메타 데이터, 첨부 파일, 링크 형태, 링크가 있을 때 미리보기를 제공해줄 수 있는 경우 등 온갖 경우의 수가 계속 생기게 됩니다.
그렇다면 생각해볼 점은 서버에 해당 데이터가 어떤 식으로 저장될까라는 점입니다. 그게 중요한 이유는 프론트에서는 결국 서버에 저장된 데이터의 형태를 따라서 후처리하는 방식으로 구현되기 때문입니다.
만약 새로운 기능이 스키마의 컬럼으로 추가되는 형태라면 프론트에서는 매번 해당 컬럼을 추가해주는 방식으로 타입은 맞춰줄 수 있지만 UI에 적합한 표시를 만들기에는 어색할 수 있을 겁니다. 저장된 데이터에 따라 조건부 렌더링이 매우 다양하게 발생하는 경우가 되는 셈이겠네요. 이와 같은 이유로 채팅과 같은 데이터를 프론트에서 표시할 때는 많은 조건부 렌더링을 대응할 수 있도록 구현하고, 이를 어댑터 패턴으로 구현해 맞춤형 디자인을 매칭해줄 수 있습니다.
다만 채팅은 단순히 어댑터를 이용해서 여러 상태에 맞춰 처리되도록 끼워넣기로만 구현하기에는 깔끔하지 않은 측면이 있습니다. 제 생각에는 조건부 렌더링에 대해 "어댑터 패턴 + compound 패턴"을 복합적으로 활용해 처리하는게 복잡한 경우의 수를 대응해줄 수 있을 것 같습니다.
/output-style 이 안뜹니다
0
3
2
프로젝트 초기화 문제
0
1
1
섹션8,9부터는 진짜 못따라가겠어요...ㅠㅠ
0
5
1
윈도우에서는동작줄이기가어디에있을까요??
0
1
0
파워쉘에서 이미지 복붙이 안됩니다.
0
8
1
160 강의 ppt-maker에 대해
0
9
1
이벤트 관리 앱 프로젝트 개발 순서
0
6
0
supabase next.js와 mcp
0
6
0
늘 컴퓨터를 켜두어야 하는 것에 대한 질문입니다.
0
9
1
스테이징 10000개
0
8
1
160. Claude Code로 PPT 만들기 관련 질문
0
10
1
task master 관련질문입니다.
0
12
1
노션 승인 관련
0
21
3
android crud중 c 영상이 12초만 있는 잘린 영상이에요.
0
17
2
터미널 시작폴더가 달라요
0
25
2
불변성을 지키며 수정 삭제를 할때도 Map이 유리한가요?
0
63
1
30강 Map 자막이 이상합니다.
0
46
1
원시 데이터 할당 방식
0
72
2
배포 관련 내용 추가될 예정이 있을까요?
0
149
1
학습자료는 따로 공유가 안되는건가요?
0
202
2
이벤트 루프 실행 관련
0
147
2
Map 강의 누락된 것 같습니다.
0
158
2
Variable Object 질문
0
162
1
메모이제이션 뒷부분 짤린건가요?
0
214
2

