본문 바로가기

Back-End

(7)
[kotlin] groupBy Story 환불 시스템은 금액별로 사용자를 처리하게끔 되어있다. 환불 시스템에 맞춰서 데이터를 가공해야한다. 가공을 완료 되었다면 환불 시스템을 통해 사용자들에게 환불 처리한다. Process 사용자들의 환불 정보 이다. val users = listOf( mapOf("userId" to 1, "cashback" to 5000), mapOf("userId" to 2, "cashback" to 5000), mapOf("userId" to 3, "cashback" to 500), mapOf("userId" to 4, "cashback" to 500), mapOf("userId" to 5, "cashback" to 3000), mapOf("userId" to 6, "cashback" to 2000), ) 가정..
JAVA 9 ~ JAVA16 달라진점 자바 8 https://blog.naver.com/whydda/222227014403 JAVA8(JDK1.8) 의 8가지 특징 1. Lambda Expressions ▶ 람다 표현식은 익명 함수(Anonymous Function) 이라고 할 수 있다. ▶ 람다... blog.naver.com 은 이 글을 참고 ~ 자바9 private 메서드 public interface Payment { void reserve(); void certify(); void pay(); void status(); default void recodeStatusTime(){ startTime() status() endTiem() } private void startTime(){ System.out.println(System.cu..
@Transactional 간단한 정리 @Transaction 은? 스프링에서 제공하는 트랜잭션 중 하나로 내부적으로는 Spring AOP를 사용하며 선언적 트랜잭션 이라고도 한다. 사용된 디자인 패턴은? 프록시 패턴 (Proxy Pattern) 어떤 객체에 대한 기능을 대신 수행하는 대리 객체를 사용하는 개발 패턴이다. AOP 핵심만! Dynamic Proxy Java 리플렉션을 사용하고 proxy 클래스를 통해 프록시 객체를 생성 (트랜잭션 전 처리 -> 비즈니스 로직 실행 -> 트랜잭션 후 처리)를 위임하고 프록시 객체는 런타임 시점에 동적으로 생성된다. CGLib 리플랙션 대신에 바이트코드를 생성 프레임워크를 사용하여 런타임 시점에 프록시 객체를 만든다. Dynamic Proxy 와 다른 방법을 사용하여 인터페이스가 없으면 프록시 객체..
Spring Boot 특정 버전의 의존성은 어떻게 확인 할 수 있을까? Spring Boot Version 2.0.0.RELEASE 이라고 가정하면? 1. 공식 사이트를 이용한다. https://docs.spring.io/spring-boot/docs/current/reference/html/dependency-versions.html#dependency-versions Dependency Versions The following table provides details of all of the dependency versions that are provided by Spring Boot in its CLI (Command Line Interface), Maven dependency management, and Gradle plugin. When you declare a d..
apply, with, let, also, run 고차 함수 사용법 함수형 프로그래밍은 kotlin의 표준 라이브러리에있는 다양한 함수뿐만 아니라 Kotlin의 구문에 의해 많은지지를 받고 지원됩니다. ● 5가지의 고차함수는 기본적으로 매우 유사한 작업을 수행한다. ▷ 수신자 인수와 코드 블록을 취한 다음 제공된 수신자에서 코드 블록을 실행하는 범위 지정 함수이다. ○ 작동 확인 (with) inline fun with (receiver : T, block : T. ()-> R) : R { return receiver.block () } 이를 사용하면 코드를 더 간결하게 만들 수 있다. ○ with 함수를 사용하지 않은 코드 class User { var id : Long? = null var passwd : String? = null } val user : User =..
[이것이자바다] 14장 람다식 14장 람다식 1절 람다식이란? 함수적 프로그래밍 y = f(x) 형태의 함수로 구성된 프로그래밍 기법 객체 지향보다 효율적인 경우 대용량 데이터 처리시에 유리 데이터를 객체 생성 후 처리 보다는 데이터를 바로 처리하는 것이 유리 멀티코어에서 병렬 처리 및 취합시 객체보다는 함수가 유리 자바 8부터 함수적 프로그래밍 지원 람다식을 언어차원에서 지원함 람다 계산법에서 사용된 식을 프로그래밍 언어에 접목 익명함수를 생성하기 위한 식 자바에서 람다식을 수용한 이유 코드가 매우 간결해진다. 대용량 데이터를 필터링 또는 매핑에서 쉽게 집계 가능 자바에서 람다식을 함수적 인터페이스의 익명 구현 객체로 취급 한다. 함수적 인터페이스는 하나의 메서드만 가지고 있는 인터페이스 람다식 -> 매개변수를 가진 코드 블록 ->..
Class To Map, Map To Class 변환하는 함수를 만들어 보자! Class To Map, Map To Class 변환하는 공통 메서드 만들기!! 개요 현재 유지 보수를 하는 소스가 java 1.7을 사용함으로 람다식은 제외하고 제네릭을 통해서 공통으로 Class To Map, Map To Class 가능한 소스를 만들어 볼까 한다. 다음번에는 람다를 이용해서 좀더 좋은 소스 코드를 짜볼 수 있을지 고민해 보겠다. Map To Class 우선 User라는 클래스를 생성한다.이 클래스를 이용해서 Map으로 변경하고 다시 Class(Dto or Vo)로 변경할 예정이다. public class User { String id = ""; String name = ""; public String getName() { return name; } public void setName..