Dev(84)
-
리액트 setState를 함수형으로 사용해야하는 이유
관련글 (원글) setState 함수에 인자를 object로 줄 경우 setState는 비동기로 작동한다.비동기로 작동한다는 것은 순서를 보장하지 못하고 순서가 중요한 로직일 경우 예측되지 않은 결과를 초래할 수 있다. setState({count: this.state.count+1});setState({count: this.state.count+1});setState({count: this.state.count+1}); 한 함수안에서 위의 코드가 실행되면 +3을 기대하게 되지만 실제로는 +1된다.내부적으로 한꺼번에 처리하기 때문이다. 더 자세한 내부 작동은 관련글에서 확인할 수 있다. 하지만 함수형으로 실행할 경우setState((state, props) => ({count: state.count+1}..
2018.04.18 -
git reset과 작업영역 그리고 merge
리모트 리모트 브럼치와 현재 로컬 브런치 코드 비교git diff REMOTE-NAME/BRANCH-NAMEgit diff origin/master // pull은 현재 branch에 코드를 merge 시킨다.// fetch는 FETCH_HEAD 라는 branch 이름으로 로컬에 가져오기만 할 뿐 현재 branch에 코드를 병합시키지 않는다.git fetch REMOTE-NAMEgit fetch origin pull = fetch merge // 두 개의 local branch 간의 코드 차이를 보고 싶을 때git diff BRANCH-NAME..BRANCH-NAME // 두 개의 local branch의 공통 조상으로 부터 코드 차이를 보고 싶을 때git diff BRANCH-NAME...BRANCH-..
2017.11.06 -
웹에서 자바스크립트 구동 환경
자바스크립트가 싱글쓰레드로 동작한다는 것은 검색으로 쉽게 찾아볼 수 있는 내용이다. 내가 궁금했던 것은 싱글쓰레드가 어떻게 비동기로 동작하는가 이다. 답은 web apis로 실행되는 함수들은 별도의 환경에서 실행되기 때문에 우리의 싱글쓰레드는 영향을 받지 않는 다는 것이다.web apis는 우리가 사용하는 웹 구동 쓰레드와는 별도의 프로그램 환경에서 실행되는 것을 알아야 한다.web apis의 대표적인 기능으로 setInterval과 setTimeout, ajax 가 있다. 웹에서 자바스크립트 구동환경 구성콜스택 콜백큐 이벤트루프 webapi콜 스택은 하나의 작업을 완료하기 위해 제공되는 환경이다.콜백 큐는 작업이 시작되기를 기다리는 장소.이벤트루프는 콜 스택이 비어있음을 확인하면 콜백 큐로부터 작업을 ..
2017.10.09 -
'key' in object VS object.hasOwnProperty('key')
https://stackoverflow.com/questions/13632999/if-key-in-object-or-ifobject-hasownpropertykey in이라는 키워드를 for in 에서만 봤었기 때문에 신박해서 남겨본다. if('key' in object) object에 key라는 (상속받은 객체를 포함) property를 소유했는지 boolean을 반환한다.if(object.hasOwnProperty('key')) object 자신만의 key라는 property를 소유했는지 boolean을 반환한다.
2017.09.28 -
javascript 배열
다양한 데이터를 다루는데 있어 배열은 가장 기본적인 기술로 꼭 체득해야 한다. 배열 기초배열은 객체와 달리 본질에서 순서가 있는 데이터 집합이며 0으로 시작하는 숫자형 인덱스를 사용자바스크립트 배열은 비균질적이다. 즉, 한 배열의 요소가 모두 같은 타입일 필요는 없다.배열 리터럴은 대괄호로 만들고, 배열 요소에 인덱스로 접근할 때도 대괄호를 사용.모든 배열에는 요소가 몇 개 있는지 나타내는 length 프로퍼티가 있다.배열에 배열 길이보다 큰 인덱스를 사용해서 요소를 할당하면 배열은 자동으로 그 인덱스에 맞게 늘어나며 빈 자리는 undefined로 채워집니다.Array 생성자를 써서 배열을 만들 수도 있지만 그렇게 해야 하는 경우는 별로 없다. 배열 요소 조작(추가, 삭제, 정렬) 단순히 끝이나 처음의 ..
2017.09.13 -
vscode에서 cmder 사용하기
windows OS terminal 중에서 쓸만한 cmder를 vscode에서도 임베디드해서 사용해보고 싶었다. 구글링을 통해서 찾은 방법은 여기서 확인할 수 있다. 파일 > 기본 설정 > 설정 (Ctrl + , commma ) 에서 아래와 같이 설정해주면 된다. "terminal.integrated.shell.windows": "C:\\WINDOWS\\sysnative\\cmd.exe", "terminal.integrated.shellArgs.windows": ["/K", "C:\\path\\to\\clink\\clink_x64.exe inject"] cmder가 제공해주는 자체 인터페이스는 사용할 수 없고 기능만 가져다 사용한다. 다들 잘되는지 모르겠지만.. 본인은 에러가 발생해서 실행되지 않았다. ..
2017.09.10