본문 바로가기
  • 기억의 유한함을 기록의 무한함으로✍️            예비 개발자가 꿈꾸는 공간 여기는 안나의 개발 블로그 💻

분류 전체보기83

[Spring 입문하기] Section 07. AOP ✏️ 핵심 관심사항(core concer)과 공통 관심사항(cross-cutting concer) 핵심관심사항 예) 은행서비스, 계좌서비스 , 소비자 소비스 등등 공통관심사항(부가기능) 예)보안, 트랜잭션, 로그인 인증 ✏️ AOP (Aspect Oriented Programming - 관점 지향 프로그래밍) 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화하여 재사용할 수 있도록 지원하는 것 기존 oop는 함수로 뺄 수 없는 공통적으로 처리하는 부가 기능 로직이 중복되는 한계가 있어 이를 해결하기 위해 AOP가 등장하게 되었다. 이런 로직을 어스펙트(Aspect)라는 모듈 형태로 만들어서 설계하고 개발하는 방법이다. 즉 핵심적인 기능에서 부가적인 기능을 분리하는 것.. 2024. 1. 25.
[Spring 입문하기] Section 06. 스프링 DB 접근 기술 ✏️ H2 데이터베이스 자바 기반의 오픈소스 관계형 데이트베이스 관리 시스템 스프링 부트가 지원하는 인메모리 관계형 데이터베이스 인메모리 특징 : 검색이 빠름, 휘발성(전원이 꺼지면 데이터 삭제) 브라우저 기반의 콘솔 프로그램 적은 용량으로 설치 가능 Embedded mode(내장모드) & Server mode(서버모드) 지원 Embedded mode(내장모드) : Application 서버 실행 종료시 데이터 모두 휘발 Server mode(서버모드) : Application 서버 종료시에도 지속적으로 해당 데이터를 사용 로컬환경이나 테스트 환경에서 많이 사용됨. ✏️ 순수 JDBC JDBC(Java Database Connectivity) 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API J.. 2024. 1. 25.
[Spring 입문하기] Section 04. 스프링 빈과 의존관계 ✏️ 스프링 빈(Bean) 빈(Bean)이란 스프링 컨테이너에 의해 재사용 가능한 소프트웨어 컴포넌트이다. 즉 스프링 컨테이너에 의하여 생성되고 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리한다. Spring Framework에서는 ApplicationContext.getBean() 등의 메서드로 직접 자바 객체를 가져올 수 있다. IntelliJ 에서는 Bean 인 경우 아래 사진처럼 왼쪽에 아이콘으로 표시된다. 스프링에서 스프링 빈을 인지하는 2가지 방법 스프링은 약속되어 있는 어노테이션이 붙어있는 클래스를 자동으로 인지한다. @Component어노테이션이 붙어있다면, 스프링이 자동으로 인지할 수 있게 된다. → 컴포넌트 스캔을 이용한 방식 Bean Configuration File.. 2024. 1. 25.
[알고리즘 정리] Merge Sort ( 병합정렬 ) - O(NlogN), 추가메모리, Stable 🤔Merge Sort(병합정렬) 이란 ? 병합 정렬은 분할 정복 (Divide and Conquer) 방식을 이용해서 하나의 리스트를 두 개의 리스트로 분할한 다음 각각의 분할된 리스트를 정렬한 후에 합해서 정렬된 하나의 리스트로 만드는 정렬 알고리즘 💡 과정 주어진 리스트를 절반으로 분할하여 부분리스트로 나눈다. (Divide : 분할) → mergeSort() 메소드 해당 부분리스트의 길이가 1이 아니라면 1번 과정을 되풀이한다. → if (start == end) return; 인접한 부분리스트끼리 정렬하여 합친다. (Conqure : 정복) → merge() 메소드 ⚡ 특징 시간 복잡도 : 최선, 평균, 최악 모두 $O(NlogN)$ 데이터를 “비교”하면서 찾기 때문에 비교정렬 추가 메모리 필요 .. 2024. 1. 20.
[백준 Java] 3020번 개똥벌레 💡문제 [Gold V] 개똥벌레 - 3020 문제 링크 성능 요약 메모리: 29804 KB, 시간: 252 ms 깨진 부분은 여기에서 확인 🤔접근법 범위 체크 및 시간복잡도 예상 2 ≤ N ≤ 200,000, 2 ≤ H ≤ 500,000 $O(\sqrt {NH}$ 또는 $O(N)$ 이하 이어야 한다. 풀이법 ❌ 접근 방법. 완탐 H개의 높이에 대해서 N개의 장애물에 대해 탐색하며 몇개의 장애물을 통과해야할지 판별→ $O(NH)$ ➡️ 해당 풀이법의 시간 복잡도 : $O(NH)$ 당연히 시간복잡도 초과 ❌ 접근 방법. 완탐 높이 H를 인덱스로 가지는 배열을 생성 장애물을 차례대로 탐색하며 높이에 장애물이 존재하는 높이에 업데이트 → $O(NH)$ 길이가 2인 석순이라면 높이 1에 +1, 높이 2에 +1 길.. 2024. 1. 13.
[백준 Java] 2143번 두 배열의 합 💡문제 [Gold III] 두 배열의 합 - 2143 문제 링크 성능 요약 메모리: 112696 KB, 시간: 556 ms 깨진 부분은 여기에서 확인 🤔접근법 범위 체크 및 시간복잡도 예상 -1,000,000,000 ≤ T ≤ 1,000,000,000 (십억) 1 ≤ n ≤ 1,000, 1 ≤ m ≤ 1,000 배열 원소는 절댓값이 1,000,000을 넘지 않는 정수 $O(\sqrt T)$ 또는 $O(n^2)$이하 이어야 한다. 풀이법 ❌ 접근 방법. 완탐 배열 A의 가능한 부분 배열 만들기 → $O(N^2)$ 배열 B의 부분합이 T-(배열 A의 부분합)인 모든 부 배열 찾기 → $O(N^2)$ ➡️ 해당 풀이법의 시간 복잡도 : $O(N^4)$ 당연히 시간복잡도 초과 ⭕ 접근 방법. Map을 이용해 누.. 2024. 1. 13.
반응형