Skip to content

TIL 2월 14일

GyuHyeon Park edited this page Feb 22, 2023 · 10 revisions

김수찬 🤟

Facts

Feeling

  • 급합니다. 급합니다... 급합니다.....
  • 데모버젼... 갓인거 같습니다...

Finding

  • Server.js에서 client와 상호작용하는 js 는 Rooms.js로 방 생성, media 전송 상태, media 음량 조절, 상대방의 정보를 가져온다.
  • '@sitespeed.io/throttle' 및 'protoo-server' 를 modules로 사용하기 때문에, 이를 빼내고, 당초 팀의 목표대로 이 부분만을 따로 구현해보려고 하였지만, 시간상 부족할 것 같아 이를 그대로 사용해야할 것 같다....
    • protoo-server는 webrtc 서버 제공을 위해 만들어진 서트파티 소켓 모듈이다
    • 시간상 ~ 이렇게 생각한 이유는, 이 모듈을 parenets로 사용하고 있기에 일일이 욕심부리다간 아예 구현을 못할것같아서...
  • 이 외에 createBroadcaster... func들이 있어 만들었던 것들과 전체적인 틀은 모두 유사한다.
  • protoo-server라는 module로 접근을 하기에 이에 관한 handler를 살펴 봤더니, producer 및 consumer 과의 연결에 대한 내용들로 이루어져있었으며, 이 역시 전체적인 틀 은 비슷했다.
  • 세부적으로 들어가려면 protoo-server 및 protoo-client를 분석을 해야해서 어제 여기까지 하였다.

Future (Optional)

  • 오늘 프론트분들이랑 디코 가능한지 물어보기


김현우 😀

Facts

  • ServerList 구성 완료
  • dnd 라이브러리 기본적인 거 적용까지 해볼 수 있었음
  • 모달 세부 내용 구성 진행
  • 모달 조정

Feeling

  • 간단한 문제 였는데 serverlist도 그렇고 ui 마무리한다고 하면서 마저 못해서 시간이 오래 걸렸는거 같음. 프론트 쪽으로 실력부족이 확실히 느껴지는 것 같음.

Finding

Future (Optional)

  • webrtc 관련 얘기 수찬님이랑 하기
  • TIL 작성 최근에 좀 빠뜨리는데 적어두고 나서라도 최대한 채워넣기


박규현 🤑

Facts

  • 코드 리팩토링 시간을 가짐(메서드 파라미터 수정), 유레카 설정하여 gateway에 포함할 수 있도록 세팅

Feeling

  • somthing..

Finding

Future (Optional)



백종인 🐭

Facts

  • eureka server에 node serivce 등록

image

image

  • gateway 통하여 접근 테스트 성공

  • gateway 에서 필터 적용하여 jwt 인증 필요하도록 구성하기 성공!

  • 토큰 없을때

image

  • 토큰 있을때

image

Feeling

  • spring cloud side car를 사용해야하는 줄 알았는데... 구글링 하다가 파이썬이나 플라스크 프로젝트를 eureka server에 등록해서 사용하는 글을 봤다
  • 찾아보니 node 도 eureka server에 등록할 수 있도록 설정해주는 라이브러리가 존재했고(eureka-js-client), 규현님한테 물어가며 설정을 완료했다
    • 알고보니 굉장히 간단했다.. side car는 정보도 없고 비교적 복잡해서 골머리를 앓고 있었는데 다행이다.
    • 근데 그도 그럴만한게, msa는 다양한 언어 프로젝트를 손쉽게 서비스에 등록하고 사용하는게 메리트인데.. 그 과정이 복잡한게 오히려 이상했다.
  • jwt 인증 부분도 잘 되는거 같아 다행이다.

Finding

Future (Optional)

  • 현우님과 스터디 하면서 프론트 백 또 맞춰봐야겠다.
  • 가능하면 커뮤니티 서비스도 ec2에서 service 등록하고 배포해보아서 모든 과정 테스트 할 수 있도록 구성하면 좋을 거 같다.


허다은 🐣

Facts

  • 22:00 ~ 00:30 온라인 코어 스터디
  • 절대 경로 설정하고 상대 경로를 절대 경로로 코드 리팩토링하기
  • typescript의 Pick and Omit을 사용하여 코드 리팩토링하기

Feeling

  • 벌써 다음주면 끝! 이번주 다음주는 죽었다 생각하고 갈아 넣어야겠다.

Finding

  • 절대 경로 설정하기: craco(Create React App Configuration Override)

프로젝트를 cra로 생성했을 때, craco를 사용하면 eject를 하지 않고도 root 폴더에 craco.config.js 파일을 추가하여 eslint, babel 등 설정을 쉽게 할 수 있다.

처음에 여기에서 보고 따라 세팅했는데 절대 경로가 적용이 되지 않았다. 알고보니 안된 이유는 타입스크립트를 사용하는 경우에는 다르게 세팅을 해줘야하기 때문이다.

그래서 이 사이트를 참고하여 절대 경로를 재설정하였다.


  1. craco 설치
yarn add @craco/craco
yarn add craco-alias -D

  1. craco.config.js 세팅
const CracoAlias = require("craco-alias");

module.exports = {
  plugins: [
    {
      plugin: CracoAlias,
      options: {
        source: "tsconfig",
        tsConfigPath: "tsconfig.paths.json",
      },
    },
  ],
};

  1. tsconfig.json 세팅
{ 
  ...,
  "extends": "./tsconfig.paths.json"
}

  1. tsconfig.paths.json 세팅
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@api/*": ["src/api/*"],
      "@components/*": ["src/components/*"],
      "@configs/*": ["src/configs/*"],
      "@fonts/*": ["src/fonts/*"],
      "@hooks/*": ["src/hooks/*"],
      "@pages/*": ["src/pages/*"],
      "@store/*": ["src/store/*"],
      "@styles/*": ["src/styles/*"],
      "@utils/*": ["src/utils/*"]
    }
  }
}

결과

이제 길게 상대경로를 작성하지 않고, 절대 경로로 파일을 불러올 수 있다!

image



  • typescript - Pick and Omit
  1. Pick

여러 개의 타입 중에서 일부 타입만 골라 사용하고 싶은 경우에 사용한다. 즉, 몇 개의 속성을 선택하여 타입을 정의할 수 있다.

(적용한 코드) - color, backgroundColor, fontWeight 타입만 가져온다.

interface SettingButtonProps {
  text: string;
  onClick: MouseEventHandler<HTMLButtonElement>;
  fontWeight?: "normal" | "bold";
  color?: ColorType;
  backgroundColor?: BackgroundColorType;
  disabled?: boolean;
  status: ServerSettingType;
}

...

export const SettingButtonContainer = styled.button<
  Pick<SettingButtonProps, "color" | "backgroundColor" | "fontWeight">
>`
...

  1. Omit

특정 속성만 제거한 타입을 정의한다. 즉, Pick과 반대이다.

(적용한 코드) - text, onClick을 제외한 모든 타입들을 가져온다.

interface DefaultButtonProps {
  text: string;
  onClick: MouseEventHandler<HTMLButtonElement>;
  width?: number | null;
  height?: number | null;
  fontSize?: FontSizeType;
  fontWeight?: "normal" | "bold";
  color?: ColorType;
  backgroundColor?: BackgroundColorType;
  hoverBackgroundColor?: BackgroundColorType;
  disabled?: boolean;
  borderColor?: BorderColorType;
  mb?: number;
  ph?: number;
  pv?: number;
}

...

const DefaultButtonContainer = styled.button<
  Omit<DefaultButtonProps, "text" | "onClick">
>`
...

Future

  • API 합칠 준비하기
  • 메인화면에 검색하기 모달 안되는거 고치기
  • 채팅 구현 준비하기
  • 스토리북 절대 경로 설정하기
  • 서버 글자 색깔 black → 바꾸기
  • 채팅 이미지 업로드 모달 구현하기

Clone this wiki locally