본문 바로가기

Programming121

[algorithm] 기초적인 정렬 : 선택 정렬, 삽입 정렬 목차 선택 정렬 삽입 정렬 삽입정렬 vs 선택정렬 셸 정렬 선택정렬 (Selection sorting) 길이 N의 배열이 주어졌을 때, 배열의 가장 작은 항목을 찾아 [0]와 교환 그다음으로 작은 항목을 찾아 [1]와 교환 ... 그 다음으로 작은 항목을 찾아 [N-1]과 교환 와 같이 모든 배열이 정렬될 때까지 (N-1) 번을 교환하는 방법이다. public class Selection { // a[]를 오름차순으로 정렬 public static void sort(Comparable[] a) { int N = a.length; for (int i = 0; i < N; i++) { // a[i]를 a[i+1..N] 중에서 가장 작은 원소와 교환 int idxMin = i; for (int j = i + .. 2023. 12. 28.
[Java] JMH 벤치마크 중 org.openjdk.jmh.runner.RunnerException: ERROR: Another JMH instance might be running. 증상 gimgihyeon@gimgihyeon-ui-Mac-Studio programming-algorithms % ./gradlew jmh Starting a Gradle Daemon, 1 busy Daemon could not be reused, use --status for details > Task :jmh FAILED ERROR: org.openjdk.jmh.runner.RunnerException: ERROR: Another JMH instance might be running. Unable to acquire the JMH lock (/Users/gimgihyeon/Desktop/kghworks/workspace_intellij/programming-algorithms/build/tmp/jmh.. 2023. 12. 27.
[Java] java.lang.UnsupportedOperationException ImmutableCollections java.lang.UnsupportedOperationException at java.base/java.util.ImmutableCollections.uoe(ImmutableCollections.java:142) 오류 메시지에 답이 나와있다. ImmutableCollection에 대한 UnsupportedOperationException이다. 아래처럼 재현 가능하다. @Test @DisplayName("리스트 수정 테스트") public void unsupportedOperationException() { List aespaList = List.of("karina", "winter", "giselle"); assertThrows(UnsupportedOperationException.class, () ->.. 2023. 12. 20.
[JPA] JPA와 @Transactional @Transactional은 Spring AOP를 기반으로 동작하는 프락시이기 때문에 AOP에 대한 이해가 없다면 먼저 이해한 뒤 보길 바란다. 아래 두 포스팅을 참고해도 좋다. 2023.12.02 - [Programming/JAVA] - [Java] AOP 1편 - 핵심 기술 Proxy, Dynamic proxy, Factory bean [Java] AOP 핵심 기술 - Proxy, Dynamic proxy, Factory bean 목차 AOP란 프락시(Proxy)의 정의, 프락시 패턴 다이내믹 프락시 다이내믹 프락시 예제 한계 스프링의 ProxyFactoryBean : 어드바이저 Spring 3대 기술 (DI, PSA, AOP) 중 하나인 AOP는 프락시 기반으로 동작한 kghworks.tistory.. 2023. 12. 3.
[Spring] AOP 2편 - Spring의 AOP과 @Transactional 2023.12.02 - [Programming/JAVA] - [Java] AOP 핵심 기술 - Proxy, Dynamic proxy, Factory bean [Java] AOP 핵심 기술 - Proxy, Dynamic proxy, Factory bean 목차 AOP란 프락시(Proxy)의 정의, 프락시 패턴 다이내믹 프락시 다이내믹 프락시 예제 한계 스프링의 ProxyFactoryBean : 어드바이저 Spring 3대 기술 (DI, PSA, AOP) 중 하나인 AOP는 프락시 기반으로 동작한 kghworks.tistory.com 이전 포스팅에서 이어진다. 이번 포스팅에서는 트랜잭션을 스프링 AOP를 사용해 구현해 본다. 스프링이 제공하는 어노테이션 @Transactional을 사용해 더 직관적이고 간단.. 2023. 12. 3.
[Java] AOP 1편 - 핵심 기술 Proxy, Dynamic proxy, Factory bean 목차 AOP란 프락시(Proxy)의 정의, 프락시 패턴 다이내믹 프락시 다이내믹 프락시 예제 한계 스프링의 ProxyFactoryBean : 어드바이저 Spring 3대 기술 (DI, PSA, AOP) 중 하나인 AOP는 프락시 기반으로 동작한다. Spring AOP를 보기에 앞서, 프락시의 개념을 알아보고, 다이내믹 프락시를 통해 동적으로 프락시를 생성해본다. 팩토리 빈을 통해 다이내믹 프록시를 빈으로 등록해 Spring DI로 편하게 사용해 본다. 그리고 스프링 ProxyFactoryBean을 통해 어드바이저 (Advisor)의 개념을 익힌다. 이어지는 포스팅에서 스프링 AOP를 본격적으로 다룬다. AOP란? (Aspect Oriented Programming( 애플리케이션을 설계하다면 코드 여기저기.. 2023. 12. 2.