Buefy에 material icon이 포함되어 있지 않기 때문에 별도로 import 해서 써야 한다.
1. 먼저 아래 명령어를 통해 mdi를 설치한다.
npm install @mdi/font
2. main.js에서 import 한다.
import '@mdi/font/css/materialdesignicons.css'
Buefy에 material icon이 포함되어 있지 않기 때문에 별도로 import 해서 써야 한다.
1. 먼저 아래 명령어를 통해 mdi를 설치한다.
npm install @mdi/font
2. main.js에서 import 한다.
import '@mdi/font/css/materialdesignicons.css'
다시 기본에 충실하기로 했다.
만 3년 동안 프로 개발자로 일했다. 정말 다양한 이슈들을 해결해야만 했다. 개발자의 일이란 결국 문제를 해결하는 것이었다. 문제를 해결하기 위해서 많은 도구를 가져다 썼다. 최근엔 많은 머신들에서 제각각 돌고 있는 CronJob들을 보다 효율적으로 관리하기 위해 Airflow를 썼다. 차후에 개발할 것들을 위해 GraphQL에 대해 공부하기도 했다. 스터디에 나갔더니 Kubernates에 대해 다들 이야기하길래 내가 하고 있는 프로젝트들에 적용할 수 있을 지 살펴보고 있다.
다양한 도구들을 써보고 노하우를 위키에 남긴다. 때때로 팀원들에게 공유하기도 한다. 문득 드는 생각이 있다. 어느 도구를 쓰든지 결국 컴퓨터를 다루는 일이라는 걸 깨닫는 순간이 오더라는 것이다. 도구가 도깨비 방망이가 아니고 컴퓨터를 어떻게 잘 다룰 지에 대한 고민들로 탄생한 것들에 불과하다는 것이다.
하드웨어 위에 커널, 커널 위에 시스템 라이브러리, 그 위에 OS가 있고 그 위에 다시 도구들이 있다. 수차례 추상화 되었지만 결국 컴퓨터를 다루는 일이다. 컴퓨터를 잘 알면 더 잘 쓸 수 있다. 운동 생리학을 알아야 달리기를 잘 하는 것은 아니지만 달리기를 잘하는 사람이 운동 생리학을 공부한다면 더 잘 뛸 수 있다. 컴퓨터에 대해 잘 알고 도구를 쓰는 것과 그렇지 않고 쓰는 것은 다를 수밖에 없다. 깨달음이 오자 갈급해졌다.
컴퓨를 잘 안다는 것은 무엇일까? 고리타분한 말이지만 4대 과목에 대해 이야기하지 않을 수 없다. 운영체제, 네트워크, 자료구조와 알고리즘, DB다. 여기에 클린 코드 한 권을 더해 다시 기본을 공부해보고자 한다. 예전에는 컴퓨터 개론 수업에 왜 계산기부터 등장하는지 이해를 못했다. 하지만 이제는 안다. 계산기부터 공부해보고자 한다. 컴퓨터의 태초가 무엇이고 그것이 어떻게 발전해왔는지. 그 원리가 어떻게 현대 컴퓨터로 이어지고 있는지. 위대한 기술에 대해 바닥부터 훑어볼 예정이다.
4년 차에 다시 읽는 기본서 시리즈를 연재하고자 한다. 혹시 함께할 마음이 있으면 연락바란다.
신입 초보 개발자 1년 회고 (1) | 2017.02.03 |
---|---|
TDD 적용기 (0) | 2016.10.06 |
다양한 예제로 학습하는 데이터 구조와 알고리즘 for Java (0) | 2015.11.10 |
4년 차에 다시 읽는 기본서 (0) | 2019.03.27 |
---|---|
TDD 적용기 (0) | 2016.10.06 |
다양한 예제로 학습하는 데이터 구조와 알고리즘 for Java (0) | 2015.11.10 |
[Swift] Class와 Struct 중에 뭘 쓸까? (0) | 2016.10.28 |
---|---|
@noscape, @autoclosure (0) | 2016.10.24 |
optional을 쉽게 설명해보자 (0) | 2016.05.17 |
Hashable Protocol (0) | 2016.02.28 |
스위프트 타입 호환성 (0) | 2017.01.11 |
---|---|
@noscape, @autoclosure (0) | 2016.10.24 |
optional을 쉽게 설명해보자 (0) | 2016.05.17 |
Hashable Protocol (0) | 2016.02.28 |
func printNextValue(@autoclosure value: () -> String) {}
printNextValue(values.remove(at: 0))
func printNextValue(@autoclosure value: () -> String) {NSLog(“value \(value())”)}
출처 : 애플 도큐먼트
스위프트 타입 호환성 (0) | 2017.01.11 |
---|---|
[Swift] Class와 Struct 중에 뭘 쓸까? (0) | 2016.10.28 |
optional을 쉽게 설명해보자 (0) | 2016.05.17 |
Hashable Protocol (0) | 2016.02.28 |
4년 차에 다시 읽는 기본서 (0) | 2019.03.27 |
---|---|
신입 초보 개발자 1년 회고 (1) | 2017.02.03 |
다양한 예제로 학습하는 데이터 구조와 알고리즘 for Java (0) | 2015.11.10 |
zipalign -v 4 foo.apk bar.apk
4413714 resources.arsc (BAD - 2)Verification FAILED
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [keystore file] foo.apk [alias]
keytool -keystore [keystore file] -list -v
jarsigner: unable to sign jar: java.util.zip.ZipException: invalid entry compressed size
zip -d foo.apk META-INF/\*
android:debuggable="false"
SyncAdapter는 무엇이죠? (0) | 2016.05.10 |
---|---|
UNEXPECTED TOP-LEVEL EXCEPTION Multiple dex files define (0) | 2015.09.09 |
AsyncTaskLoader는 무엇이죠? (0) | 2015.08.14 |
if let actualNumber = Int(possibleNumber) {"print("\"\(possibleNumber)\" has an integer value of \(actualNumber)”)"}
guard let rowCount = branch?.services?.count else {return 0}
스위프트 타입 호환성 (0) | 2017.01.11 |
---|---|
[Swift] Class와 Struct 중에 뭘 쓸까? (0) | 2016.10.28 |
@noscape, @autoclosure (0) | 2016.10.24 |
Hashable Protocol (0) | 2016.02.28 |
SyncAdapter는 무엇이죠?
SyncAdapter는 2010년 구글 IO에서 발표됐습니다. 디바이스와 서버를 자동으로 동기화시켜주는 기능을 합니다. 다음과 같이 Account가 추가됩니다. 어떤 방식으로 sync할 것인지는 사용자가 매니지할 수 있습니다.
1. 서버의 데이터가 변경됐을 때
2. 디바이스의 데이터가 변경됐을 때
3. 시스템이 네트워크 메시지를 보냈을 때
4. 특정 주기로
5. 필요할 때
SyncAdapter 장점
1 ~ 4번의 sync 시 프레임워크 내 어카운트가 등록되어 별도의 인증없이 가능합니다. 게다가 디바이스의 베터리 상황에 따라 OS가 sync 여부를 판단한다고 합니다. 구글 도큐멘트에선 5번을 권장하진 않습니다. 유저에게 리프레쉬 권한을 주면 데이터가 변경되었다는 아무런 근거 없이 sync를 시도하게 되어 네트워크와 배터리 자원을 효율적으로 이용하지 못하게 된다는 게 설명입니다. (안드로이드 디벨로퍼 문서 참조)
SyncAdapter 단점
SyncAdapter는 Content Provider와 붙어 다닙니다. Content Provider는 다른 어플리케이션과 데이터를 공유하지 않으면 굳이 만들 필요가 없는데 SyncAdapter를 쓰려면 달아야 한다는 거죠. 물론 Dummy로 만들면 CP를 모두 구현하지 않아도 됩니다. SyncAdapter를 Device와 서버 간의 데이터 전송을 전담하는 객체로 만들 수 있는 까닭에 구조적으로 앱을 더 깔끔하게 만들 수 있게도 해줍니다.
"zip 정렬되지 않은 APK를 업로드했습니다" 해결하기 (0) | 2016.06.17 |
---|---|
UNEXPECTED TOP-LEVEL EXCEPTION Multiple dex files define (0) | 2015.09.09 |
AsyncTaskLoader는 무엇이죠? (0) | 2015.08.14 |