방대한 문서보다 동작하는 소프트웨어

전체 글 269

[안드로이드] 코틀린, 컴포즈 최신버전 빌드 에러 해결, Compose compiler

에러 This version (1.2.0-rc02) of the Compose Compiler requires Kotlin version 1.6.10 but you appear to be using Kotlin version 1.7.10 which is not known to be compatible. Please fix your configuration (or suppressKotlinVersionCompatibilityCheck but don't say I didn't warn you!). 코틀린과 컴포즈의 최신버전을 사용하려는데 위와 같은 빌드에러가 나타났습니다. 원인 원인은, kotlinCompilerExtensionVersion 과 관련이 있습니다. 코틀린이나 컴포즈를 최신버전으로 사용하고자 할..

개발 2022.07.17

[안드로이드] Android Studio 의 유용한 기능

Android Studio 에는 유용한 기능이 많습니다. 저도 여러가지 기능을 사용하고 있지만, 평소에 사용해보지 못한 기능을 나열해봤습니다. 스크래치 파일 Playground 와 비슷한 기능입니다. 형식에 구속받지 않고 빠르게 실행해볼 수 있습니다. https://www.jetbrains.com/help/idea/scratches.html Scratch files | IntelliJ IDEA www.jetbrains.com 변경 사항이 있는 모듈 표시 변경 사항이 있는 모듈을 파란색으로 표시해줍니다. 패키지가 파랗게 변합니다. `전기뱀장어` 버전부터는 기본설정이 ON 입니다. Preferences-> Version Control-> Show directories with changed descenden..

개발 2022.06.21

[안드로이드] Attach Debugger to Android Process 오류 팝업

Warning: debug info can be unavailable. please close other application using adb: monitor, ddms, eclipse // 경고: 디버그 정보를 사용할 수 없습니다. // adb를 사용하여 다른 응용 프로그램을 닫으십시오: 모니터, ddms, 이클립스 안드로이드 스튜디오에서 디버깅을 하려는데, 위와 같은 경고 메시지가 뜨면서 디버거가 동작하지 않을 때가 있습니다. 원인 ADB 가 Disconnect 된 실제 또는 가상 장치를 연결하고 있거나 캐시하고 있기 때문 입니다. 해결책 Android Studio 를 종료하고, adb 로 서버를 kill, start 하고 usb 연결을 재시작 하면 됩니다. adb kill-server adb st..

카테고리 없음 2022.05.10

[안드로이드] logcat, pidcat

필자는 pidcat 을 오래 썼다. 습관이 될 정도였다. 그러나 맥OS를 12.3.1 로 업데이트 한 후로 pidcat이 동작하지 않는다. pidcat은 python2 를 사용하지만 맥 OS가 이전에 존재 했던 python2 를 제거하고 python3 를 설치했기 때문이다. 문제는 여기서 그치지 않는다. pidcat 을 커스텀하여 python3 로 동작하게 만들어서(어떻게??) 사용한 사람들은, python3 로 pidcat을 동작시켜도 필터링이 안된다고 주장하고 있다. 필터링이 안되는 `로그 출력기`를 누가 사용하겠는가. 내가 알지 못하는 현자들이 pidcat 제작자에게 issue를 제기하고 PR 을 요청했으니 기다리는 수밖에.. 그러나 제작자는 반응이 없다. 필자는 일단 기본으로 돌아가기로 했다. 쓸..

개발 2022.04.25

[터미널] cURL 을 써보자

cURL(client URL) 은 API를 빠르게 호출하고자 할 때 유용하다. 상황에 따라서 PostMan과 같은 API 호출 앱보다 빠를 수 있다. 물론 Swagger 가 있다면 굳이 사용할 필요는 없다. 항상 Swagger 가 존재한다는 보장이 없으니, 자주 사용하는 cURL 명령어는 익혀 두는 게 편할 것 같다. GET curl -H 'X-Auth-Token: token..' \ -X GET \ https://api-xxxx.co.kr/user POST curl -d 'name=jaeho&age=20' \ -X POST / https://api-jaeho.co.kr/user \ 는 개행을 뜻한다. -X GET, -X POST 는 생략 가능하다. -d 가 있느냐 없느냐로 POST 와 GET을 구분하는..

개발 2022.04.16

[안드로이드] Android Studio 필수 설정, 플러그인, 단말설정, 도구

필수 설정 메모리 설정 A.S 를 실행하는 JVM(Java Vertual Machine)은 미리 정의된 메모리 양을 할당한다. 기본값은 플랫폼에 따라 다르지만, 이는 안드로이드 앱을 개발함에 있어 대부분 부족하다. 때문에 속도가 느려지기 전에 메모리 힙을 늘려 사용하는 것을 권장한다. 그렇지 않으면 미리보기 화면을 렌더링 하는 중에 A.S 가 먹통이 될 수 있다. 필자는 12GB를 할당한다. -Xmx12288m Help > Custom Editor VM Options... > studio.vmoptions(파일) 에서 설정 가능하다. 최신라이브러리 체크 비활성화(Lint) Preferences -> Editor -> inspections -> NewerVersionAvailable 비활성화 시키는게 좋습..

개발 2022.04.08

중요 정보가 평문 으로 노출되지 않도록(메모리 덤프) 막기

중요한 정보를 String 타입에 할당하여 사용하면, 메모리 덤프에서 평문이 노출되게 된다. 비밀번호를 password라고 설정했다고 가정하자. 이를 변수에 그대로 할당 후 의도적으로 메모리를 덤프했을 때 password 가 Hex(16진수) 코드들 사이에 그대로 노출되는 것을 확인할 수 있다. String 변수에 담아 사용 후, 변수에 null을 할당한다고 해도 메모리에는 password 가 여전히 평문으로 남아있다. null은 새로운 메모리 주소에 할당되기 때문이다. 그러므로, 중요 정보는 String 타입에 담지 말고 Char형태를 배열에 담아 사용하도록 하자. 사용 후에는 반드시 다른 값으로 채워주자. fun overwrite() { val password = charArrayOf('p','a',..

개발 2022.03.11

[안드로이드] 테스트 광고가 나오지 않을 때

서론 갑작스럽게 테스트 광고가 나오지 않았다. 오프닝 광고도, 전면 광고도 나오지 않았다. 본론 로그는 아래와 같다. ad error: { "Code": 3, "Message": "No ad config.", "Domain": "com.google.android.gms.ads", "Cause": "null", "Response Info": { "Response ID": "null", "Mediation Adapter Class Name": "", "Adapter Responses": [] } } 구글에 Android No ad config 로 검색하면 수 많은 검색 결과를 볼 수 있고, 각 웹사이트는 해결책을 제시해 주고 있다. 대부분의 해결책으로서 테스트단말을 등록해주면 된다 라는 것이다. 구체적인 방..

개발 2022.03.06

[안드로이드 ] compileSdk 버전 vs. targetSdk 버전

두 SDK 버전(compileSdk와 targetSdk)의 역할 두 SDK 버전(compileSdk, targetSdk)은 Android 에서 호환성을 처리하는데 중요하다. compileSdk 과 targetSdk 는 완전히 다른 의미와 목적을 가지고 있다. compileSdk 버전 compileSdk 는 앱을 컴파일 하는데 사용할 SDK 버전을 말한다. compileSdk 를 최신으로 설정하면 최신 API를 액세스할 수 있다. compileSdk 는 컴파일 시에만 사용되며 aab, apk 파일이 포함되지 않는다. 때문에 compileSdk 를 항상 최신으로 유지하는 것이 좋다. 최신으로 유지한다면 3 가지이 이점이 있다. 새로운 API에 대한 컴파일 검사를 받을 수 있다. 새로운 API를 사용할 수 있..

개발 2022.02.07

[안드로이드] spotless 를 적용하자

spotless 란? spotless 는 코드를 흠 잡을데 없이 유지시켜주는 도구다. 적용하기 spotless는 ktlint 를 사용하고 있는 프로젝트 수준의 build.gradle.kts 에 아래의 코드를 삽입하자! plugins { id("com.diffplug.gradle.spotless") version "3.27.1" } subprojects { apply(plugin = "com.diffplug.gradle.spotless") val ktlintVer = "0.43.2" spotless { kotlin { target("**/*.kt") ktlint(ktlintVer).userData( mapOf("max_line_length" to "100", "disabled_rules" to "impor..

개발 2022.01.10

[안드로이드] 프로가드를 설정하는 세 가지 방법(Kotlin DSL)

안드로이드 프로젝트의 앱 수준 build.gradle 에서 프로가드를 적용하는 방법에는 대략 세 가지가 있다. 첫번째: proguardFile(file("proguard-rules.pro")) proguard-rules.pro 파일에 모든 라이브러리의 proguard rule 을 작성한다. 간편하다. 두번째: proguardFiles( files( "proguard-rules-retrofit.pro", "proguard-rules-glide.pro", "...", ) ) 라이브러리 별로 파일을 다르게 하여 작성한다. 라이브러리 하나에 대한 가독성이 높아진다. 다만 결국 여러 라인을 작성하게 된다. 세번째: // 아래 두 줄은 생략해도 무방하다. proguardFile(getDefaultProguardFi..

개발 2022.01.09

[깃허브] 새 저장소에 푸시 하기, 기존 저장소에 로컬 데이터 푸시 하기

깃허브의 새 저장소에 푸시하기 echo "# NewProject" >> README.md git init git add README.md git commit -m "first commit" git branch -M main git remote add origin ~~.git git push -u origin main 깃허브의 기존 저장소에 로컬 데이터 푸시하기 git init git add * git commit -m "first commit" git remote add origin ~~.git git branch -M main git push -u origin main git init 하면 .gitignore 파일이 만들어 진다. 곧바로 commit 한다면 불필요한 파일을 푸시 될 수 있다. 때문에 ...

개발 2021.12.09

자유론 / 존 스튜어트 밀 / 서병훈 / 책세상

전자책 리더기를 구매해서 처음 읽은 책이다.자유와 개별성에 대해서 말하고 있는 책이다. 보기 시작한 지 얼마 안됐을 때 어디 선가 들어봤던 말들이 글로 실려 있었다.그것은 자유와 개별성에 대한 것들이다. 기억을 더듬어 보니, 유시민 작가가 TV 토론 때 했던 말들이 조금 떠올랐다. "국정 교과서" 채택 관련 토론 때 반대 진영에 있던 유시민 작가 했던 말들이 이 책에 실려 있었다. 해설이 함께 있어서 볼만한 책이다.

일반서적 2018.02.21

자기관리론 / 데일 카네기 / 베스트트랜스 / 더클래식

데일 카네기의 인간관계론을 시작으로 자기관리론을 넘어 성공대화론까지 연이어 보았다. 한 해의 시작을 데일카네기와 함께 한 셈이다. 성공대화론은 거의 읽지 않았다. 기억력에 관한 부분만 보았다. 다른 주제들은 관심이 없었기 때문이다. 자기관리론은 뻔한 내용들로 이루어져 있을 것이라 생각했다. 예상은 적중했다. 그러나 다시 한번 되새기는 기회가 되었다. 걱정을 없애는 방법은 아주 맘에 들었다. 하고 싶은 일들에 대해서 집중해서 하라는 것, 바쁘게 움직이라는 것, 인생은 짧으니 걱정하는 것에 시간낭비 하지 말라는 것 등이 내 마음에 남았다. 혹시라도 큰 걱정이 생기게 되면 다시 한 번 읽어볼 필요가 있을 것이다.

일반서적 2018.01.12

실용주의 사고와 학습 / 앤디 헌트 / 박영록 / 김창준 감수

SQ3R로 의도적으로 읽기훑어보기(Survey) : 목차와 장 요약을 훑어보면서 전체적인 개요를 파악합니다.질문(Question) : 생각나는 질문들을 적어놓습니다.읽기(Read): 전체를 다 읽습니다.낭송(Recite):요약하고, 메모하고, 스스로 표현해 봅니다.복습(Review):다시 읽고, 메모를 확장하고, 동료와 토론합니다. 이 기법의 핵심은 이것이 의도적이라는 것입니다. 아무렇게나 책을 집어서 읽고는 기억하면 좋고 안 나면 어쩔 수 없고 하는 식이 아니라 훨신 더 사려 깊고 의식적이고 깨어 있는 접근법입니다. 마인드 맵으로 통찰을 시각화하라 여러분의 프로젝트에 안전망(버전 관리, 단위 테스트, 자동화)이 갖추어져 있지 않다면 지금 당장 구축해야 합니다. 책을 덮으세요. 기다리겠습니다. 여러분의 ..

개발서적 2018.01.03

아이의 사생활 1 / EBS 아이의 사생활 제작팀 / 지식플러스

정말 좋은 책. p. 60 아이들은 태어나는 순간부터 남자 혹은 여자로서의 차이를 갖는 것이 분명했다. p. 65 실험 결과 4세아 6세 아이들의 성 개념이 확실히 다르다는 것이 드러났다. .... 4세 아이들은 옷이나 역할이 바뀌면 성별이 바뀐다고 생각했다. 6세 아이들은 성은 평생 변하지 않는다는 사실을 잘 알고 있다. p. 67 연구를 진행한 서울대 심리학과 곽금주 교수는 여자아이들이 확실히 남자아이보다는 사람들의 얼굴을 더 잘 기억했다고 설명했다. p. 68 여자아이의 뇌는 남자아이의 뇌에 비해 태어날 때부터 사람의 얼굴을 좋아하는 성향을 가지고 있다. p. 80 남자아이들은 차종이나 약속 장소를 잘 기억한 반면, 여자아이들은 음악이나 운전자의 나이, 사는곳 등을 더 잘 기억해냈다( 뇌의 차이 때..

일반서적 2017.11.26

아이의 사생활 2 : 정서, 인성 발달 / EBS<아이의 사생활> 제작팀 / 지식플러스

아이가 16개월 정도 됐다. 많은 도움이 됐다. 아내 또는 엄마는 혼이 쏙 빠질듯한 육아로 이런 책을 볼 여유가 없다. 남편이 보고 알려줘야 한다. 그리고 실천해야 한다. 이 책을 보면, 아이에 대해서 뿐만 아니라 나 자신, 남과 여에 대해서도 알게 된다. p. 35 세 살 아이의 거짓말에는 과잉 반응하면 안 된다. 아이의 거짓말에 놀라 과잉 반응을 보여서는 안 된다. 만 3세 아이들은 현실과 환상을 잘 구분하지 못한다. 잘못을 저질렀을 때 누가 그랬냐고 물어보면, 다른 누군가에게 그 탓을 돌리곤 한다. 하지만 이것을 거짓말로 받아들여서는 안 된다. 이는 발달 과정의 하나일 뿐이다. 세 살 아이는 착한 사람은 나쁜 짓을 하지 않는다고 여기기 때문에, 나쁜 결과의 행동과 자신을 일치시키지 못한다. 아이를 ..

일반서적 2017.11.25

밤이 선생이다 / 황현산 / 난다

밤이 선생이다 / 황현산 / 난다 청와대에 초청받은 노회찬 의원이 문재인 대통령 부부에게 선물해서 뉴스를 타게 된 책이라고 하여 봤다. 밤이 선생이다? 저자는 “낮이 이성의 시간이라면 밤은 상상력의 시간이다. 낮이 사회적 자아의 세계라면 밤은 창조적 자아의 세계다. 밝은 곳에 있는 가능성은 우리가 다 아는 가능성이고, 어둠 속에 있는 길이 우리 앞에 열린, 열릴 길이다."라는 의미에서 제목을 지었다고 한다. p. 174 "밥하기보다 쉬운 글쓰기"저자는 당신이 잘 아는 것, 사소한 것, 당신의 실패와 변화에 대해 쓰라고 말한다. 사소한 것과 우리가 잘 아는 것은 사실 같은 것이다. 일상에 묻혀 살아온 사람이 거창한 지식을 갖기는 어렵다. 까다롭고 복잡한 이론체계에 친숙 해진다는 것도 쉬운 일이 아니다. 그..

일반서적 2017.11.02

김형석 수필선집 / 김형석 / 지식을만드는지식

김형석 수필선집 / 김형석 / 지식을만드는지식 김형석 교수의 수필을 모은 것이다. 볼만 하다. 또 보고 싶다. 일단 이 분의 글을 모두 읽어봐야 겠다. p. 61 이왕 한 평생을 살 바에는 어렵다 하더라도 보람 있는 일을 택해야 하지 않을까. p. 65 크게 삼가야 할 것이 있다. 자기 혼자서 모든 일을 다 하려고 하는 사람의 태도다. 그 사람은 협력을 얻지 못하며 후계자를 기르지 못하므로 많은 노력을 한 뒤에도 결과가 줄어들고 만다. 우리 주변에는 그런 사람이 상당히 많다. 남으로 하여금 일을 하도록 맡겨 두지는 못해도 일을 동료들에게 나누어 맡길 줄은 알아야 한다. 모든 일을 나 혼자 한다고 생각하는 사람은 모든 일에 실패하기 쉽다. p. 366 예수는 왜 유다가 태어나지 않았으면 좋을 뻔했다고 말했..

일반서적 2017.10.09

메모의 힘:매일 모으는 성공의 조각 / 유용근 / 한국경제신문

메모의 힘:매일 모으는 성공의 조각 / 유용근 / 한국경제신문 오래간만에 메모에 관한 책을 읽었다.자기계발을 하려는 사람에 권장할 만한 책이다. 거의 모든 사람들이 들어본, '책 속에 길이 있다'라는 말이 있다.그러나 그 길을 알려주는 책은 거의 없다. 그냥 읽고 기록하라는 말 뿐이다.메모의 힘은 그 길을 알려주고 있다. 저자는 '일독일행'이 그 길을 가는 방법이라고 말한다. 즉, 책 한 권을 읽고 한 가지를 실천하라는 의미다.독서에 지친 사람이나, 책을 왜 읽어야 하는지 알고 싶어하는 사람들에게 추천할 만한 책이다. 나는 수 년 전에, 이와 관련한 책으로 사카토 켄지의 '메모의 기술'을 읽고 메모를 실천한 바 있다. 그러나 얼마 지나지 않아 기록을 중단했다. 이제 다시 해야 겠다. 성공노트쓰기 : 꿈 ..

일반서적 2017.09.22

백년을 살아보니 / 김형석 / Denstory

백년을 살아보니 / 김형석 / Denstory 아직 정리중인 책이다. 한 번 더 읽어볼 필요가 있다. 이 책은 '100세 시대를 사는 현대인들에게 어떤 문제와 대화를 나눌 수 있겠는가'라는 독자들의 요청에 의해 쓰여졌다. 저자는, 독자들이 인생의 절반 이상을 지나면서 무엇을 위해 어떻게 살아야 할 것인가를 스스로 묻고 그 해답을 찾아 행복한 일생을 살아가길 바란다. 일을 하는 이유는 무엇인가.저자는, 청년시절에는 가난과 생계 때문에 돈을 벌기 위해 했다. 중년에 들어서는 일을 위해서 일을 했다. 즉, 일의 중요성을 알고 삶으로부터 가치와 보람을 얻기 위해 일을 한 것이다. 장년에 들어서는 이웃과 사회를 위해 봉사하기 위해 일을 하고 있다. 도움을 주고 받는 삶을 살고 있다. 얼마나 오래 살면 좋을까.'얼..

일반서적 2017.09.20

엄마만 느끼는 육아감정 / 정우열 / 팬덤북스

엄마만 느끼는 육아감정 / 정우열 / 팬덤북스 결혼 계획이 없다면 볼 필요가 없다.자녀계획이 없는 부부도 볼 필요가 없다. 서로 위해주며 잘 살면 된다.^^ 자녀를 두었거나, 계획이 있는 부부라면 반드시 함께 봐야 할 책이다.보고 난 후 책 내용을 주제로 배우자와 함께 얘기해 보자. 건강한 가정을 유지할 수 있도록 도와줄 것이다. 다시 읽고 싶어진다.

일반서적 2017.08.31

82년생 김지영 / 조남주 / 민음사

82년생 김지영 / 조남주 / 민음사 지난 6월이 우리 아이의 돌이었다. 우리 부부는 김지영 씨 부부 보다는 조금 나은 편이다. 결혼 전 생각을 많이 했기 때문이다. 과연 우리는 아이를 키울 수 있을 것인가. 우리는 지금 부모가 될 준비가 되어 있는가. 하는 생각과 고민들을 많이 했다. 결혼 만 1년이 되었을 때 나는 준비가 덜 됐다고 했고, 아내는 갖고 싶다고 했다. (물론 아내는 주위의 시선들이 많았다) 고민끝에 아이 갖는 날짜를 잡고, 아이를 가졌다. 그리고 원하는 달에 아이가 태어났다. 나는 '많이 도와줄게'라는 말을 했고, 실제로 실천에 옮겼다. 그 결과 아내는 '행복해'라는 말을 2주 또는 한 달에 한 번 꼴로 했었다. 그러나 반성한다. 도와준다는 의미는 육아는 당연히 아내의 몫이고 나는 제 ..

일반서적 2017.08.06

흔들리지 않고 피는 꽃이 어디 있으랴 / 도종환 / 알에이치코리아

흔들리지 않고 피는 꽃이 어디 있으랴 / 도종환 / 알에이치코리아 우리나라 문화체육관광부 장관은 시인이다. 좋다.짧은 출퇴근 시간엔 시 읽기가 좋다. 이 생각이 또 바뀔지 모르겠지만,, 흔들리며 피는 꽃 흔들리지 않고 피는 꽃이 어디 있으랴 이 세상 그 어떤 아름다운 꽃들도 다 흔들리면서 피었나니 흔들리면서 줄기를 곧게 세웠나니 흔들리지 않고 가는 사랑이 어디 있으랴 젖지 않고 피는 꽃이 어디 있으랴 이 세상 그 어떤 빛나는 꽃들도 다 젖으며 젖으며 피었나니 바람과 비에 젖으며 꽃잎 따뜻하게 피웠나니 젖지 않고 가는 삶이 어디 있으랴

일반서적 2017.08.01

전자신문, 2017년 2월 28일

10초만에 뇌 활성화 정도 측정, 뇌 영상 데이터 확보 새 바람 http://www.etnews.com/20170727000119 회사 : 오비이랩제품 : 널싯(뇌 영상진단기)기능 : 레이저와 자기장을 활용, 뇌 산소 포화도 측정하여 뇌를 이미지화 / 기존 MRI(100KG, 측정시간 1시간 기계값 30억) 기능 부분 대체 네오펙트 'AI 스마트홈 재활 서비스' 개시 http://www.etnews.com/20170727000286 회사 : 네오펙트제품 : 라파엘 스마트 글러브 홈기능 : TV 속 게임에 참여하여 직접 몸을 움직이는 재활훈련

카테고리 없음 2017.07.31