코틀린 코루틴을 공부하며 정리한 글입니다.혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀사람들은 왜 코루틴을 사용하는 것일까? 이 글을 읽으면 그 이유에 대해 쉽게 이해할 수 있으며, 조금은 쉽게 코루틴을 이해할 수 있을 것이다. 이해를 위해 약간 극단적인 테스트를 진행해보자.🛠️ 개발 환경 및 테스트 환경테스트 환경은 코틀린 + 스프링 부트 단일 스레드로 환경에서 진행되며, 매 5초마다 서버에 요청을 보내고, 서버에서는 5.5초 뒤에 응답을 보내는 형태이다.kotlin : 1.9.24Spring Boot : 3.3.1dependencies { implementation("org.springframework.boot:spring-boot-starter-web") ..
Kotlin In Action을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 코틀린의 원시 타입 코틀린은 원시 타입과 래퍼 타입을 따로 구분하지 않는다. 이들이 어떻게 원시 타입에 대한 래핑이 작동하는지 살펴보자. 1. 원시 타입 : Int, Boolean 등 자바는 int와 같은 원시 타입(primitive type)과 String과 같은 참조 타입(reference type)을 구분한다. 원시 타입에는 변수에 그 값이 직접 들어가지만, 참조 타입의 경우 메모리상의 객체 위치가 들어간다. 원시 타입은 효율적으로 저장하고, 전달할 수 있지만, 값에 대한 메소드를 호출하거나 컬렉션에 담을 수 없다. 때문에 이런 원시 타입을 래퍼 타입으로 감싸서 C..
Kotlin In Action을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 람다 식과 멤버 참조 람다 식(lambda expression) 또는 람다는 기본적으로 다른 함수에 넘길 수 있는 작은 코드 조각을 의미한다. 1. 람다 소개 : 코드 블록을 함수 인자로 넘기기 람다 식을 사용하면 함수를 선언할 필요가 없고, 코드 블록을 직접 함수의 인자로 전달할 수 있다. 람다의 등장 전에는 아래 코드와 같이 무명 내부 클래스를 이용했다. button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { doSomething(); } }) 위 코드를 람..
🛠️ 개발 환경 kotlin : 1.8.22 💬 상황 설명 회사에서 개발을 하던 중, 동일한 클래스에 대한 두 인스턴스의 값을 비교해 다른 부분을 찾아 프론트에서 보여주는 로직이 필요했다. enum class PostCategory(val title: String) { C1("자유 게시판"), C2("정보 게시판") override fun toString(): String { return title } } class Post() { var title: String = "" var content: String = "" var isDeleted: Boolean = false var category: PostCategory = PostCategory.C1 var writer: Member } 예를 들어, 위와..
자바 개발자를 위한 코틀린 입문을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 static 함수와 변수 자바에서 정적 함수를 사용하려면 아래 코드와 같이 static 키워드를 사용한다. public class JavaPerson { private static final int MIN_AGE = 1; private String name; private int age; private JavaPerson(String name, int age) { this.name = name; this.age = age; } public static JavaPerson newBaby(String name) { return new JavaPerson(name, MIN_..
자바 개발자를 위한 코틀린 입문을 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 추상 클래스 Animal 추상 클래스를 구현한 Cat, Penguin 코드를 살펴보자. public abstract class JavaAnimal { protected final String species; protected final int legCount; public JavaAnimal(String species, int legCount) { this.species = species; this.legCount = legCount; } abstract public void move(); public String getSpecies() { return species;..