본문 바로가기

전체 글36

[Kotlin] 기초 문법 정리 - 자료형 안녕하세요 VisionARy입니다. 이번 글에서는 코틀린의 자료형에 대해서 정리해보겠습니다. # 기본 자료형과 참조 자료형 자바의 자료형은 원시 타입과 참조 타입 두 가지로 나누어집니다 원시 타입 short, int, long, float, double 등의 기본 자료형으로 값 자체를 저장하는 자료형입니다 언어 자체에 내장되어 있습니다 참조 타입 String, Date, ArrayList등 객체를 생성하고 메모리 영역을 할당한 후 이를 참조하는 자료형입니다 반면, 코틀린에서는 내부적으로 모든 자료형은 클래스로 만들어지며 객체로 표현합니다. 그 중에서도 숫자로 표현하는 모든 자료형은 Number클래스를 상속 받습니다. (byte, short, int, float 등) 기본 자료형을 객체로 사용하기 위해서 .. 2020. 9. 7.
[Kotlin] 안드로이드 Kotlin First? Kotlin First! 안녕하세요 VisionARy입니다. 안드로이드 앱 개발을 시작하며 자바와 코틀린 중에서 어떤 언어를 사용할까 많은 고민을 하였는데요. 저의 경우 자바나 코틀린 뿐만 아니라 안드로이드 앱 개발 역시 처음이었기 때문에 프로젝트를 진행하면서 많은 부분을 구글링 하면서 찾아보고 공부해야 했습니다. 처음에는 코틀린의 경우 2017년이 되어서야 안드로이드의 공식 언어로 채택 되었기 때문에 레퍼런스의 양을 생각하면 자바로 프로젝트를 진행하는게 좋지않을까 생각했습니다. 하지만 빠르게 생태계가 빠르게 바뀌고 최신 스펙으로 유지보수를 해야하는 안드로이드 특성상 어차피 몇 년 이상 지난 예전 레퍼런스를 보는 것은 좋지 않을 것이라 생각이 들었습니다. 이 외에도 많은 장점들이 있다는 이유로 결국 현재는 코틀린으로 개발을 진행.. 2020. 9. 5.
[AR] Introduction to Augmented Reality AR에 대해 흥미로, 간단한 AR 어플리케이션을 만들고 있는데 무작정 튜토리얼을 따라하기에 앞서 AR의 기본적인 부분을 가볍게 정리를 해보려고 합니다. 일상적 AR AR은 실세계에 가상의 이미지를 실시간으로 증강하여 마치 원래의 환경에 존재하는 사물처럼 보이도록하는 기술입니다. 현재는 게임, 산업, 의료, 건축, 방송 등의 분야에 다양하게 모습을 드러내고 있지만 아직까지는 그 수준이 현실의 3차원 공간에 가상의 콘텐츠가 얹어지는 정도라서 일반 대중들이 오락성 이외의 목적으로 사용하기까지는 시간이 더 필요해 보이는게 사실입니다. 현재는 AR기술의 주 플랫폼은 모바일입니다. 모바일 디바이스를 이용하면 양손이 자유롭지 못하다보니 상호작용에 제약이 생기기 마련입니다. 개인적으로 AR은 착용형 디스플레이와 결합되.. 2020. 9. 4.
[BOJ 3025] 돌 던지기 문제 링크 https://www.acmicpc.net/problem/3025 3025번: 돌 던지기 이 모든 사건의 시작은 2주 전이었다. 그 날 상근이는 복도에 누워서 잠을 자고 있었다. 커다란 돌을 들고 그 옆을 지나가던 민혁이는 복도에서 잠을 자는 사람을 처음봐서 신기하게 쳐다보고 있 www.acmicpc.net 시뮬레이션 문제는 많이 다뤄서 자신있었는데 시간초과를 해결하는데 오래 걸린 문제다 순진하게 구현했다가는 O(RN)으로 TLE를 맞기 십상이다 (_ㅠㅠ_) O(RN)에서 쿼리수에 해당하는 N을 줄일 순 없다 N개의 각 쿼리당 곱해지는 O(R)을 줄이는 방법을 생각해보자 아이디어 기본 하나의 열 안에서 돌이 'O'나 'X'를 만나기 전까지 떨어지는 것을 시뮬레이션의 한 단위라고 생각해보자 돌이.. 2020. 9. 2.
[BOJ 16890] 창업 문제 링크 https://www.acmicpc.net/problem/16890 16890번: 창업 입력은 길이가 N(1 ≤ N ≤ 300,000)인 문자열 두 개로 이루어져 있다. 모든 문자열은 알파벳 소문자로만 이루어져 있다. 첫 번째 줄에 주어지는 문자열은 구사과가 고른 문자이고, 두 번째 줄에 주�� www.acmicpc.net 아이디어 게임의 진행은 구사과부터 순서대로 한 턴씩 진행되기 때문에 게임이 N턴 뒤에 끝난다고 할 때, 구사과는 (N + 1) / 2 번의 턴을, 큐브러버는 N / 2번의 턴을 갖는다 구사과는 사전순으로 가장 앞서는 문자열을 만들고 싶어 하므로 갖고 있는 n개의 알파벳 중에서 작은 순서대로 (n+1) / 2 개의 알파벳만을 사용해야 한다 마찬가지로 큐브러버는 사전순으로 가장.. 2020. 8. 31.
[Android Oreo+] 백그라운드에서 서비스 실행 배경 최근 간단한 알람앱을 기획, 구현하면서 안드로이드 공부를 하는 도중에 백그라운드에서 서비스의 실행이 필요했고 정리하고 넘어가야 할 내용이라 글에서 다루고자 합니다. 알람 앱이 갖추어야할 가장 기본적이고 핵심적인 요소는 아래 두 가지 정도 있다고 생각합니다. 1. 사용자가 설정한 정확한 시각에 알람이 울린다 알람 앱 덕분에 사용자는 일어나고자 하는 시각까지 마음 편히 잠을 잘 수 있습니다. 하지만 다음날 등교, 출근을 하는 여러분이 여느때와 같이 알람을 설정하고 잠을 청했는데 아침에 알람이 울리지 않았다면 그 앱은 사용자로부터 신뢰를 잃고 바로 삭제 될 것임이 분명합니다. 2. 사용자가 비정상적인 방법으로 종료할 수 없어야 한다 사람마다 다르겠지만 저의 경우는 아침잠이 굉장히 많습니다. 자기 전에 알.. 2020. 8. 30.