나도 공부한다/삽질19 react로 검색기능 만들면서 삽질한 이야기 (with 디바운스) ※ 이 글은 저의 삽질 과정이 그대로 담겨있는 글로, 사담이 많습니다. 결과만 알고 싶으신 분은 최종 코드를 읽어주세요 검색창을 구현할 일이 생겼는데 글자가 하나 입력될때마다 결과를 다시 불러와서 화면이 계속 깜빡거리는 현상이 발생했다. 이걸 어떻게 해결할까 찾아보다가 디바운싱이라는걸 알게 되었고, 내 코드에 적용시키면서 삽질한 이야기를 해볼까한다. 문제 상황우선 처음에 만든 코드는 다음과 같다. 나는 아직 초보라 처음부터 성능 개선하는건 잘 못해서 생각나는대로 코드를 짠 후 리팩토링하는 방식을 선호한다. 초기에 떠올린 아이디어는 다음과 같다. 1. 입력값, 검색대상, 입력값과 일치하는 검색대상을 필터링한 값이 필요하다2. 변화가 있을 때마다 바로 필터링하고 결과를 렌더링해야하므로 useState로.. 2024. 1. 16. [C++] vector find 함수 사용시 error: no matching function for call to ‘find’ 에러 발생 visual studio에서는 아무런 문제 없이 컴파일 됐는데 백준에 제출하니 다음과 같은 컴파일 에러가 발생했다. 이렇게 한쪽에서만 안 돌아가는 문제가 가장 해결하기 까다로운 것 같다; error: no matching function for call to ‘find(std::vector::iterator, std::vector::iterator, int&)’ C++을 사용할 땐 항상 조심해야할 게 있다. 대부분의 사람들이 편의를 위해 using spacename std; 를 사용하여 표준 라이브러리의 함수 앞에 std를 생략하고는 한다. 이 때 치명적인 문제가 발생할 수 있다. A 라이브러리와 B 라이브러리에 공통적으로 alphabet 이라는 함수가 들어있다고 가정해보자. std를 생략해버리면 alp.. 2023. 4. 29. [git] git bash에서 anaconda 끄기 가끔 vscode를 실행하면 자동으로 conda 가상환경에 진입된다. source C:/Anaconda/Scripts/activate base (base) 이럴땐 이 명령어를 입력해주면 된다. 입력한 후 vscode를 재실행 conda config --set auto_activate_base false 2022. 12. 7. [git] 실수로 다른 브랜치에 커밋했을 때 종종 develop 브랜치에 커밋하는 실수를 할 때가 있다. 이땐 cherry-pick을 사용하면 된다. 아직 push는 안한 상황이다. 1. git log 명령어로 커밋 해시값을 찾는다. 내가 실수한 커밋은 두번째꺼다. 2. 옮기고 싶은 브랜치에서 git cherry-pick 해시값 명령어를 입력해준다. 이렇게 하고 다시 커밋하면 끝. log를 확인해보니 커밋이 잘 되어있다. 3. develop 브랜치로 돌아가 reset이나 revert 등을 사용하여 실수한 커밋을 지워준다. 참고로 reset과 revert의 차이점은 다음과 같다. http://www.devpools.kr/2017/01/31/%EA%B0%9C%EB%B0%9C%EB%B0%94%EB%B3%B4%EB%93%A4-1%ED%99%94-git-b.. 2022. 12. 6. [git] push 오류 (The upstream branch of your current branch does not matchthe name of your current branch. ) 상황: git push를 하려는데 다음과 같은 오류가 떴다. 탐색: 읽어보니 upstream branch(원격 브랜치)와 local branch의 이름이 맞지 않아서 생기는 오류였다. local에서 브랜치 이름을 수정한적이 있었는데, 깃허브 브랜치 이름을 깜빡하고 수정하지 않았던게 생각났다. 그래서 단순히 깃허브에서 수동으로 브랜치 이름을 동일하게 수정해주면 해결될 거라고 생각했으나 여전히 push가 되지 않았다. 해결: git status를 확인해보니 내 브랜치가 옛날 이름의 브랜치를 가리키고 있다. git branch --unset-upstream 명령어를 사용해서 설정해둔 origin 브랜치를 해제하고 git push --set-upstream origin 을 입력하여 다시 연결해준다. 설정 완료 .. 2022. 11. 28. git remote update 오류 (cannot lock ref~ cannot create ~ from .git) 상황: git remote update를 했더니 다음과 같은 경고가 나왔다. 내 브랜치 이름은 프라이버시라서 가렸다..ㅎㅎ cannot lock ref 'refs/remotes/origin/feature/A': 'refs/remotes/origin/feature' exists 이런 경고다. 탐색: 찾아보니 원격에 feature이라는 브랜치가 이미 있는데 feature/A라는 브랜치를 만들려고 해서 충돌이 났다는 뜻이다. 해결: feature/A 브랜치 이름을 바꿔주거나 feature 브랜치를 삭제하면 해결된다고 한다. 그런데 나는 remote 저장소에서 해당 브랜치를 삭제했는데도 같은 오류가 떴다. 이럴 땐 다음과 같은 명령어를 입력해주면 된다. 이 외에도 많은 방법이 있다. 유효하지 않은 참조 파일을 .. 2022. 11. 22. 이전 1 2 3 4 다음