Language48 [Kotlin] 자주 쓰이는 코틀린 문법 정리 1. 코틀린 스코프함수 (apply, run, with, let) letlet 함수는 수신 객체(it)를 인자로 받아 블록 내부에서 처리한 후, 결과를 반환합니다.fun main() { val name: String? = "Kotlin" val length = name?.let { println("Name is $it") it.length } println("Length of name is $length")}applyapply 함수는 객체 초기화 시 주로 사용되며, 객체 자신을 반환합니다. 블록 내부에서는 객체를 this로 참조합니다.class Person { var name: String = "" var age: Int = 0 var address: String = "" override fun toS.. Language/Java & Kotlin 2024. 8. 23. [Kotlin] 코루틴(Coroutines) 기초에 대해 알아보자 (1) suspend [Language/Java] - [Kotlin] 자바와 코틀린의 공통점과 차이점[Language/Java] - [Kotlin] 코루틴(Coroutines)에 대해서 알아보자이전 글을 통해 코루틴에 대해 알아보았습니다. 이번에는 코루틴 기초에 대해서 자세하게 알아보도록 하겠습니다.suspend 함수와 일반 함수의 차이점먼저 suspend fun으로 선언되는 일시 중단 함수는 함수 내에 일시 중단 지점을 포함할 수 있는 특별한 함수입니다. 코루틴은 특정 시점에서 작업을 일시 중단하고, 다른 코루틴을 실행하도록 허용한 후 나중에 해당 작업을 재개할 수 있습니다. 일시 중단 함수는 코루틴에서 실행되는 일시 중단 지점이 포함된 코드들을 재사용할 수 있는 코드의 집합으로 만드는 역할을 합니다.import kotli.. Language/Java & Kotlin 2024. 6. 15. [Kotlin] 코루틴(Coroutines)에 대해서 알아보자 [Language/Java] - [Kotlin] 자바와 코틀린의 공통점과 차이점블로그엔 자주 안올렸지만 요새 코틀린 공부를 열심히 하고 있습니다. 지난번에는 자바와 코틀린의 공통점과 차이점에 대해서 알아보았습니다. 기본 문법은 자바스크립트와 문법적으로 유사한 부분이 있어, 금방 이해되는 부분이 많았지만 코루틴부터는 제대로 공부하지 않으면 안될 것 같아, 블로그에 열심히 정리하도록 하겠습니다.공식 라이브러리Kotlin CoroutinesKotlin SerializationKotlin Lincheck먼저, 코루틴을 사용하려면 별도의 라이브러리를 설치해야 합니다. (아래 버전은 예시입니다)implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1".. Language/Java & Kotlin 2024. 6. 14. [Java] 여러 개의 Java 버전이 설치되어 있을 때, Java 버전을 자동으로 변경하는 방법 여러 개의 Java 버전이 설치되어 있을 때, Java 버전을 자동으로 변경하는 방법 중 하나는 SDKMAN을 사용하는 것입니다.방법 1: SDKMANSDKMAN은 여러 버전의 SDK(Software Development Kit)를 관리하는 도구입니다. 다음은 SDKMAN을 사용하는 방법입니다:SDKMAN 설치curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh"설치 가능한 자바 버젼 검색 sdk list javaSDKMAN을 통해 Java 설치: SDKMAN을 사용하여 여러 Java 버전을 설치할 수 있습니다. 예를 들어, Java 21과 Java 17을 설치하려면 다음 명령어를 사용합니다:sdk install j.. Language/Java & Kotlin 2024. 6. 4. [Kotlin] 자바와 코틀린의 공통점과 차이점 오늘의 질문자바와 코틀린의 공통점과 차이점요약공통점: JVM에서 실행, 객체 지향 프로그래밍, 풍부한 표준 라이브러리, 안드로이드 개발, 비동기 프로그래밍 지원.차이점: 언어의 간결성, null 안정성, 확장 함수, 코루틴, 데이터 클래스.적용할 점데이터 클래스 관련 : 앞으로 DTO는 Record로 만들어 불필요한 롬복 어노테이션을 제거해보자.공통점JVM에서 실행: 두 언어 모두 JVM에서 실행되어, 동일한 바이트코드로 컴파일됩니다. 이는 자바와 코틀린 코드를 동일한 프로젝트에서 사용할 수 있게 해줍니다.객체 지향 프로그래밍 지원: 두 언어 모두 객체 지향 프로그래밍 패러다임을 지원하며, 클래스, 상속, 인터페이스 등을 사용할 수 있습니다.풍부한 표준 라이브러리: 자바와 코틀린 모두 광범위한 표준 라이.. Language/Java & Kotlin 2024. 5. 26. [JPA] 영속성 컨텍스트란 영속성 컨텍스트 정의 영속성 컨텐스트란 엔티티를 영구 저장하는 환경이라는 뜻이다. 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. 엔티티 매니저를 통해 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 생성 및 접근 방법 엔티티 매니저를 생성할 때 하나 만들어진다. 엔티티 매니저를 통해서 영속성 컨텍스트에 접근하고 관리할 수 있다. 엔티티의 생명주기 비영속(new/transient): 영속성 컨텍스트와 전혀 관계가 없는 상태 영속(managed): 영속성 컨텍스트에 저장된 상태 준영속(detached): 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(removed): 삭제된 상태 비영속 엔티티 객체를 생성했지만 아직 영.. Language/Java & Kotlin 2024. 1. 29. [Java] 모듈 결합도와 응집도 오늘은 모듈 결합도와 응집도 개념과 객체 지향 프로그래밍의 5가지 원칙인 SOLID에 간략하게 알아보겠습니다. SOLID 원칙 우리가 SOLID를 알아야 하는 이유 먼저, SOLID은 객체 지향 프로그래밍 원칙입니다. 설계 원칙을 모른다고 자바 프로그래밍을 할 수 없는 것은 아닙니다. 충분히 자바 프로그래머로서 일을 할 수 있습니다. 그럼에도 우리가 이를 학습해야 하는 이유는 무엇일까요? 결론부터 말씀 드리면, SOLID 원칙은 객체 지향 프로그랭을 할 때 발생될 수 있는 문제들을 해결하기 위한 검증된 프로그래밍 방법론이기 때문입니다. 비록 이러한 문제들을 직접 마주한 경험이 없더라도, SOLID 원칙을 학습하면서 개발하며 발생할 수 있는 문제에 대해 미리 알게 되고 그에 대한 해결책까지 알 수 있습니다.. Language/Java & Kotlin 2023. 10. 11. [Python] Python에서 정렬하는 방법 (sort, sorted, heapq) 파이썬으로 코딩 테스트 문제를 풀다보면, 다양한 상황에서 정렬을 활용해야 합니다. 문제를 손쉽게 풀 수 있도록 도와줬던 sort/sorted 함수 활용 방법에 관해 알아보겠습니다. sort 함수를 활용한 정렬 방법 이용하기 내장함수 리스트.sort 함수 사용 혹은 sorted(리스트) 함수 사용하면 쉽게 정렬할 수 있습니다. 두 함수 간 차이점은 전자는 원본 리스트에 수정이 일어나고, 후자는 수정이 일어나지 않는다는 점입니다. 또한 기본적으로 오름차순으로 정렬됩니다. numbers = [5, 3, 2, 3] numbers.sort() # None 값 리턴 print(numbers) # [2, 3, 3, 5] (원본 배열이 변경됨) new_numbers = sorted(numbers) # 새로운 배열 리턴.. Language/Python 2023. 10. 11. [Java] 동기화란 무엇인가? (1) 상호배제 동기화 방법 (자바에선 멀티 스레드 환경에서 어떻게 동기화를 할까?) 멀티 스레드 혹은 멀티 프로세스 환경에서 동기화를 보장하려면, 실행 순서 제어와 상호 배제가 필요합니다. 실행 순서 제어란 공유 자원에 대한 작업이 순서대로 작업되도록 보장하는 것입니다. 상호 배제란 동시에 접근해서는 안되는 자원(공유 자원)에 하나만 접근하도록 보장하는 것입니다. 자바에선 동기화를 보장하기 위해, 모니터 인터페이스를 제공합니다. 모니터는 프로그래밍 언어 수준에서 동기화를 지원합니다. 자바의 각 객체는 모니터 락을 소유하고 있으며, 각 스레드는 이 모니터 락을 잠그거나 해제할 수 있습니다. 한 번에 하나의 스레드만이 모니터의 잠금을 유지할 수 있습니다. 해당 모니터를 잠그려는 다른 스레드는 해당 모니터에서 잠금을 얻을 .. Language/Java & Kotlin 2023. 10. 3. [Java] JVM의 동작 원리 (부제 : Java를 처음 공부하는 당신에게) 들어가기에 앞서 먼저, 질문을 먼저 드릴게요. 여러분은 코딩을 잘하고 싶으신가요? 저 역시 정말 코딩을 잘하고 싶은 사람 중 하나인데요, 여러분은 코딩을 하는 이유가 무엇인가요? 저는 코딩을 하는 이유는 문제해결이라고 생각해요. 그렇다면 코딩을 잘하기 위해선, 어떻게 해야 할까요? 바로 사용하는 프로그래밍 언어의 탄생 배경과 동작 원리를 이해해야 한다고 생각해요! 이번 글은 자바를 새롭게 학습하시는 분들을 위한 글을 작성해봤어요. 사실 이 글은 자바에 관해 잘 알지 못하는 제 자신을 위한 글이기도 해요! 만약 독자 분들께서 비슷한 생각이 드신다면, 이번 글을 통해서 저와 함께 자바란 프로그래밍 언어에 대한 이해를 높여봐요! Java의 탄생 배경 먼저, 결론부터 이야기할게요. Java는 1991년 썬 마이.. Language/Java & Kotlin 2023. 9. 22. [Java] IntelliJ에서 Junit으로 테스트 환경을 구축하는 방법 서론 오늘은 Java와 IntelliJ 환경에서 테스트 환경을 구축하는 방법과 Junit을 활용해 간단하게 테스트 코드를 작성하는 방법에 대해서 알아보겠습니다. 본격적인 내용에 들어가기 앞서, 먼저 질문을 하나 드리고자 합니다. 우리(개발자)는 왜 작성해야 할까요? 테스트 코드를 작성해야 하는 까닭 자바를 활용한 백엔드에선 테스트 코드 없이 테스팅하기 어렵다. 제 경험을 이야기해보자면, 저는 주로 Javascript를 활용했기 때문에, 제가 작성한 코드의 결괏값을 확인하기 편했었습니다. console로 결괏값을 출력하면 끝이기 때문이죠. 사내에서 프론트엔드 개발할 때도 테스트코드의 필요성에 대해서 크게 체감하진 못했습니다. 반면 백엔드 개발은 테스트 코드 없이 각각의 기능을 테스트하기 어렵다고 느꼈습니다.. Language/Java & Kotlin 2023. 6. 22. [Java] 객체 생성 패턴이란? (빌더패턴, 자바빈패턴, 점층적 생성자 패턴) 서론 롬복의 @Builder 어노테이션과 빌더패턴에 대해 알아보도록 하겠습니다. 본론 개요 빌더 패턴은 객체를 생성할 때 사용하는 디자인 패턴 중 하나로, 동일한 프로세스를 거쳐 다양한 구성의 인스턴스를 만드는 방법 중 하나입니다. 객체를 생성하는 클래스와 표한하는 클래스를 분리하여, 동일한 절차에서도 서로 다른 표현을 생성하는 방법을 제공합니다. 빌더 패턴을 사용하는 이유 Builder 패턴은 "복잡한 객체의 구성과 표현을 분리하여 동일한 구성 프로세스가 여러 개의 서로 다른 표현을 생성할 수 있도록" 하는 것을 목표로 합니다. - Gang of Four design patterns 제가 느낀 장점은 한 마디로 객체를 생성할 때, 빠진 값이 없도록 생성하도록 돕는다는 것 입니다. 객체를 생성하는 디자인.. Language/Java & Kotlin 2023. 6. 21. 이전 1 2 3 4 다음 반응형