JVM Garbage Collection Algorithm
·
Kotlin & Java
JVM Garbage Collection AlgorithmSerial GC가장 단순한 형태의 GC 알고리즘으로 단일 스레드로 동작.단일 스레드에서 동작을하여 쓰레드간 통신 오버헤드가 발생하지 않아 경우에 따라서 상대적으로 효율적일 수도 있다.싱글 코어에서 100MB 미만의 데이터를 다루는 경우 이점을 가질 수 있다.특정 하드웨어나 OS 등의 환경에서는 default로 사용된다. (조선시대 환경)java -XX:+UseSerialGC -jar Application.javaParallel GCJava8 Default GCThroughput Collector 로도 불리며 Serial GC와 유사하다. 다른 점은 멀티 쓰레드 환경에서 GC를 수행한다는 것이다.멀티 코어 환경에서 중간-큰 사이즈를 처리하는 어플리..
JVM Garbage Collection
·
Kotlin & Java
JVM Garbage CollectionGarbage Collection(GC) 은 JVM이 더 이상 사용되지 않는 객체(garbage) 를 자동으로 찾아 메모리에서 제거하는 기능이다.  Garbage Collection 실행 조건GC는 메모리 사용 상황에 따라 JVM이 판단하여 실행. 주로 아래 같은 상황에서 트리거 됨.Eden 공간 부족: JVM 메모리 구조에서 Young Generation 영역에 객체를 할당할 공간 부족한 경우Survivor 공간 부족: 객체를 Survivor로 옮기려고 할 때 공간 부족한 경우Old Generation 공간 부족: Old 영역이 임계치에 도달하는 경우 (FULL GC 발생)OOM 임박: OOM이 발생할 가능성이 있는 경우 Garbage Collection 메모리 ..
Kotlin + Spring Boot 에서 data class 구현으로 Validation 로직 작성하기
·
Kotlin & Java/Spring
Kotlin + Spring Boot 에서 data class 구현으로 Validation 로직 작성하기Kotlin + Spring Boot를 개발시 클라이언트와 혹은 레이어간 데이터를 주고받을 때 발생할 수 있는 문제와 이를 해결하는 방법에 대해 알려진 방법인 Annotation을 사용하지 않고 다른 방법은 없을까에 대한 방법 제시에 대한 글입니다.Kotlin의 데이터 클래스(Data class)를 이용하여 어떻게 데이터를 검증할 수 있는지에 대해 소개하겠습니다.Data class 가 아닌 Value class 로 구현을 해도 되겠지만... Value class 는 다른 라이브러리들과 충돌이 다소 있다."나는 성능이 무조건적인 최우선 순위이며 발생하는 문제점들을 해결할 수 있는 일정이 있다" 가 아니라..
[Gradle] Gradle dependency (그래들 종속성 선언)
·
Kotlin & Java
[Gradle] Gradle dependency (그래들 종속성 선언) Dependency configuration Gradle 프로젝트에 선언된 의존성들은 특정한 Scope 에 적용 되어진다. 예를 들어 일부 의존성은 런타임에서, 다른 의존성은 컴파일에서 사용 된다. 설정에 대한 옵션들은 여기서 확인 가능하다. https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.Configuration.html Dependency configuration inheritance and composition 각 설정들은 다른 설정으로부터 상속 구조를 가질 수 있는 구성이다. 상속 구조는 Java plugin에서 많이 사용되고 대표적인 예시는 implementatio..
Pessimistic Locking in JPA
·
Kotlin & Java/Spring
Pessimistic Locking in JPA PESSIMISTIC_READ allows us to obtain a shared lock and prevent the data from being updated or deleted. PESSIMISTIC_WRITE allows us to obtain an exclusive lock and prevent the data from being read, updated or deleted. PESSIMISTIC_FORCE_INCREMENT works like PESSIMISTIC_WRITE, and it additionally increments a version attribute of a versioned entity. PESSIMISTIC_READ Whene..
Intellij에서 Kotlin을 Java로 변환 확인 하는 방법
·
Kotlin & Java
Intellij에서 Kotlin을 Java 변환 확인 하는 방법, 인텔리제이에서 코틀린을 자바 변환 확인 하는 방법 코틀린 컴파일 자바로 Decompile Kotlin class Person(val name: String) { val isKim: Boolean get() = name.startsWith("김") val maskingName: String get() = name[0] + (1 until name.length).joinToString("") { "*" } } Java public final class Person { @NotNull private final String name; public final boolean isKim() { return StringsKt.startsWith$defa..
[Code Execution API] 1. 프로그래밍 코드 실행 API 만들어보기
·
Kotlin & Java/프로젝트
1. 프로그래밍 코드 실행 API 만들어보기 구글에서 online python 등을 검색하거나 코딩 테스트 등 웹에서 코드를 실행 가능한 서비스를 제공해 주는 웹 페이지들이 있는데 한번 궁금해서 구현을 해보았다. 개발한 프로젝트 Github 주소 (https://github.com/sanggi-wjg/my-ide-java) 2. 개발 스펙 선택과 제공할 언어 선택 개발 진행을 위해서는 우선 API 개발 언어와 프레임워크 등과 기능 제공할 언어와 정해야 하는데 하기처럼 정해서 진행했다. API 개발 Java 17 (correto) Spring boot 3.0.2 JPA Hibernate 6.1.6 제공할 언어 Python 3.8 Python 2.7 Php 8.2 Php 7.4 Gcc 4.9 Java (예정..