프로그래밍 언어

프로그래밍 언어/Java + Kotlin

[Kotlin] 코틀린에서 애너테이션 사용하기 (vs 자바)

애너테이션은 커스텀 메타데이터를 정의하고 이 메타데이터를 소스코드상의 선언, 식, 전체 파일 등의 요소에 엮는 방법을 제공한다. 본 포스팅에서는 코틀린을 자바와 비교하며 코틀린 애너테이션의 사용 방법과 특징을 설명하고자 한다. 1. 메타 애너테이션 메타 애너테이션은 애너테이션을 정의할 때 사용하는 애너테이션으로서, 새롭게 정의하고자 하는 애너테이션에 대한 정보를 담고 있다. 코틀린과 자바에서 모두 존재하는 애너테이션도 있고, 그렇지 않은 애너테이션도 있다. 물론 공통으로 사용한다 하더라도 패키지는 엄연히 다르며(코틀린: kotlin.annotation / 자바: java.lang.annotation), 해당 애너테이션의 파라미터로 사용되는 상수(코틀린: AnnotationTarget / 자바: Eleme..

프로그래밍 언어/Java + Kotlin

[Java] JVM을 통해 알아보는 자바 프로그램 실행방식

1. 자바 프로그램 실행방식 프로그램은 일반적으로 다음과 같은 순서들에 따라 개발된다. 프로그래밍 언어로 코드를 작성한 후엔 이를 파일 형태로 저장하는데, 이를 소스 파일(Source File)이라고 한다. 다음은 각각 C와 자바로 작성한 소스 파일이다. C는 소스 파일을 저장할 때 파일 확장자가 ".c"인 반면, 자바는 ".java"이다. // test.c printf("%s", "직진하시오"); printf("%s", "50M 앞에서 좌회전하시오"); // test.java System.out.println("직진하시오"); System.out.println("50M 앞에서 좌회전하시오"); 한편 소스 파일은 사람에 의해 C나 자바와 같은 고급 언어로 작성되지만, 고급 언어로 작성한 파일을 컴퓨터에서..

프로그래밍 언어/Java + Kotlin

[Kotlin] BigDecimal을 비교할 때 주의하라

개요 수수료를 비교하는 코드에서 에러가 발생했다. 부과금액이 0원이 아닌 수수료만 추출해야 하는 상황에서 나는 다음과 같이 코드를 작성했다. 참고로 코틀린에서 BigDecimal 연산시에 == 연산자를 사용하면 equals와 동일하게 작동한다(관련 링크). // 부과금액(amount)이 0원이 아닌 수수료만 추출한다 val paidFees = extraFeeService.findExtraFees(...).filter { it.amount != BigDecimal.ZERO } @Service class ExtraFeeService(...) { fun findExtraFees(...): List { // 수수료 API 서버에 요청을 날림 } } data class ExtraFee( val amount: Bi..

프로그래밍 언어/Java + Kotlin

[Kotlin] scope function - let, run, also, apply, with 차이

scope function 람다를 사용해 일시적인 영역을 만들고 코드를 더 간결하게 만들거나, method chaning에 활용하는 함수를 scope function이라고 한다 let, run, also, apply는 scope function이면서 확장 함수이다 선요약 반환값 \ 수신객체 호출방식 it 사용 this 사용 람다의 결과 let run 객체 그 자체 also apply with let: 람다의 결과를 반환하고, let에 넘겨주는 람다에선 it을 사용한다 run: 람다의 결과를 반환하고, run에 넘겨주는 람다에선 this를 사용한다 also: 객체 그 자체를 반환하고, also에 넘겨주는 람다에선 it을 사용한다 apply: 객체 그 자체를 반환하고, apply에 넘겨주는 람다에선 this..

프로그래밍 언어/Java + Kotlin

[Kotlin] 코틀린 유용한 함수 - padEnd

소개 padEnd는 문자열의 뒷부분을 특정 문자로 채우는(패딩하는) 함수이다. 이와 반대로 앞부분을 채우는 함수에는 padStart가 있다. 사용방법은 아주 간단하다. fun CharSequence.padStart( length: Int, padChar: Char = ' ' ): CharSequence (source) length: 만들고자 하는 문자열의 길이 padChar: 문자열을 채울 문자, 기본 값은 공백(' ')이다 사용 예제 val padWithSpace = "125".padEnd(5) println("'$padWithSpace'") // '125 ' val padWithChar = "a".padEnd(5, '.') println("'$padWithChar'") // 'a....' // str..

코택
'프로그래밍 언어' 카테고리의 글 목록 (2 Page)