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

longbeom

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

longbeom

검색하기 폼
  • 분류 전체보기 (38)
    • CS (30)
      • 디자인 패턴 (7)
      • 프로그래밍 (6)
      • 네트워크 (2)
      • 운영체제 (7)
      • 데이터베이스 (5)
      • 자료구조 (3)
    • 자바 & 코틀린 (4)
    • 스프링 (3)
    • 회고 (0)
  • 방명록

자바 & 코틀린 (4)
[Effective Java] 생성자 대신 정적 팩터리 메서드를 고려하라

클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자다. 한 가지 기법이 더 있는데 클래스는 생성자와 별도로 정적 팩터리 메서드(static factory method)를 제공할 수 있다. 장점 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 제대로 설명할 수 없지만 정적 팩터리는 이름을 가질 수 있다. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. 불변클래스라면 인스턴스를 미리 만들어 놓거나 캐싱하여 재활용할 수 있다. 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다. 단점..

자바 & 코틀린 2022. 11. 1. 22:54
[코틀린 + JPA] Entity 기본 생성자 추가하기

코틀린으로 Spring Boot, JPA 환경에서 개발 중에 다음 에러가 발생했다. nested exception is org.hibernate.InstantiationException: No default constructor for entity JPA Entity는 파라미터가 없는 기본 생성자가 필요한데 없어서 에러가 발생했다. 해결은 kotlin-jpa 플러그인을 추가해서 쉽게 해결할 수 있다. build.gradle.kts 파일에 추가하면 된다. apply(plugin = "kotlin-jpa")

자바 & 코틀린 2022. 9. 16. 19:49
스프링의 코틀린 지원

1. 공식 문서 https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-servlet 공식 문서의 샘플 코드에 Kotlin 탭 제공 Spring initialzr 기본 언어로 코틀린을 선택할 수 있고 코틀린인 경우 Gradle Project를 선택하면 빌드 설정을 Kotlin DSL 기반으로 생성해준다. Spring initialzr를 통해 생성된 build.gradle.kts import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.springframework.boot") version "2.7.0" id("io.spring.dependenc..

자바 & 코틀린 2022. 8. 29. 00:44
자바와 코틀린의 차이

1. 자바에는 있지만 코틀린에는 없는 기능 CheckedException 처리 Java의 CheckedException은 컴파일 에러가 발생하기 때문에 무조건 try-catch로 감싸주거나 throws로 예외를 핸들링해야 한다. try { Thread.sleep(1); } catch (InterruptedException e) { // 예외 처리 } try { log.append(message) } catch (IOException e) { // Do nothing } try { File file = FileUtils.get(filename); } catch (FileNotFoundException e) { // Do nothing } try { return objectMapper.readValue(js..

자바 & 코틀린 2022. 8. 28. 23:48
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 프로그래밍 패러다임
  • 스프링 WebFlux
  • 네트워크 기초
  • 중첩루프조인
  • 클러스터형인덱스
  • 자바
  • 보이스코드정규형
  • 네트워크
  • java
  • 정렬병합조인
  • 선언형 프로그래밍
  • 디자인 패턴
  • 직접매핑
  • 프로세스 컴파일
  • 프로세스
  • 프로세스와 스레드
  • 캐시매핑
  • 메모리 계층
  • 프로그래밍
  • 스프링 R2DBC
  • 직접연관매핑
  • 함수형 프로그래밍
  • 인덱스최적화
  • 대수확장성
  • 불연속할당
  • 연관매핑
  • 스레드
  • Design Pattern
  • 세컨더리인덱스
  • 코틀린
more
«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바