본문 바로가기

분류 전체보기173

[Thymeleaf decoupled logic] Fragment detection Error 상황 서버를 주로 담당하고 있는 제가 뷰 관련된 html 문서를 작성하고 있습니다. 대부분의 요소들을 모달 형식으로 만들다보니 메인 html 의 크기가 계속해서 커져 이를 요소별(영역별)로 나누고 싶었고 익숙한 Thymeleaf 를 사용하였습니다. 이후 다른 프론트엔드 분에게 인계할 시 Thymeleaf 의 코드가 html 문서에 남아있으면 좋지않을 것이라 생각하여 decoupled logic 을 사용하였습니다. 문제 각 영역을 Fragment 로 분리한 다음 메인 html 의 해당 영역에 replace 하려하니 Fragment 를 잘 찾지 못했습니다. 에러 로그 org.thymeleaf.exceptions.TemplateInputException: Error resolving fragment: "~{u.. 2024. 4. 6.
비트마스킹 보호되어 있는 글 입니다. 2024. 4. 4.
플로이드 워셜 알고리즘 플로이드 워셜 알고리즘 모든 정점에서 모든 정점까지 이동할 때 최소 비용을 얻을 수 있는 알고리즘이다. 모든 정점 사이의 비용을 구하다보니 시간 복잡도는 O(정점의 수 ^ 3) 으로 상당히 높다. 플로우 모든 정점을 대상으로 총 3 번의 중첩 반복문을 실행한다. 가장 외부의 반복문은 이후에 나올 시작 정점, 도착 정점이 반드시 거치게 될 중간 정점을 선택한다. 그 다음 내부의 두 반복문은 시작 정점, 도착 정점을 선택한다. 이를 반복해서 모든 경우를 고려할 수 있다. 너무 생략했나.. 벨만 포드 알고리즘 과 코드만 봐도 쉽게 이해할 수 있을 것이다. 소스 코드 n = int(input()) m = int(input()) INF = float('inf') board = [[(INF, INF,.. 2024. 3. 13.
벨만 포드 알고리즘 벨만 포드 알고리즘 다익스트라는 가중치가 음수가 아닌 경우 특정 노드까지 이동하는 최소 비용의 경로를 찾는 알고리즘이였다. 벨만 포드는 음수의 가중치도 허용한다. 대신 다익스트라의 시간복잡도가 O(간선 수 * log 정점 수) 였다면 벨만 포드의 시간복잡도는 O(간선 수 * 정점 수) 로 더 느린 알고리즘이다. 플로우 시작 정점과 도착 정점이 정해져있을 때 사용하는 알고리즘이다. 동작원리를 설명하기 앞서 한 가지 정보를 알아야한다. N 가지 정점이 있고 어느 한 정점에서 다른 정점으로 가는 최단거리를 구하기 위해선 최대 N-1 의 간선만 거치면 된다. 시작 정점이 1일 때 3 (N-1) 이내인 1 거리만에 모든 정점 과의 최소 비용 거리를 알아낼 수 있다. 마찬가지로 제일 멀리 떨어진 정점도 3 (N-1.. 2024. 3. 11.
다익스트라 알고리즘 다익스트라란 그래프 이동 알고리즘 중 하나. 어느 한 vertex 에서 다른 vertex 로 이동할 때 과정을 최소비용으로 구성할 수 있습니다. BFS 와는 조금 다른 것이 BFS 에서는 모든 경로에 대한 비용이 같은 값인 셈입니다. 우선순위가 동등한 상태입니다. 다익스트라의 추가적인 조건으로는 비용이 음수여서는 안된다. 시간복잡도, 공간복잡도 다익스트라의 시간복잡도는 O(ElogV)이고, 공간복잡도는 O(V+E)입니다. 시간복잡도와 공간복잡도를 먼저 알려드린건 어떤 식으로 진행될지 대략적으로 참고를 하셨으면 해서 입니다. E 는 Edge 간선의 수, V 는 Vertex 노드의 수 입니다. 시간복잡도는 최악의 경우 모든 간선을 이동하며(E) 접근하게된 노드들을 우선순위 큐에 삽입하는 정도의 시간(logV.. 2024. 3. 8.
[BOJ] 10037 Decorating the Pastures (문제풀이, PYTHON) 문제 링크 10037번: Decorating the Pastures Farmer John has N (1 2024. 3. 4.
[회고] spring security 6.2.2 formlogin not found 환경 spring boot 3.2.2 java 17 spring security 6.2.2 상황 인터넷 예제를 보며 spring security 6 버전 이상인 상황에서 security config 를 작성 중 spring security 에서 기본 제공되는 form login 을 사용하는데 이것을 잘 찾지 못하고 404 Not Found 에러가 발생하였다. public SecurityFilterChain filterChain(HttpSecurity http) { http .formLogin(form -> form .loginPage("/login") .permitAll() ); // ... } 특이한 문제는 없어보여 계속 진행을 하였으나 계속해서 문제가 발생하였다 해결 공식문서에 잘 나와있었다! 위의 .. 2024. 2. 21.
[에러 회고] jakarta.servlet.ServletException: Request processing failed: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/persistence/NoResultException (queryDSL, spring boot 3.0, jakarta) 환경 spring boot 3.2.2 java 17 상황 queryDSL 5.0.0 종속성을 추가하였더니 테스트 케이스가 다음 예외를 발생하며 실패하였다. jakarta.servlet.ServletException: Request processing failed: java.lang.RuntimeException: java.lang.NoClassDefFoundError: javax/persistence/NoResultException ... 해결 방안 spring boot 3.0.0 이상부턴 javax 가 jakarta 로 대체되었다. 따라서 queryDSL 에도 jakarta 버전을 기재해야 된 것이다. // queryDSL 설정 implementation 'com.querydsl:querydsl-jpa.. 2024. 2. 21.