전체 글
[Learning Scala] Chapter3. 표현식과 조건문
이 글은 O'REILLY 러닝스칼라를 기반으로 작성하였습니다. 러닝 스칼라 객체지향 프로그래머를 위한 최적의 스칼라 입문서! 출판사 제이펍 원출판사 O’Reilly 원서명 Learning Scala(원서 ISBN 9781449367930) 저자명 제이슨 스와츠 역자명 김정인, 강성용 출판일 2017년 04월 17일 jpub.tistory.com 표현식 (Expression) 표현식은 실행 후 값을 반환하는 코드 단위를 말함. 기존 데이터를 변경하는 대신 값을 반환할 수 있기 때문에 함수형 프로그래밍의 기반이 됨. // 누구나 할 수 있지만 이 자체가 표현식이라는 개념을 설명하기 위해... "hello" // hello "he" + "ll" + "o" // hello 표현식 블록 (Expression Bl..
[Learning Scala] Chapter2. 데이터로 작업하기: 리터럴, 값, 변수, 타입
이 글은 O'REILLY 러닝스칼라를 기반으로 작성하였습니다. 러닝 스칼라 객체지향 프로그래머를 위한 최적의 스칼라 입문서! 출판사 제이펍 원출판사 O’Reilly 원서명 Learning Scala(원서 ISBN 9781449367930) 저자명 제이슨 스와츠 역자명 김정인, 강성용 출판일 2017년 04월 17일 jpub.tistory.com 스칼라 데이터의 정의 리터럴 (리터럴 데이터) 숫자, 문자, 텍스트 등 데이터 값 불변의 타입 재할당 불가 변수 가변 타입 재할당 가능 타입 데이터의 종류, 데이터의 정의 또는 분류 스칼라의 모든 데이터는 특정 타입에 대응 모든 스칼라 타입은 데이터와 그 데이터를 처리하는 메소드를 갖는 클래스로 정의 값 (Value) `val` 키워드를 사용하여 값을 정의할 수 ..
[JPA] Spring Data JPA와 Querydsl (feat. Spring MVC)
EntityListener @PrePersist @PostPersist @PreUpdate @PostUpdate @PreRemove @PostRemove @PostLoad AttributeConverter @Converter class SnackNutrientConverter : AttributeConverter { private val mapper = jacksonObjectMapper() override fun convertToDatabaseColumn(attribute: SnackNutrient): String { return mapper.writeValueAsString(attribute) } override fun convertToEntityAttribute(dbData: String): Sna..
[JPA] 엔티티 작성 시 주의 사항 (feat. 스프링 부트, 코틀린)
단일 데이터 소스를 사용하고 특별한 조건이 없으면서 스프링 부트를 사용한다면 JPA를 설정하는 것은 매우 간편합니다. 그러나 기본적인 엔티티 작성 방법 외에 사용 시 주의해야 할 사항들이 있어 정리해봅니다. 개인적인 관점에서 필요하다 생각하는 주의 사항이므로 잘못된 방법이라면 댓글로 지적 부탁드립니다. 또는 추가적으로 주의 사항이 있다면 댓글로 정보를 주시면 감사드리겠습니다. 엔티티 작성 가이드 @Entity 애노테이션을 사용해야 합니다. public 혹은 protected 접근자의 기본 생성자가 필요합니다. 탑 레벨 클래스이어야 하고 enum 이나 interface는 엔티티가 될 수 없습니다. 이 외 자세한 가이드는 아래 링크를 참고해주시기 바랍니다. Hibernate ORM 5.3.15.Final U..
[JPA] 영속성 컨텍스트(Persistence Context)의 특징
먼저 JPA란 Java Persistence API의 약자로 자바 ORM 기술에 대한 API 표준 명세이며 대표적인 구현체로는Hibernate가 있습니다. Jakarta Persistence - Wikipedia Jakarta Persistence (JPA; formerly Java Persistence API) is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications. Persistence in this context covers three areas: The r en.wikipedia.org Hiber..
Spring AOP 초간단 예제 (애노테이션 기반)
AOP 란 Aspect Oriented Programming 의 약자로 우리말로는 관점 지향 프로그래밍 이라 합니다. 관점이라는 말이 어렵게 느껴진다면 관심사에 따라 기능을 분리하여 모듈화하여 개발하는 개념이라고 생각해 볼 수 있습니다. 여러 메소드에 비즈니스 로직과 크게 관련이 없는 로직이 중복되어 있을때 사용할 수 있고 모듈화된 해당 기능은 재사용성도 용이해집니다. 간단하게 설명했지만 위 그림처럼 복잡하고 다양한 개념과 이론이 존재하고 실무에 적용하려면 꽤나 학습이 필요한 기술이입니다. AOP에 입문하는 포스팅이기 때문에 예제 코드는 단순하게 작성하였습니다. (저도 아직 초보자 입니다.) 이 예제는 특정 함수의 실행 여부를 로깅하는 기능을 AOP로 구현한 샘플입니다. 예제는 Gradle, 스프링부트,..
스프링프레임워크 Bean 등록과 사용의 변천사
요즘엔 스프링 부트를 주로 사용하기 때문에 XML로 스프링 어플리케이션을 설정할 일이 전혀 없지만 스프링을 처음으로 접하는 개발자에게 간단하게나마 설명을 해주기 위해 간단하게 구현해보았다. 참고로 코틀린 기반이라 자바 기반 코드와 조금 다른 점이 있다. 메인 메소드가 클래스 안에 없다. 한 파일 안에 다양한 클래스/인터페이스를 추가할 수 있다. 기본적인 문법 XML 설정으로 Bean 등록과 사용 초창기 사용 방법으로 일일히 빈을 등록하는 XML 설정에 등록할 빈을 정의한다. 클래스를 생성할 때 마다 빈으로 등록하기 위한 XML 작업이 많아지는 불편함이 있고 IDE 기능이 없다면 매우 사용하기 어렵다. resources/application-context.xml Application.kt /** * 메인 ..