2016의 게시물 표시

Android layout_marginStart와 layout_marginLeft의 차이

API17 이후에서 layout_margin까지 쓰고 자동완성을 보면 left, right, top, bottom등이 나오는데 start와 end도 보인다. 각각을 적용해보면 marginStart는 left에, marginEnd는 right에 margin이 들어가는것을 확인해 볼 수 있다. 그렇다면 left와 Start의 차이점과 right와 End의 차이점은 무엇인가? 찾아보니 언어를 읽는 방식에 대한 차이인듯 하다. 한국어를 포함해서 대부분의 언어는 왼쪽에서 오른쪽으로 읽는다. 따라서 Start를 왼쪽에서, End을 오른쪽에서 한다. 하지만 오른족에서 왼쪽으로 읽는 언어( Arabic , Hebrew, etc )와 같은 경우엔 Start를 오른쪽에서, End를 왼쪽에서 한다. 자세한 내용은 https://developer.android.com/about/versions/android-4.2.html#RTL 에서 확인하면 좋을것같다.

git commit message 작성법

이미지
주위사람들이 괜찮은 글이라면서 추천해준 포스팅이 있는데 몇가지 적용시키면 괜찮을것같은 내용이 있어서 남겨놓는다. 원본글은 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. 두번째로

#3 git의 역사

이미지
간단하게 설명하면 Git은 리눅스개발커뮤니티가 자체 도구를 만들었다. 전에 BitKeeper라는 상용 DVCS를 사용하고 있었는데 서로 갈등이 생겨서 개발하였다고 한다.  전에 사용하고 있던 BitKeeper를 기초로 다음과 같은 목표를 가지고 개발하였다. 빠른 속도 단순한 구조 비선형적인 개발 완벽한 분산 대형 프로젝트에서도 유용 지금도 위와 같은 목표를 가지고 개발이 이루어 지고 있다. Git은 다른 시스템과는 다른 차이점이 존재한다. 바로 데이터를 저장하는 방법인데 이를 자세하게 살펴본다.

#2 버전관리 시스템

이미지
Git을 설치하고 사용하기 전에 Git이 무엇인지에 대해서 먼저 알아보자 Git은 버전관리 시스템중 하나이다. 버전관리란? 버전관리란 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점으로 돌아갈 수 있도록 관리해주는 시스템을 말한다. 소스코드 뿐만 아니라 이미지나 다른 모든 파일들도 가능하다. 만약 작업하다가 일부분을 이전 시점으로 되돌리거나 삭제한 파일을 복구하는것도 쉽게 할 수 있다. 버관관리 시스템을 나누자면 로컬 버전 관리 시스템, 중앙 집중식 버전 관리 시스템, 분산 버전 관리 시스템 이렇게 3개로 나눌 수 있다. 먼저 로컬 버전 관리 시스템이란 버전을 관리하기 위해 디렉터리를 통해 파일을 복사하는 방법이다. 다른 툴이 필요하거나 뭐 그런것이 아니라 단순히 새로운 폴더를 만들고 관리할 파일을 붙여넣어 관리한다. 이 방법은 간단하고 자주 사용한다. 그렇지만 잘못되기도 쉽다. 해당 디렉토리를 삭제하거나 실수로 잘못 고치거나 잘못 복사할 수 있다. (나는 Git을 몰랐을 때, 프로젝트를 압축하여 압축본의 파일명을 시간순서로 하여 관리했었다.) 이런 이유때문에 프로그래머들은 오래전에 로컬 VCS라는걸 만들었다. VCS는 아주 간단한 데이터베이스를 사용해서 파일의 변경 정보를 저장하는 것이다. 위의 이미지 처럼 로컬 컴퓨터에 버전을 관리하는 데이터베이스를 생성한 뒤, 관리할 파일을 버전에 따라 저장하여 관리하는것을 말한다. 많이 사용되는 VCS 도구 중에는 rcs라고 하는 것이 있는데 아직까지도 사용하고 있다고 한다...  다음으로는 중앙집중식 버전 관리 시스템인데 이는 여러사람이서 동시에 작업을 가능하도록 해준다. 프로젝트를 진행할때 많은 사람들과 함께 작업하는데 서버가 별도로 존재하고 클라이언트가 서버에 저장되어 있는 프로젝트를 가져와 사용한다. 꽤 오랜시간 이러한 시스템을 사용해왔다. CVCS (중앙 집중식 버전관리 시스템) 은 로컬 vcs에 비