※노발리스 소량 입고되었습니다※독일 코데즈 관목장미 노발리스입니다!! :-)사랑스러운 장미의 계절이 돌아왔습니다!!꽃이 지고나면 진 꽃송이를 잘라주시면 다시 새순이 나와 꽃을 피운답니다~~ 봄 5월부터 서리 내릴때까지 반복해서 개화하는 4계 관목장미입니다.외부 환경변화에 강해 직사광선이나 비 등에 쉽게 지지 않으면서개화기간이 일주일 이상 지속됩니다!화분보다는 땅에 심을것을 권장합니다.불가피하게 화분에 식재할 경우지름과 높이가 50cm 이상의 가급적 대형 화분에 심어야 합니다. 개화력, 내한성, 내병성이 좋은 우수 품종의 장미입니다.내한성구역(Hardiness Zone)이 5a~9b로 나오니 추위에 강한 품종입니다.생육이 활발한 관목으로 약 100~150..
풍성한 꽃잎이 토실토실 앙증맞은 토종 다알리아입니다 :-)다알리아 큰 덩이를 2~3덩이로 나누었습니다.2~3개의 구를 달아서 심기에 딱 좋습니다.더이상 나누지 마시고 그대로 심으면됩니다.비닐봉투를 열어서 환기 시키고, 얼지않게 보관했다가꽃샘 추위가 완전히 끝난 다음에 일반적으로 지역별로고추심는 시기에 심는게 가장좋습니다. 저희가 보내는 뿌리를 더이상 나누지 말고 그대로 심으세요.무리해서 나누다보면 싹이 나지 않을 수 있어요.화단에 식재하기 전에 구근을 물로 샤워를 시키거나물에 하루정도 담구었다가 심으면 싹이 바로 나옵니다.심을 자리에 완숙 퇴비를 많이 넣고 심으면 좋아요. 지난 가을에 캐서 겨울동안 보관하신 다알리아가 있다면지금이 분리 작업하기 좋은 시기입니다.싹이 난 ..
자바 가비지 컬렉터(Garbage Collector) 자바 가상 머신(JVM)에서 메모리 관리를 담당하는 주요 구성 요소 중 하나입니다. 가비지 컬렉터는 더 이상 사용되지 않는 객체들을 식별하고 메모리에서 해제하여 자동으로 관리합니다. 이를 통해 개발자가 명시적으로 메모리를 할당하거나 해제할 필요 없이 프로그램이 메모리를 효율적으로 사용할 수 있습니다. Unused Object 식별: 가비지 컬렉터는 더 이상 사용되지 않는 객체들을 식별합니다. 이는 객체가 더 이상 참조되지 않을 때 발생합니다. 메모리 해제: 가비지 컬렉터는 사용되지 않는 객체들을 메모리에서 해제하여 다시 사용할 수 있는 공간을 만듭니다. 이는 메모리 누수를 방지하고 시스템의 성능을 향상시킵니다. 메모리 최적화: 일부 가비지 컬렉터는 메..
What? springdoc-openapi Swagger를 접속할 때 Fail to load remote configuration 에러 문구와 함께 swagger 접속 불가 Why? **/v3/api-docs/swagger-config 를 불러오지 못하는 문제 (404 Error) 로컬이나 서버 도메인으로 접속할 때는 정상 호출되지만 API Gateway를 통해 접속할 때 API path prefix가 변경될 때 이슈 비정상 호출 : http://apigw.com/v3/api-docs/swagger-config 정상 호출 : http://apigw.com/aa/v3/api-docs/swagger-config How? 아래 옵션을 .yml 에 추가해주면 해결된다. server: forward-headers..
Microbenchmark 마이크로벤치마킹은 컴퓨터 시스템의 성능을 측정하고 비교하기 위해 작고 간단한 테스트를 사용하는 것을 의미합니다. 이는 주로 소프트웨어 라이브러리, 함수 또는 알고리즘의 성능을 평가하거나, 하드웨어 구성 요소의 성능을 테스트하는 데 사용됩니다. 마이크로벤치마킹은 특정 작업의 성능을 목표로 하며, 작업이 작고 빠르기 때문에 여러 번 반복하여 평균 실행 시간을 측정합니다. 빠른 실행: 마이크로벤치마킹 테스트는 작고 간단하기 때문에 빠르게 실행할 수 있습니다. 이는 결과를 빠르게 얻을 수 있고, 변경된 코드나 하드웨어 구성 요소의 성능 변화를 신속하게 측정할 수 있게 해줍니다. 세밀한 분석: 마이크로벤치마킹은 작은 단위의 작업을 실행하므로 세밀한 성능 분석이 가능합니다. 이는 코드나 ..
JVM JVM(Java Virtual Machine)은 자바 프로그램을 실행하기 위한 가상 머신(VM)입니다. JVM은 자바 프로그램을 컴파일된 바이트 코드 형태로 실행하고, 이를 하드웨어와 운영 체제에 맞게 해석하여 실행합니다. 이를 통해 자바 프로그램은 특정 플랫폼에 종속되지 않고 다양한 환경에서 실행될 수 있습니다. 바이트 코드 실행: JVM은 자바 컴파일러에 의해 생성된 바이트 코드를 실행합니다. 이 바이트 코드는 자바 소스 코드를 컴파일한 결과물로, 플랫폼 중립적이며 특정 운영 체제나 하드웨어에 종속되지 않습니다. 메모리 관리: JVM은 자바 프로그램이 사용하는 메모리를 관리합니다. 이는 객체의 생성 및 소멸, 가비지 컬렉션 등을 포함합니다. JVM은 힙(heap) 영역과 스택(stack) 영역..
Java에서 List.of와 Arrays.asList는 리스트를 생성하는 방법이지만 두 메서드의 차이점이 있다. 불변성 List.of: 생성된 리스트는 불변(immutable)하며, 요소를 추가, 제거 또는 변경할 수 없다. add, remove, set 등의 메서드를 사용할 수 없다. Arrays.asList: 생성된 리스트는 크기는 변경할 수 있지만, 요소를 추가하거나 제거하는 등의 변경 작업은 안된다. set은 가능하고, 변경은 원본 배열에 반영된다. List listOf = List.of("A", "B", "C"); try { listOf.add("D"); // UnsupportedOperationException 발생 } catch (UnsupportedOperationException e) {..
CPU 바운드 작업 CPU 바운드 작업은 주로 계산이 많이 필요한 작업으로, CPU의 처리 능력이 주요 병목 지점이 되는 상황입니다. 이러한 작업들은 주로 CPU 연산이 많이 필요하며, I/O 작업이 상대적으로 적은 경우입니다. CPU 바운드 작업에서는 CPU의 성능이 주요 제약 요소가 되므로, 다중 코어를 활용하여 병렬처리를 하는 것이 성능 향상에 도움이 될 수 있습니다. 계산적인 작업: 수학적 계산이 많이 필요한 작업은 CPU 바운드 작업에 해당합니다. 예를 들어, 대규모 행렬의 곱셈, 복잡한 수학적 함수의 계산 등이 여기에 속합니다. 이미지/비디오 처리: 이미지나 비디오 처리 작업 중에서 CPU를 많이 사용하는 작업은 CPU 바운드 작업에 해당할 수 있습니다. 예를 들어, 이미지 필터링, 변환, 비..
Enum 특징 JVM에서 인스턴스를 단 한 번만 생성하기 때문에 인스턴스의 제어가 용이 Enum 상수가 프로그램 내에서 오직 한 번만 생성되고, 그 이후에는 항상 동일한 인스턴스를 참조 JVM에서 스레드 안전(thread-safe)하게 초기화 자동으로 직렬화되며, 역직렬화될 때도 항상 동일한 인스턴스를 반환 Enum Singleton Pattern Enum의 특징을 활용해서 각 Enum 상수에 대해 특정 비즈니스 객체를 생성하도록 코드를 작성해서 싱글톤으로 생성된 비즈니스 객체를 재사용할 수 있도록 구현한다. 구현 객체 생성을 Enum에 위임해서 Client에서는 Interface를 통해서 사용할 수 있다. Calculator enum에 비즈니스 객체를 생성하는 요소 public enum Calculat..
함수 추출하기 '목적과 구현을 분리'하는 방식 함수의 목적이 눈에 확 들어오고, 본문 코드에 대해서는 더 이상 신경 쓸 일이 거의 없다. 함수를 짧으면 캐싱하기가 더 쉽기 때문에 컴파일러가 최적화하는 데 유리할 때가 많다. #AS-IS function printOwing(invoice) { printBanner(); let outstanding = calculateOutstanding(); console.log('고객명: ${invoice.customer}'); console.log('채무액: ${outstanding}'); } #TO-BE function printOwing(invoice) { printBanner(); let outstanding = calculateOutstanding(); prin..