분류 전체보기333 2) 자바 어플리케이션을 코틀린으로 리팩토링(2) Optional 처리 , findById 처리, 반복되는 로직 처리 코틀린에서는 ?를 이용하여 해당 타입의 nullable 여부를 정하니까 interface BookRepository : JpaRepository { fun findByName(bookName: String): Book?}반환값을 Optional이 아닌 Book?으로 해서 nullable하다는걸 정의할 수있다. @Transactionalfun returnBook(request: BookReturnRequest) { val user = userRepository.findByName(request.userName) ?: throw IllegalArgumentException() user.returnBook(request.bo.. 인프런/실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 2025. 1. 15. 1) 테스트 코드, 자바 어플리케이션을 코틀린으로 리팩토링 1. 순수 코틀린 코드로 사칙연산 계산기 테스트코드 짜보기 data class로 만들어서 생성된 equals로 테스트를 짜보는 방법data class Calculator( private var number:Int) { fun add(operand: Int) { this.number += operand } fun minus(operand: Int) { this.number -= operand } fun multiply(operand: Int) { this.number *= operand } fun divide(operand: Int) { if (operand == 0) { throw Illeg.. 인프런/실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 2025. 1. 14. 13) 코틀린의 scope function 1. scope function이란 무엇인가scope : 영역function : 함수 scope function : 일시적인 영역을 형성하는 함수 Kotlin 표준 라이브러리에는 객체 내부에서 코드를 실행할 수 있는 여러 함수가 제공되는데 그게 scope function이다. 람다를 사용해 일시적인 영역을 만들고 코드를 더 간결하게 만들거나,method chaning에 활용하는 함수를 scope function이라고 합니다 자바 코드 예시 1)val hyeon9mak = Person("현구막", 28, "집")println(hyeon9mak)hyeon9mak.moveTo("사무실")hyeon9mak.incrementAge()println(hyeon9mak)코틀린으로 리팩토링한 코드 1)Person("현.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 12. 12) 코틀린의 이모저모 1. Type Alias와 as import Type Alias긴 이름의 클래스 또는 함수 타입이 있을때 별칭으로 사용할 수 있다.typealias FruitFilter = (Fruit) -> Boolean // 별칭설정private fun filterFruits( fruits: List, funcName: FruitFilter // 별칭으로 대체가능): List { return fruits .filter(funcName)}data class suuuuuuuuuuuuuuuperdata( val name:String)typealias superMap = Mapfun superMapOut(): superMap? { return null} 다른 패키지의 같은 이름인 .. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 11. 11) 코틀린에서 컬렉션을 함수형으로 다루는 방법 1. 필터와 맵 자바에서 Stream과 함께 사용되는 filter, map 함수를코틀린에서는 아래와 같이 사용한다. // 익명함수를 전달해서 필터링val apples = fruits.filter { fruit -> fruit.name == "사과" }// 인덱스 또한 받아서 처리 가능val apples2 = fruits.filterIndexed { index, fruit -> println(index) fruit.name == "사과"}// 자바에서 map의 반환은 Stream 이지만 코틀린에서는 List를 반환한다.// 그래서 map 이후 .collect(Collectors.toList)를 안해도 된다.val applePrices = fruits.filter{fruit -> fruit.na.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 10. 10) 코틀린에서 람다를 다루는 방법 1. Java에서 람다 코드 가독성 높이는 자바 람다식과 함수형 인터페이스 | 요즘IT자바(Java)는 시간이 지남에 따라 발전하면서 더욱 효율적이고 간결한 코드를 작성할 수 있도록 다양한 기능을 제공하고 있습니다. 특히 자바 8부터 도입된 람다식과 함수형 인터페이스는 자바에yozm.wishket.com [Java] Predicate란?🤔 서론 우테코 오늘자 강의에서 BiPredicate라는 개념을 처음 들어보았다. Predicate란 무엇인지, 언제 사용하는 것인지 그리고 내 코드에 적용하는 과정까지를 담아본다. 생각보다 어렵지 않다. 설yeonyeon.tistory.com 👨💻 일급 객체(first-class object) 란?일급 객체 란? 보통 자바의 람다 표현식(Lambda Expre.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 10. 9) 코틀린에서 다양한 함수를 다루는 방법 1. 확장함수 코틀린은 Java와 100% 호환하는 것을 목표로 하고 있다.기존 Java 코드 위에 자연스럽게 코틀린 코드를 추가할 수 있고 싶다.즉 Java로 만들어진 라이브러리를 유지보수, 확장할 때 Kotlin 코드를 덧붙일 수 있어야한다.그래서 나온 개념이 어떤 클래스안에 있는 메소드처럼 호출할 수 있지만, 함수는 밖에 만들 수 있게 하자즉 함수의 코드 자체는 클래스 밖에 있지만 마치 클래스 안에 있는 멤버함수처럼 호출해서 사용하는것이다. String.kt라는 기본적으로 제공되는 이 클래스에확장함수를 추가해보자. fun String.lastChar(): Char { return this[this.length - 1]}fun main() { val lastChar = "ABC".last.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 10. 8) 코틀린에서 배열과 컬렉션을 다루는 방법 1. 배열 배열은 production에서 잘 사용하지 않는다.effective java에서도 배열보다는 List를 사용하라고 하였다.그 이유 중 하나는 배열은 공변이기 때문이다. [Java] 배열 VS 리스트 / 배열 리스트 차이 / 공변 / 비공변 / 실체화 / 소거개요 배열과 리스트 모두 여러 값을 관리하게 위해 사용한다. 기능적으로 같은 역할을 하는 배열과 리스트는 어떤 차이점이 있고, 이 중 어떤 타입을 사용하는게 더 기능적으로 유용할까? 결론tlatmsrud.tistory.com 자바에서 배열코드int[] array = {100, 200};for (int i = 0; i 코틀린에서 배열코드fun main() { var array = arrayOf(100, 200) for (eleme.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 9. 7) 코틀린에서 object 키워드, 중첩 클래스, 다양한 클래스를 다루는 방법 1. static 함수와 변수 자바 코드)public class JavaPerson { private static final int MIN_AGE = 1; public static JavaPerson newBaby(String name) { return new JavaPerson(name, MIN_AGE); } private String name; private int age; private JavaPerson(String name, int age) { this.name = name; this.age = age; }} 코틀린으로 변환시class Person private constructor( val name:String, val age:Int){ /* .. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 9. 6) 코틀린에서 접근 제어를 다루는 방법 1. 자바와 코틀린의 가시성 제어 Kotlin에서는 패키지를 namespace를 관리하기 위한 용도로만 사용한다. 가시성 제어에는 사용되지 않는다.[ 코틀린에서 패키지는 "같은 패키지끼리 서로 사용할 수 있다." 이런 가시성 용도로 사용되지않는다.그러므로 default 또한 사라졌다.] internal 접근제어자에서 말하는 모듈은 다음과 같다.모듈 : 한 번에 컴파일 되는 Kotlin 코드[ 상위 모듈에서 하위모듈로 접근 불가 , 하지만 하위모듈에서는 상위모듈 접근이 가능하다. ] internal 접근 제어자는 같은 모듈 내에서만 접근 가능하게 만들어집니다.모듈 간 의존성이 설정되어 있으면, 하위 모듈이 상위 모듈에 의존할 수 있고, 그에 따라 하위 모듈에서 상위 모듈의 internal 멤버를 사용할.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 9. 5) 코틀린에서 상속을 다루는 방법 1. 추상 클래스 예시) Animal이란 추상클래스를 구현한 Cat, Penguin 자바에서 Animalpublic 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; } public int getLegCount() { return legCoun.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 8. 4) 코틀린에서 클래스를 다루는 방법 1. 클래스와 프로퍼티 , 필드와 프로퍼티 차이 코틀린에서는 함수,클래스 기본 접근제어자가 public이다. 자바의 한 클래스를 코틀린으로 바꿔보자public class JavaPerson { private final String name; private int age; public JavaPerson(String name) { this(name, 1); } public String getName() { return name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}name은 불변인 특징을 가진 클래스이다. 코틀린으로 바꿔보자class Person co.. 인프런/자바 개발자를 위한 코틀린 입문 2025. 1. 7. 이전 1 2 3 4 ··· 28 다음