목록프로젝트/원티드 프리온보딩 (41)
치춘짱베리굿나이스
코드 예시 Netlify로 배포하기 Netlify: Develop & deploy the best web experiences in record time Netlify: Develop & deploy the best web experiences in record time A powerful serverless platform with an intuitive git-based workflow. Automated deployments, shareable previews, and much more. Get started for free! www.netlify.com 특징 & 장점 깃허브 계정 연동해서 자기 레포를 자동화로 쉽게 배포를 할 수 있다 포트폴리오용으로 간단하게 배포하기 정말 최적임 warning 도..
그룹과제 #2 종료 + 그룹과제 #3 시작 공식적인 내생각 이래저래 두 번째 그룹과제도 끝이 났다 제출 전까지 이슈대응 하고 쉬느라 (??) 공부는 따로 많이 안 했다 페이지 구성요소 자체는 간단한데 상호작용이 다양해서 생각치 못한 예외상황이 많이 나왔던 것 같다 프론트엔드 특성상 상호작용도 구현에 매우 중요한 요소인데 꼭 C 과제 할 때 악착같이 예외 찾아서 처리하는 거랑 비슷한 느낌… 그리고… 코드리뷰를 구경하는데 다들 생각보다 다양한 방법으로 Fuzzy Matching이랑 데이터 요청을 구현하셔서 꽤 재미있었다 리액트 쿼리랑 리덕스에도 익숙해질 수 있는 기회여서 좋았던 과제 내일부터 새로운 과제 시작인데 제한시간이 72시간이라….. 상호작용은 이전 과제보다 많지 않고 대신 그래픽적인 요소 + 수치 ..
코드리뷰 + 코드예시 react-query useInfiniteQuery: 무한스크롤 구현할 때 좋음 useQuery 등의 식별자에 함수 넣지 않기 useQuery([foo, bar], ...); 웹팩으로 빌드되는 과정에서 함수명이 그대로 남아있는 게 아니라 a, b 등의 간결하고 짧은 함수명으로 바뀌어버린다 예상치도 못한 이상한 함수가 저 자리에 들어가버릴 지도 모른다… useQuery에서는 [’식별자', 변수1, 변수2…] 가 가장 정석적인 사용법이다 redux useAppSelector 주의사항 export const getTheme = (state: RootState) => state.theme; ... const theme = useAppSelector(state => state.theme); ..
그룹과제 #2 공식적인 내생각 모든 작업물을 머지하고 붙이기까지 완료했다 이제 리드미 이쁘게 작성하고 폴더구조 약간 수정하고 조금씩 다듬는 과정만 남았다 그리고 강의 추가정리까지…. 이번주는 그래도 꽤 널널한 편이었던 것 같아서… 대신 공부 외적으로 이런저런 일이 많았어서 정신없긴 마찬가지였다 다음주가 두려워진다………. 생각해보니 5월도 끝이네 슬슬 ㅎ.ㅎ;; 취업하고싶다 작업 내용 깃허브 Readme 중앙정렬 적용하기 // 내용 p 태그를 이용하면 태그 내의 문자열을 중앙정렬 할 수 있다 그냥.. 마크다운 문법 쓰면서 html 문법이 먹힌다는 걸 망각해서 기록차 적어봄 검색어 추천이 있는 검색 창 구현 p 태그 내에 h1 등 헤더 태그에는 중앙정렬이 적용되지 않으므로 h1 태그에 어트리뷰트 한번 더 지..
그룹과제 #2 공식적인 내생각 오늘 서로의 작업물을 다 Merge하고 합치는 작업을 진행했다 생각보다 뜬금없는 에러 (깜짝!) 가 많이 나와서 당황스러웠지만 팀원들끼리 머리 맞대고 진행하니까 나름 금방 잡혔다 필수 기능은 다 구현 및 머지해 놨으니 추가적인 기능 구현만 좀 더 생각하면 될 것 같다 겸사겸사 안 쓰는 파일 및 코드 삭제랑 린터 오류 잡기도 완료했다 다음주부턴 훨씬 바빠질 것 같아서 무섭다… 사실 4인 1팀 체제가 9인 1팀보다 조금 더 편안했던 것 같다 Github 실수로 다른 브랜치에 머지했을 때 깃허브에서 revert를 누르자 그러면 revert 브랜치가 생성되면서 (이전에 만들었던 변경사항을 무로 되돌린다) 이 브랜치를 풀리퀘스트를 날릴 수 있게 된다 만약 dev에 머지했어야 하는데 ..
그룹과제 #2 공식적인 내생각 밤에 잠이 쏟아져서 작성하다 말고 그냥 자버렸다... 리액트 쿼리를 사용하면서 같은 단어를 검색하면 캐싱이 되도록 분명 설정을 해놨었는데 이상하게 이전에 검색했던 단어를 또 입력했음에도 불구하고 데이터를 다시 불러오는 현상이 있었다 refetch() 이 함수때문이었다 ㅡㅡ 쓰지말자 작업 내용 리액트 쿼리 훅으로 만들기 export const useFilteredQuery = () => { const searchText = useAppSelector(getSearchText); const { data, refetch } = useQuery( ["#diseaseData", searchText], () => getDiseaseDataFiltered(searchText), { re..
그룹과제 #2 공식적인 내생각 과제 요구사항 중 로컬 캐싱은 리액트 쿼리, API 호출 횟수 줄이기는 디바운싱을 사용하면 될 듯 하다 API 응답 속도는 정말 너무나도 느린데, 제공받은 XML을 JSON으로 변환한 뒤 사용하니 1900개 가량의 데이터에서 filter 작업까지 해도 아주 짧은 시간 안에 응답이 돌아와서 아무래도 검색어 출력 및 Fuzzy matching을 위해서라면 로컬 파일을 사용하는 게 나아보인다 어째 과제를 하면서 API와의 싸움 비중이 더 커 보인다…. 솔직히 Fuzzy matching이 일종의 검색어 유추 시스템인데 API 응답 속도도 느린 상황에서 사용자의 검색어를 어떻게 바로바로 예측하고 퍼지매칭이 가능한지 잘 모르겠다 로컬 파일을 사용하지 않는 퍼지매칭 구현 방법이 궁금하다..
그룹과제 #2 공식적인 내생각 react-query에 익숙해지려고 여러 인자값 넣으면서 테스트 중인데... 과제용 API가 지나치게 느려서 내가 맞게 사용하고 있는지 체크하는 데에 너무 오래걸린다 사용법 자체는 커스텀 훅처럼 사용하면 돼서 간단한듯한데 이런저런 설정값이 까다로운 것 같다 작업 내용 react-query 찍먹 const { status, data, error } = useQuery( "#diseaseData", () => getDiseaseData(searchText), // fetch 함수, 반환값은 Promise { retry: 3, onSuccess: (response: IDiseaseData) => { console.log(response); return response; }, on..