본문 바로가기

전체 글230

[Android] Gradle Gradle의 동작원리 이해하기안드로이드 개발을 한다면 이 코끼리를 지겹게 보게 됩니다. 다만 이 코끼리에 대해서 자세히 공부해보고 알아본적이 없어서 이번 게시글을 통해 Gradle의 원리를 이해해보고자 합니다. Gradle이란everyday-develop-myself.tistory.comGroovy 언어를 기반으로 한 오픈소스 빌드 도구빌드 도구 : 애플리케이션 생성을 자동화 하기 위한 프로그램으로 안드로이드에서는 .apk 파일을 만드는 과정을 자동화한다모든 종류의 소프트웨어를 빌드할 수 있는 오픈소스 빌드 자동화툴빌드 : 컴파일을 비롯한 다양한 작업을 통해 최종적으로 배포 가능한 소프트웨어를 생성하는 과정다양한 작업 : 소스 코드를 컴파일하고, 라이브러리를 추가하고, 리소스 파일을 처리하고, 테스트를.. 2024. 8. 6.
[Kotlin][Collection] flatMap 원래 배열의 각 요소에 대해 호출된 변환 함수의 결과에서 생성된 모든 요소의 단일 목록을 반환합니다.public inline fun Iterable.flatMap(transform: (T) -> Iterable): List { return flatMapTo(ArrayList(), transform)}public inline fun > Iterable.flatMapTo(destination: C, transform: (T) -> Iterable): C { for (element in this) { val list = transform(element) destination.addAll(list) } return destination}val list = list.. 2024. 8. 6.
[Kotlin][Collection] map / mapIndexed 주어진 변환 함수를 원본 배열의 각 요소에 적용한 결과가 포함된 배열을 반환합니다.public inline fun Iterable.map(transform: (T) -> R): List { return mapTo(ArrayList(collectionSizeOrDefault(10)), transform)}public inline fun > Iterable.mapTo(destination: C, transform: (T) -> R): C { for (item in this) destination.add(transform(item)) return destination}val numbers = listOf(1, 2, 3)println(numbers.map { it * it }) /.. 2024. 8. 6.
[프로그래머스][Kotlin] 겹치는 선분의 길이 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요.lines가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다.선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다.제한사항line.. 2024. 8. 6.
[프로그래머스][Kotlin] 유한소수 판별하기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 유한소수가 되기 위한 분수의 조건은 다음과 같습니다.기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다.두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요.제한사항a, b는 정수0  a ≤ 1,0000  b ≤ 1,000입출력 예abresult7201.. 2024. 8. 6.
[Kotlin] 객체 지향 원칙(SRP, OCP, LSP, ISP, DIP) 객체지향 설계에서 지켜줘야 할 5개의 소프트웨어 개발 원칙(SRP, OCP, LSP, ISP, DIP)SOLID 객체 지향 원칙을 적용하면 코드를 확장하고 유지 보수 관리하기가 더 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 프로젝트 개발의 생산성을 높일 수 있다. 1. 단일 책임 원칙 (Single Responsibility Principle,  SRP)클래스(객체)는 단 하나의 책임만 가져야 한다는 원칙하나의 클래스는 하나의 기능을 담당하여 하나의 책임을 수행하는 데 집중되도록 클래스를 따로따로 여러 개 설계하라는 것책임의 범위는 딱 정해져있는 것이 아니고, 어떤 프로그램을 개발하느냐에 따라 개발자마다 생각 기준이 달라질 수 있다. BEFORE문제점 : 서버에 데이터를 보.. 2024. 8. 5.
[Kotlin][Input Operation] readln 표준 입력 스트림에서 입력 라인을 읽고 이를 반환하거나, readln 이 호출될 때 EOF 에 이미 도달한 경우 RuntimeException 을 발생시킵니다. LF 또는 CRLF 는 줄 종결자로 처리됩니다. 반환된 문자열에는 줄 종결자가 포함되지 않습니다. 입력은 시스템 기본 Charset 을 사용하여 디코딩됩니다. 입력 형식이 잘못된 경우 CharacterCodingException 이 발생합니다.@SinceKotlin("1.6")public actual fun readln(): String = readlnOrNull() ?: throw ReadAfterEOFException("EOF has already been reached") readln - Kotlin Programming Language k.. 2024. 8. 5.