본문으로 건너뛰기

23.07.19(수)

오늘 한 일

  1. 10시 ~ 11시 : DND 조사
  2. 12시 ~ 15시 : Gloddy 개발
    1. api 세팅 및 PR 올리기
    2. React Native 세팅 & repository 개설
  3. Frontend 공부
    1. Pnp

고민한 점

1. privateApi와 publicApi 구분이 필요 없는가?

  1. privateApi는 token을 담아야 하는 api (로그인 이후 api), publicApi는 token을 담지 않아도 되는 api (로그인 이전 api)에 쓰이는 용도로 구분을 하였다. 이 둘을 과연 구분해야 하는가에 대해 고민이 들었다.
  2. 전에 프로젝트를 진행할 때 privateApi와 publicApi를 구분하지 않고, 모든 api에 token을 담아서 요청을 보내는 방식으로 진행하였다. 이 방식은 편리하긴 하지만, 로그인 이전에는 token이 없기 때문에 token이 없는 상태에서 요청을 보내면 401 에러가 발생한다. 이 에러를 처리하기 위해 모든 api에 대해 try-catch를 해주어야 하는데, 이는 코드의 가독성을 떨어뜨리는 요인이 된다.
  3. 그리고, 전에 제안했던 방안 중 하나가 로그인 없이도 서비스를 둘러볼 수 있는 둘러보기 기능이었다. 추후에 확장성을 고려한다면 이 둘의 api를 구분하느 것이 좋다고 생각하였다.

2. Server api와 client api의 구분

  1. React Server Component에서 api를 호출할 때와, React Client Component에서 api를 호출할 때, 토큰을 어디서 가져오느냐에 대해 고민을 해보았다.
  2. 현재는 토큰이 access, refresh 토큰 구분이 없고 추후 둘을 구분하는 작업을 백엔드에서 할 예정이다. 그래서, 현재는 토큰을 따로 저장하지 않고, api를 호출할 때마다 토큰을 가져오는 방식으로 진행하였다.
  3. 그리고, 추후에 토큰 저장 형태에 따라서 프론트 팀과 논의 후 server api와 client api를 구분하면 좋을 것 같다.

3. Flutter vs React Native vs PWA

세 개에 대해 각각 분석해보았다. Flutter가 확실히 웹사이트만 봐도 예쁘다는 것이 느껴진다. 또한, dart 언어의 우수함, flutter의 위젯 제공. 메리트가 크다. 그런데, 나는 Javascript만 1년을 써왔다. dart라는 새로운 언어, flutter라는 새로운 생태계를 익히는 러닝 커브가 존재할 것이다.

dart는 찾아보니 javascript와 비슷하다고 한다.

그럼에도, React의 라이브러리를 그대로 사용할 수 있고, 지금까지 React개발해온 프론트엔드 개발자로써, React Native를 우선 사용하는 것이 더 나은 선택이라고 생각한다. 또한, Flutter의 커스텀 하기 어렵다는 단점을 React Native가 보완해줄 수 있을 것이다. 그리고 이미 React로 프로젝트로 개발을 하고 웹뷰 위주로 구현을 할 것이기에 RN이 더 적합하다고 생각한다.