목록Web Development (9)
Code&Data Insights
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/XXTHf/btsHBrIf5CB/aSRlyqy9YhJQQLQ40G3gS0/img.png)
문제상황- git pull 안하고(다른사람이 변경한거 체크안하고..ㅋㅎ: 내실수) 커밋해서 conflict 남 - 다시 commit했는데 처음꺼 그대로 남아있고 내가 올리고 싶지않은 다른 파일로 다시 커밋이 되버림 [ 해결방법 ] 1) 리베이스 시작:git rebase -i HEAD~2 : 최근 두개 커밋을 보여줌, 내가 삭제하고 싶은 커밋 pick -> drop으로 수정 -> esc 안먹힘, 그냥 :wq 치고 (write(저장)와 quit(종료)) 엔터 누르면 된다 -- 푸시하기 전에 잘 없어졌는 지 확인 가능! -- 2) 리베이스 OK, 원격 저장소에 변경사항을 푸시하기git push origin master --force 완료!!
아주 기본적인 실수지만,그래도 기록하기..! 커밋할 때, vscode에서 staged에 올려야 되는데, 일부 수정 반영 필요 없는 파일들을 올리지 않을 경우 commit해도 바로 push 버튼이 활성화가 안된다! -> 명령어로 push 해도 되는데 처음이라 여러 방법을 찾다가 파일을 다 삭제해버림.. ㅋㅎ 문제가 된 명령어 git rm --cached . -rf 인덱스에서 모든 파일을 제거하기 때문에, 잘못 사용하면 다음 커밋에서 모든 파일이 삭제된 것으로 나타날 수 있음! 사용시 주의.. [해결 방법] (1) 내가 커밋한 내용들도 같이 사라졌기 때문에, git init 하기전에 저장해야 함 (따로 저장해놓기) (2) 깃 초기화 하기 git init (3) 기존 저장소 다시 연결git remot..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bOnZwZ/btsHzaySCRz/KaMb74ujViBqCCTjOozK8k/img.png)
[ git pull vs git pull rebase ] git pull : git fetch + git merge 두 명령어의 조합 - git fetch : 원격 저장소의 변경사항을 로컬로 가져옴 - git merge: 가져온 변경사항을 현재 브랜치에 병합 1) cd 다이렉토리 들어가기 frontend면 frontend, server면 server 2) git reset --hard로 하고 -> git pull git reset 하면 잘 안됨 -> git reset --hard로 하고=> git pull 하기! 3) 해당 파일에서 다시 dev 실행하기 git pull --rebase: git fetch + git rebase 두 명령어의 조합 - git fetch : 원격 저장소의 변경사항을 ..
동기(Synchronous) vs 비동기(Asynchronous)동기(Synchronous) 프로그래밍- 코드가 작성된 순서대로 차례대로 실행- 각 작업이 완료될 때까지 다음 작업이 시작되지 않습니다. 비동기(Asynchronous) 프로그래밍- 코드가 작성된 순서와 상관없이 실행- 한 작업이 완료될 때까지 기다리지 않고 다른 작업을 동시에 수행할 수 있습니다. 비동기를 사용하는 주요 이유? => 멀티태스킹을 구현하여 시스템 자원을 효율적으로 사용하기 위해서! => 여러 스레드나 프로세스가 동시에 실행됨 비동기 프로그래밍 (Asynchronous)의 발전 순서 1) Callback 함수: 초기 비동기 프로그래밍에서는 콜백 함수를 사용하여 비동기 작업을 처리=> 특정 작업이 완료되면 콜백 함수를 호출..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmhnir/btsGY0Fpu3f/ARrOUK96AxubTh5qLyeFA1/img.png)
Redux - 상태 관리 라이브러리-> 컴포넌트끼리 상태를 공유할때 여러 컴포넌트를 거치지 않고 전달 할 수 있음 Reducer? -> state 값 변경이 필요하면 action 발생 -> 변경하는 객체를 dispatch()의 parameter로 넘겨줌=> Reducer 함수 실행 Action → Dispatch → Reducer → Store 순서로 데이터가 흐름 => 위 코드에서 Action 객체를 생성하고, Dispatch 함수로 전달한 뒤, Reducer 함수에서 Action 객체를 확인하여 상태를 변경하고,이를 store에 저장 (state 업데이트) => useSelector를 사용하여 store의 상태를 가져와 화면을 렌더링 Context API가 Redux 보다 나은점? 전체 stor..
Throttling과 Debouncing 두 기법 모두 과도한 이벤트나 함수들의 빈도수를 줄여서 성능을 향상시킬 수 있다. => 과도한 이벤트 처리는 사용자 경험에도 비용에도 좋지 않음! Throttling과 Debouncing의 차이점 Throttle- 맨 처음 먼저 실행 -> 설정 시간 지난 후 다시 호출 - 설정 시간 내 최대 한번만 이벤트를 발생 (ex) 페이지에서 계속 전 날짜를 조회하는 버튼을 누르는 경우처음 클릭때 실행되고 300초 뒤에 다시 실행 * 버튼을 누르고 있더라도 300초 마다 API 콜(실행) 됨. Debounce- 연이어 호출되는 함수 중 마지막 함수(또는 처음)만 호출 하도록 하는것 - 아무리 많은 이벤트가 발생하더라도 처음 or 마지막의 단 한번만 이벤트 발생! (e..
Component: 컴포넌트(component)는 사용자 정의 태그! 컴포넌트를 쓰는 이유는?-> 유지 보수 쉬움, 협업할때 보기 좋음 컴포넌트로 태그를 묶어도 안에 내용을 바꿀수 없다면? 유지 보수가 떨어짐 그래서 parameter처럼 바꿀 수 있는 것 -> 'props' ! State * state 상태 -> props를 정의해 놓는 것class형 컴포넌트는 요즘 잘 쓰이지 않기 때문에 함수형 component => useState를 쓴다 근데 useState는 여러가지 state를 각각 정의해야 함 그래서context API나 redux(flux pattern)를 사용함! context API context API는 redux와 비교해서 context끼리 관리하기 때문에 최적화가 더 쉬움!..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ceIOEK/btsGQ40zZLg/g5fmBVog03A6TFKeRuUF50/img.png)
- "use strict": with strict mode, we can't use undeclared variables - string index str[0] - string literal break up " hello" + "hh" => return hello hh - Able to use reserved words as property names - Array reduce(), reduceRight() : sum of all numbers in an array - Array every() : numbers.every(myFunction) : function myFunction(value) { return value > 18;} - Array indexOf(), lastIn..