Skip to content

22.11.10.

leegwae edited this page Nov 10, 2022 · 1 revision

화살표 함수를 사용할까 함수 선언문을 사용할까

화살표 함수를 쓰자

  1. 화살표 함수를 사용하면 type으로 함수 시그니처를 정의할 수 있다.
  2. 그러나 함수 선언문을 사용하면 매개변수와 반환값의 타입을 각각 따로 지정해주어야한다.

[[Javascript 미세팁] function은 아예 쓰지 마세요](https://www.youtube.com/watch?v=LPEwb5plEoU&ab_channel=FE%EC%9E%AC%EB%82%A8)

함수 선언문을 사용하자

  1. 화살표 함수를 사용하면 export default로 지정해줄 수 있다. 따로 해주어야한다.
  2. 그러나 함수 선언문을 사용하면 export default로 지정해줄 수 있다.

결론

함수 선언은 화살표 함수를 사용한다.

export문은 어디에 명시할 것인가?

선언과 함께 쓰자

  1. export default만 맨 밑에 쓴다.
  2. export는 각 선언마다 써준다.

결론

1. export default만 맨 밑에 쓴다.
2. export는 각 선언마다 써준다.

왜냐하면 4명이 이때까지 그렇게 했다.

필요한 경우에만 async, await

https://www.youtube.com/watch?v=Z1zHOh45NDU

const fetchUser = () => {
	return fetch();
};

enum 사용하나?

https://protective-way-b42.notion.site/TypeScript-enum-bd52d87a303244ddb0aaeaf71f5c996d

https://engineering.linecorp.com/ko/blog/typescript-enum-tree-shaking/

https://velog.io/@vraimentres/typescript-enum

ㄴㄴ as const로 지정한다.

이미지 업로드 방식

11.09 멘토의 밋업에서 채팅 메시지에 들어가는 이미지와 사용자 프로필에 들어가는 이미지를 따로 저장하는 방식을 말씀해주셨다.

  1. 채팅 메시지에 들어가는 이미지는 정적 파일로 저장
  2. 사용자 프로필 이미지는 자주 바뀌므로 별도의 스토리지(클라우드 서비스)에 저장하고 그 url을 우리 DB에 저장.

요약

이미지를 DB에 저장할 수 있나? ⇒ O

이미지를 DB에 저장하는게 일반적인가? ⇒ X

백엔드 서버에 이미지를 저장한다는게 무슨 의미? ⇒ 백엔드 서버에 이미지를 저장하는 디렉토리를 생성하고, 해당 디렉토리에 이미지 파일을 넣고, DB에는 그 이미지 파일의 경로를 저장한다.

이미지 전용 서버에 이미지를 저장한다는게 무슨 의미? ⇒ AWS S3와 같은 Object Storage에 이미지를 저장하고, 람다라는 것을 통해 생성된 이미지의 URL을 반환받아서 미리보기 등을 구현할 수 있고, 클라이언트에선 서버에 해당 URL을 전송하여 DB에 저장시키도록 한다.

Reference

[https://yagom.net/forums/topic/이미지-저장-내부db-질문-드립니다-2/](https://yagom.net/forums/topic/%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%A0%80%EC%9E%A5-%EB%82%B4%EB%B6%80db-%EC%A7%88%EB%AC%B8-%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4-2/)

https://okky.kr/articles/218429

https://okky.kr/articles/347920?note=1113080

https://stackoverflow.com/questions/24108624/whats-difference-between-static-and-non-static-resources

결론

이미지는 클라우드에 올리고 url을 DB에 저장한다.

NoSQL ERD 만들기

Chat이 객체로 저장된다면 수정과 삭제는 어떻게 할 수 있을까?

  1. 객체에 id 필드를 추가해준다.
  2. 클라이언트는 ChatList를 통째로 받으므로, 수정이나 삭제를 요청할 때 ChatList의 unique id와 offset, Chat의 unique id를 보낸다.
  3. 서버는 ChatList의 unique id와 offset으로 Chat을 찾고, 클라이언트가 보낸 Chat의 unique id를 비교한다.
  4. 유효하다면 수정과 삭제 수행

ChatList에 왜 firstChatTime과 lastChatTime이 들어가는가?

  1. 사용자가 마지막으로 읽은 메시지 이후로 읽지 않은 것을 표시해줘야한다.
  2. 그렇다면 사용자가 마지막으로 읽은 시간을 저장하고 메시지들의 생성 시간을 비교하면 된다.
  3. 빠른 탐색을 위해 ChatList에서 첫번째 Chat과 마지막 Chat의 시간을 저장한다.
Clone this wiki locally