본문 바로가기

개발

DI (Dependency Injection)는 왜 써야 하는가? 각 클래스간의 관계를 유연하게 해서 OOP에 효율적인 코드를 만들자! DI란? 객체와 객체의 관계를 주입을 통해서 연결해 주어 객체간의 관계를 유연하게 하는 것. 이라고 말할 수 있다. 그렇다면 객체와 객체간의 관계를 유연하게 하는 것은 어떤 것일까? 아래 내용으로 천천히 설명해 보겠다. 사설. 언젠가 이런 질문을 받은적이 있다. DI에 대해서 아시나요? DI는 왜 사용해야 하나요?? 나의 답은 너무나 간단하게 "OOP를 잘하려면 DI를 사용해야 합니다. " 였는데 생각해보면 이 이야기가 무엇인지 알아들을수 있는 사람이 있고 혹여는 오해 할 수 있겠다라는 생각이 들었다. 또 누군가는 좋다고 하는건 알겠는데 굳이?? DI 쓰지 않고도 개발은 가능하잖아?? 라고 생각하는 사람도 있을 것이다. 게다가 OOP를.. 더보기
Android Hilt에 대해서 알아보자 배우기 나름 쉽고 빌드하면서 오류를 찾아 낼수 있는 DI Tool 인 Hilt에 대해서 알아보자 # 환경 설정 hilt의 경우는 version에 민감하므로 전체적으로 version을 잘 맞춰줘야 할 필요가 있다. 그렇지 않으면 오류를 쏟아 낸다. 각각 아래 파일들의 버젼을 확인하고 추가 할 부분은 추가해 주자. gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip project level build.gradle dependencies { ... classpath 'com.google.dagger:hilt-android-gradle-plugin:2.38.1' //2022... 더보기
Keystore 정보를 스마트 하게 관리 하자! KeyStore정보를 스마트 하게 관리하자 github에 프로젝트를 public으로 관리할때도 그렇고 노출하고 싶지 않은 정보들이나 중요한 키 정보들을 프로젝트에 포함하다 보면 불편할때가 있다. 이럴때는 중요 정보들을 다른 파일로 분리하고 분리한 파일에서 정보를 불러와 사용 하는 방법으로 사용 하면 github에 프로젝트를 노출 해도 된다. (요즘 이직시에 github주소를 요구하는 회사들이 많으니 말이다.. 맘놓고 프로젝트를 올리고 자랑해 보자.) 프로젝트는 노출하고 노출하면 안되는 key 정보들은 숨기고!! 자 우리도 한번 해보자!! 우선 keystore를 구성하는 정보를 외부 파일로 만드는 방법에 대해서 알아보자. 안드로이드 개발자 사이트에서도 자세하게 설명하고 있다. 프로젝트 루트 디렉토리에 "k.. 더보기
Android에 deploygate 설정 하기 (테스터들에게 자동 배포 하기) 안드로이드 앱을 개발하다 보면 test를 위해서 배포해야 하는 경우가 있는데 이럴 때 사용할 수 있는 여러 가지 방법들이 있다. 서버에 apk 파일을 올려서 주소를 공유한다. 메일을 보내서 apk를 공유한다. 단말기를 받아서 개발자가 설치해 준다. adb wifi를 이용해서 한번 연결하고 개발자가 일일이 연결해서 설치해 준다. 등등..... 아직 까지 이런 방법들을 사용하고 있다면 다음 글을 잘 읽어보고 적용해 보자. 위의 방법들이 틀렸다는 이야기는 아니다. 테스트 단말이 2대뿐인데 아래 과정을 거친다면 오히려 더 귀찮을지도 모른다. 다만 대량의 테스터에게 테스트하는 경우 아래의 방법을 고려해볼 수 있겠다. 3명에게 각각 1대씩의 단말기가 있다고 해도 사실 나는 유선으로 배포 또는 메일 배포가 귀찮았다... 더보기
객체지향 프로그램 Clean Code (클린 코드) Clean Code 01 기술 부채는 생산성을 저하시킨다. 시작부터 클린한 코드를 유지 해야 한다. 빨리 목표에 다다를 수 있는 방법은 클린코드 이다. 잘 읽혀야 한다. 효율적인 코드 여야 한다. 자잘한 디테일에 신경 써야 한다. 클린한 코드는 한 가지에 집중한다. 다른이가 수정하기 쉬워야 한다. 코드는 간결할 수록 좋다. 중복을 없애라. 클래스/메소드는 한 가지 일만 하게 하라. 일찍 추상화하면 프로젝트 속도를 높일 수 있다. 유지보수를 위해 읽기 쉬운 코드를 작성하라. Clean Code 02 변수명, 메소드명을 이해하기 쉽게 작성해라. 추후에 코드를 보는 사람이(나를 포함해서) 알아보기 쉽게 이름을 명명하라. 명확하게 이름을 지어라. 헷갈리게 하는 이름은 피해라. 개발자에게 의미 있는 이름을 사용할.. 더보기
FCM firebase 안드로이드 포스팅을 시작하기로 하면서 가장 먼저 쓰는 글이 GCM을 대신할 FCM이다. 2014년 firebase를 구글이 인수했다. 이후에 이렇게 준비해서 내어 놓을 줄이야.. 간략하게 어떻게 사용하는지 보자 android studio를 기준으로 작성되었다. 잡설이지만.. 나는 기본적으로 이클립스로 안드로이드 개발을 해오고 있었다. android studio를 이용해보려고 몇번씩이나 시도해보다가 바쁜 프로젝트 일정 및 사양 낮은 pc환경으로 인해 핑계아닌 핑계를 대고 미뤄 두고 있었다. android sdk 매니저를 통해 google play service를 업그레이드 하고 났더니 gcm이 동작하지 않는 것이었다. 이것을 이유로 FCM을 접해 보고 간략하게 정리해 본다. 우선 다음 링크를 보고 참고 해.. 더보기