Kadane's Algorithm은 배열에서 연속된 요소들의 부분 배열 중 가장 큰 합을 찾는 효율적인 알고리즘입니다. 이 알고리즘은 O(n) 시간 복잡도로 동작하므로, 배열을 한 번만 순회하여 문제를 해결할 수 있습니다. 문제는 주로 "최대 부분 배열 합" (Maximum Subarray Sum) 문제라고 불립니다.알고리즘 설명:배열의 각 요소를 차례대로 살펴보며, 현재 위치까지의 최대 부분 배열 합을 계산합니다.부분 배열의 합이 음수로 떨어지면 그 이전의 부분 배열은 버리고, 새로운 부분 배열을 시작합니다.결국 가장 큰 부분 배열의 합을 찾아냅니다.원리:현재까지의 최대 부분 합(max_ending_here)을 유지합니다.최대 전체 합(max_so_far)을 유지합니다.각 단계에서 현재까지의 최대 부분..
Divide and Conquer와 Dynamic Programming은 둘 다 문제를 작은 하위 문제로 나누어 해결하는 방식이지만, 근본적으로 해결 방식과 적용 상황에서 차이가 있습니다.1. Divide and Conquer (분할 정복)핵심 아이디어:문제를 더 작은 하위 문제로 나누어 각각을 재귀적으로 해결한 다음, 결과를 결합하여 원래 문제를 해결하는 방식입니다.각 하위 문제는 독립적으로 해결됩니다.특징:문제를 재귀적으로 쪼개고, 각 하위 문제를 해결한 후 결합하여 최종 결과를 얻습니다.하위 문제들이 서로 중복되지 않음. 즉, 같은 하위 문제를 여러 번 계산하지 않음.대표적인 예: Merge Sort (O(n log n)), Quick Sort (O(n log n)), Binary Search (O..
Trie의 주요 특징문자 기반 트리: 각 노드는 문자를 저장하며, 루트 노드에서부터 각 문자 노드를 따라가면서 문자열을 구성합니다.공유된 경로: 문자열의 공통된 접두사를 공유하므로 메모리를 절약할 수 있습니다.효율적인 검색: 단어 검색, 삽입, 삭제가 매우 빠릅니다. 검색 시간은 문자열의 길이에 비례합니다.Trie의 구조노드(Node): 각 노드는 하나의 문자 또는 값(보통은 문자)을 저장하며, 자식 노드들을 가리킵니다.루트 노드: 트리의 최상위 노드로, 빈 값(또는 특별한 값)을 가집니다.자식 노드: 각 노드는 여러 자식 노드를 가질 수 있으며, 자식 노드는 다른 문자로 이어지는 경로를 나타냅니다.종료 표시(End of Word): 노드에는 단어가 끝나는지 여부를 표시하는 플래그가 있을 수 있습니다. ..
우리 토종 노랑수선화입니다!!번식력 강하고, 개화기간 길고, 추위에 강해 전국 노지월동 잘하는 수선화입니다.거제도 공곶이, 서산 유기방 가옥의 수선화들이 바로 토종수선화입니다. 식재는 10cm 간격으로 군락을 이루게 심는것이 좋습니다.번식력이 좋아 식재 후 3년에 한번여름에 잎이 진 후에 구근을 캐서 늘려 심기하면 좋아요. 구근 크기가 수입산이 아니고 국내산이라 동일하지 않습니다.큰넘, 작은넘 섞여갑니다.좀 작은 구근도 개화구입니다.구근을 양파망에 넣어 발송합니다.지금 바로 식재해도 문제가 없지만가급적이면 그늘에 두셨다가 9월경에 식재하는게 더 좋습니다. ..
AWS SQSAWS SQS (Amazon Simple Queue Service)는 분산 메시지 대기열 서비스로, 애플리케이션 구성 요소 간의 통신을 비동기적으로 지원합니다. 이를 통해 시스템의 확장성, 내결함성, 성능을 향상시킬 수 있습니다. AWS SQS는 관리형 서비스로, 메시징 인프라의 운영 및 유지보수에 대한 부담을 덜어줍니다.AWS SQS의 기본 개념1. 메시지메시지는 SQS 큐에 저장되는 데이터입니다. 메시지는 본문(body)과 메타데이터(속성)로 구성됩니다. 본문은 애플리케이션 간에 전송되는 실제 데이터이며, 속성은 메시지에 대한 추가 정보를 포함합니다.2. 큐큐는 메시지를 저장하고, 메시지를 전송자와 수신자 사이에서 일시적으로 보관하는 공간입니다. SQS에는 두 가지 유형의 큐가 있습니다...

Spock FrameworkGroovy 언어로 작성된 테스트 프레임워크로, JVM 기반 언어(Java, Groovy 등)에서 유닛 테스트와 BDD(Behavior Driven Development)를 쉽게 작성할 수 있게 해줍니다. Spock은 간결하고 읽기 쉬운 문법과 강력한 기능을 제공하여 테스트 코드를 작성하고 유지보수하는 데 큰 도움을 줍니다. 직관적인 문법: 테스트 코드는 인간이 읽기 쉬운 형식으로 작성됩니다.강력한 모킹 및 스텁 기능: 내장된 모킹 및 스텁 지원으로 간편하게 테스트 더블을 생성할 수 있습니다.BDD 스타일의 테스트: given, when, then 블록을 사용하여 테스트 시나리오를 명확하게 작성할 수 있습니다.데이터 주도 테스트: 다양한 입력 데이터를 쉽게 테스트할 수 있는 데..
BDD (Behavior Driven Development)https://en.wikipedia.org/wiki/Behavior-driven_developmentBDD(Behavior Driven Development)은 소프트웨어 개발 방법론의 하나로, 개발자와 비개발자(예: 비즈니스 분석가, 품질 관리자)가 협력하여 소프트웨어의 기능을 정의하고, 그 기능의 동작을 명확하게 이해하고 검증할 수 있도록 돕는 것을 목표로 합니다. BDD는 TDD(Test Driven Development)에서 발전한 개념으로, 사용자 스토리를 기반으로 한 테스트 작성에 중점을 둡니다. BDD는 개발 과정에서 커뮤니케이션을 강화하고, 모든 이해관계자가 소프트웨어의 동작을 명확하게 이해할 수 있도록 하는 데 중점을 둡니다. ..
Mapstruct를 통해 객체 매핑 작업을 할 때 필드명은 같지만 타입이 다를 때 타입변환이 자동으로 되는데String -> int 필드로 변환할 때는 주의해야한다.@NoArgsConstructor@AllArgsConstructor@Data@SuperBuilderpublic class WishListDto { private Integer index; private String title; private String category; private String address; private String roadAddress; private String homePageLink; private String imageLink; private boolean isVisit..
파릇파릇 봄을 알리는 큰꿩의비름 입니다!!중형으로 현재 15cm화분에 식재되어있습니다.이른 봄에 가장 먼저 잎이 나오기 시작하여8-9월부터 꽃이 연분홍색으로 피어서 점차 홍자색을 띠다가을이 깊어가면서 짙은 커피색으로 변하고 나중에 씨앗을 맺습니다.화단용으로 아주 잘 어울리고 특히 몸이 다육이라 건조에 아주 강해 척박한 곳에서도 잘 자란답니다.화분에서도 노지월동 가능합니다!! 꽃에 향기가 있어 화분에 심어 볕이 잘 드는 실내에 두어도 좋습니다.꽃에 향기가 있고 탐스러워 꽃꽂이용으로 훌륭한 소재입니다.어린시절에 많이 보았던, 불로초라고도 불렸던 추억의 꽃이기도 한답니다. ..