[인턴 기록] WIL: 2~3주차

zioni ·2026년 8월 15일

인턴

목록 보기
2/2

💡이번주 학습 기록

Kotlin

자바는 클래스 파일을 JVM이 실행하며, 코틀린도 가상 머신인 JVM 에서 실행할 수 있다.

또한 클래스명과 파일명을 다르게 설정해도 되는 특징을 가진다.

기본적인 변수 선언 방식

val 변수명 : 타입 = 값

컬렉션 타입

val data1: Array<Int> = Array(3,{0}) 

NULL 제어

코틀린은 null 과 not null 을 명확하게 구분해서 선언해야 한다.

var data2: Int?=10

과 같이, 타입 뒤에 물음표를 추가하여 Null 허용으로 선언할 수 있다.

생성자

코틀린에서는 생성자를 주 생성자, 보조 생성자로 구분한다.

class 클래스이름 constructor(){} //주 생성자 선언

함수는 매개변수를 선언할 때 var 나 val 키워드를 추가할 수 없다.

주 생성자에서만 유일하게 var , val 키워드로 매개변수를 선언하여 클래스의 멤버 변수로 만들 수 있다.

class 클래스이름 {
	constructor()~~
}

오브젝트 클래스

코틀린에서 오브젝트 클래스는 익명 클래스 를 만들 목적으로 사용한다.

선언과 동시에 객체를 생성하며, object 뒤에 콜론을 입력하고 그 뒤에 클래스의 상위 또는 인터페이스를 입력해야한다.

object: A {} // 클래스를 A 타입으로 선언한 것

컴패니언 클래스

자바의 static 메서드와 비슷하다.

클래스 이름으로 멤버에 접근할 수 있게 하려면 companion 이라는 키워드로 선언해야한다.

suspend

함수 안에서 잠깐 기다렸다가 나중에 이어지는 코루틴 함수를 호출하면, 바깥 함수에도 suspend를 붙인다.

runBlocking

runBlocking {}은 코루틴 밖(테스트, main 등)에서 suspend 함수를 실행하기 위한 진입점이다.

  • 블록 내부의 코루틴이 끝날 때까지 현재 스레드는 기다린다.

runBlocking - JUnit 테스트 흐름

JUnit 테스트 시작
  → runBlocking으로 코루틴 실행
  → get 함수 호출
  → 콜백 응답이 올 때까지 테스트 대기
  → 성공하면 assert 검증
  → 테스트 종료

runBlocking {} 안은 람다 블록이다.
return@runBlocking의 @runBlocking은 어노테이션이 아니라 라벨이고, “이 블록까지만 반환한다”는 뜻이다.

val result = runBlocking {
    if (isValid) {
        return@runBlocking "성공"
    }


    "실패"
}

return@runBlocking "성공"

은:

테스트 함수 전체를 끝내는 게 아니라
runBlocking 블록의 결과를 "성공"으로 정한다.
따라서 result에 "성공"이 들어가게 된다.

CountDownLatch

여러 작업이 끝날 때까지 한 스레드가 기다려야 할 때 사용한다.

new CountDownLatch(3)
  • 기다릴 작업 수를 3으로 설정
  • 각 작업이 완료되면 countDown() 호출
  • 기다리는 쪽에서 await() 호출
  • count가 0이 되면 await() 중인 스레드가 다시 실행됨

🤝 느낀점

앞으로 업무에서 Kotlin 코드를 접하게 될 것 같다. 그동안은 자바로만 개발을 진행해서 코틀린에 대해서는 정말 기초적인 문법도 모르는 상황이었기 때문에 기본적인 지식이 필요했다.

1. 모르는 건 혼자 찾아보지 말고 바로 물어보자..
2. 무조건 꼼꼼하게 확인! (코드작성이던 문서확인이던 모두..)

그리고 인턴이랑 취준 병행하는게 생각보다 쉽지 않을 것 같다..
이번주는 연휴도 있는 만큼, 다시 개인 공부를 열심히 해야할 것 같다.

profile
꾸준히 기록하기

0개의 댓글