본문 바로가기

분류 전체보기65

coustom hook보다 일반 function이 나을 수도 있다. 기술과제를 구현하던 중 열심히 만든 코드가 문득 눈에 들어왔다. api를 호출해 결과 값을 전역 상태에 넣는 커스텀 훅이었다. 생각이 드는 대로 코딩하다 보니, 그리고 동작하는 데 주안을 두다 보니 처음엔 알아차리지 못했다. 아래 사진이 그 코드다. // useGetEurInfo.tsx import { useCallback, useEffect } from "react"; import { useRecoilState } from "recoil"; import { EurInfoAtom } from "../store/eurInfo"; export const useGetEurInfo = () => { const [eurInfo, setEurInfo] = useRecoilState(EurInfoAtom); cons.. 2023. 1. 19.
SPA & MPA SPA는 Single Page Application, MPA는 Multi Page Application의 약자다. 있는 그대로 페이지가 하나냐, 여러 페이지를 갖고 있느냐가 두 차이를 가른다. 더불어 장단점도 서로 상쇄한다. MPA MPA는 말 그대로 여러 페이지를 가진 어플리캐이션이며, 웹이 처음 나왔을 때부터 존재한 방식이다. 사용자가 페이지를 요청할 때마다 서버는 리소스(HTML, CSS, Javascript)등 을 반환한다. 페이지를 이동하든, 새로고침하든 마찬가지로 리소스를 계속 반환한다. 장점 - SEO(검색엔진최적화)에 유리하다 페이지 단위로 검색하는 검색엔진 크롤러들에게도 적합하다. 페이지 하나당 완성된 HTML 하나를 리소스로 받기 때문이다. 단점 - 페이지 이동 시 깜빡임 페이지마다 새.. 2023. 1. 4.
모든 걸 처음에 다 정할 수 없다 계획은 계획일 뿐이다. 일은 스스로 분열하며 자기 몸짓을 키운다. 개발할수록 일정관리를 잘 해야한다는 점을 더욱 느낀다. 일정이 없다면 언제 끝날지도 모르고 개발하기 쉽상이다. 공통 컴포넌트 input, button 등 간단히 사용할 부분을 시작하면서 공통 컴포넌트로 빼고 시작했다. 언제어디서든 간단히 불러서 쓰기에 아주 간편할테니까. 예를 들어 button을 만들 땐 기본 여백을 두고 background, borderColor, color, onClick 정도를 인자로 받으면 충분하다고 여겼다. 그런데 왠걸 아마 수정 PR만 수십번했다. 수정 사항과 추가 사항이 매우 많았다. 페이지마다 쓰임새가 달라지기 때문이다. 결국 아래 코드 처럼 인자로 받을 수 있는 갯수가 많아졌다. 앞으로 더 많아질지도... .. 2023. 1. 3.
Z9 리팩토링 첫 리팩토링이다. 이름은 거창하나 실제론 다듬었다는 게 조금 더 맞는 표현일 듯하다. 논리 구조를 다시 짠 건 사실상 없기 때문이다. 그렇다고 코드를 만지지 않은 것은 아니니 그 과정을 남긴다. 1. 타입 정의 제일 먼저 타입스크립트를 만졌다. 그동안 시간내 완성을 목표로 움직이다보니 타입을 제대로 작성하지 못한 부분이 많았다. 안쓰거나 any로 두거나. 이 부분을 최대한 타입 정의했다. 1) State 타입 2) any 없애기 2. 삼항연산자 단순 if 문은 보기 편하도록 삼항 연산자로 변경했다. 3. 주석 정리 사용하려고 미리 써둔 함수, 테스트하며 적어 둔 콘솔 및 속성 등 모두 삭제했다. 4. 모양 정리 1) 짧은 것에서 긴 순으로 2) 같은 기능끼리 모으기 3) 사용하지 않는 변수 삭제 5. 컴.. 2022. 12. 19.
당황을 친구 삼고 일주일간 많은 일이 있었다. 프로젝트를 갈아엎을 뻔했으니까. 제일 큰 이유는 출근 기록 서비스는 우리가 생각했던 것보다 훨씬 더 복잡했기 때문이다. 그냥 체크만 하는 거 아니였어? 우리는 간과했다. 52시간제 여부, 출근 방식, 휴가 방식, 사무직과 생산직, 영업직의 근무 차이 등. 사용자에게 geolocation 허가 받아 현재 위치를 파악하고 출근 찍게하는 것은 매우 작고작고작은 부분이었다. 그리고 요청사항은 얼마나 많은 것인지. 기존 어플을 확인하고 모두가 당황했다. 우리는 결단을 내려야 했다. 계속할 것인가, 다른 아이디어를 찾을 것인가. 열띤 토의 끝에, 우리가 할 수 있는 기능을 먼저 고르고, 도전할 부분을 선택했다. 먼저 사무직을 중심으로 기본 출퇴근 기록 기능을 기본으로 잡고, 달력(주간,.. 2022. 12. 12.