본문 바로가기
반응형

전체 글346

[Spring Boot] 스프링 MVC 인터셉터란? 스프링 부트에서 사용하기 학습 목표 · 인터셉터란? · 의존성 추가 · 스프링 부트에서 인터셉터 사용하기 인터셉터란? · Spring Interceptor는 클라이언트 요청을 가로채서 처리하는 데 사용된다. · 스프링에서 요청이 컨트롤러로 전송되면 컨트롤러에서 처기되기 전, 컨트롤러에서 응답을 받은 후에 클라이언트에 응답을 보내기 전, 응답 완료 후(뷰가 렌더링 된 후)에 Interceptor를 통과한다. · 로깅 및 권한 인증 확인 등 반복적인 처리 코드를 피하는 데 도움을 줄 수 있다. 인터셉터는 org.springframework.web.servlet.HandlerInterceptor 인터페이스를 구현하거나, org.springframework.web.servlet.handler.HandlerInterceptorAdapte.. 2021. 11. 4.
[Algorithm] 그리디 알고리즘(Greedy Algorithm)이란? 이 글은 '이것이 코딩테스트다'를 요약하여 그리디 알고리즘에 대하여 설명합니다. 학습 목표 · 그리디 알고리즘이란? · 예시 - 거스름돈 문제 · 그리디 알고리즘의 정당성 그리디 알고리즘이란? · 탐욕적으로 문제를 푸는 알고리즘 - 탐욕적이라는 말은 ‘매 순간 가장 좋아 보이는 것만 선택하고 나중에 미칠 영향은 고려하지 않는’ 방식을 의미한다. · 코딩 테스트에서 만나게 될 그리디 알고리즘 문제 유형의 특징: - 사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형이다. - 문제 유형이 매우 다양하여 암기한다고 항상 잘 풀 수 있는 알고리즘 유형이 아니다. 때문에 많은 유형을 접해보고 문제를 풀어보며 훈련 해야 한다. - 일반적으로 창의력, 즉 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 .. 2021. 11. 4.
[Algorithm] 그래프 이론: 트리, 서로소, 신장 트리, 크루스칼 알고리즘, 위상 정렬 학습 목표 · 그래프(Graph)란? · 트리(Tree)란? · 서로소 집합 - 서로소 집합 자료구조 - 문제점 - find 함수 개선: 경로 압축 기법 - 서로소 집합을 활용한 사이클 판별 · 신장 트리(Spanning Tree) - 최소 신장 트리 알고리즘 - 크루스칼 알고리즘 · 위상 정렬 · DFS/BFS, 최단 경로 알고리즘은 그래프 알고리즘의 한 유형 · 크루스칼 알고리즘 - 그리디 알고리즘, 위상 정렬 알고리즘 - 큐 자료 구조 or 스택 자료구조를 활용하여 구현 그래프(Graph)란? · 노드(Node)와 노드 사이에 연결된 간선(Edge)의 정보를 가지고 있는 자료구조 · 그래프를 구현하는 2가지 방식: 1. 인접 행렬(Adjacency Matrix): 2차원 배열을 사용하는 방식 ex).. 2021. 11. 3.
[Junit] AssertJ란? 학습 목표 · AsserJ란? · AsserJ의 장점 · TODO: AssertJ의 단점 · 라이브러리 의존성 설정 · AssertJ 메소드 임포트 · 사용 방법 · 잘못된 사용 예시 AsserJ란? · 단언문(assertion)을 작성하기 위한 풍부한 인터페이스를 제공하는 자바 라이브러리로, 테스트 코드의 가독성을 향상시키고 테스트 유지 관리를 더 쉽게 만드는 것을 주요 목적으로 한다. · JUnit의 단언에 대한 표현력 부족을 보완한다. · spring-boot-starter-test에 기본적으로 포함된다. AssertJ의 장점 · 메서드 체이닝을 지원하여 깔끔하고 읽기 쉬운 테스트 코드를 작성 가능하다. · 타입별로 다양한 검증 메서드를 제공한다. - 개발자가 테스트를 하면서 필요하다고 상상할 수 .. 2021. 10. 30.
스프링 부트 AutoConfigure가 작동하는 원리 스프링 부트 AutoConfigure는 클래스 경로에 있는 의존성을 기반으로 스프링 애플리케이션을 자동으로 구성한다. 스프링 부트는 클래스 경로에서 클래스를 감지하고, AutoConfigure 매커니즘은 필요한 빈을 생성하고 연결한다. 이것은 스프링 부트의 가장 강력한 기능 중 하나이고, 대부분의 작업은 백그라운드에서 자동으로 발생한다. Auto-Configuration Report 스프링 부트의 application.properties 파일에서 debug=true를 설정하면, 스프링 부트 애플리케이션에 대한 Auto-Configureation Report를 활성화할 수 있다. 그리고 애플리케이션을 실행하면, 다음과 같은 출력을 확인할 수 있다. ============================ CON.. 2021. 10. 26.
스프링에서 버전을 일관성있게 다루는 방법: BOM Maven POM · Maven에서 종속성을 가져오고 프로젝트를 빌드하는 데 사용하는 정보 및 설정을 포함하는 XML 파일 Maven BOM · Bill Of Materials(자재 명세서)의 약자 · 프로젝트 종속성의 버전을 제어하고, 해당 버전을 정의하며, 업데이트하는 중앙 위치를 제공하는 데 사용되는 특별한 종류의 POM - BOM은 의존해야 하는 버전에 대한 걱정없이, 모듈에 의존성을 추가할 수 있는 유연성을 제공함 Transitive Dependencies(전이 의존성) Maven은 pom.xml에서 자체 의존성에 필요한 라이브러리를 발견하고, 자동으로 포함할 수 있다. 또한 라이브러리가 수집되는 의존성 수준의 개수는 제한이 없다. 이때, 2개의 의존성이 특정 아티팩트의 다른 버전을 참조할 때 .. 2021. 10. 26.
반응형