[Thymeleaf] URL링크
·
타임리프
웹 화면을 만들다 보면 다른 페이지로 이동하는 링크가 필요하다. 단순히 /hello 같은 고정 주소를 쓰기도 하지만, 실제 개발에서는 쿼리 파라미터(검색 조건, 페이지 번호 등)나 경로 변수(게시글 ID, 사용자 이름 등)를 붙여야 할 때가 많다.Thymeleaf는 이런 경우를 간단히 처리할 수 있도록 @{...} 문법을 제공한다. 1. 컨트롤러에서 데이터 준비하기컨트롤러에서 URL에 넣을 값을 모델에 담는다.@GetMapping("/link")public String link(Model model) { model.addAttribute("param1", "data1"); model.addAttribute("param2", "data2"); return "basic/link";}여기서 p..
[Thymeleaf] 유틸리티 객체와 날짜
·
타임리프
웹 애플리케이션을 개발할 때, 서버에서 가져온 데이터를 화면에 표현하는 일은 기본 중의 기본이다. 단순 값 하나가 아니라 날짜·시간을 원하는 형식으로 포맷하고, 연/월/일·요일·시/분/초 같은 구성요소를 뽑아 쓰는 경우도 많다. 이때 템플릿에서 직접 메서드를 호출하기보다는, Thymeleaf의 #temporals 유틸을 쓰면${#temporals.format(localDateTime, 'yyyy-MM-dd HH:mm:ss')}처럼 짧은 문법으로 처리할 수 있다. 아래 예제로 흐름을 잡아 보자. 1. BasicController 추가 (데이터 준비하기)컨트롤러에서 현재 시각을 모델에 담아 뷰로 보낸다.@GetMapping("/date")public String date(Model model) { mo..
[백준] 12869 뮤탈리스크 (JAVA)
·
코딩 테스트
문제링크: 12869번: 뮤탈리스크 난이도: 골드4 문제:수빈이는 강호와 함께 스타크래프트 게임을 하고 있다. 수빈이는 뮤탈리스크 1개가 남아있고, 강호는 SCV N개가 남아있다.각각의 SCV는 남아있는 체력이 주어져있으며, 뮤탈리스크를 공격할 수는 없다. 즉, 이 게임은 수빈이가 이겼다는 것이다.뮤탈리스크가 공격을 할 때, 한 번에 세 개의 SCV를 공격할 수 있다.첫 번째로 공격받는 SCV는 체력 9를 잃는다.두 번째로 공격받는 SCV는 체력 3을 잃는다.세 번째로 공격받는 SCV는 체력 1을 잃는다.SCV의 체력이 0 또는 그 이하가 되어버리면, SCV는 그 즉시 파괴된다. 한 번의 공격에서 같은 SCV를 여러 번 공격할 수는 없다.남아있는 SCV의 체력이 주어졌을 때, 모든 SCV를 파괴하기..
[백준] 4179 불! (JAVA)
·
코딩 테스트
문제 링크:4179번: 불! 난이도: 골드3 문제:지훈이는 미로에서 일을 한다. 지훈이를 미로에서 탈출하도록 도와주자! 미로에서의 지훈이의 위치와 불이 붙은 위치를 감안해서 지훈이가 불에 타기전에 탈출할 수 있는지의 여부, 그리고 얼마나 빨리 탈출할 수 있는지를 결정해야한다. 지훈이와 불은 매 분마다 한칸씩 수평또는 수직으로(비스듬하게 이동하지 않는다) 이동한다.불은 각 지점에서 네 방향으로 확산된다. 지훈이는 미로의 가장자리에 접한 공간에서 탈출할 수 있다.지훈이와 불은 벽이 있는 공간은 통과하지 못한다. 입력:입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다.다음 입력으로 R줄동안 각각의 미로 행..
[백준] 16234 인구이동 (JAVA)
·
코딩 테스트
문제 링크:16234번: 인구 이동 문제:N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 하루 동안 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다.국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 오늘 하루 동안 연다.위의 조건에 의해 열어야하는 국경선이 모두 열렸다면, 인구 이동을 시작한다.국경선이 열려있어 인접한 칸만을 이용해 이동할 수 있으..
[백준] 15686 치킨 배달 (JAVA)
·
코딩 테스트
문제 링크:15686번: 치킨 배달 문제:크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합이다. 임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2|로..