10월, 2017의 게시물 표시

Git 커밋 메시지 작성법 포스팅을 읽고

이미지
주위사람들이 괜찮은 글이라면서 추천해준 포스팅이 있는데 몇가지 적용시키면 괜찮을것같은 내용이 있어서 남겨놓는다. 원본글은 https://item4.github.io/2016-11-01/How-to-Write-a-Git-Commit-Message/ 이다. git의 commit message가 왜 중요한지는 다들 알고있을꺼라 생각한다. 해당 링크에서는 commit message가 왜 중요한지를 요약해서 설명하니 한번쯤 읽어보고 공감해보는것도 좋을것같다.  본 내용에 들어가면 훌륭한 commit message를 작성하는 7가지 방법을 설명하는데 다음과 같다. 1. 제목과 본문을 빈 행으로 분리한다 2. 제목 행을 50자로 제한한다 3. 제목 행 첫 글자는 대문자로 쓴다 4. 제목 행 끝에 마침표를 넣지 않는다 5. 제목 행에 명령문을 사용한다 6. 본문을 72자 단위로 개행한다 7. 어떻게 보다는 무엇과 왜를 설명한다 우선 나는 git IDE를 사용한다. 주로 Sourcetree를 쓰고 요즘엔 gitkraken로 갈아타려고 한다. 그리고 대부분 그렇겠지만 github를 이용한다. 그럼 위의 7가지를 하나씩 살펴보자 1. 첫번째로 제목과 본문을 빈 행으로 분리한다.  링크에서는 여러가지 git 명령어를 통해 제목만 볼 수 있기때문이 가장 큰것같다. 내가 생각하는 제목과 본문을 나누는 이유는 github에 있는데, 아래의 이미지를 보면 제목만 나와있고 본문을 보려면 우측에 `...` 을 클릭해야 볼 수 있다.  이와같이 제목과 본문을 빈 행으로 구분해주면 github에서 쉽게 본문과 제목을 나눠서 볼 수 있기 때문에 나는 본문과 제목을 빈 행으로 분리시킨다. 사실 이런걸 의식해서 나누지는 않았었는데 sourcetree나 gitkraken을 사용하면 자동으로 적용되는 내용이다.  gitkraken 에서 커밋로그를 작성하는 창 2.

let과 const의 차이

let과 const 키워드에 대해서 자세하게 공부해보자.  let과 const는 다른 언어들과의 차이를 줄여주고 block-scope 변수와 상수를 정의하는 방법을 제공한다. let ECMAScript 5 이후에, 자바스크립트는 function scope와 global scope 두가지타입의 scope가 있었다. 이것은 많은 불안감과 예상치 못한 상황이 발생할 가능성이 존재했었다. 이유는 바로 자바스크립트의 block scope 의 부재때문인데, 이는 접근 가능성과 변수의 생명주기, block에서의 정의에 영향을 미친다. block은 괄호 안에서 모든것이 존재한다. function foo ( ) { var par = 1 ; if ( par >= 0 ) { var bar = 2 ; console . log ( par ) ; // prints 1 console . log ( bar ) ; // prints 2 } console . log ( par ) ; // prints 1 console . log ( bar ) ; // prints 2 } foo ( ) ; 코드를 실행시키면 다음과 같은 결과를 얻을 수 있다. 1 2 1 2 대부분의 개발자들이 다른 언어들에 미루어 보았을 때, if block 밖에서 bar에 접근할 수 없다고 생각한다. 예시에서 C언어였다면 if문 밖에 있는 bar는 undeclared at line ... 과 같은 에러를 발생 시켰을 것이다. ECMAScript 6에서는 block scope를 이용할 수 있다. ECMA의 관계자들은 개발자들이 var 키워드를 버리지 못할거라고 생각했다. 그래서 let이라는 키워드를 만들게 되었다. let을 통해 block scope를 이용할 수 있게 되었다. 추가적으로 var 와 다르게 let 은 hoisted 되지 않는다. 만약 let을 통해 선언하기 이전에 참조한다면

Android Studio Monitor에서 내 애플리케이션의 패키지명이 나오지 않는 경우

어느순간부터 지금 개발중인 애플리케이션의 패키지명이 Android Monitor창에서 보이지 않게 되었다. 갑자기 왜그런지 몰라서 어리둥절 하고 있다가 깨닫게 되었다. build.gradle 파일에 보면 다음과 같은 코드들이 있는것을 확인할 수 있다. [build.gradle source] 여기서 buildTypes 부분에 각 빌드타입별로 속성을 지정할 수 있는데 debuggable 속석을 false를 지정하였었다. debuggable속성이 false일 경우 디버깅이 불가능해지며 Android Studio의 Monitor에서도 확인이 불가능하다. 왜 이 속성이 부여되었는지 로그를 따라가보았는데 apk파일을 스토어에 등록하기 위해선 당연하지만 디버깅 모드를 꺼야한다. 만약 디버깅을 허용한 체로 apk파일을 생성하고 등록하면 디버깅 모드를 꺼달라는 메세지를 받을 수 있을것이다. 올바른 해결 방법은 buildTypes를 debug와 release 모드로 나누고, debug모드에선 디버깅을 허용하고, release모드엔선 디버깅을 불허하면 된다.  굉장히 간단한 해결방법임에도 그냥 쓰고있었다ㅠㅠㅠ