본문 바로가기

전체 글

(46)
[안드로이드] 안드로이드 실행환경에 대한 간단한 설명 안드로이드의 실행환경 구성 Linux Kernel Library(Android Runtime 포함) Application Framework Application 1. Linux Kernel 안드로이드는 리눅스 위에서 돌아간다. 그리고 리눅스 커널을 사용하여 다양한 하드웨어(Bluetooth, Wi-Fi, GPS, Camera 등), 메모리 관리 등의 작업을 수행한다. 2. Library 스마트폰은 손안에 들어갈 정도로 작은 휴대기기이다. 그렇다면 이러한 휴대기기를 상대적으로 적은 용량을 이용하여 동작시켜야 하기 때문에 libc 혹은 libm와 같은 메모리 소비가 적은 라이브러리가 적합하다. 이 계층에서는 Surface Manager는 Window Manager의 화면 접근에 대한 처리, Media Fra..
[안드로이드] 2021-04-26 Kotlin In Action 정리 1. 함수와 변수 - Kotlin은 함수를 정의할 때 fun 키워드를 사용한다. fun makeFunc(name : String){ return "무야호!" } - 굳이 함수를 클래스 안에 넣을 필요 없이, 최상위 수준에서 정의할 수 있다. lateinit var temp:String fun makeTopLevelFunc(){ } class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } } - 코틀린에서 함수의 구조는 아래와 같다. fun 함수이름 ( 파라미..
[알고리즘] BOJ 1969 - DNA 회사일이 바빴다. 근래들어 잠도 부쩍 많아져서 이것저것 못하는 것들이 많다. 그래서 어제 저녁에 이걸 못풀면 잠을 안잘것이다 했는데, 15분만에 해결해서 당황했다. 그래도 어찌됐든 저찌됐든 여튼저튼 해결한건 해결한거니 기록을 남겨두기 위하여 포스팅을 한다. 이건 무슨 문제인가 가만히 문제를 읽다보면, 과거의 어머니가 항상 하시던 말씀이 떠오른다. 책을 읽으라고 하면 항상 불평했는데, 지금은 그 모든게 나의 독해력 향상을 위한 큰 그림이란걸 세삼 서른이 다 되어 느끼게 된다. 사실 문제가 무슨 말 하는지를 모른다. 정말 2번, 3번 읽어봐도 모르겠다. 진지하게. 그래서 일단 구해야 하는것을 추려봤다. 구해야할 것 1. Hamming Distance의 합이 가장 작은 DNA 2. Hamming Distanc..
[알고리즘] 완전탐색 (Brute Force) 몇 년만에 코딩테스트 대비 알고리즘 문제해결을 위한 학습을 다시 시작했다. 비교적 간단한 개념인 완전탐색을 그 시작으로 가볍게 시작해보자 완전탐색 혹은 Brute Force 라고 불리는 이 기법은 그 자체 그대로 '완전하게 탐색을 한다' 의 의미를 갖고 있다. 좀 더 구체적으로 가보자면, 완전하게 탐색을 한다는 것은 문제가 주어지고 해당 문제에서 원하는 정답을 찾기위해서 모든 경우의 수를 다 찾아보는 것이다. 철수가 과일가게를 갔는데, 살 수 있는 과일은 2가지이고 과일가게에서 파는 과일은 사과, 배, 키위, 수박, 메론, 두리안 이렇게 6개이다. 그리고 철수는 1,000원을 갖고 있고, 각 과일의 가격은 순서대로 200, 250, 310, 680, 680, 200원 이다. 그렇다면 철수가 거스름돈을 최..
라인코딩테스트를 보고나서.... 지난 주 토요일 1시부터 5시 40분까지 라인 코딩테스트를 보았다. 그래서 저번주는 포스팅이 하나도 없었다. 결론적으로 말하면, 이직 일정 전체를 하반기로 일정을 미뤄야 할 것 같다. 그렇다면, 이번 코딩테스트를 치루면서 생각한 것들을 정리해보자. 2~3년전 같지 않다. 16년도 군 전역 전, C언어에서 while에 true가 들어가면 무한루프가 돌아가는 것도 몰랐었다. 컴퓨터공학과 치고는 과하게 놀았던 결과였다. 물론 누구보다 열심히 놀아서 얻은 것들도 있어서 후회는 하지 않는다. 다만 전역 후 나도 2학년 2학기이기에 늦게나마 공부를 시작했었던 것은 사실이다. 그래서 C언어를 한 달동안 책을 달달달 외울 정도로 공부했다. 그리고 문제해결기법 등을 공부해서 ACM-ICPC에도 나가보았다. 물론 예선 3..
[안드로이드] 객체 지향 프로그래밍(OOP)에 대해 알아보자 Java를 처음 공부한 대학교 2학년 때 처음 들었던 객체지향을 한 번쯤 정리해보고 싶었다. 그러다 문득 오늘 아침에 정리를 하고싶어서 글을 쓰는데 어떻게 써야할지 대략적으로 난감하다. 뻘소리지만 한 번쯤 읽어주고, 아니다 싶으면 과감하고 휘향찬란하게 저를 가르쳐주세요.... kgo0748@gmail.com로 메일주세요 훟힣훟헿 OOP가 뭐지.... 뭘까.... 뭐라고 말하면 좋을까.... 분야를 막론하고 공부를 할 때 항상 예시를 통하여 그 개념을 이해하려는 습관이 있다. 그래서 처음 OOP를 배울때 들었던 정의보다 이해하기 위해 생각한 예시를 들어보겠다. 우리가 흔히 사용하는 리모콘과 TV로 예시로 들겠다. 그리고 그 리모콘을 하나의 객체라고 생각해보자. 그 리모콘에는 TV의 전원을 On/Off 할 ..
[안드로이드] Databinding(데이터 바인딩) 이전에 LiveData에 대해 정리하면서 나중에 dataBinding과 MVVM, Room 등을 정리한다고 했었다. 그래서 이번에는 dataBinding에 대해 포스팅을 할 것이다. dataBinding은 무엇인가 안드로이드 개발 문서에 따르면 데이터 바인딩은 레이아웃의 UI 구성요소를 앱의 데이터 소스와 결합할 수 있도록 지원하는 라이브러리라고 나와있다. 내가 봐도 조금 어려운 문장들이어서 쉽게 풀어서 설명해보겠다. 안드로이드 개발을 할 때 xml 파일로 view를 만들어주고 java나 kotlin으로 Activity를 만들어준다. 그리고 Activity와 view를 연결해주는 작업을 하게 된다. 아래와 같이 말이다. val _btnLogin : Button = findViewById(R.id.main..
[안드로이드] Youtube Data 사용하기 1. Google Cloud Platform에서 API 사용 설정하기 앱에 내가 원하는 채널이 있다면, 해당 채널에 대한 Data가 당연히 필요하다. 그리고 이 Data를 받아오기 위해서는 Google API에서 제공하는 Youtube Data API v3를 사용해야 한다. 그럼 먼저 Google API에 들어가보자 구글 클라우드 플랫폼 바로가기 Google Cloud Platform 하나의 계정으로 모든 Google 서비스를 Google Cloud Platform을 사용하려면 로그인하세요. accounts.google.com 위 링크를 클릭하면 아래 그림과 같은 화면이 나오게 된다. 아래 화면에서 우리가 들어가야할 곳은 왼쪽 메뉴바에 있는 '라이브러리' 섹션이다. 해당 섹션에 들어가면 무수히 많은 AP..