답변받기 쉬운 질문 작성하기

답변받기 쉬운 질문 작성하기 찰스의 안드로이드 오픈채팅방은 안드로이드 앱 개발에 대해 자유롭게 질문하고 토론하는 공간입니다. 먼저, 현재 오픈채팅방에 고수분들이 많이 계시고, 여러 질문에 대해 답변을 잘 해주셔서 감사하다는 말씀드리고 싶습니다. 그런데, 아마 누군가는 이렇게 생각하실지도 모릅니다. “제가 한 질문에는 답변 안 해주시던데요?” 다들 현업에 종사하시고 있고, 틈틈이 바쁘신 시간 쪼개서 더보기…

글쓴이 Charlezz,

빌드는 성공! 하지만 APK 설치는 실패! APK만 다시 설치하고 싶다면?

APK 재설치 스크립트 빌드 된 APK만 재설치 하고 싶을 때가 있다. 예를들어 Android Studio로 빌드(run)도중 단말과의 연결이 끊어지거나 APK의 업스트리밍이 실패하는 경우다. 물론 run을 다시 눌러 빌드를 새로 시작하고 APK를 설치할 수도 있지만, 경우에 따라 빌드에 최소 수분이상의 시간이 소요될 수 있기 때문에 빌드 된 APK를 재설치하는편이 낫다. 일반적으로 APK설치를 위해 adb 더보기…

동시성 프로그래밍에서 발생하는 경쟁 상태, 교착 상태에 대해 알아보자

동시성 프로그래밍(Concurrent Programming) 동시성 프로그래밍은 여러개의 계산들을 연속적으로 하는 것이 아닌 병행 처리하는 프로그램을 말한다. 이러한 동시성 코드를 제대로 작성하는 것은 쉽지 않다. 하지만 동시성 코드 작성을 통해 성능 향상을 기대할 수 있는 경우가 많기 때문에 현대 프로그래밍에서는 필수적인 요소다. 동시성 코드를 작성할 때 발생할 수 있는 공통된 문제점들에 대해서 더보기…

동시성과 병렬성의 차이

동시성(Concurrency)과 병렬성(Parallelism)은 다르다 동시성 동시성은 적어도 두 개의 스레드가 진행 중일 때 존재하는 조건이며, 가상 병렬 처리의 한 형태로 시간 분할(time-slicing)을 포함한다. 우리가 흔히 ‘동시’라고 이야기 하지만 컴퓨터(코어)는 한번에 하나의 명령어만 처리할 수 있다. 즉, 두개 이상의 알고리즘이 하나의 코어내에서 스레드간에 빠르게 교차되면서 실행되기 때문에 ‘동시’라고 느끼는 것이다. 위의 그림은 더보기…

Stackful 과 Stackless 코루틴의 차이

Stackful Coroutines vs Stackless Coroutines Stackful Coroutines 먼저 스택풀 코루틴(Stackful Coroutine)은 함수 호출시에 사용되는 분리된 스택을 가지고 있다. 코루틴이 어떻게 동작하는지 정확하게 이해하기 위해서 로우레벨 관점에서 간단히 함수 프레임과 함수 호출에 대해서 살펴볼 것이다. 하지만 먼저 스택풀 코루틴의 특성에 대해서 알아보자. 스택풀 코루틴은 자신만의 스택을 가지고 있다. 스택풀 코루틴의 수명은 더보기…

젠킨스에서 build.gradle의 versionCode 및 versionName 수정하기

Motivation 다른 부서와 긴밀히 협업을 하다보면 요청에 의해 버전코드(versionCode) 및 버전명(versionName)을 빈번하게 바꿀 필요가 있다. 개발중에 이런 요청을 받으면 작업하던 내용을 Stashing하고, 버전코드를 수정하고 커밋&푸시한 뒤 다시 Unstashing… “아.. 어디까지 했더라?” 개발자들은 공감할 것이라 의심치 않는다. 개발중에 인터럽트가 들어오면 컨텍스트 스위칭 비용이 발생하게 되고, 이는 결국 생산성 저하 및 퇴근시간 더보기…

운영체제의 Process와 Thread 이야기

Process와 Thread 이야기 프로세스(Process) 다음과 같이 위키에서 프로세스의 정의를 발췌했다. In computing, a process is the instance of a computer program that is being executed by one or many threads.   컴퓨터 분야에서 프로세스는 컴퓨터 프로그램의 인스턴스로, 하나 이상의 스레드를 통해 실행된다.   프로세스라는 명칭은 낯설수 있는데, 프로그램은 친숙하리라 생각된다. 더보기…

보일러플레이트 코드란?(Boilerplate code)

보일러플레이트란? 컴퓨터 프로그래밍에서 보일러플레이트 또는 보일러플레이트 코드라고 부르는 것은 최소한의 변경으로 여러곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드를 말한다. 보일러플레이트의 어원 보일러플레이트 코드의 어원은 신문사업에서 나왔다. 1890년대에 광고나 컬럼과 같이 계속 사용되는 텍스트 인쇄판은 부드러운 납 대신 강철로 찍기 시작했다. 이를 Boilerplate라고 불렀다. 1950년대까지 수천 개의 신문이 미국 최대 공급업체인 더보기…

macOS vs Windows 빌드 시간 테스트

테스트 목적 동일한 기기의 동일한 개발환경에서 macOS와 Windows의 빌드시간의 차이를 알아본다. 테스트 환경 테스트 기기 : 13인치 Macbook 2015 중급형 테스트 OS : macOS Mojave, Windows10 (부트캠프환경) 빌드 환경 : 안드로이드 스튜디오 버전 3.5.3, SDK Platform 29, build-tools 29.0.2 빌드 대상 프로젝트 : FinalArchitecture/JavaApp 테스트 빌드 시간 측정은 프로젝트 클린 더보기…

테스트 더블

테스트 더블(test double) 테스트 작성시, 테스트 대상 코드와 상호작용하는 객체   테스트 더블의 역할 테스트 대상 코드를 격리한다. 테스트 속도를 개선한다. 예측불가능한 실행 요소를 제거한다. 특수한 상황을 시뮬레이션한다. 감춰진 정보를 얻어낸다.     테스트 더블의 종류 1. Dummy 가장 기본적인 테스트 더블 유형. 구현이 포함되어 있지 않고, 주로 매개 변수 값으로만 더보기…

글쓴이 Charlezz,