inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Lớp học chuyên sâu về Frontend

64. 커맨드 패턴

추천패턴

69

swyoo753

1 câu hỏi đã được viết

0

디자인 패턴을 공부중에 궁금한게 생겨서 질문 드립니다.

채팅 같은걸 구현할때 응답이 엄청 다양한 형태로 온다면 어느 패턴이 좋을까요?

javascript react 함수형-프로그래밍 객체지향 next.js

Câu trả lời 1

0

hoonyhan

좋은 질문입니다.

 

채팅은 구조상 최초에 테이블 구조를 잡아두더라도 시간이 지나면서 기능이 추가됨에 따라 데이터가 optional하게 추가되는 경향이 생깁니다. 가령 예를 들면 채팅 메시지로 처음 제품은 만들겠지만 채팅에 대해 이모지 응답, 읽은 사람 숫자 등의 메타 데이터, 첨부 파일, 링크 형태, 링크가 있을 때 미리보기를 제공해줄 수 있는 경우 등 온갖 경우의 수가 계속 생기게 됩니다.

 

그렇다면 생각해볼 점은 서버에 해당 데이터가 어떤 식으로 저장될까라는 점입니다. 그게 중요한 이유는 프론트에서는 결국 서버에 저장된 데이터의 형태를 따라서 후처리하는 방식으로 구현되기 때문입니다.

 

만약 새로운 기능이 스키마의 컬럼으로 추가되는 형태라면 프론트에서는 매번 해당 컬럼을 추가해주는 방식으로 타입은 맞춰줄 수 있지만 UI에 적합한 표시를 만들기에는 어색할 수 있을 겁니다. 저장된 데이터에 따라 조건부 렌더링이 매우 다양하게 발생하는 경우가 되는 셈이겠네요. 이와 같은 이유로 채팅과 같은 데이터를 프론트에서 표시할 때는 많은 조건부 렌더링을 대응할 수 있도록 구현하고, 이를 어댑터 패턴으로 구현해 맞춤형 디자인을 매칭해줄 수 있습니다.

 

다만 채팅은 단순히 어댑터를 이용해서 여러 상태에 맞춰 처리되도록 끼워넣기로만 구현하기에는 깔끔하지 않은 측면이 있습니다. 제 생각에는 조건부 렌더링에 대해 "어댑터 패턴 + compound 패턴"을 복합적으로 활용해 처리하는게 복잡한 경우의 수를 대응해줄 수 있을 것 같습니다.

0

swyoo753

헉... 친절한 답변 감사드립니다!!!

안티그래비티 확장프로그램

0

5

1

디스코드 소통창구는 없어졌나요 ??

0

7

1

cd 명령어가 안들어요

0

8

1

클로드 데스크앱과의 차이

0

10

1

nmp run build의 기능

0

5

1

plan mode 개발 계획안 확인 불가

0

13

2

20번강좌에 대한 질문입니다.

0

6

1

명시적 타입 선언(콜론 타입 선언)과 as 타입 단언 차이

0

10

1

max x5 플랜을 결제했습니다.

0

17

1

클로드 초기 설정

0

16

1

사용자 스코프 설정 파일 적용 문제

0

10

1

클로드코드 유료플랜 할인 방법이 있을까요?

0

30

0

싱글턴패턴

0

13

1

API Error : 400 에러의 원인과 해결방법이 궁금합니다!!

0

22

2

퍼미션 권한 설정 문의

0

26

2

불변성을 지키며 수정 삭제를 할때도 Map이 유리한가요?

0

55

1

30강 Map 자막이 이상합니다.

0

44

1

원시 데이터 할당 방식

0

70

2

배포 관련 내용 추가될 예정이 있을까요?

0

146

1

학습자료는 따로 공유가 안되는건가요?

0

199

2

이벤트 루프 실행 관련

0

144

2

Map 강의 누락된 것 같습니다.

0

154

2

Variable Object 질문

0

160

1

메모이제이션 뒷부분 짤린건가요?

0

210

2