전체 글 240

타임리프 - 리터럴

타임리프에서 문자 리터럴은 항상 ' '작은 따옴표로 감싸줘야 한다. 하지만 공백없이 이어지는 문자 리터럴은 작은 따옴표로 감싸지 않아도 된다.ex)  아래 코드와 같이 공백이 있으면 오류가 생긴다. 작은 따옴표로 감싸면 다시 정상작동한다.  리터럴 "hello world!" = --> 'hello' + ' world!' = 'hello world!' = 'hello ' + ${data} = 리터럴 대체 |hello ${data}| =   리터럴 대체(Literal substitutions)"|hello ${data}|" 리터럴 대체 문법을 사용하면 템플릿을 사용하는 것 처럼 편리하게 이용할 수 있다.

BackEnd/Thymeleaf 2024.07.16

타임리프-URL 링크

타임리프에서 URL을 생성하는 방법에 대해서 알아보자. @GetMapping("link")public String link(Model model){ model.addAttribute("param1","data1"); model.addAttribute("param2","data2"); return "basic/link";} URL 링크 basic url hello query param path variable path variable + query parameter 실행 후 페이지 소스 보기와 비교해보면 차이점을 확인 할 수 있다.  @{/hello} ===> /hello @{/hello(param1=${param1}, param2=${param2})} =..

BackEnd/Thymeleaf 2024.07.16

백준-2529번/부등호 (java)

문제 이해 부등호로 이루어진 문자열이 주어지면 부등호 사이에 올수있는 모든 숫자열 중 최솟값과 최대값을 구해주면 된다.모든 경우를 구해줘야 하므로 dfs를 이용하면 쉽게 구할 수 있다. 문제 풀이 맨 앞의 숫자가 0~9까지 중 올수있는 모든 경우의 수를 구해줘야 하므로 for문을 이용하여 dfs를 호출해준다.for (int i = 0; i   ※매개변수start ==>가장 최근에 삽입된 숫자(dfs에서는 start뒤에 들어올 숫자를 결정)count ==> 삽입된 숫자의 갯수num ==> 부등호 사이에 들어가는 숫자들을 표현한 문자열static void dfs(int start, int count, String num) { if (count == N) { number.add(num); /..

알고리즘/백준 2024.07.16

텍스트 - text, utext

HTML의 콘텐츠에 데이터를 출력할때는 아래 코드와 같이 사용하면 된다.  HTML 테그의 속성이 아니라 HTML 콘텐츠 영역안에서 직접 데이터를 출력하고 싶으면 다음과 같이 [[ ... ]]를 사용하면 된다.[[${data}]] 콘텐츠에 데이터를 출력하는 간단한 예제 코드를 통해 알아보자  package hello.thymeleaf.basic;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping..

BackEnd/Thymeleaf 2024.07.15

백준-14889번/스타트와 링크 (java)

문제 접근 두 팀의 능력치의 최소 차이를 구하면 된다. 인원의 절반은 스타트 팀, 나머지는 링크 팀으로 배치시키는 모든 경우의 수를 구해야 하므로 dfs를 수행해주면 된다. dfs의 종료 조건 :  전체 인원의 절반이 스타트 팀으로 빠졌다면 그 상황에서의 능력치의 차이를 구해주면 된다.   문제 풀이 N = 인원수S = 개인 능력치를 저장하는 이차원 배열visit = dfs에서 방문 유무를 확인할때 쓰이는 일차원 배열Min = 최소 능력치 차이를 저장static int N;static int[][] S;static boolean[] visit;static int Min = Integer.MAX_VALUE;  idx = 현재 선택된 사원count =  스타트 팀으로 들어간 인원 수 (절반이 스타트 팀에 들..

알고리즘/백준 2024.07.15

간단한 Web페이지 프로젝트(7) - RedirectAttributes

요구사항 상품을 추가하면 저장이 되었다는 메시지를 띄우기.  개발 RedirectAttribute를 사용하여 URL 인코딩도 하고, pathVariable, 쿼리 파라미터까지 처리할 수 있다. @PostMapping("/add")public String addItemV6(Item item, RedirectAttributes redirectAttributes) { Item savedItem=itemRepository.save(item); redirectAttributes.addAttribute("itemId",savedItem.getId()); redirectAttributes.addAttribute("status",true); return "redirect:/basic/items/{..

BackEnd/spring 2024.07.07

간단한 Web페이지 프로젝트(6) - PRG Post/Redirect/Get

지금까지 진행하고 있던 프로젝트에 문제점이 있다.◆ 상품 등록을 완료하고 새로고침을 누르면 상품이 계속 중복 등록이 되는 것을 확인할 수 있다.문제 원인 웹 브라우저 새로고침은 마지막에 서버에 전송한 데이터를 다시 전송한다.상품을 등록할때 POST/add를 이용해서 상품 데이터를 서버로 등록하는데,이 상태에서 새로고침을 하면 POST/add를 한번 더 하게 되므로 ID만 다르게 상품이 계속 등록되는 것이다.   문제 해결법 이러한 문제를 해결하기 위해서 리다이렉트를 이용해주면 된다.새로 고침 문제를 해결하기 위해 상품 저장 후에 뷰 템플릿으로 이동하는것이 아니라, 상품 상세 화면으로 리다이렉트를 호출해주면 된다. @PostMapping("/add")public String addItemV5(Item it..

BackEnd/spring 2024.07.07

백준-14501번/퇴사 (java)

문제 이해 T[i] ==> 상담하는데 걸린 시간P[i] ==> 상담으로 받는 금액 정해진 시간안에 받을 수 있는 최대 금액을 구하는 문제이다. DFS를 이용하면 DP를 이용하는 것 보다 쉽게 구할 수 있다. DFS 탈출 조건==> 현재 날짜에서 상담에 걸리는 시간을 더했을때 N보다 크거나 같을 경우 문제 풀이static void dfs(int idx, int pay){ if(idx>=N){ result = Math.max(pay,result); return; } if(idx+T[idx] idx+T[idx]가 N 보다 작을 경우 즉, 상담을 할 수 있는 경우 재귀 호출을 이용해서 상담을 완료한 다음 날짜와 누적 금액을 넘겨준다. 상담이 불가능한 경우 다음 날짜와 가..

알고리즘/백준 2024.07.07