항해99 TIL/(항해99)실전프로젝트

(항해65일차) 220509 리액트 실전프로젝트 18일차

리꾸엘메 2022. 5. 10. 05:00

TIL을 쓰는 주기가 점점 늘어지고 있다.

매일매일 써야겠다는 처음의 마음가짐은 실전프로젝트를 진행하면서 점점 흐려지고 있다. 

그동안 미뤄졌던 뷰작업을 이제는 시작해야 하지만, 계속 수정사항이 생기면서 미뤄지고 있다.

메인페이지의 리스트에서 튜터를 선택할 경우 detail페이지에서 보여주고 다시 수정할 수 있도록 만드는 작업을 진행했다.

여기에서 튜터정보를 리덕스의 어떤 모듈에서 서버로부터 받아올지 고민을 했다.

두가지 선택이 있었는데 첫번째로는 튜터 모듈에서 받아오는 방법이다. 일반적으로 여기에서 받는 것이 자연스럽다고 생각했지만, 나중에 마이페이지에서도 똑같은 데이터를 받아오는데 따로 api를 만드는 것이 불필요하다는 생각을 했다.

그래서 생각한 두번째 방법은 유저안에 detail이라는 상태를 만들어 주는 방법이었다. 

 

다음으로 진행한 작업은 토큰의 저장위치를 변경하는 일이었다. 토큰을 기존에는 로컬스토리지에 저장하고 있었다.

하지만 로컬스토리지에 저장할 경우 유효기간이 없어 임의로 삭제를 하지 않는 이상 계속 남아있으며,

로컬스토리지에 저장된 데이터를 서버에서는 알 수 있는 방법이 없다는 단점이 있었다.

또한 httpOnly를 설정해 쿠키를 더 안전하게 보호할 수 있기 때문에 토큰을 쿠키에 저장하도록 변경했다. 

아직 httpOnly, secure나 http/https에 대한 개념이 충분하지 않아서 더 공부가 필요할 것 같다. 

 

 


리덕스를 쓰는 이유: 관리해야 할 state가 많고 업데이트의 종류가 많아지는 경우에 적합 

https://velopert.com/3533

 

로컬/세션스토리지 : https://ko.javascript.info/localstorage

쿠키 : https://ko.javascript.info/cookie#ref-200