일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Elasticsearch
- 개발
- 프레임워크
- 백준
- Java
- Spring
- database
- cleancode
- 코드
- 코딩
- 그리디알고리즘
- 클린코드
- 알고리즘
- mongoDB
- JPA
- 그리디
- ES
- 애자일프로그래밍
- 코딩테스트
- 자바
- 엘라스틱서치
- API
- 읽기쉬운코드
- 데이터베이스
- 애자일기법
- 개발자
- framework
- Baekjoon
- 스프링
- spring boot
- Today
- Total
목록kotlin (6)
튼튼발자 개발 성장기🏋️
리스트 연산에서 데이터 공유하기불변성(Immutable)은 함수형 프로그래밍의 중요한 개념 중 하나다. 불변 데이터 구조를 사용할 때, 데이터를 수정하는 대신 새로운 데이터 구조를 반환하여 이전 데이터 구조를 변경하지 않는다. 그러나 불변성을 유지하는 것이 항상 성능을 저하시킬 수 있다는 걱정이 있다. 특히 리스트와 같은 데이터 구조에서는 원소를 추가하거나 수정할 때마다 데이터의 복사본을 만들어야 하기 때문에 성능에 영향을 미칠 수 있다.하지만 데이터 공유라는 기법을 활용하면 성능 저하를 최소화하면서 불변성도 유지할 수 있다. 데이터 공유는 이전 데이터 구조의 일부를 그대로 사용하고, 변경된 부분만 새로운 객체로 생성하는 방식이다. 이를 통해 리스트의 연산에서 메모리와 성능을 최적화할 수 있다.불변 리스..
1. 재귀 (Recursion)란 무엇인가?재귀는 어떤 문제를 해결할 때, 그 문제를 더 작은 동일한 문제로 나누어 해결하는 방식이다. 이때, 자신을 호출하는 방식으로 문제를 풀어나가며, 조건을 만족하면 더 이상 재귀를 하지 않고 결과를 반환한다.재귀 함수는 보통 두 가지 주요 요소를 포함한다.기저 조건(Base Case): 재귀를 멈추는 조건으로, 일반적으로 가장 작은 문제를 해결하는 형태다.재귀 호출(Recursive Case): 더 작은 문제를 해결하기 위해 자기 자신을 다시 호출하는 부분이다.아래 팩토리얼을 구하는 재귀 함수 예시를 보자. 팩토리얼은 n! = n * (n-1) * (n-2) * ... * 1로 정의되며, 이를 재귀적으로 계산할 수 있다. fun factorial(n: Int): I..
코틀린(Kotlin)은 함수형 프로그래밍(FP)을 지원한다. 코틀린에서는 함수가 중요한 구성 요소로, 이를 통해 간결하고 표현력 있는 코드를 작성할 수 있다. 일단 함수형 프로그래밍의 기본 개념인 부분 함수(partial function), 전 함수(pre-function), 커리한 함수(currying) 에 대해 설명하고, 이를 어떻게 활용할 수 있는지 알아보자. 1. 부분 함수(Partial Function)부분 함수는 입력값에 대해 정의된 범위 내에서만 동작하는 함수다. 즉, 어떤 함수가 모든 가능한 입력에 대해 정의된 것이 아니라, 일부 입력에 대해서만 유효한 함수일 때 사용된다. 이 개념은 주로 예외 처리나 특정 조건에 맞는 함수를 정의할 때 유용하다.예를 들어, 코틀린에서 map 함수는 nul..
1. 자원 관리Java에서 자원 관리에는 Java 7부터 도입된 기능으로 try-with-resources 문을 사용한다. AutoCloseable 또는 Closeable 인터페이스를 구현한 객체에 대해 자원 해제를 자동으로 처리할 수 있도록 한다.Kotlin에서는 use 확장 함수를 제공하여 자원을 자동으로 닫는 기능을 간결하게 구현할 수 있다. 이 방식은 Java의 try-with-resources 구문과 유사하지만, Kotlin의 확장 함수를 활용해 더 간결하고 직관적으로 작성할 수 있다.간결성: Kotlin의 use 함수는 확장 함수로 제공되어, 자원을 자동으로 닫는 코드가 매우 간결하고 직관적이다. 자원 해제 처리를 명시적으로 작성할 필요 없이 use 블록 안에서만 자원을 사용할 수 있다.안전성..
1. 패키지패키지는 여러 클래스를 묶어서 네임스페이스를 제공하는 개념이다. 패키지를 사용하면 이름 충돌을 방지하고, 코드의 구조를 명확히 하며, 다른 프로그램에서 클래스들을 쉽게 가져다 쓸 수 있게된다.네임스페이스 관리: 같은 이름을 가진 클래스를 여러 개 정의할 수 있게 해준다. 예를 들어, com.example.utils와 com.example.models 같은 서로 다른 패키지에 같은 이름을 가진 클래스가 있을 수 있다.코드 관리: 프로젝트를 더 나은 구조로 나누어 관리할 수 있게 해준다.접근 제어: 패키지 내에서 클래스를 어떻게 접근할 수 있는지 제어할 수 있다.Kotlin에서의 패키지 사용법Kotlin에서는 package 키워드를 사용하여 클래스를 패키지에 포함시킨다. 패키지는 코드 파일의 첫 ..
1. 필드와 변수Java에서 클래스의 필드는 반드시 명시적으로 선언된 타입과 함께 접근 제어자가 필요하다. 반면, Kotlin에서는 필드 선언이 더 간결하고 유연하다. Kotlin은 기본적으로 val(불변 변수)과 var(가변 변수)로 구분하며, var는 Java의 mutable 변수와 비슷하고, val은 Java의 final 변수와 유사하다.Java code와 Kotlin code를 비교해보자.val은 name처럼 불변(읽기 전용) 필드를 정의하며, var는 age처럼 가변 필드를 정의한다.Kotlin에서는 getter와 setter를 자동으로 생성해준다. name은 val이기 때문에 setter가 없고, age는 var이므로 setter가 자동으로 생성된다. public class Person { ..