JS 객체 설계 시 This를 반환하는 이유.



보통 JS 객체 설계 시 특정 함수의 반환 값으로 this 를 반환하는 경우는, 말그대로 현재 Context 유지하기 위함이다.


즉, JS 패턴 중 하나인 "Method Chaining" 패턴을 구현하기 위해 쓰인다.


그러므로 인스턴스를 생성하기 위한 a, b Class 함수 상 에는 구지 필요하지 않지만,(들어가도 크게 상관은 없다.) "Method Chaining" 패턴을 구현하기 위해선, a.setName 메서드 상에 반드시 현재 Context를 반환하기 위한 코드인 "return this" 필요하다.




- 위 코드의 결과는 아래와 같다.


1. a Class 함수 a.setName 메서드 상에 현재 Context를 반환하기 위한 코드인 "return this" 가 없으므로 Method Chaining 이 구현되지 않았다.(그로인해 getName 메서드 호출 시 메서드가 정의 되지 않았다는(undefined) 오류가 발생하게 된다.)

2. b Class 함수 b.setName 메서드 상에 현재 Context를 반환하기 위한 코드인 "return this" 가 존재 하므로 "Method Chaining" 구현 되었다.(그로인해 getName 메서드 호출 시 오류가 발생하지 않고 해당 Function을 반환하게 된다.)




Git fork, pull request 테스트





1. Mohwa 계정이 Fork 한 Mohwa2 계정의 저장소로 Pull Request 시키는 방법





최초 Mohwa2 계정의 저장소 화면.




Mohwa2 계정의 저장소(mohwa2.github.io) 화면이며, 오른쪽 상단 Fork 버튼을 통해 자신 계정의 Repository로 포함 시킨다.



저장소 Fork 후 해당 저장소(mohwa2.github.io)가 Mohwa 계정의 "Popular repositories" 리스트로 포함되어 있는걸 확인할 수 있다.(상단 4번째 리스트)


해당 저장소 상세 페이지 화면



Mohwa 계정으로 Fork된 저장소(mohwa/mohwa2.github.io)로컬 저장소로 clone 시킨다.



해당 저장소에 파일 생성 후 commit 단계까지 진행한다.



생성된 로컬 저장소 파일을 리모트 저장소로 push 한다.



리모트 저장소로 push 완료된 화면이며, 오른쪽 메뉴 중 pull Requests(0) 버튼을 클릭한다.



새로운 pull Request를 위해 new pull request 버튼을 클릭한다.



전송 할려는 pull Request의 제목이슈 내용을 기입 후 Submit 한다.






2. Mohwa2 계정이 Mohwa 계정에게 수신한 Pull Request  처리(해당 branch 에 merge)하는 방법





Mohwa2 계정의 저장소 화면이며, 오른쪽 메뉴 중 pull Rrequests 버튼을 클릭한다.(pull Request 버튼의 오른쪽 카운트가 1인것을 확인할 수 있다. 이는 수신받은 pull Request count 에 대한 내역이다.)



Mohwa2 계정의 pull Request 리스트 화면이다.(mohwa 계정이 발송한 pull Request 내역을 확인할 수 있다.)



리스트 내역을 클릭 후 수신 받은 pull Request 내역을 확인 후 자신(Mohwa2 계정)의 저장소 branch(master?)로 merge 시킬수 있다.(이는 merge pull request 버튼을 통해 수행된다.)



Mohwa2 계정의 전체 pull request 내역이다.(최신 내역에 Mohwa 계정이 pull request 시킨 내역을 확인할 수 있다.)





참고: http://dogfeet.github.io/articles/2012/how-to-github.html



Git rebase 명령(커밋 수정(합치기)) 테스트




- 현재 까지 Commit 된 히스토리는 총 5이며, "git rebase" 명령을 통해 상위 4개를(HEAD~n) 하나의 commit 으로 merge 시킬 것이다.



- 아래는 "git rebase" 명령 후 자동으로 실행되는 편집기 창이며, 해당 편집기 이용해 로드된 commit 히스토리를 수정한다.



수정방법:


- 수정하고자하는 commit index 앞의 "pick"이라는 문자열을 "squash" 라는 문자열로만 변경시켜 주기만 하면 된다.



- 수정 commit 히스토리를 출력한 결과이다.(이전 File1 ~ File3 파일에 대한 모든 commit 이 "f25648...a4fc" commit 으로 merge 되었다.





참고: http://dogfeet.github.io/articles/2012/how-to-github.html



prev 1 2 3 4 5 ··· 56 next