본문 바로가기

전체 글145

[python] Python의 제어 흐름 : if문, for문, range, break, continue, match Python의 제어 흐름 : if문, for문, range, break, continue, match   Python은 다양하고 강력한 제어 흐름 도구를 제공합니다. 이러한 도구들은 프로그램의 실행 경로를 결정하고, 코드의 구조를 형성하며, 복잡한 로직을 구현하는 데 필수적입니다. 이 글에서는 Python의 주요 제어 흐름 도구들을 자세히 살펴보고, 각각의 사용법과 특징을 예제와 함께 설명하겠습니다. 해당 글은 python document 3.12.5 버전 기준입니다. 1. if 문: 조건부 실행의 기본if 문은 가장 기본적인 제어 흐름 도구로, 특정 조건에 따라 코드 블록의 실행 여부를 결정합니다. Python의 if 문은 다른 프로그래밍 언어와 비슷하지만, else if 대신 elif를 사용한다는 특.. 2024. 10. 23.
[인텔리제이] 단축키 마스터의 필수 플러그인 - Key Promoter X 1. 소개오늘은 IntelliJ IDEA의 인기 있는 플러그인 중 하나인 'Key Promoter X'에 대해 소개해드리려고 합니다. 개발을 하다 보면 마우스로 클릭하는 것보다 키보드 단축키를 사용하는 것이 훨씬 효율적인 경우가 많죠. 하지만 수많은 단축키를 모두 외우는 것은 쉽지 않습니다. 이런 문제를 해결해주는 Key Promoter X 플러그인은 개발자들 사이에서 큰 인기를 얻고 있습니다.   2. Key Promoter X란?Key Promoter X는 IntelliJ IDEA 및 관련 IDE에서 사용할 수 있는 플러그인으로, 사용자가 마우스로 수행한 작업에 대한 키보드 단축키를 알려주는 도구입니다. 이 플러그인의 주요 목적은 개발자가 더 효율적으로 IDE를 사용할 수 있도록 돕는 것입니다. 주요.. 2024. 9. 15.
[인텔리제이] 코드 가독성을 높여주는 Rainbow Brackets 플러그인 Rainbow Brackets 플러그인 - 인텔리제이 플러그인 코드를 작성하다 보면 괄호의 깊이가 깊어질수록 가독성이 떨어지고,어느 괄호가 어디에 속하는지 헷갈리는 경우가 많죠. 이런 문제를 해결해주는 Rainbow Brackets 플러그인을 소개합니다.   Rainbow Brackets란?Rainbow Brackets는 코드 에디터에서 괄호, 중괄호, 대괄호 등을 서로 다른 색상으로 표시해주는 플러그인입니다. 이름에서 알 수 있듯이, 무지개처럼 다양한 색상을 사용하여 중첩된 괄호를 구분하기 쉽게 만들어줍니다. 주요 특징:중첩된 괄호에 다른 색상 적용짝이 맞지 않는 괄호 하이라이트커서 위치의 괄호 쌍 강조다양한 프로그래밍 언어 지원이 플러그인은 특히 복잡한 논리 구조나 깊은 중첩이 있는 코드를 다룰 때 .. 2024. 8. 23.
[kotlin] 인라인 함수 (Inline Functions) 인라인 함수 (Inline Functions)고차 함수를 사용하면 런타임 시 일정한 페널티가 발생합니다. 각 함수는 객체이며, 클로저를 캡처합니다. 이는 메모리 할당과 가상 호출로 인한 런타임 오버헤드를 초래합니다. 하지만 많은 경우에 람다 표현식을 인라인화하여 이러한 오버헤드를 제거할 수 있습니다. 인라인 함수의 기본 (Basics of Inline Functions)함수를 인라인화하려면 inline 수정자를 사용합니다:inline fun lock(lock: Lock, body: () -> T): T { ... }이렇게 하면 컴파일러는 함수 호출 시점에 함수의 본문을 직접 삽입합니다. 이는 함수 자체와 전달된 람다 모두에 영향을 미칩니다.  noinline 수정자 (noinline Modifier)일.. 2024. 8. 19.
[kotlin] 고차 함수와 람다 (Higher-order Functions and Lambdas) kotlin의 고차 함수와 람다 (Higher-order Functions and Lambdas)코틀린(Kotlin)은 함수형 프로그래밍의 강력한 기능을 제공합니다. 이 글에서는 고차 함수와 람다 표현식에 대해 자세히 알아보겠습니다. 이러한 개념들은 코드를 더 간결하고 표현력 있게 만들어 줍니다.   고차 함수 (Higher-order Functions)고차 함수는 다른 함수를 매개변수로 받거나 함수를 반환하는 함수를 말합니다. 코틀린에서는 함수가 일급 객체이므로 변수에 저장하거나 다른 함수에 전달할 수 있습니다.예를 들어, 컬렉션의 fold 함수는 고차 함수의 좋은 예시입니다:fun Collection.fold( initial: R, combine: (acc: R, nextElement: .. 2024. 8. 18.
[Kotlin] 함수 Kotlin 함수Kotlin에서 함수는 프로그램의 기본 구성 요소입니다. 이 가이드에서는 Kotlin 함수의 다양한 측면을 상세히 살펴보겠습니다.  함수 기본 (Function Basics)Kotlin에서 함수는 fun 키워드를 사용하여 선언합니다:fun double(x: Int): Int { return 2 * x} 함수를 호출할 때는 일반적인 방식을 사용합니다:val result = double(2)  멤버 함수를 호출할 때는 점 표기법을 사용합니다:Stream().read() // Stream 클래스의 인스턴스를 생성하고 read() 메서드 호출  매개변수 (Parameters)함수 매개변수는 Pascal 표기법(name: type)을 사용하여 정의합니다:fun powerOf(number: I.. 2024. 8. 18.
[Kotlin] 타입 별칭(Type Aliases) Kotlin의 타입 별칭(Type Aliases)Kotlin의 타입 별칭(Type Aliases)은 기존 타입에 대한 대체 이름을 제공하는 강력한 기능입니다.이 가이드에서는 타입 별칭의 다양한 측면을 상세히 살펴보겠습니다.    타입 별칭 기본 (Type Aliases Basics)타입 별칭은 긴 타입 이름을 더 짧고 의미 있는 이름으로 대체할 수 있게 해줍니다. 이는 코드의 가독성을 크게 향상시킬 수 있습니다.  컬렉션 타입 단축 (Shortening Collection Types)긴 제네릭 타입, 특히 컬렉션 타입을 단축하는 데 매우 유용합니다:typealias NodeSet = Settypealias FileTable = MutableMap>  이 예제에서 NodeSet은 Set의 별칭이 되며, F.. 2024. 8. 18.
[Kotlin] 위임된 프로퍼티(Delegated Properties) Kotlin의 위임된 프로퍼티(Delegated Properties)Kotlin의 위임된 프로퍼티(Delegated Properties)는 프로퍼티의 getter와 setter를 다른 객체에 위임할 수 있는 강력한 기능입니다.이 가이드에서는 위임된 프로퍼티의 다양한 측면을 상세히 살펴보겠습니다.   기본 개념 (Basic Concept)위임된 프로퍼티는 다음과 같은 문법으로 선언합니다:class Example { var p: String by Delegate()} 여기서 by 키워드 다음에 오는 표현식이 델리게이트입니다. 프로퍼티의 get()(그리고 set())은 델리게이트의 getValue()와 setValue() 메서드에 위임됩니다. import kotlin.reflect.KPropertycla.. 2024. 8. 17.
[Kotlin] 위임(Delegation) Kotlin의 위임(Delegation)Kotlin의 위임(Delegation) 기능은 구현 상속의 강력한 대안으로, 보일러플레이트 코드 없이 유연하고 재사용 가능한 코드를 작성할 수 있게 해줍니다. 이 가이드에서는 Kotlin의 위임 기능의 다양한 측면을 상세히 살펴보겠습니다.    위임 기본 (Delegation Basics)Kotlin에서는 by 키워드를 사용하여 인터페이스의 구현을 다른 객체에 위임할 수 있습니다. 이를 통해 컴포지션을 쉽게 구현할 수 있습니다.interface Base { fun print()}class BaseImpl(val x: Int) : Base { override fun print() { print(x) }}class Derived(b: Base) : Base.. 2024. 8. 17.
[Kotlin] 객체 표현식과 선언(object expressions and object declarations) Kotlin의 객체 표현식과 선언Kotlin에서 객체 표현식(object expressions)과 객체 선언(object declarations)은 클래스를 상속하거나 인터페이스를 구현하는 익명 객체를 생성하는 강력한 기능입니다. 이 가이드에서는 이러한 기능들의 다양한 측면을 상세히 살펴보겠습니다.    객체 표현식 (Object Expressions)객체 표현식은 익명 클래스의 객체를 생성합니다. 이는 명시적으로 클래스를 선언하지 않고 일회성 사용을 위한 객체를 생성할 때 유용합니다.기본 객체 생성 (Creating Basic Objects)가장 간단한 형태의 객체 표현식은 다음과 같습니다:val helloWorld = object { val hello = "Hello" val world =.. 2024. 8. 17.
[kotlin] 인라인 값 클래스(Inline Value Classes) Kotlin의 인라인 값 클래스(Inline Value Classes)Kotlin의 인라인 값 클래스(Inline Value Classes)는 성능 최적화와 타입 안전성을 동시에 제공하는 강력한 기능입니다.이 문서에서 인라인 값 클래스의 다양한 사용법을 살펴봅니다.  인라인 값 클래스 기본 (Inline Value Class Basics)인라인 값 클래스는 단일 값을 래핑하여 보다 도메인 특화된 타입을 만들 때 유용합니다. 이는 값 기반 클래스의 하위 집합으로, 아이덴티티가 없고 오직 값만을 보유합니다.value class Password(private val s: String)// JVM 백엔드를 위한 선언@JvmInlinevalue class Password(private val s: String)인.. 2024. 8. 15.
[Kotlin] 열거형 클래스(Enum class) Kotlin의 열거형 클래스Kotlin의 열거형 클래스(enum class)는 고정된 상수 집합을 표현하는 강력한 도구입니다.이 문서에서는 Kotlin 열거형 클래스의 다양한 사용법을 살펴보겠습니다.   기본 사용법 (Basic Usage)열거형 클래스의 가장 기본적인 사용 사례는 타입 안전 열거형의 구현입니다:enum class Direction { NORTH, SOUTH, WEST, EAST} 각 열거형 상수는 객체이며, 쉼표로 구분됩니다.열거형 클래스는 생성자와 프로퍼티를 가질 수 있습니다:enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF)}  익명 클래스 (Anonymous Classe.. 2024. 8. 15.