본문 바로가기

전체 글110

[Open Source] compareTo() 정리(String) - Kotlin (1) 예전부터 뭔가를 정렬할 때, 가장 많이 썼던 함수 중 하나가 compareTo()였다. 하지만 이 함수를 쓰면서도 정확하게 어떤 식으로 반환되는지 Int형일 경우와 String형일 경우 차이가 무엇인지 등 정확히 알지 못하고 그냥 느낌대로 다른 사람들이 쓰는 것을 그대로 사용하다보니 수동적인 형태로 사용했었다. 그래서 이번 기회에 compareTo() 함수를 이용하여 여러 상황에서 테스트해보며 개념 정리를 해보려 한다. compareTo는 Comparable 인터페이스 안에 오버 로딩으로 정의되어 있고 아래와 같은 설명도 적혀있다. Comparable.kt "이 개체를 지정한 개체와 순서를 비교합니다. 이 개체가 지정된 다른 개체와 같으면 0을, 다른 개체보다 작으면 음수를, 다른 개체보다 크면 양수를 .. 2021. 3. 12.
[Algorithm] 프로그래머스 가장 큰 수(1) - Kotlin 프로그래머스의 정렬 문제 중 Level 2문제인 가장 큰 수에 대해 정리해보려 한다. 코딩 테스트 연습 - 가장 큰 수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문제의 내용을 요약하면 주어진 배열의 객체를 모두 한 번씩 사용해 만들 수 있는 가장 큰 수를 구하는 문제이다. numbers return [6, 10, 2] "6210" [3, 30, 34, 5, 9] "9534330" 제한 사.. 2021. 3. 10.
Best Way 앱 출시 일부 기능들만 구현하여 개시하였으며 추가적으로 기능들을 구현해 나갈 예정입니다. 현재는 일부 IP만 접속이 가능하게 설정되어 앱 이용이 필요하신 경우 댓글이나 메일로 연락 주시면 감사하겠습니다. 메일 주소: jypjun12@gmail.com Best Way - Google Play 앱 Best Way - Google Play 앱 Best Way는 캡스톤 디자인II 와 졸업 작품으로 만든 앱으로 교통대학교의 본부 식당의 식단을 제공하고 식권 판매를 앱을 통해서 진행할 수 있으며 구매한 식권은 QR을 통해 사용할 수 있도록 기능 play.google.com 2021. 3. 10.
[Android] Activity 정리 (4대 컴포넌트) 안드로이드는 4대 컴포넌트가 존재하는데 그 중 하나인 액티비티에 대해 정리해보려한다. 액티비티의 특징 1. 사용자와 상호작용을 하기 위한 진입점이다. 2. 앱에서 하나 이상 필요한 존재이다. 3. UI를 하나 이상 갖고 있다. 액티비티의 생명주기 안드로이드 생명주기를 보여주는 메서드들은 콜백 메서드 개념으로 구현되어 있다. onCreate() - 생명주기 메서드 중 가장 먼저 실행되는 메서드 - 전체 주기 동안 한 번만 발생해야 하는 기본 시작 로직 - 주로 데이터 목록 바인딩, 활동을 ViewModel과 연결, 일부 클래스 범위 변수를 인스턴스화 등을 처리함 - savedInstanceState 매개 변수를 수신 하며 이를 통해 이전 저장 상태가 포함된 Bundle 객체를 수신할 수 있음 onStart.. 2021. 3. 6.
GitHub Desktop 기본 사용법 GitHub에 프로젝트를 올리는 방법은 정말 많은데, 내가 사용해본 기준으로 생각정리해보면 1.Git Bash, 2.GitHub Desktop, 3. 각 환경마다 git plugin을 이용한 방법 이렇게 총 3가지가 있다. 이번엔 이 중에서 2번 GitHub Desktop을 사용한 방법에 대해 정리해보려고 한다. 우선 아래 주소로 이동해 다운로드받아준다. GitHub Desktop Simple collaboration from your desktop desktop.github.com 다운로드를 다 받았으면 GitHub Desktop을 실행시켜준다. GitHub.com에 Sign in을 해준다. File -> Options -> Accounts File -> Add local repository Choos.. 2021. 3. 5.
안드로이드 4대 컴포넌트 안드로이드 4대 컴포넌트는 대학에서 안드로이드 기초 시간에 생명주기와 함께 기본적으로 배웠던 개념인데, 그때 대충 듣고 흘려서 안드로이드 개발자로 일하면서도 이런 것을 설명 못한다는 거에 대해 창피해서 처음부터 차근차근 개념을 정리해보려고 한다. 안드로이드 4대 컴포넌트란? 안드로이드 환경에서 각 컴포넌트 마다 독립적인 기능을 갖고 정해진 역할을 수행하는 컴포넌트들을 말하며 각 컴포넌트들은 Intent를 통해 상호 통신한다. 4대 컴포넌트의 구성은 아래와 같다. 1. Activity 2. Service 3. BroadCast Receiver 4. Content Provider 이렇게 구성되어 있다. 1. Activity - 액티비티는 UI 화면을 담당하는 컴포넌트이다. - 사용자와 앱 간의 상호작용을 하.. 2021. 3. 5.
String 관련 함수 정리 문자열을 사용할 때 알아두면 유용한 method에 대해 정리해보려 한다. ​ 1. contentEquals() : Boolean CASE 1) String 문자열과 contentEquals()의 괄호 안의 문자열 비교 val str:String = "I like Apple." var contentEquals:Boolean = str.contentEquals("I like Apple.") CASE 2) String 문자열끼리 비교 val str:String = "I like Apple." var str2:String = "I like Apple." var contentEquals:Boolean = str.contentEquals(str2) CASE 3) String 문자열과 StringBuffer의 문자열.. 2021. 3. 5.
[Open Source] 개발하면서 자주 썼던 함수 정리 (maxBy, minBy, groupBy, map, reduce, indices, compareTo) 알아두면 유용한 함수들을 정리해 보려 한다. ​ 1. maxBy, minBy - 배열에서 가장 큰 수와 작은 수를 구할때 사용 fun main() { val arrInt = IntArray(10) {0} for(i in 0 until arrInt.count() step 1){ val random:Random = Random() arrInt[i] = random.nextInt(100)+1 } println(arrInt.contentToString()) // val maxNum:Int? = arrInt.maxBy{it} val maxNum:Int = arrInt.maxBy{it} ?: -1 val minNum:Int = arrInt.minBy{it} ?: -1 println("arrInt에서 가장 큰 수는 .. 2021. 3. 5.
[Android] 화면 크기 별 Layout 생성 화면 크기 별 Layout이 필요한 이유 모바일 환경에서 layout은 여러 가지 화면으로 변형될 수 있다. 예를 들면 하나의 layout을 스마트폰과 태블릿 두 곳에서 사용하면 분명 layout 객체들의 크기가 달라 보일 것이다. 또한 세로, 가로 화면의 전환에 따라 view가 달라질 수 있기에 귀찮더라도 화면의 크기에 따라 또 화면 모드에 따라 맞춰서 layout을 각자 생성해 주는 경우가 있다. ​ 구현해보기 기본 화면은 아래와 같이 세로 모드 portrait로 생성된다. ​ 그럼 가로모드 landscape 화면을 생성해 보자. New -> Layout Resource File ​ File name을 activity_main(본인이 만들려는 layout 이름과 동일하게) -> Orientation .. 2021. 3. 5.