목록전체 글 (7)
aeFactory
REST가 뭘까? REST는 Reprenentational State Transfer의 약자로 사실 약자만 보고는 직관적으로 어떻게 하는게 REST인지 알아보기는 쉽지 않습니다. 본 글의 4장 Uniform Interface까지 설명하면 풀이가 가능합니다. REST는 HTTP를 사용하기 위한 아키텍쳐 쳐의 제약 조건입니다. 따라서 제약 조건을 하나씩 살펴보면서 왜 이런 제약 조건들이 붙었나, 사용했을 때 어떤 장점이 있나 살펴보겠습니다. API와 REST API, HTTP API 일단 REST API와 HTTP API를 구분할 필요가 있습니다. 일단 API(Application Programming Interface)는 이름에서 알 수 있듯 Application 간의 서비스를 주고 받을 때 서로 통신할 ..
안드로이드 디자인 패턴에는 크게 MVC, MVP, MVVM이 있습니다. MVC -> MVP -> MVVM 순서로 등장했는데, 이는 각각의 단점들을 해소하기 위해 제시되었습니다. 각각 디자인 패턴의 장단점과 발전 흐름을 정리해보겠습니다. MVC MVC는 웹에서 널리 사용되는 디자인 패턴입니다. Model, View, Controller의 3가지 영역을 사용합니다. 사용자의 입력은 Controller에게 발생하고 발생한 입력을 Model에게 전달하여 로직을 처리하며, View가 UI를 Update 하도록 명령합니다. (이후에 UI 관련 로직들이 복잡해지며 View에서 입력을 받는 경우가 많아졌습니다.) MVC 패턴은 역할을 구분하여 처리하긴 하지만 안드로이드에서 이를 구현할 시 안드로이드의 화면 구성 요소인..
협업을 하기 위해 git을 이용할 때 구성원들 끼리 commit message의 양식을 통일하지 않는다면 혼란한 git log들과 추적하기 힘든 history를 만날 확률이 높습니다. 따라서 협의를 통해 양식을 가지고 commit message를 작성하는 것이 좋은데, 이때 널리 사용되는 Udacity style에 대해 알아보겠습니다. Udacity git commit message style Udacity Git Commit Message Style Guide에서 제공한 commit message style에 대한 가이드에 따르면 커밋 메시지의 구조는 비어있는 줄로 구분되는 3가지의 영역으로 나뉩니다. type: Subject body footer type 타입은 아래 중 한가지를 갖습니다. type명..
1. checkout switch restore를 함께 다루는 이유 2. switch 3. restore 4. checkout 1. checkout switch restore를 함께 다루는 이유 이 글에서는 $git checkout, $git switch, $git restore의 세 가지 명령어의 사용법에 대해 정리합니다. 세 가지 명령어를 동시에 다루는 이유는 checkout의 역할을 3가지로 쪼개 checkout, switch, restore가 나누어 하도록했기 때문입니다. 지금 switch나 restore를 써야할 곳이 checkout을 쓴다고 동작하지 않는 것은 아니지만 한 명령어는 한 가지 기능만 갖는 것이 좋기 때문에 분리하여 사용하는 것이 좋다고 생각합니다. 2. switch switch ..

1. stash란? 2. git stash 명령어 3. git stash save와 push Stash란? git shash는 현재 하고 있던 작업을 커밋하지 않고 임시 저장할 수 있는 기능입니다. 현재 하고있는 작업보다 우선 순위가 높은 작업이 생기는 경우에 사용할 수 있습니다. 이 경우 stash를 사용하지 않으면 현재 작업 중인 내용을 reset 하거나 작업 내용을 남기고 싶다면 commit하는 방법을 생각해 볼 수 있는데, 작업 내용이 많은 경우 reset은 사용할 수 없고 commit은 공용 브랜치의 경우 미완성의 코드를 commit해서는 안되고 개인 branch인 경우에도 좋은 흐름은 아닙니다. 이 때 git stash를 사용하면 현재까지 작업한 내용을 안전하게 저장했다가 급한 일을 먼저 처리..

1. HEAD란? 2. .git/HEAD 3. 상대 참조 ^ ~ HEAD란? Git에서 HEAD란 일반적으로 현재 활성화된 브랜치의 가장 마지막 commit을 의미합니다. 하지만 현재 특정 commit으로 checkout된 상태라면 해당 commit을 가리키게 됩니다. Git의 많은 명령어들은 HEAD에서 시작하는 경우가 많기 때문에 현재 프로젝트의 HEAD를 파악하고 있어야합니다. HEAD는 포인터입니다. 따라서 일반적인 상황(활성화된 브랜치의 가장 마지막 commit을 가리키고 있는 상황)에서는 branch의 이름을 가리키고 있습니다. 이 때 commit log에 (HEAD -> 브랜치 이름)으로 표시됩니다.. 하지만 checkout을 통해 branch가 아닌 commit를 HEAD가 가리키도록 할 ..

1. Git의 3가지 작업 영역 2. Git이 관리하는 파일의 3가지 상태 3. 파일의 상태에 관한 LifeCycle Git의 3가지 작업 영역 Git의 3가지 작업 영역은 Working Directory, Staging Area, Repository 입니다. 1. Working Directory 프로젝트를 진행하고 있는 폴더 프로젝트를 깃으로 관리하고자 할 때 $git init 한 곳 2. Staging Area commit을 하기 위한 파일을 임시로 모으는 곳 git이 감지한 변화를 $git add하면 'Stage에 올라간다' 라고 표현 Staging Area에 있는 변경 사항들을 필요한 내용만 commit할 수 있음 3. Repository $git init을 통해 생성한 .git 폴더 git을 통..