01 Nov 2019
|
IDE
sublime
Sublime Text 3에 Kotlin Plugin 설치하는 방법
메뉴에서 Tools > Install Package Control을 실행합니다.
이미 설치되어 있다면 메뉴에서 이 항목이 보이지 않을 수도 있습니다.
그런 다음 Ctrl + Shift + P를 눌러서 커맨드 팔레트를 실행합니다.
(MacOS에서는 Command + Shift + P를 누릅니다.)
install이라고 타이핑 하면 Package Control: Install Package 항목이 표시됩니다.
선택한 다음 kotlin을 타이핑해서 해당 플러그인을 설치합니다.
SublimeText를 종료 후 재 실행하면 코틀린 플러그인이 설치된 것을 확인할 수 있습니다.
17 Oct 2019
|
git
LFS(Large File Storage)
일반적으로 Git은 파일 한 개 용량이 100MB 까지만 업로드 가능합니다. 그 이상의 파일을 올리고 싶을 때는
LFS(Large File Storage)를 이용해야 합니다.
LFS 설치 방법은 다음과 같습니다.
LFS 설치 방법
Ubuntun에서는 다음 명령어를 이용해서 설치합니다. 여기를 참고하세요.
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt install git-lfs
MAC에서는 brew를 이용해서 설치합니다. 또는 여기에서 다운로드해서 설치하세요.
brew install git-lfs
LFS 사용 방법
LFS를 사용하려는 프로젝트 루트에 가서 다음 명령어를 입력합니다. 여기서는 안드로이드 빌드 결과물인 apk 확장자로 끝나는 파일에 대해
적용을 해봅니다.
git lfs install
git lfs track "*.apk"
git add .gitattributes
그 이후 평소와 같이 파일을 commit 하고 push 하면 됩니다.
터미널에서 git lfs 명령어를 내려도 사용법을 간편하게 조회할 수 있습니다.
04 Oct 2019
|
IDE
vscode
PlantUML 설치
VSCode의 EXTENSIONS: MARKETPLACE에서 PlantUML 플러그인을 설치합니다.

Sequence Diagram
빈 텍스트를 만들어서 아래와 같은 내용을 입력합니다.
@startuml
scale 2
title My first Diagram
A -> B : Hello
B -> C : Good Morning
C --> A : Bye Bye
@enduml
그 이후 Shift + Command + P 키를 눌러서 PlantUML: Preview Current Diagram을 선택하면 아래 이미지와 같이 UML 미리보기를 할 수 있습니다.

GraphViz 설치
PlantUML은 기본적으로 Sequence Diagram을 지원합니다. Class Diagram을 그리기 위해서는 GraphViz를 설치해줘야 합니다.
MacOS 기준으로
brew install libtool
brew link libtool
brew install graphviz
brew link --overwrite graphviz
그 이후 다음과 같은 코드를 작성해서 제대로 렌더링 되는지 확인해봅니다.
@startuml
scale 2
class Event {
+startTime: DateTime
+venue: string
+registrationClosed: boolean
-notifyAttendes()
}
class ApplicationUser {
-userName: string
-password: string
+isLocked: boolean
-suggestRandomPasswod()
+changeProfilePic()
}
class Speaker {
+openForSpeaking: boolean
-callForAction()
+applyAsSpokePerson()
}
class Topic {
+title: string
+sourceCodeUrl: string
+downloadMaterials()
}
class Attendee {
-eventAttended: number
-suggestEventBasedOnPreference()
+registerForTicket()
}
ApplicationUser <|-- Speaker
ApplicationUser <|-- Attendee
Speaker "1" *-- "*" Topic
Event "1" o-- "*" Speaker
Event "1" o-- "*" Attendee
@enduml

PlatUML 장점
PlantUML은 텍스트 스크립트 기반 UML이라서 진입 장벽이 조금 있습니다. 물론, 그 문법이 어렵지는 않아서 금방 사용할 수 있습니다.
텍스트 기반이라 가장 큰 장점은 협업이 쉽다는 점입니다. git을 이용해서 서로 공유 및 편집이 쉽습니다.
물론 무료라서 라이센스 걱정 없는 것도 큰 장점입니다.
24 Sep 2019
|
Android
Kotlin
androidx로 마이그레이션하기
2018년 Google IO에서 기존의 android.support.* 라이브러리들을 AndroidX로 교체하기로 발표했습니다.
기존에 만들어진 프로그램들은 Android Studio에서 Migrate to AndroidX 기능을 이용해서 마이그레이션할 수 있기는 한데
완벽하지 않기 때문에 수동으로 변경해줘야 하는 부분들이 존재합니다.
만약 Migrate to AndroidX 기능으로 마이그레이션이 정상적으로 되면, 프로젝트 내에 있는
gradle.properties 파일에 다음과 같은 라인이 추가됩니다.
android.useAndroidX=true
android.enableJetifier=true
build.gralde (모듈)
또한, 각 모듈에 있는 build.gradle 은 다음과 같은 변화가 생깁니다.
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
들이
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test:rules:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
컴포넌트 변경
그 외에도 많은 부분들이 변경됩니다.
| 변경 전 |
변경 후 |
| android.support.v4.widget.DrawerLayout |
androidx.drawerlayout.widget.DrawerLayout |
| android.support.design.widget.NavigationView |
com.google.android.material.navigation.NavigationView |
| android.support.design.widget.CoordinatorLayout |
androidx.coordinatorlayout.widget.CoordinatorLayout |
| android.support.design.widget.AppBarLayout |
com.google.android.material.appbar.AppBarLayout |
| android.support.v7.widget.Toolbar |
androidx.appcompat.widget.Toolbar |
| android.support.v7.widget.CardView |
androidx.cardview.widget.CardView |
등과 같이 support 라이브러리의 대부분 컴포넌트가 androidX로 바뀌며, 위의 예시 외에도 AppCompatActivity나 Fragment, AlertDialog 등의 컴포넌트들도 전부 변경됩니다.
22 Sep 2019
|
MAC OS
프로그램 실행 명령어 할당
예를 들어 비주얼 스튜디오 코드를 사이트에서 dmg 파일을 다운받아 설치할 경우
터미널에 vscode 나 code 같은 프로그램 실행 명령어가 동작하지 않습니다.
(리눅스에서 snap 등으로 VSCode를 설치했을 경우, 과거에는 단축 명령어가 vscode, 현재는 code 입니다.)
alias
이 경우 alias 명령어를 통해 특정 프로그램 실행 명령어를 할당할 수 있습니다.
alias code='open -a "Visual Studio Code"'
함수 생성
터미널용 함수를 만들어서 사용할 수도 있습니다.
code () {
if [[ $# = 0 ]]
then
open -a "Visual Studio Code"
else
echo "Opening: "$@
"/Applications/Visual Studio Code.app/Contents/MacOS/Electron" $@
fi
}
Symbolic Link
아래와 같은 방법으로 심볼릭 링크(Synmolic link)를 이용해서 실행 명령어를 생성할 수 있습니다.
ln -s /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code ~/bin/code
VSCode 내에서 할당
VSCode 같은 경우는 Command + Shift + P를 누르고 Shell을 타이핑하고
Shell Command: Install 'code' Command in PATH 항목을 선택하면 됩니다.
이 경우는 /usr/local/bin/code에 실행파일이 생성되며, which code로 확인할 수 있습니다.
그 외 자주 쓰는 것들
alias clion='open -a "/Applications/CLion.app"'