Essay

문제점 header의 설정값 (global한 값)을 바꾼 뒤 다른 페이지로 이동하면 바꾼 값이 적용되지 않는 현상이 발생했다 원인 header의 설정값은 apollo useQuery를 이용해 불러오고 있었는데, refetch로 변경한 뒤 다시 불러올 때는 예전 캐시 값을 읽어와서 값이 변경되지 않았다. 배경 header에서 사용하고 있던 api 쿼리문은 variable을 전달하지 않으면 가장 마지막에 읽었던 값을, variable을 주면 해당 값을 반환하는 api였다. () => 마지막에 읽었던 값 (variable) => variable에 대응되는 값 이런 상황에서 사용자가 값을 변경하면 두 번째 방법으로 호출하고, 초기에 fetch할 때는 첫 번째 방법으로 호출하여 마지막에 읽었던 값이 반환되기를 기..
문제점 임시회원이 회원가입을 하는 요청을 전송할 때 기존 임시회원 id를 보내지 않는 문제가 발생했다 배경 회원가입 페이지의 useEffect에서 auth0 인증의 callback을 탐지해 회원 정보를 생성하는 요청을 보낸다. 그러나 인증정보 컴포넌트의 useEffect가 먼저 실행되어 임시회원의 인증정보를 지운다. 따라서 회원가입 요청을 보내는 시점에서는 임시회원의 id가 이미 지워져 있었다. 기존에는 이를 해결하기 위해 backup을 사용했으나, 백업 시점이 임시회원 id가 이미 지워진 후라 정상 작동하지 않았다. 해결법 그러나 인증정보 삭제 이전에 백업 코드를 넣기보다는, 임시회원 인증정보가 지워지는 시점을 회원가입 요청 성공 callback으로 변경하여 회원가입 요청을 보내는 시점에는 임시회원 인..
https://github.com/apollographql/apollo-client/issues/7436#issuecomment-821243699 Infinite loop when using a cache-and-network fetchPolicy · Issue #7436 · apollographql/apollo-client Intended outcome: I have a component that retrieves some data using useQuery and renders a chart. Until now I used these options: fetchPolicy: 'cache-and-network', nextFetchPolicy: 'cac... github.com `useQuery( QUER..
· Essay
프로그래밍을 하다 보면 설계 상으로는 모듈이나 컴포넌트를 분리하고 상속하는 것이 바람직한데, 이것을 사람이 이해할 수 있는 한가지 개념, 단어로 치환하는 것이 어려울 때가 있다. 나는 그럴 때 분리했을 때의 효용(주로 재사용성)을 고려한다. 재사용되지 않고, 앞으로도 재사용할 지 알 수 없다면 일단 가독성 쪽의 손을 들어준다. 또 그렇게 하는 편이 오버 엔지니어링을 방지하는 데 좋기도 하다. 필요하면 그 때 리팩토링하면 되니까. 그러나 분리하고 상속했을 때 재사용하여 유지보수성에서 이득을 얻을 수 있다면 분리한다. 고심해서 이름을 짓기는 하는데 누군가 처음 보면 이상하다고 생각할 길고 해괴한 이름들은 보통 이렇게 만들어진다. 이를테면 오늘은 전에 작업한 것과 비슷한 요구사항에 대응하기 위해서 기존 컴포넌..
· Essay
좋아하는 일을 하다보면 잘하게 된다. 흔히 퍼져있는 믿음이다. 그러나 이런 통설과는 다르게 즐기기만 하다 보면 자동으로 탁월한 실력을 갖게 되는 것은 아니다. 지식과 자신감 간의 관계를 설명하는 더닝 크루거 곡선의 축을 노력과 재미로 치환해도 크게 다르지 않다고 생각한다. 위 그래프에 따르면 무지의 꼭대기에서 큰 재미를 얻을 수 있는데, 목표가 재미인 사람은 저 구간에 집중해야 효율이 좋을 것이다. 노력대비 쉽게 큰 성취감을 맛볼 수 있는 구간이다. 우리가 쉽게 접근할 수 있는 자료(도서, 강의 등)도 대부분 이 구간을 대상으로 한다. 하지만 높은 성과를 이뤄내려면 결과물에 이르기까지 시간도 오래 걸리고 고통이 뒤따른다. 이 과정은 재미가 없을수도 있다. 어려운 내용을 이해하고 해결책을 찾느라 두통이 올..