핵심 원칙: 실행 상태 최소화상태를 줄이면 얻는 이점이해하기 쉬운 코드: 추적해야 할 변수와 상태 전이가 적음견고한 코드: 잘못된 상태 조합이 발생할 가능성 감소테스트 용이성: 검증해야 할 경우의 수 감소 상태를 줄이는 주요 방법가변 값 → 불변 값부수 효과가 있는 함수 → 순수 함수상태 전이 단순화 // 상태가 많은 예 (나쁨)class OrderProcessor { var currentStep = 0 var isValidated = false var isPaid = false var isShipped = false fun process() { // 여러 상태 조합 가능 → 복잡도 증가 }}// 상태를 줄인 예 (좋음)sealed class Order..
주석의 종류1. 문서화 주석 (Documentation Comments)형식: /** ... */ 또는 언어별 문서화 도구 형식목적: API 문서 자동 생성, 공개 인터페이스 설명대상: 클래스, 함수, 메서드의 공개 인터페이스내용: 기능 설명, 매개변수, 반환값, 예외, 사용 예시/** * 사용자 정보를 데이터베이스에서 조회합니다. * * @param userId 조회할 사용자의 고유 ID (양수여야 함) * @return 사용자 정보 객체, 없으면 null * @throws IllegalArgumentException userId가 0 이하일 때 */fun getUserById(userId: Int): User? 2. 비형식 주석 (Informal Comments)형식: // (한 줄) 또는 /* ....
정리- 코틀린에서는 필드를 만들면 getter와 (필요에 따라) setter가 자동으로 생긴다. → 이를 property 라고 부른다.- 코틀린에서는 주생성자가 필수이다.- 코틀린에서는 constructor 키워드를 사용해 부생성자를 추가로 만들 수 있다. → 단, default parameter나 정적 팩토리 메소드를 추천- 실제 메모리에 존재하는 것과 무관하게 custom getter와 custom setter를 만들 수 있다. → 메모리에 존재하는 것과 무관하다는 의미는 함수로도 만들 수 있지만 property인 것처럼 사용하는 것을 말한다- custom getter/setter에서 무한루프를 막기 위해 field라는 키워드를 사용하고, 이를 backing field라고 부른다. Class와 ..
정리- 함수의 문법은 Java와 다르다 접근지시어 fun 함수이름(파라미터): 반환타입 { }- body가 하나의 값으로 간주되는 경우 block을 없앨 수도 있고, block이 없다면 반환 타입을 없앨 수도 있다.- 함수 파라미터에 기본 값을 설정해줄 수 있다.- 함수를 호출할 때 특정 파라미터를 지정해 넣어줄 수 있다.- 가변인자에는 vararg 키워드를 사용하며, 가변인자 함수를 배열과 호출할 때는 * 를 붙여주어야 한다. 함수 선언 문법두 정수를 받아 더 큰 정수를 반환해보자 Javapublic int max(int a, int b) { if(a > b){ return a; } return b;} Kotilnfun max(a: Int, b: Int): Int = if(a ..