분류 전체보기200 [개념 정리] 투 포인터 투포인터가 뭘까요? 이 글은 큰돌의 터전님의 강의인 10주 완성 C++ 코딩테스트 알고리즘 개념 교안을 참고하여 작성했습니다. 투 포인터배열이나 리스트와 같은 선형 자료구조가 정렬된 상태에서 두 개의 포인터를 사용해 특정한 조건을 만족하는 부분 배열이나 원하는 값을 찾는 문제를 푸는데 사용되는 알고리즘 입니다. 일반적으로 정렬된 배열에서 두 수의 합 찾기, 연속된 부분배열의 합 찾기에 사용됩니다. 투 포인터 알고리즘은 어떤 원리로 동작하나요? 투 포인터 원리투 포인터 알고리즘은 이름처럼 2개의 포인터를 사용합니다.왼쪽 포인터 : 배열의 시작점에서 시작하여 오른쪽으로 한칸씩 이동하는 포인터오른쪽 포인터 : 배열의 끝지점에서 시작하여 왼쪽으로 한칸씩 이동하는 포인터투 포인터는 그림처럼 양 끝에서 시작해도 .. 2025. 3. 8. 동적 프록시 동적 프록시가 뭘까요? 이번글은 동적 프록시에 대해서 정리했습니다.참고 강의 : 김영한의 스프링 핵심 원리 - 고급편 동적 프록시동적 프록시는 프록시 객체를 런타임에 자동으로 생성해주는 기술입니다.개발자가 직접 프록시 클래스를 작성하지 않아도, JVM이 런타임 시점에 프록시 클래스를 생성하여 제공합니다. 동적 프록시를 사용하는 이유가 뭔가요? 직접 만들어도 되는거 아닌가요? 동적 프록시는 런타임에 프록시 클래스를 메모리에서 생성하기 때문에 불필요한 클래스 파일이 소스코드나 파일시스템에 남지 않습니다.또한, 반복적인 코드 생성을 자동화해 중복 작업을 최소화하고, 개발자는 핵심 로직에 집중할 수 있게 해줍니다. 동적 프록시는 인터페이스를 기반으로 프록시를 동적으로 만들어주기 때문에, 인터페이스를 필수로 사용.. 2025. 3. 8. [Spring Docs] Transaction Management #1 공식문서로 트랜잭션을 배워볼까요..? 이번글은 공식 문서에서 소개하는 Transaction Management에 대해 정리했습니다.범위 : Advantages of the Spring Framework’s Transaction Support Model ~Declarative Transaction Management(Configuring Different Transactional Semantics for Different Beans) Spring에서 트랜잭션 지원 모델의 장점이 무엇일까요? Advantages of the Spring Framework's Transaction Support ModelEE 애플리케이션 개발자들은 트랜잭션 관리를 위해서 글로벌 트랜잭션과 로컬 트랜잭션 두 가지 선택지만 존재.. 2025. 3. 7. [프로그래머스] Lv3. 코딩 테스트 공부 문제 풀이 방법당신은 주어진 모든 문제들을 풀 수 있는 알고력과 코딩력을 얻는 최단시간을 구하려 합니다.초기의 알고력과 코딩력을 담은 정수 alp와 cop, 문제의 정보를 담은 2차원 정수 배열 problems가 매개변수로 주어졌을 때, 모든 문제들을 풀 수 있는 알고력과 코딩력을 얻는 최단시간을 return 하도록 solution 함수를 작성해주세요. 문제에서 모든 문제들을 풀 수 있는 알고력과 코딩력을 얻는 최단시간을 구하라고 합니다.알고력을 높이기 위해 알고리즘 공부를 합니다. 알고력 1을 높이기 위해서 1의 시간이 필요합니다.코딩력을 높이기 위해 코딩 공부를 합니다. 코딩력 1을 높이기 위해서 1의 시간이 필요합니다.현재 풀 수 있는 문제 중 하나를 풀어 알고력과 코딩력을 높입니다. 각 문제마다 .. 2025. 3. 7. [개념 정리] 라인 스위핑 라인 스위핑이 뭘까요? 몰라요..이 글은 큰돌의 터전님의 강의인 10주 완성 C++ 코딩테스트 알고리즘 개념 교안을 참고하여 작성했습니다. 라인 스위핑(Line Sweeping)가상의 수직선을 왼쪽에서 오른쪽으로 이동시키면서 각 지점을 처리해주는 알고리즘입니다.즉, 수직선을 기반으로 문제에서 주어진 정점을 하나씩 탐색하면서 계산을 수행합니다. 라인 하나를 빗자루 쓸 듯이 탐색한다고 해서, 라인 스위핑이라고 합니다. 라인 스위핑은 언제 사용할까요? 라인 스위핑은 점, 선, 구간이 정렬된 순서대로만 처리하면 되는 문제에서 아주 유용하게 사용이 됩니다.겹치는 구간 찾기, 최대 구간 길이, 가장 많이 겹치는 부분 찾기를 할때 유용합니다.보통 좌표 문제에서 많이 사용됩니다. 라인 스위핑을 사용하는 사용하는 간단한.. 2025. 3. 7. Servlet 공식문서로 Servlet을 배워볼까요? 이번 글은 Servlet 공식 문서로 공부한 내용을 정리했습니다.version - Java 17 공식 문서 링크https://docs.oracle.com/javaee/7/tutorial/servlets.htm 17 Java Servlet Technology (Release 7) docs.oracle.com 서블릿이 무엇일까요? Servlet서블릿은 Java 클래스로, 요청 - 응답 프로그래밍 모델을 사용하는 서버의 기능을 위해 만들어진 기술입니다.이론적으로 어떤 종류의 요청에도 응답이 가능하지만, 보통 웹 서버에서 웹 어플리케이션을 확장하는 용도로 많이 사용합니다. javax.servlet과 javax.servlet.http 패키지는 서블릿을 작성할 때 사용하는.. 2025. 3. 7. 리플렉션(Reflection) 프록시로 부가 기능을 추가하고 싶은데,클래스를 생성할 때마다 매번 프록시 객체를 따로 만들어야 할까요? 이번글은 동적 프록시에 사용되는 리플렉션에 대해서 정리했습니다.참고 강의 : 김영한의 스프링 핵심 원리 - 고급편 만약 새로 생기는 클래스 100만개가 있다면, 어떻게 될까요? 만약 새로운 클래스가 100만 개나 생긴다면, 이 100만 개의 클래스마다 일일이 프록시 객체를 생성해주는 것은 매우 비효율적입니다.이러한 문제를 해결하기 위해, 동적 프록시기법을 활용할 수 있습니다. 동적 프록시는 리플렉션(reflection)을 이용해 런타임에 필요한 부가 기능을 프록시 객체에 주입하는 방식으로,별도의 프록시 클래스를 100만 개 준비할 필요 없이, 프록시 생성 로직을 공통화하여 관리할 수 있습니다.이로써,.. 2025. 3. 7. [개념 정리] 그리디 문제를 해결할때, 각 단계의 최선의 선택을 하려면 어떻게 할까요? 이 글은 큰돌의 터전님의 강의인 10주 완성 C++ 코딩테스트 알고리즘 개념 교안을 참고하여 작성했습니다. 그리디그리디 알고리즘은 문제를 해결할 때 각 단계에서 최선이라고 생각되는 선택을 하는 방식으로, 이 선택들이 모여 전체 문제에 대한 최적의 해를 도출해내는 알고리즘 입니다. 언제 그리디를 사용해야 할까요? 무식하게 완전탐색 → 조건 처리 하면 될거같은데? 백트래킹 → 그래도 시간초과 날꺼 같아? DP → 배열에 다 못담을거 같은데.. 메모리 초과날꺼 같아? 그리디(정렬, 우선순위 큐) 그리디는 제일 마지막 단계에서 생각을 합니다. 그리디하게 풀기 위해선 3단계를 거쳐야 합니다.최고의 선택을 할 수 있는 하나의 명제를 생각합니다.명.. 2025. 3. 6. 데코레이터 패턴 데코레이터 패턴이 뭘까요? 이번 글은 프록시와 데코레이터 패턴에 대해 정리한 글입니다.참고 강의 : 김영한의 스프링 핵심 원리 - 고급편 데코레이터 패턴데코레이터 패턴은 객체 지향 디자인 패턴 중 하나로, 기존 객체의 구조를 변경하지 않고, 동적으로 새로운 기능을 추가할 수 있는 방법을 제공합니다. 어떻게 기존 객체의 구조를 변경하지 않고, 동적으로 새로운 기능을 추가할 수 있을까요? 하나의 예를 들어, 데코레이터 패턴 적용전의 의존 관계와 적용 후 의존관계를 통해 알아보겠습니다. 먼저, 데코레이터 패턴 적용전의 클래스 의존 관계는 다음과 같습니다. 데코레이터 패턴 적용전의 런타임 객체 의존 관계는 다음과 같습니다.의존관계를 코드로 확인해보겠습니다. Component 인터페이스public inte.. 2025. 3. 6. 이전 1 ··· 7 8 9 10 11 12 13 ··· 23 다음