Taehyeon-Kim/SeSAC

[221017] TIL

Opened this issue · 3 comments

선형 마이그레이션(Linear Migration)

  • if ~ else if 블록을 사용하는 것이 아니라 if 블록을 사용하여 순차적인 마이그레이션이 가능하도록 대응

Realm Table의 관계를 표현하기 위한 내용

  • List
  • LinkingObject
  • EmbeddedObject

List

컬럼에 직접 접근해서 데이터를 추가해줄 수 있음

  • Person
  • Dog

Dog의 입장에서는 Person(주인)이 누구인지 알 수 없음
➡️ 속해 있는 테이블에 바깥의 테이블의 정보를 알려주고 싶을 때 LinkingObject 사용

(주의) 제거시에는 List 관계로 포함된 데이터 먼저 제거하고 바깥에 있는 데이터를 삭제해야 함

guard let task = localRealm.objects(Todo.self).filter("title = '태끼의 할 일 7'").first else { return }

try! localRealm.write {
    localRealm.delete(task.detail)
    localRealm.delete(task)
}

EmbeddedObject

final class Memo: EmbeddedObject {
    @Persisted var content: String
    @Persisted var date: Date
}
  • 특정 테이블에 포함
  • 별도의 테이블은 생성되지 않음

Merge

  • 3way merge
  • Fast forward merge

git merge

  • git merge --abort (merge 취소)

git merge --squash

  • 여러 개의 커밋을 하나의 커밋으로 합쳐서 merge 할 수 있음

git

git config

  • git config --global core.editor "code --wait"
  • git config -e
  • git config --global
  • git config --local
  • git config --global alias.cm 'commit -am'
    • 띄어쓰기 시에는 작은 따옴표 사용

git add

  • untracked file의 경우는 명시적으로 git add를 한 번 해줘야 함
  • 그 이후부터 -am 옵션 사용 가능(commit -am)
git config --global alias.ignore '!gi(){curl -L -s https://www.gitignore.io/api$@;};gi'