profile
'과연 이게 최선일까?' 끊임없이 생각하기
태그 목록
전체보기 (282)DFS(8)완전탐색(4)this(4)Sort(4)splice(3)queue(3)재귀(3)BFS(3)stack(3)useEffect(3)useState(2)API(2)tailwind(2)toggle(2)ESLint(2)&&(2)useInterval(2)combination(2)useMemo(2)Que(2)발상의 전환(2)hash(2)CRUD(2)greedy(2)리팩토링(2)dynamic array(2)setInterval(2)setTimeout(2)reduce(2)getter(2)react-query(2)Binary Search(2)생명주기(1)시각화(1)Compound Components pattern(1)이중 포인터(1)google(1)일단그대로만들기(1)apply(1)call(1)mutaionObserver(1)git(1)503(1)test(1)canvas(1)withCount(1)Mocking(1)버그(1)corona(1)search(1)routing(1)kwargs(1)function(1)undefined(1)heroku(1)dic(1)mixin(1)Fiber(1)path parameter(1)scss(1)destructuring(1)cors(1)webvitals(1)component(1)next image(1)done(1)Pivot(1)min-width(1)promise(1)every(1)swr(1)H Index(1)LCP(1)WILDCARD(1)history API(1)순수함수(1)prisma(1)contains()(1)Content-Type(1)absolute(1)ORM(1)caching(1)relative(1)고딩때의 추억(1)GET(1)POST(1)makeStyles(1)프로그래머스(1)debugger(1)static path(1)alias(1)slug(1)OOP(1)merge(1)next js 공홈 짱!(1)restful api(1)DNS(1)bind(1)customState(1)stackoverflow(1)createStyles(1)IAM(1)선언형 방식(1)smoking test(1)happy path(1)heap(1)스켈레톤(1)개발자 vibe(1)commands(1)NOT(1)Request(1)약수의 갯수(1)srcset(1)boolean(1)mocks(1)custom render(1)Namespace(1)findIndex(1)fibonacci(1)memoization(1)함수형 컴포넌트(1)cypress(1)quick(1)개발자직업병(1)vmin(1)응집도(1)nth-of-type(1)Thinking in React(1)notifyOnChangeProps(1)jsconfig.json(1)variables(1)Helper(1)sortable(1)reconciliation(1)beforeunload(1)Module(1)무식하게(1)dijkstra(1)라우팅(1)MVC(1)Trie(1)뿌듯(1)beautifulsoup(1)CLS(1)navigate(1)해쉬(1)throttle(1)debounce(1)HistoryAPI(1)capturing(1)BLOGGING(1)Object.assign(1)"for 와 recursive의 조화(1)high order function(1)Prototype(1)await(1)sizes(1)cachememory(1)nth-child(1)skeleton(1)compose(1)loader(1)waitForElementToBeRemoved(1)try/except(1)rules of hooks(1)일단돌아가야..ㅋ(1)Statement(1)wait()(1)async(1)rstrip(1)다시 만들기(1)return(1)escape(1)class(1)for(1)State and Lifecycle(1)cmd(1)bubble(1)JavaScript(1)singly linked list(1)render_template(1)useParams(1)pagination(1)고차함수(1)Higher-order Function(1)JSX ELEMENT(1)Call By Reference(1)신뢰자산(1)progress(1)unshift(1)신속정확(1)span(1)div(1)nested for loop(1)auto-complete(1)d.ts(1)react testing library(1)error(1)wrap(1)If_Else(1)ec2(1)documentFragment(1)mini project(1)json(1)drag and drop(1)크루스칼(1)const(1)replace(1)맴버변수(1)식도염(1)사실성장(1)visible(1)format(1)Prime(1)diffing(1)componentWillUnmount()(1)다중 정렬(1)expression(1)CS(1)End to End Test(1)filter(1)props.children(1)z-index(1)debugging(1)Hash brown 맛있겠다(1)new Intl(1)ARP(1)delete(1)build error(1)mixitup(1)클린코드(1)base_url(1)부분집합(1)jquery(1)투자(1)Group(1)media query(1)RAM(1)State(1)useReducer(1)useRef(1)LILO(1)vite(1)sqlite(1)global(1)응급상황(1)DOM(1)query paramter(1)DB 설계(1)good_job(1)global style(1)PriorityQueue(1)styled(1)styled components(1)memory leakage(1)Design Pattern(1)칭찬(1)hook(1)useCallback(1)MSW(1)act(1)fixtures(1)Derived State(1)CustomHook(1)꼭꼭 숨어라 머리카락 보일라(1)이중포문(1)double bang(1)CSR(1)SSR(1)github-issues(1)콜트짱!(1)preventDefault(1)최대약수(1)localstorage(1)Pop(1)오류(1)inline(1)shield.io(1)transition(1)split()(1)max(1)f-string formatting(1)CustomEvent(1)object-relational-database(1)tryCatch(1)animation-fill-mode(1)setter(1)extends(1)regexp(1)Fetch(1)submit(1)dict(1)addEventListener(1)supabase(1)삽질(1)layer(1)doubly linked list(1)Delegation(1)LIFO(1)jest(1)MAX_PAGE(1)change event(1)HoC(1)enabled(1)useLocation(1)github(1)오히려좋아(1)컨벤션(1)dash(1)FID(1)인형뽑기(1)random(1)FLOOR(1)seo(1)lazy(1)validator(1)JSX(1)Flask(1)express(1)super excited(1)auto fit(1)auto fill(1)useNavigate(1)dblclick(1)life cycle(1)debug(1)Map(1)@BeforeEach(1)그래프(1)Then(1)new Date(1)spyon(1)withStyle(1)data set(1)clean-up(1)Props(1)Content(1)min(1)데이터 분석(1)dispatchEvent(1)single source of truth(1)plotly(1)csv(1)bubbling(1)color palette(1)pandas(1)grid(1)max-width(1)나무(1)customElement(1)dynamic programming(1)closure(1)좋은 개발자(1)Routes(1)github issue(1)emotion(1)이름짓기(1)audio(1)set(1)react router(1)FCP(1)
post-thumbnail

event phase에 대해 좀 더 이해하게 됨

우선 리액트 플젝에서 three dots 아이콘을 누르면 context menu가 랜더링 되도록하고 이후 menu의 바깥 쪽을 클릭하면 없어지게 하기 위하여 useUnmountIfClickedOutside(이하 커스텀 훅) 를 이용하였다.그런데 위의 커스텀 훅에서 이벤

6일 전
·
0개의 댓글
·
post-thumbnail

design pattern

Sigletoninstance는 딱 하나만 존재Single source of truth에 유용?ProxyIntercept data and transformObserver많은 객체가 subscribe 함.One-to-manyTarget object가 바뀌면 subscri

2023년 9월 12일
·
0개의 댓글
·

백/프론트 api 타입 통일 및 타입 safe까지 할 수 있는 library가 있다면?

Zodios를 써보자. react-query를 유지보수하는 tkdodo형님도 react-query type-safe 라이브러리로 추천하셨다.api schema(https://www.zodios.org/docs/client그리고 프론트에선, react-query

2023년 9월 1일
·
0개의 댓글
·
post-thumbnail

express cors문제 해결

express에서 서버를 세팅하고 client에서 요청을 보냈는데 cors에러가 떴다.찾아보니 역시나 express에서 요청이 들어오는 쪽 origin과 요청의 종류를 명시해야한다. 만약 요청에 cookie, http 인증같은 보안 인증 정보를 포함해 주고받으려면 양쪽

2023년 8월 31일
·
0개의 댓글
·
post-thumbnail

delete할때 foreign key 에러

user와 refreshKey를 one to one관계로 설정하고 create한뒤 delete하려 했으나 다음과 같은 에러가 발생했다.Foreign key constraint failed on the field: foreign key구글링해보니 referential a

2023년 8월 30일
·
0개의 댓글
·
post-thumbnail

express router작성 패턴

각각 필요한 route를 folder에 정리하고 각각의 folder를 routes/index.js에서 한번에 선언한 다음 routes/index.js 에서 선언한 routes를 src/index.js에 express에다가 적용하면 routes가 한번에 적용이 된다.무슨

2023년 8월 28일
·
0개의 댓글
·

postman body 입력시

postman에서 body를 보내는데 계속 body가 빈 객체로 넘어오는것이다..아래와 같이 헤더를 설정해주고 body는 row에서 쌍따옴표를 붙여야한다.

2023년 8월 26일
·
0개의 댓글
·

tailwind classname 자동 포매팅

npm install -D prettier prettier-plugin-tailwindcss하고 난 다음 아래 처럼 설정.

2023년 8월 22일
·
0개의 댓글
·
post-thumbnail

prisma 란 무엇인가?

prisma는 ORM으로, 객체를 schema로 정의한다음 그 객체와 내가 선택한 데이터 베이스를 연결시켜주는 매개체이다.server side쪽에서 데이터 베이스를 CRUD가능하도록 해준다. 또한 node js와 typescript를 사용하기에, javascript를

2023년 8월 17일
·
0개의 댓글
·
post-thumbnail

postgreSQL

sql처럼 row \* column으로 이루어진 테이블에 데이터를 저장한다.그러나 object relational data 이기 때문에 custom type data를 만들어 object로 변환가능하며 객체의 속성, 즉 상속과 다형성, 확장성의 특성을 갖는다.그리고 A

2023년 8월 15일
·
0개의 댓글
·
post-thumbnail

ORM

prisma를 공부하기 전에 ORM이 라는 개념이 나와서 공부해보려고 쓴 글이다.ORM은 Object Relational Mapping의 약자로 객체와 관계형 데이터를 이어주는 중재자 역할을 한다.기본적으로 object와 relation data base는 여러면에서

2023년 8월 11일
·
1개의 댓글
·
post-thumbnail

useRef

리액트에서 어떤 값을 변수에 저장하고 갱신하려고한다.그 값은 closure여서 reference가 바뀌지 않아야 한다.만약 새로운 값으로 갱신하려할때 컴포넌트가 리랜더링 되지 않으면 좋겠다.할때!! useState가 아닌 useRef를 쓰면 된다. useInterval

2023년 8월 7일
·
0개의 댓글
·
post-thumbnail

jest tip

짜잘하게 알아낸 jest 문법, 설정방법 등등 알아낸것을 적는 공간path alias 를 설정시 tsconfig 뿐만 아니라 jsconfig / babelrc 에도 설정해주어야 함image path를 import하지 말고 image src에 string으로 그대로 적으

2023년 8월 3일
·
1개의 댓글
·

useRef안에 elements를 보관

https://stackoverflow.com/questions/57901725/react-creating-dynamically-refs-with-typescripthttps://react.dev/reference/react/forwardRef#usa

2023년 6월 16일
·
0개의 댓글
·

swiper 직접 구현

부모의 높이를 화면의 높이로 설정그리고 자식 element들의 높이 합이 부모보다 커야함. 그래야 스크롤할 공간이 생기니깐.parentElement.scroll({top:옮기고 싶은 위치}) 로 하면 됨

2023년 6월 16일
·
0개의 댓글
·

테이블

테이블 만들때 간격이나 너비때문에 애먹으면 div를 넣어보아라. 편법이지만 잘적용됨 ㅋㅋㅋㅋㅋ

2023년 6월 16일
·
0개의 댓글
·

react query 안에 있는 변수가 caching됨

캐싱되는 이유는 당연하다. 데이터를 불러오는 시점에서 사용된 access_token이라던가 id가 동일해야 데이터도 동일하게 유지되어 캐싱되기 때문.useQuery에서 queryOption에서 enabled라는 필드가 있다. 이 필드가 true가 되는 시점에서 useQ

2023년 6월 14일
·
0개의 댓글
·

에러 바운더리 설정

아래 링크를 들어가봐라. 클래스를 이용해 바운더리 설정하고 있다.componentDidMountcomponentWillUnmount를 사용하여 error, unhandledrejection 이벤트를 설정해서 에러가 빠져나가지 못하도록 확실히 하는 방법도 있다.https

2023년 6월 12일
·
0개의 댓글
·

dev, stage, prod 환경의 차이는?

: 실험 공간. 아무거나 실험 가능하고 실수 가능: prod와 같은 공간. db도 dummy가 아닌 실제 prod와 같은 db. 근데 사용자가 있는 공간은 아님. 흔히 beta 버전이 stage임: 사용자가 실제 존재하는 공간. 여기선 어떤 실수도 일어나선 안됨출처 :

2023년 6월 8일
·
0개의 댓글
·

deep link를 이용하고 싶다면??

apps flyer 의 deep link를 검색해보자. 그럼 앱으로 바로 이동 가능함LongUrl 소개 : https://support.appsflyer.com/hc/en-us/articles/360017132597parameter 명세 : https&#x3A

2023년 6월 7일
·
0개의 댓글
·