전체 글 10

배열 (Array)

배열은 값 또는 변수 요소의 집합으로 구성된 구조로, 하나 이상의 Index 또는 Key 로 식별 된다. 자료구조 일반적으로 연속 방식과, 연결 방식이 존재한다. 메모리 공간 기반의 연속(Contiguous) 방식 (대표적으로 Array) 포인터 기반의 연결(Link) 방식 (대표적으로 Linked List) 배열은 어느 위치에나 O(1) 에 조회가 가능하다! O(1)인 이유 0x00에서 시작하는 int 배열에서 4번째 값에 접근하고자 하는 경우, int 배열 이므로 각각 4바이트로 계산한다. 메모리 크기에서 4*3 = 12 의 값인 0x0C 가 4번째 값의 시작점이 되고 이렇게 주소를 찾으면 메모리에 적재된 값을 바로 읽어 올 수 있다. 배열의 개수에 관계없이 주소를 즉시 계산 가능하기 때문에 O(1)..

[Android] 반사효과 이미지 뷰

안드로이드의 ImageView 를 사용함에 있어서, 바닥의 물에 비친 반사효과가 필요할 때가 있었는데 구현 과정을 코드로 정리 해보았습니다. 구현 화면 구현하려는 효과는 위의 이미지와 같이, 이미지가 물에 비친듯한 효과로 반사되어 보여주도록 구현 할 예정입니다. 일단 해당 효과를 구현할 ImageView 클래스를 만들어 주어야합니다. AppCompatImageView 를 상속한 ReflectionImageView 클래스를 생성 해줍니다. 이미지 뷰 이므로 전달받은 이미지 리소스를 적용 할 수있도록, setImageDrawable() 과 setImageResource() 를 오버라이드 해줍니다. 효과를 적용하는 메소드를 생성하고, 기본적인 예외 처리등의 코드를 작성 해주도록 합니다. 초기 코드 class ..

Programming/Android 2021.07.18

안드로이드 Kotlin Android Extension Deprecated 소식

코틀린으로 안드로이드 개발을 해보신 분들은 아마 많이 쓰셨을 Kotlin Android Extensions 가 Deprecated 되었습니다. 아래 링크를 통해 Kotlin 버전 1.4.20-M2 라는 Pre-release 버전에서 Deprecated 되었다는 것을 확인 하실 수 있습니다. github.com/JetBrains/kotlin/releases/tag/v1.4.20-M2 Release Kotlin 1.4.20-M2 · JetBrains/kotlin Info about particular features KT-25960 Kapt: Support new @JvmDefault functionality KT-40030 Parcelize: Support the new Parcelize plugin in..

Programming/Android 2020.10.21

Dagger Hilt 2.28-alpha 버전 사용시 주의 사항 [Bug]

Dagger Hilt 2.28-alpha 버전으로 개발을 마친 신규 앱을 출시를 하는 상황에서 앱에서 사용중이지 않는 권한에 대한 경고를 확인 하였다. android.permission.READ_PHONE_STATE 와 android.permission.READ_EXTERNAL_STORAGE 에 대한 권한이 사용되고 있다고 표기 되었는데, 사용중인 라이브러리에서 또한 짐작가는 곳이 없었다. 안드로이드는 사용중인 라이브러리를 포함한 모든 권한들은 Manifest 에 명시하게 되어있고 모든 Manifest 의 정보들은 빌드시에 하나의 파일로 병합 되기에 어디서 권한을 사용하고 있는지 확인이 가능하다. 매 빌드시마다 생성되는 app/build 폴더에서 outputs/logs 에 들어가면 manifest-mer..

Programming/Android 2020.10.16

파이썬 기초문법(2)

함수와 모듈 #함수 def print_ntimes(n): print("Somthing") def cal_upper(price): increment = price * 0.3 upper_price = price + increment return upper_price def cal_upper_lower(price): offset = price * 0.3 upper = price + offset lower = price - offset return (upper, lower) #결과를 tuple 로 반환 모듈을 사용하려면 import 로 추가 하여 사용하면 된다 시간다루기 # 현재 시각을 반환하는 함수, 1970년 1월 1일 0시 0분 0초 기준, 초 단위로 지난 시간 알림 >>> import time >>> t..

Programming/Python 2020.08.19

파이썬 기초 문법(1)

최근 파이썬을 공부하면서, 간략하게 사용법만 요약 해서 정리 하였습니다. 공부 사이트 및 출처 : https://wikidocs.net/book/110 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 문자열 인덱싱 및 슬라이싱 mystring = 'hello world' len(mystring) >> 11 mystring[0:5] >> 'hello' mystring[6:] >> 'world' mystring[:5] >> 'hello' mystring[:] >> 'hello world' mystring[6:-1] >> 'worl' 문자열 자르기 my_jusick = "naver daum" my_jusik >> 'naver daum' my_jusic.split(' ') >> ['na..

Programming/Python 2020.08.16

Git Commit Message Convention ( 깃 커밋 메세지 컨벤션)

Git으로 작업을 하다 보면, 커밋 메시지 컨벤션을 정할 때 종종 고민이 되곤 합니다. 커밋 메세지 컨벤션을 정의한 스타일 가이드가 많이 있지만 많이 사용되는 스타일을 정리해 보았습니다. Udacity Git Commit Message Style Guide 유다시티의 커밋 메시지 스타일 가이드입니다. - 메시지의 구조 type: subject body footer 작성 방법 - 제목에 포함되는 유형(Type) : feat: 새로운 feature fix: 버그 등 수정 docs: 문서 내용 변경 style: 포맷, 세미콜론 수정 등 코드가 아닌 스타일에 관련된 수정 refactor: 리팩토링 코드 test: 테스트 코드 추가 및 리팩토링 테스트 등 chore: build task 수정, 프로젝트 매니저 설..

Programming/Tips 2020.08.05

안드로이드 스튜디오 Build Error 발생시 해결 법

안드로이드 개발을 하면서 안드로이드 스튜디오 IDE 에서 갑작스레 프로젝트 내의 클래스들이 'Unresolved Reference'로 Warning 이 뜨는 경우나, 코드 파일을 열었을 때 XML 또는 Gradle의 내용이 보이는 경우가 있습니다. 이 외에도 안드로이드 스튜디오를 사용하면서 프로젝트가 아닌 IDE 의 문제라고 의심되는 경우가 종종 있는데, 이럴 때 해결할 수 있는 방법들에 대해 적어 보겠습니다. Android Studio Build Error 해결 방법 1번 부터 간단하게 해결할 수 있는 방법 들로, 대부분의 경우 1, 2번의 과정으로 해결이 됩니다. 프로젝트가 Build 될 때의 속성이나 설정 값들에서 데이터 충돌이 일어나는 경우에 3, 4 과정을 통해 해결이 되었습니다. 1. Clea..

Programming/Android 2020.01.04 (1)

안드로이드 앱 아키텍처 가이드

Google Developer 사이트의 앱 아키텍처 가이드의 내용을 정리 한 것입니다. 일반적인 데스크톱의 어플리케이션은 보통 단일 진입점으로 하나의 모놀리식 프로세스로 실행이 됩니다. 하지만 Android 의 경우에는 훨씬 복잡하며, Activity, Fragment, Service, Content Provider, Broadcast Receiver 등과 같은 앱 구성요소를 포함합니다. 모바일 환경에서는 앱을 사용하는 도중 언제든지 전화나 알림에 의하여 사용 환경이 중단 될 수있으며, 중단에 대응 하고 난 뒤 본래 프로세스로 돌아가서 작업을 계속 진행 할 수 있어야 합니다. 휴대기기는 리소스가 제한되어 있기에, 운영체제에서 새로운 앱을 위한 공간을 확보하도록 일부 앱프로세스를 언제든지 종료 할 수 있어..

Programming/Android 2019.10.07

Udemy Course 다운로드 하기

youtube-dl을 사용한 Udemy 강좌 다운로드하는 방법 Udemy를 통해 강의를 몇 번 본 적이 있는데, 볼 때마다 느린 속도로 인해 수강에 불편함이 있었고 이를 개선하려면 VPN을 통해 접속하여 속도 개선을 시키는 방법이 있었다. 하지만 볼 때마다 VPN 을 켜서 접속하기도 솔직히 번거롭고 귀찮아서, 전 강의를 다운로드하여서 오프라인에서도 볼 수 있도록 다운로드를 하기로 생각하였고 처음에는 udemy-dl 을 이용하여 시도했으나 생각보다 과정에서 문제가 발생하여 찾던 도중 youtube-dl 을 이용하기로 하였다. Step 1. youtube-dl 설치 https://github.com/ytdl-org/youtube-dl 을 Installation을 참고하여 설치 작성자는 Windows10 환경..

Programming/Tips 2019.10.04