일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- linux
- 리눅스
- gradle
- OOM
- 안드로이드 개발
- c
- 구글
- 보안
- 탐지기법
- mime
- 노개북
- 하버드
- kotlin
- ActiveMovieControl
- 악성코드
- Android
- ActiveX
- git
- 안드로이드
- java
- 자바
- Eclipse
- 코틀린
- build.gradle
- KTS
- 개발
- 안철수
- C++
- Android 4.1
- Today
- Total
목록전체 글 (234)
꿈소년의 개발 이야기
https://workplace.stackexchange.com/questions/129099/how-to-know-if-i-am-a-real-developer How to know if I am a 'Real Developer' I am in my 5th year as a developer (3.5 years as junior/mid level and now a senior dev). My current role is not going well (people issues). Anyway, I said to one of the managers I was thinking of l... workplace.stackexchange.com 스택 오버플로우 메일을 통해서 보게 된 글입니다. 전체 스레드를 읽어가다..
터미널에서 아래 명령어로 실행해서 설정한다. > defaults write -g ApplePressAndHoldEnabled -bool false 설정을 해제하려는 경우 > defaults delete -g ApplePressAndHoldEnabled
코루틴 디버깅을 하는 것은 쉽지 않습니다. 일반적으로 코루틴을 디버깅할 때, 어떤 코루틴인지 알기 어렵기 때문에 이름을 붙입니다. CoroutineName 활용 CoroutineScope(CoroutineName("MyCoroutine") + Dispatchers.IO).launch { // impl } CoroutineName 을 추가하면 해당 코루틴에게 이름이 붙습니다. 로그 메시지에서 해당 이름이 출력됩니다. 이를 통해서 디버깅할 때, 동시 다발로 발생하는 코루틴도 이름으로 식별 가능합니다. CoroutineName 이 표시가 되려면 디버깅 옵션을 추가해야 하는데요. -Dkotlinx.coroutines.debug 인텔리제이 기준으로 Run > Edit Configuration > VM option..
aar 파일 의존성을 추가하는 방법은 3가지가 있습니다. 1. module/libs 폴더에 넣어두고 의존성을 추가하는 방식 build.gradle dependencies { implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"]) } build.gradle.kts dependencies { implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar")))) } 2. aar 파일 경로를 추가하는 방식 build.gradle dependencies { implementation files('my_path/my_lib.aar') } build.gradle.kts..
노마드 개발자 북클럽 시작! #코딩 #개발자 #노마드북클럽 #노개북
> zip -r study.zip Study 압축 결과물은 이름과 확장자 zip을 명시적으로 적어둡니다. 예) study.zip 압축 대상이 되는 폴더는 해당 폴더 이름만 명시합니다. 폴더 압축은 순환하면서 압축해야 하므로 -r 을 붙여야 합니다. -r : recursive 끝.
Android 11 에서는 권한 자동 삭제 기능이 추가되었습니다. 이 기능은 오랫동안 사용하지 않은 앱이 권한을 계속 가지고 있는 문제점을 해결하기 위해서 나옵니다. 이 영향을 받게 되는 권한은 런타임 권한입니다. 런타임 권한은 흔히 앱에서 사용자에게 요청을 표시하면서 허락을 구하는 그런 권한들입니다. 예외 처리 먼저 내 앱이 권한 자동 삭제 대상으로 되어 있는지 확인해봅니다. https://developer.android.com/reference/android/content/pm/PackageManager#isAutoRevokeWhitelisted() PackageManager | Android Developers developer.android.com 대상자로 되어 있다면 권한 자동 삭제 예외 처리를..
현재 설정된 자바 버전 경로 출력하기 // 현재 설정된 자바 버전 경로 출력 > /usr/libexec/java_home 설치된 모든 자바 버전 경로 출력하기 // 자바가 설치된 모든 자바 버전 경로 출력 > /usr/libexec/java_home -V zshrc 에 각종 자바 버전별로 전환 설정하는 명령어 설정하기 # java home export JAVA_HOME=$(/usr/libexec/java_home -v 11.0.2) # Java Aliases alias oj17="export JAVA_HOME=$(/usr/libexec/java_home -v 17); java -version" alias aj11="export JAVA_HOME=$(/usr/libexec/java_home -v 11.0...
Abstract 클라우드 네이티브 애플리케이션 개발에 대해 마이크로 서비스가 핫 트렌드입니다. 마이크로 서비스의 이점 ? 향상된 확장성 회복 탄력적인 애플리케이션 기술에 구애받지 않는 애플리케이션 출시 시간 단축 CI/CD 지원을 통한 비즈니스 민첩성 향상 등등 다양한 이점이 있어서라고 합니다. API 버전 관리는 언제? 마이크로 서비스 기반 아키텍처 MSA 의 핵심 구성 요소 중 하나는 'API design & contract' 임. API 버저닝은 매우 중요하다. 클라이언트가 준비 될 때 언제든지, 기존 클라이언트가 기존 REST API 를 지속적으로 사용하게 해주고, 클라이언트 애플리케이션이 새로운 API 로 마이그레이션을 할 수 있게 한다. 버전 관리의 이점 버저닝은 API 변경 사항을 탐색하는데..
git 에서 브랜치 생성하는데 아래 오류가 발생했습니다. cannot lock ref 'refs/heads/hotfix/migration-api30': 'refs/heads/hotfix' exists; cannot create 'refs/heads/hotfix/migration-api30' 오류 발생은 이미 hotfix 브랜치가 있어서 hotfix 브랜치 폴더를 생성 못하는 게 원인입니다. 브랜치가 생성되고 구성될 때, 같은 이름의 브랜치나 폴더가 있으면 생성 못합니다. 참고하세요.
Cannot access class 'java.io.OutputStream'. Check your module classpath for missing or conflicting dependencies Cannot access class 'java.net.uri'. Check your module classpath for missing or conflicting dependencies Kotlin DSL 로 전환 처리하는 경우 이런 에러들이 나타나곤 합니다. 하지만 빌드는 잘 되죠. 단지 편집에서 접근이 안된다고 오류가 나옵니다. 아무리 invalidate restart 해봐도 해결이 안되는 경우가 생기는데, 이럴 때는 이렇게 해보세요. 1. 안드로이드 프로젝트를 닫습니다. 2. 해당 프로젝트 루트 폴더에..
현상 해당 Map 은 로 선언되어 있습니다. key 값으로 value 를 가져오는 부분에서, Unboxing of 'map.get(key.toString())' may produce 'NullPointerException' 경고 문구가 생깁니다. 원인 가져온 값을 primitive type 즉, int 변수로 받아서 생기는 문제입니다. 객체 Integer를 받아서 null 체크해야 하는데, int 타입으로 넣어버리면 null check를 못하니, 경고할 수밖에 없죠. 이 부분에 대해서 염두하시고 항상 wrapper 클래스나 객체 사용 처리를 하면서 Null 체크도 잊지 마세요. 끝.
정렬과정을 비쥬얼하게 보여줌으로써, 각종 정렬 알고리즘을 보다 쉽게 이해할 수 있습니다. 자바 스크립트로 만들어진 새로운 버전이 생겨서 다시 공유 드립니다. https://math.hws.edu/eck/js/sorting/xSortLab.html -------------------------------------------------------------------------------------- 이 자바애플릿 프로그램은 http://math.hws.edu/TMCM/java/xSortLab 에서 배포되고 있습니다. 이 문서를 제대로 확인하기 위해서는 JRE가 설치되어 있어야 합니다. JRE는 http://www.java.com/en/download/help/5000010400.xml 에서 다운로드 받을..
kotlin dsl 로 전환하기 위해서는 먼저, build.gradle 파일을 build.gradle.kts 파일로 변경해야 합니다. 그리고 kotlin 스크립트 언에 맞게 내용을 변경해주게 됩니다. 이때 가끔씩 getByName 이라든지 isMinifyEnabled 같은 프로퍼티가 인식이 안되는 경우가 생깁니다. 빌드를 하면 빌드가 잘 되지만, 안드로이드 스튜디오 편집기에서 오류가 표시되는 경우가 있습니다. kotlin 의 collection 같은 걸 접근 못하고 있다는 걸로 나타나는데, 정확한 원인은 모르겠지만 추측해 보자면 파일 접근 권한이 문제가 생기는 것 같습니다. 제가 해결한 방식은 이렇습니다. 1. 안드로이드 스튜디오를 비롯한 프로젝트 창들을 모두 닫고 종료합니다. 2. 터미널을 열고 3. ..
Object는 일부 클래스에 대해 새로운 하위 클래스를 명시적으로 선언하지 않고, 그 클래스를 조금 일부를 변경한 객체를 만들어야 할 때 사용합니다. Object Expressions 또는 Object Declarations를 사용하여 이를 처리할 수 있습니다. 그 중에서 Object Expressions 에 대해 적어봅니다. 코틀린 공식 문서를 참고했습니다. 객체 표현식 객체 표현식은 클래스 선언으로 명시적으로 선언되지 않은 클래스, 즉 익명 클래스의 객체를 만듭니다. 이러한 클래스는 일회용으로 유용합니다. 처음부터 정의하거나, 기존 클래스에서 상속하거나, 인터페이스를 구현할 수 있습니다. 익명 클래스의 인스턴스는 이름이 아닌 표현식으로 정의되므로 익명 객체 라고도 합니다. 처음부터 익명 객체를 생성하..
최근에 사용해야 할 폰트나 리소스가 필요한데... 검색을 통해서 원하는 걸 찾기란 여간 쉬운 일이 아닙니다. 무료인 줄 알았는데 자세히 들여다보면 라이선스가 까다롭게 설정되어 있거나 유료 서비스를 요구하는 것들이 많습니다. 특히 모바일용은 사용할려면 더욱 그렇죠. 최근에 평소보다 좀 더 많은 샘플 앱을 만들어보면서 라이브러리를 공부하고 있었는데요. 아무래도 좀 더 이쁘게 만들어야 그럴 듯 한 건 어쩔 수 없죠. 😂 저도 열심히 검색해서 괜찮은 걸 찾아보려고 했지만, 예쁜 건 죄다 유료!!! 🔥🔥🔥 그래서 구글이 제공해주는 뭔가 그럴 듯 한게 있지 않을까란 생각이 들어서 찾아보니 이게 있었습니다. Google Fonts 각종 폰트 및 아이콘들 사용 가능하게 구글에서 제공하는 곳. 아... 😤 그런데 이 사..
github.com/mgp/book-notes mgp/book-notes Notes from books and other interesting things that I've read. Table of contents at the end 👇 - mgp/book-notes github.com 개발 및 관련 책을 읽고 난 후에 대한 내용 정리가 된 Github 브랜치.
앱 빌드를 실패했다. 멀티 모듈 구조에서 앱 모듈에 필요한 기능을 붙이기 위해서 해당 기능을 구현한 모듈을 하나 생성했습니다. demeter law 라는 걸 아실까요? 모듈 간 의존성을 제외 시키기 위해서 기존 구성을 변경했습니다. 라이브러리 모듈을 생성해서 넣어두었는데, 예기치 못한 빌드 시점에 아래와 같은 에러가 생기면서 apk 패키징이 되지 않는 현상이 발생했습니다. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:mergeDevDebugNativeLibs'. > A failure occurred while executing com.android.build.gradle.internal..
Freedom from English. 문제는 영어를 배우기보다는 단지 영어에 대한 조각적 지식만을 습득하는 것이다.단지 책에만 나오는 지식을 배우고 있다. 그 때문에 영어는 일종의 속박이 되었고 굴레가 되었으며 감옥이다.그것은 한국인이 영어를 효과적으로 제대로 배우는 것을 막는다. [Challenges] 어려움영어는 한국어와 매우 다르며, 외국어를 배우는 것은 어렵다. 또한 평상시에 사용하지 않으며 주로 제한된 곳에서 접한다.영어가 어려운 이유는 두뇌 효율성이라고 부르는 것 때문이다.모국어를 말할 때는 저절로 모든 걸 이해한다.하지만 외국어를 말할 때는 그렇지 않다. 뇌는 아주 바쁘게 일한다.따라서 영어로 뭔가를 하는 것은 덜 효율적이고 더 피곤한 것이며 이해하기 어려운 것이다.뇌를 훈련시키는 것은 ..