본문 바로가기
728x90
반응형

분류 전체보기362

23.06.25 ~ 23.07.02 업무 공유 1. 채팅방 내 보호자 접근 시, 소셜 로그인 및 서비스 회원가입 현재 앱 내 보호자와 미용사가 메시지를 주고받을 수 있는, 채팅 기능이 존재한다. 이 중 보호자는 미용사가 전송한 카카오 메시지를 통해 채팅방에 접근할 수 있는데, 이때 해당 페이지에 접근 시 카카오 소셜 로그인 → 정보 저장(회원가입) → 채팅방 열람 의 flow가 추가되었다. 채팅 기능은 웹을 통해 기존 앱에서도, 카카오 템플릿에서도 접근이 가능하도록 되어 있는데... 기존 앱에서는 앱 내 local storage에 토큰을 저장한 후, api 요청 시 header에 토큰을 실어 보내고 있었다. 물론 웹에서도 local storage에 토큰을 저장할 수는 있었지만, 이 경우 server side에서 해당 토큰을 조회할 방법이 .. 2023. 8. 16.
그루머챗 배포 회고 2023-03-09 23:47 드디어. 드디어 란 표현이 가장 적합할 것 같다. 오늘 드디어, 앱 내 채팅 기능을 배포했다. 2월 초 업데이트 이후, 약 한 달하고도 일주일만의 기능 업데이트. 배포를 완료한 후 집에 와서 생각해 보면... 고작 한 달 만에 (유사) 카카오톡 메신저를 개발한 게 신기하기도 하다. 심지어 단순 앱 내 채팅이 아닌... 카카오 알림톡, 앱 내 예약 및 고객 데이터, 변수 입력 등을 모두 고려해야 했으니. 심지어! 프론트 개발자 2명, 백엔드 개발자 1명에서 이 모든 걸 구현해야 했으니! 그런데도, 그런데도. 한 달간 왜 이리 초조했을까. 크게 두 가지 요인이 있었던 것 같다. 1. 더 빠르고 효율적일 수 있는데, 그러지 못한 조급함 맨 처음 채팅 관련 기획을 했을 때, 가장 .. 2023. 8. 16.
React Query - keepPreviousData 다음과 같은 상황을 겪었다. 필요한 요구 사항은 반려동물 상세 페이지에서, 상단 카드 버튼을 눌러(나, 음, 뭉치), 해당 반려동물의 상세 데이터를 불러오는 것! 이 때 불러올 반려동물의 id를 state로 관리하고, 해당 state를 useQuery의 key값으로 전달해, 상단 카드 버튼을 눌러, id가 변경될 때마다, 해당 useQuery가 fetch 되도록 하였다. 여기서 문제점은... 맨 처음 해당 페이지에 들어왔을 때 (해당 반려동물 상세 데이터 요청이 success되기 전에) 발생하는 깜빡임을 해결하기 위해 placeholderData를 넣어줬는데, 상단 카드 버튼을 눌러 해당 query가 fetching 됨에 따라, 해당 query의 data가 최초에 넣어준 placeholderData가 되.. 2023. 8. 15.
useReducer useReducer 왜? 사실 현재 운영 중인 서비스에서 useReducer를 굳이 사용할 필요를 느끼지 못했다. 앵간한 상태는 useState와 Redux를 통해 관리했고... 결정적으로, reducer의 강점인 이전 값에 의존적인 상태의 업데이트가 필요한 경우가 딱히 없었기 때문! 하지만 최근 리팩토링 및 안정성에도 신경을 쓰면서, useReducer를 적재적소에 사용해 setter를 직접적으로 노출시키지 않음 + 익명 함수 호출X 등의 이점을 챙겨가고자 한다! reducer 너무 유용하게 사용되는 reduce 메서드! Array.prototype.reduce() 배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환한다. useState 앱에서 빈번히 이뤄지는.. 2023. 8. 15.
useTransition hooks when? 일반적인 경우 우리는 상태가 업데이트 되었을 때, 이것이 화면에 즉시 반영되길 원한다. 하지만 업데이트가 화면에 반영되는 것을 연기해야할 때도 존재할 수 있다. ex) 한 페이지에서 다른 페이지로 이동 시, 다음 화면에 표시될 데이터가 load되지 않았을 경우 → 바로 다음 페이지로 넘어가기보다, 이전 화면에 오래 머무는 것이 더 나은 사용자 경험 (이러한 패턴 구현이 이전 React에서는 쉽지 않았다고 한다) React 18의 Concurrent mode → 이를 위한 새로운 tools 제공! useTransition hooks 1. 실제로 Concurrent 모드를 사용하고 있는지 확인 - 해당 Concurrent 모드 동작을 위해 ReactDOM.createRoot()보다, ReactDO.. 2023. 8. 15.
고해! 성사! 고해 === Go 해라! 성사 === 성사될꺼다! 하지만 어제는 그루머 선생님들에게 죄송한 저녁이었다. 이전에 면접을 봤던 분들 중 서버가 나가는 것만큼 백엔드 개발자에게 큰 이슈는 없다 라고 말씀하신 분이 있었는데 정말로 그 일이 일어나버리고 만 것. 굉장히 겁 많고 걱정 많고 불안 많은 성격이라 일을 하면서도 내가 만든 것들을 곧바로 사람들이 사용한다는 걸 생각하면 지금도 머리가 띠잉 할 때가 있는데 어제처럼 내 잘못으로 인해 생겼을 불편함을 생각하면 후회와 두려움이 스멀스멀 올라온달까나. 하지만 결국 두려움이란 건 모르는 것 에서 비롯되는 것이고 모르는 건 공부를 하면 되는 법이다. 2022. 1. 18.
자취나 스타트업이나 자취를 시작한 지 2주 정도가 지나간다. 마음만 먹으면 하루 종일이라도 혼자 있을 수 있는 시간들을, 먹고 싶은 음식을 먹고 싶을 때 먹을 수 있는 순간들을, 원하는 시간에 집에 들어와도 아무 눈치 볼 것 없는 생활을 난생처음 겪고 있는 중. 하지만 이로 인해 잃는 점들도 셀 수 없다. 모든 행동들은 지출로 이어지고, 건강에 좋은 음식은 꿈도 꾸기 힘들어지고, 주말 동안 한 마디 대화도 못한 적도 있으니까. 그럼에도 불구하고 매일매일 이 선택에 만족하는 이유는 자유롭기 때문일 테다. 나의 생활을 결정하는 것이 오롯이 나 자신이라는 점이 그 어떤 불편함 보다도 큰 가치를 지니기 때문일 테다. 지금 이곳에서, 이 일을 택한 이유도 마찬가지 아닐까. 불안함, 막막함, 자기 의심, 무력감, 불안정함이 매 순간 .. 2022. 1. 9.
남기지 않으면 사라진다 오랜만에 예전에 썼던 글들을 봤다. 그중 작년 1월 달에 쓴 글이 기억에 남는다. 25살 동안 이루고 싶은 몇 가지를 적은 내용이었는데 그 당시 나는... 이렇게 삶이 흘러갈 줄은 몰랐던 모양. 그리고 든 생각, 남기지 않으면 사라진다. 무언가를 봤던, 했던, 느꼈던, 겪었든 간에 남기지 않는다면 결국 하지 않은 것과 다름 없어진다. 비단 남에게 보여주기 위해서만도 아니다. 기억은 언젠가 흐려지고, 흩어지기 마련이니까. 그리고 삶은 이렇게 남긴 것들이 쌓이고 쌓이는 것일테다. 그리고 무언가를 남기는 가장 쉽고 좋은 방법은 글을 쓰는 거다! 2022. 1. 5.
매트 요가 매트가 아니라 패트와 매트다. (아직도 누가 매트인진 잘 모르겠지만) 어릴 때부터 참 좋아하던 만화인데 지금도 가끔 챙겨보면 생각지도 못하게 낄낄거리며 웃게 되는 장면들이 있다. 주된 줄거리는 매트인지 패트인지 둘 중 한 명이(혹은 두 명 다) 청소라던지 요리라던지 정원 청소라던지 시덥잖은 일을 하려 하는데 말도 안되는 요상한 일들이 터지고 두 명에서 그걸 해결하는 내용. 정말 되도 않은 일들이 주인공들에게 닥치는데 우리의 되도 않은 패트와 매트는 되도 않은 방법으로 이걸 해결하려 하고 어찌저찌 성공하면 금세 좋아라 한다. 삶을 살아가는 이상 생각지도 못한 순간과 항상 마주해야만 하고 그 과정에서 막막함과 걱정을 떠안을 때가 있는데 어찌저찌 얼기설기 해결해 둔 후 매트와 패트처럼 흥겨운 포즈 한 번.. 2021. 8. 11.
728x90
반응형