본문 바로가기

[Android] 상수 관리하기 기존 상수 관리에는 2가지 방법이 있다. 1. 클래스 하나를 생성한 후 상수를 넣는 방법 장점 시스템 메모리를 적게 차지 단점 코드상으로 안전 장치가 없음 2. Enum으로 관리하는 방법 단점 그냥 상수보다 시스템 메모리를 약 13배 차지(int의 경우) 런타임 메모리 오버헤드 증가 장점 컴파일, 런타임 단계에서 체크 가능 안드로이드에서는 이러한 두 가지 방법의 장점을 둘 다 이용하기 위해 TypeDef라는 Annotation을 제공하고 있으며 또한 Proguard에서도 Enum 타입에 대한 최적화를 도와준다고 한다. 다만 proguard를 이용하는 방법은 완벽한 최적화를 보장하지 않기 때문에 최대한 TypeDef를 이용하는 것이 좋을 것 같다. TypeDef를 이용하는 방법은 다음과 같다. String..
[Android] 앱 디자인 참고 1. uplab : https://www.uplabs.com/ UI Kits, Icons, Templates, Themes and More - UpLabs www.uplabs.com 2. behance : https://www.behance.net/ 최고의 Behance 오늘의 큐레이터 추천 프로젝트 www.behance.net 3. dribbble : https://dribbble.com/ Dribbble - Discover the World’s Top Designers & Creative Professionals Discover the world’s top designers & creatives Dribbble is the leading destination to find & showcase crea..
[Android] Kotlin 공부 - (1) 기본 문법 훑어보기 공부하는데 참고한 자료입니다.(https://kotlinlang.org/docs/reference/basic-syntax.html) Basic Syntax - Kotlin Programming Language kotlinlang.org Package Java와 동일 Function fun 함수명(파라미터명: 타입...): 리턴 타입 fun 함수명(파라미터명: 타입...) = 리턴 값 Java에서 void 역할은 리턴 타입을 Unit으로 하거나 생략하면 됨 Variable 상수는 선언할 때 val로 선언 변수는 선언할 때 var로 선언 전역으로 선언할 때는 Java와 동일 Comment Java와 동일 Templates 어떤 String 틀 안에 바로 변수 혹은 상수값, 식을 바로 넣어줄 수 있음 Stri..
[프로그래밍] 테스트 코드 작성 시 private 메소드에 대한 고찰 회사에 다니면서 혹은 사이드 프로젝트를 하면서도 왠만하면 테스트 코드를 작성해 왔었다. 첫 회사를 나오고 나서는 위 주제와 같은 고민을 한 적이 없었지만 앞으로 좀 더 규모가 커지고 복잡한 로직이 들어가는 프로젝트를 진행하게 된다면 위 같은 고민을 할 것 같아 미리 정리해두려고 이 글을 적는다. 잘 지켜질지는 모르겠지만 그래도 최대한 지켜봐야겠다. 내린 결론은 private 메소드에 대한 직접적인 테스트 코드를 왠만하면 작성하지 않는 것이다. - private는 밖으로 노출된 부분이 아니기 때문에 Reflection을 통해서 강제적으로 테스트 코드를 짤 수 있음.(Android에서는 PowerMock에서 제공) - 테스트 코드는 기존의 객체 혹은 클래스에 전혀 변형을 주지 않고 테스트하는 게 제일 좋은 ..
[Android] Firebase Analytics, Crashlytics 연동하기 Firebase Analytics, Crashlytics 연동 소개 Android에 Firebase Analytics, Crashlytics를 연동할 수 있습니다. 준비물 Android Studio 연동할 프로젝트 실습 https://firebase.google.com에서 오른쪽 상단의 콘솔로 이동 클릭 프로젝트 추가 버튼 클릭 프로젝트 이름 입력 프로젝트에 Google 애널리틱스 설정 여부를 선택한 후 계속 GA를 선택했다면 계정 선택 후 프로젝트 만들기, 없다면 바로 만들어짐(추후에 추가 가능) 다음 화면에서 Android 모양의 버튼 클릭 안드로이드 패키지 입력 google-services.json을 다운로드해서 app 폴더에 넣음 앱에 의존성 추가 정상적으로 되었다면 Analytics Dashbo..
[Android] Mac OS의 Android Studio에서 키보드가 정상적으로 동작하지 않을 때 원인 : Mac OS의 특수문자를 지원해주는 'hold down key' 기능이 활성화되기 때문 해결 : 터미널에서 다음과 같이 입력하면 된다. defaults write -g ApplePressAndHoldEnabled -bool false 참고 : https://stackoverflow.com/a/53938438
[Android] 안드로이드 투명도 계산기(Android Opacity Calculator) Opacity(%) : Result(Hex) :
[Node.js] Heroku FreeDyno 계속 켜진 상태로 유지하기 Heroku FreeDyno 서버를 이용해보신 분들은 알겠지만 접속이 없다면 한 5~15분 내로 서버가 sleep 상태로 들어간다. 개인적으로 테스트해본 결과 Dyno 안에서 크론으로 작업을 띄우거나 웹소켓 연결이 되더라도 서버가 sleep 상태로 들어가는 것을 막을 수는 없고 무조건 해당 서버로 웹 연결 요청이 있어야 sleep 상태로 안 들어가게 된다. 만약 인터넷과 연결된 안 쓰는 컴퓨터 혹은 NAS가 있다면 강제로 Heroku FreeDyno가 sleep으로 들어가는 것을 막을 수 있다. 그 소스는 다음과 같다. const cron = require('node-cron'); const request = require('request'); const url = '접속할 서버의 웹페이지 경로'; //..