본문 바로가기 메뉴 바로가기

개발자 박진 블로그

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

개발자 박진 블로그

검색하기 폼
  • 분류 전체보기 (178)
    • 내 정보 (1)
    • 회고 (1)
    • 개발 언어 (104)
      • 코틀린 (42)
      • 자바 (1)
      • NodeJS (21)
      • 파이썬 (6)
      • 기타 웹개발 지식 (34)
      • Vibe-Coding (0)
    • 프레임워크 (10)
      • 스프링 & 스프링 부트 (7)
      • A2A (3)
    • 개발도구 (6)
      • 도커(Docker) (1)
      • k8s (1)
      • aws (4)
    • 디자인 패턴 (22)
    • 독서 (12)
      • 오브젝트 (5)
      • 객체지향의 사실과 오해 (7)
    • 기타 북마크 (13)
    • 이사 (4)
    • 기타 암거나 (4)
  • 방명록

kotlin (32)
코틀린(Kotlin) | 클래스 - 프로퍼티(Property)

프로퍼티 자바에서는 필드의 개념으로 접근하지만 코틀린에서는 프로퍼티 개념으로 사용한다. 프로퍼티 = 필드 + 접근자 코틀린에서 접근자를 명시하지 않을경우 자동으로 생성해준다. class Person { val name = "park jin" var age = 31 var isMarried = false } fun main() { val person = Person() println("person name is ${person.name}") println("person age is ${person.age}") println("person is married ${person.isMarried}") } 커스텀 접근자 접근자에서 계산과 같은 동작을 해야한다면 직접 작성 가능하다. var [ : 타입] [= ] ..

개발 언어/코틀린 2019. 6. 24. 14:27
코틀린(Kotlin) | SAM Conversion

발단 오브젝트가 함수형 인터페이스면 접두어로 인터페이스 파입을 가진 람다를 생성할 수 있다하여 따라해봄. @FunctionalInterface interface FunctionalInterface { fun apply() } fun main() { val f = FunctionalInterface { println() } // error?? } 그런데 생성이 안되고 에러가 발생함.. 뭐지?? 함수형 인터페이스를 잘못 선언했나 해서 기존에 있는 클래스를 가지고 다시 시도해봄. fun main() { val r = Runnable { println("run!") } r.run() // run! } 이건 잘됨;;; 뭐지?? 그래서 Runnable을 코틀린으로 가져와 다시 시도해봄 @FunctionalInter..

개발 언어/코틀린 2019. 6. 24. 12:08
코틀린(Kotlin) | 클래스 - 중첩 클래스와 내부 클래스

중첩 클래스 클래스 안에 또 다른 클래스를 중첩해서 사용할 수 있다. 중첩된 클래스는 외부 클래스의 멤버를 접근할 수 없다. 자바의 정적 중첩 클래스와 느낌이 비슷하다...? class Outer { private val outerMember = 10 fun outerFunc() = println("outer function call!!") class Nested { // 외부 클래스 접근 불가 // pinrtln(outerMember) // outerFunc() fun nestedFunc() = print("nested function call!!") } } fun main() { // 자바의 중첩 스태틱 클래스와 같다 Outer.Nested().nestedFunc() // nested function..

개발 언어/코틀린 2019. 6. 24. 11:52
코틀린(Kotlin) | 제네릭 (Generic)

제네릭 클래스나 메서드 내부에서 사용할 타입을 외부에서 지정하는 방법이다. 원하는 자료형이 입력되지 않았을때 컴파일 타임에 에러를 발생시켜 안정성을 높일수 있다. 자바에서의 제네릭 코틀린의 제네릭을 알아보기 전에 자바에서의 제네릭 사용법부터 알아보자. 제네릭 선언 // 제네릭 클래스 public class GenericJava { private T value; // 제네릭 메서드 public static void genericMethod(T t) { System.out.println(t); } public static void main(String[] args) { // String으로 지정 GenericJava genericJava = new GenericJava(); genericJava.value ..

개발 언어/코틀린 2019. 6. 23. 21:57
코틀린(Kotlin) | 클래스 - 데이터 클래스

데이터 클래스 자바에서 TO나 VO와 같이 아무런 동작은 하지않고 오로지 데이터를 나르는 역할을 하는 클래스가 존재함. 위의 클래스들은 IDE를 통해 만들거나 외부 라이브러리(lombok)로 컴파일 타임에 만든다. 코틀린에서는 외부 라이브러리를 사용하지 않고 data class라는 클래스를 제공한다. import java.time.LocalDateTime data class Person(val name: String, val age: Int, val birthDay: LocalDateTime) 데이터 클래스는 아래와 같은 멤버를 컴파일 타임에 자동으로 생성한다. 1. equals(), hashCode() 2. toString() - Person(name=park jin, age=31, birthDay=2..

개발 언어/코틀린 2019. 6. 22. 19:06
코틀린(Kotlin) | object (like static)

object 자바에서 객체를 생성시 클래스를 정의한후 new키워드를 이용해 객체를 생성해야한다. 코틀린도 위와 같지만 object키워드를 사용하면 바로 객체를 생성할 수 있다. 일반 객체처럼 .(dot)을 이용해서 프로퍼티 및 메서드에 접근 가능하다. 클래스와 다르게 생성자(constructor)가 존재하지 않는다. object Person { val name = "park jin" var age = 31 fun printInfo() { println("name : $name, age: $age") } } fun main() { Person.printInfo() // name : park jin, age: 31 Person.age = 0 //Person.name = "" // error Person.pr..

개발 언어/코틀린 2019. 6. 22. 18:07
이전 1 2 3 4 5 6 다음
이전 다음
250x250
최근에 올라온 글
최근에 달린 댓글
TAG
  • 일기
  • async
  • CoroutineScope
  • 운동
  • Spring Boot
  • Docker
  • 객체지향
  • 파이썬
  • 웹개발
  • DevOps
  • Coroutine
  • nodejs
  • git
  • 오브젝트
  • 디자인패턴
  • 비동기프로그래밍
  • kotlin
  • 코틀린
  • structured concurrency
  • 자바스크립트
more
Total
Today
Yesterday

Blog is powered by Tistory / Designed by Tistory

티스토리툴바