Sublime Text 3에 Kotlin Plugin 설치하기

|

Sublime Text 3에 Kotlin Plugin 설치하는 방법

메뉴에서 Tools > Install Package Control을 실행합니다. 이미 설치되어 있다면 메뉴에서 이 항목이 보이지 않을 수도 있습니다.

그런 다음 Ctrl + Shift + P를 눌러서 커맨드 팔레트를 실행합니다. (MacOS에서는 Command + Shift + P를 누릅니다.)

install이라고 타이핑 하면 Package Control: Install Package 항목이 표시됩니다.

선택한 다음 kotlin을 타이핑해서 해당 플러그인을 설치합니다.

SublimeText를 종료 후 재 실행하면 코틀린 플러그인이 설치된 것을 확인할 수 있습니다.

Git LFS(Large File Storage) 사용법

|

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 명령어를 내려도 사용법을 간편하게 조회할 수 있습니다.

Visual Studio Code 에서 UML 사용하기

|

PlantUML 설치

VSCodeEXTENSIONS: MARKETPLACE에서 PlantUML 플러그인을 설치합니다.

image


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 미리보기를 할 수 있습니다.

image -fullwidth


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

image -fullwidth


PlatUML 장점

PlantUML은 텍스트 스크립트 기반 UML이라서 진입 장벽이 조금 있습니다. 물론, 그 문법이 어렵지는 않아서 금방 사용할 수 있습니다.

텍스트 기반이라 가장 큰 장점은 협업이 쉽다는 점입니다. git을 이용해서 서로 공유 및 편집이 쉽습니다.

물론 무료라서 라이센스 걱정 없는 것도 큰 장점입니다.

Migrate to AndroidX

|

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로 바뀌며, 위의 예시 외에도 AppCompatActivityFragment, AlertDialog 등의 컴포넌트들도 전부 변경됩니다.

터미널에서 프로그램 실행 명령어 할당하기

|

프로그램 실행 명령어 할당

예를 들어 비주얼 스튜디오 코드를 사이트에서 dmg 파일을 다운받아 설치할 경우 터미널에 vscodecode 같은 프로그램 실행 명령어가 동작하지 않습니다. (리눅스에서 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
}


아래와 같은 방법으로 심볼릭 링크(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"'