본문 바로가기

upcurve631

Java와 Kotlin 비교: default value, when, 확장함수 Kotlin의 default value 사용하기 public class Exam08 { public static void main(String[] args) { var registerDto = new Store(); new Exam08(registerDto); } public Exam08(Store store){ // null point -> 터짐 var stringRegisteredAt = toLocalDateTimeString(store.getRegisteredAt()); } public String toLocalDateTimeString(LocalDateTime localDateTime){ // null을 방지하려고 이런식으로 방어 로직을 짬 LocalDateTime temp; if(localDat.. 2023. 10. 22.
Java와 Kotlin 비교 : map, 고차함수, 클래스 - 상속 인터페이스, 코틀린의 property 개념 map public class Exam04 { public Exam04(){ var hashMap = new HashMap(); hashMap.put("key", "value"); hashMap.put("key", 10); var map = Map.of( "key1","value1", "key2","value2", "key3","value3" ); hashMap.get("key"); } } fun Main() { // 코틀린에서도 마찬가지로 key value 형식으로 map을 만들 수 있다. -> 기본형태는 immutable // java의 Object -> 코틀린에서는 Any // pair라는 문법 val map = mapOf( Pair("", ""), "key" to "value" ) // 만약 mu.. 2023. 10. 22.
Java와 Kotlin 비교 : 변수, null 안정성, 엘비스 연산자, 가변/불변 컬렉션 변수 public class Exam01 { public Exam01(){ String name = "홍길동"; String format ="사용자의 이름은 : %s"; String result = String.format(format, name); System.out.println(result); int age = 10; Integer _age = 20; double d = 10d; Double _d = 20.0; float f = 20f; Float _f = 20f; long l = 10L; Long _l = 10L; } } fun main() { // var -> mutable, val -> final(불변) // : [타입] val name: String = "홍길동" var _name: Stri.. 2023. 10. 22.
대용량 트래픽을 대비한 Spring Webflux와 Reactive Redis를 이용한 접속자 대기열 시스템 목차 프로젝트 소개 소개 사용 기술 스택 API 프로젝트 구조 패키지 구조 데이터 흐름 주요 클래스 설명 소스 코드 1. 프로젝트 소개 소개 Spring Webflux와 Reactive Redis를 실습하기 위한 MVP 프로젝트이다. 어플리케이션은 접속자 대기열 시스템과 타깃 페이지 시스템으로 나뉜다. 코드 및 자료 출처는 패스트캠퍼스 시그니처 백엔드 패키지 course 7이다. 사용 기술 스택 Spring Webflux: 5.3.14 Reactive Redis: 2.6.1 Spring Boot: 3.0.9 Java: JDK 17 Gradle: 7.3 Thymeleaf: 3.0.14 JUnit: 5.8.2 Docker: 20.10.10 2. API Localhost:9010 /api/v1/queue PO.. 2023. 10. 22.
webflux 리액티브 프록그래밍에서 블록킹을 디버깅하는 도구 blockhound 간단 사용법 blockhound ? webflux 등의 리액티브 프로그래밍을 쓰는 이유가 non-blocking 환경에서 비동기적 처리를 하기 위함인데 blocking이 발생하면 하나의 발생으로도 전체 성능에 영향을 끼칠 수 있다. 비동기적 프로그래밍의 어려운 점은 테스트하기가 동기에 비해 어렵다는 점이다. blockhound는 운영 환경에서 사용하긴 힘들지만 개발 환경에서 blocking 을 검출할 수 있게 도와주는 도구다. 간단한 의존성 추가와 코드 몇 줄만으롣 검출이 가능하기 때문에 쉽게 사용할 수 있다. 의존성 plugins { id 'java' id 'org.springframework.boot' version '3.0.8' id 'io.spring.depe.. 2023. 10. 21.