본문 바로가기

분류 전체보기239

[Kotlin IN ACTION] - Kotlin Exception (예외처리) 코틀린의 예외처리는 자바나 다른 언어의 예외(exception) 처리와 비슷하다. 함수는 정상적으로 종료할 수 있지만 오류가 발생하면 예외를 던질(throw) 수 있다. 여기서 함수 호출하는 쪽에서는 그 예외를 잡아 처리할 수 있다. 만약, 발생한 예외를 함수 호출 단에서 처리(catch)하지 않으면 함수 호출 스택을 거슬러 올라가면서 예외를 처리하는 부분이 나올 때까지 예외를 다시 던진다(rethrow) fun percentageCheck(percent : Int): Int { if(percent !in 0..100) { throw IllegalArgumentException( "A percentage value must be between 0 and 100 : $percent") }else { ret.. 2022. 7. 14.
[Kotlin IN ACITON] - Kotlin while & for loop (반복문) 코틀린 특성 중 자바와 가장 비슷한 것이 이터레이션이다. 코틀린 while 루프는 자바와 동일하다. for 루프는 자바의 for-each 루프에 해당하는 형태만 존재한다. 코틀린의 for는 for in 형태를 취한다. 수에 대한 이터레이션 : 범위와 수열 자바 for 루프에는 초깃값, 증가값, 최종값이 존재한다. 하지만. 코틀린에서는 범위를 사용한다. [Java] for (int i = 1; i 2022. 7. 14.
[프로그래머스 *Java] - 거리두기 확인하기 https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한시간 : 45분 이내 시간 내에 풀지 못했음. 로직 설계를 할 때, 너무 복잡하게 했던 부분도 있고 설계를 하는 도중에 10분이 넘어가니깐 마음이 급해져서 설계가 마무리되지 않은 상태에서 바로 구현에 들어갔음. 그러니, 완벽하지 않은 로직과 input Data 타입도 착각하고 코드를 구현해서 '맞왜틀' 하다가 시간이 끝남. bfs 를 간만에 풀어서 그런지, 머리가 굳었던 거 같음. imp.. 2022. 7. 13.
[프로그래머스 *Java] - 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한시간 : 30분 이내 스택을 이용하여, 스택에 가장 최근값을 확인해주면서 괄호 쌍이 맞을 때마다 pop을 해주고 최종적으로 스택에 자료가 남아있다면 올바르지 않은 경우고 스택이 비어있을 경우엔 올바른 경우라 생각하고 로직 구현을 했음. import java.util.*; class Solution { boolean solution(String s) { boolea.. 2022. 7. 13.
[안드로이드] - Android Process lifecycle Process lifecycle 안드로이드 시스템은 할 수만 있다면 최대한으로 애플리케이션 프로세스를 유지하려고 한다. 그러나, 메모리 공간은 한계가 있다 메모리 공간이 부족하게 되면 어쩔 수 없이 해당 프로세스를 종료시켜야만 한다. 이때, 안드로이드 시스템에서 어떤 프로세스를 먼저 죽여야할 지 우선순위(ADJ)를 결정짓게 되는데, 그 중요도라는 것이 프로세스에서 돌아가고 있는 컴포넌트들이 얼마나 중요한 지에 따라 결정되는 것이다. 프로세스 중요도에 따라 총 5단계로 나눠진다. 가장 덜 중요한 프로세스부터 종료된다. Foreground process 사용자가 현재 하고 있는 작업에 필요한 프로세스를 일컫는다. 구체적으로 아래의 조건에 해당하는 프로세스들을 의미한다. 프로세스가 사용자 상호작용하고 있는 화.. 2022. 7. 13.
[안드로이드] - Android Process & Thread 애플리케이션 컴포넌트가 시작되고, 애플리케이션에 실행 중인 다른 컴포넌트가 없다면 안드로이드 시스템은 하나의 실행 스레드로 애플리케이션의 Linux 프로세스를 시작한다. 기본적으로 같은 애플리케이션의 모든 컴포넌트는 같은 프로세스와 스레드에서 실행된다. (기본 스레드) 애플리케이션 컴포넌트가 시작되었는데 해당 애플리케이션의 프로세스가 이미 존재하는 경우, 해당 컴포넌트는 프로세스 내에서 시작되고 같은 실행 스레드를 사용한다. 하지만 애플리케이션 내의 여러 가지 컴포넌트가 각자 별도의 프로세스에서 실행되도록 할 수도 있고, 어느 프로세스에나 추가 스레드를 만들 수 있다. 프로세스 각 유형의 컴포넌트에 대한 매니페스트 항목은 컴포넌트가 실행되는 프로세스를 지정할 수 있는 android : process 특성.. 2022. 7. 13.
[프로그래머스 *Java] - 예상 대진표 https://school.programmers.co.kr/learn/courses/30/lessons/12985# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 제한 시간 : 45분 문제 접근을 잘못해서 시간 내에 풀지를 못했다. a와 b 값이 둘 다 n/2 값보다 클 경우를 고려하지 못해서 최종제출 때 절반만 맞게 뜨고 '맞왜틀' 하다가 시간만 지나갔다. 시간이 초과되어 질문하기를 찾아보고 이유를 알게되어 로직을 수정하였다. 로직 실패한 코드 class Solution { public int solution(int n, int a, int b) .. 2022. 7. 12.
[안드로이드] - Android Component 앱 구성요소(컴포넌트)란? 안드로이드 앱 아키텍처에서 가장 큰 특징은 컴포넌트 기반이라는 것이다. 컴포넌트는 앱의 구성 단위이며, 컴포넌트 여러 개를 조합하여 하나의 앱을 만든다. 또한, 앱의 필수적인 기본 구성요소이며 각 구성 요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점이다. 다른 구성 요소에 종속되는 구성요소도 있다. * 진입점 (Entry Point) : 시스템 또는 사용자가 앱에 들어갈 수 있는 점 안드로이드 앱에서 컴포넌트의 물리적인 모습은 클래스이다. 이때, 모든 클래스가 컴포넌트는 아니다. 클래스는 컴포넌트 클래스와 일반 클래스로 나뉜다. 이 둘 차이는 클래스의 생명 주기를 누가 관리하는 지에 달려있다. 일반 클래스 : 생명주기를 개발자 코드로 관리. 컴포넌트 클래스 : 안드로이드.. 2022. 7. 11.