[Spring Boot 사이드 프로젝트] 3. Thymeleaf Layout 적용 (Tiles 대체)
·
사이드 프로젝트/로또명당
지난 포스팅에 이어 이번에는 `thymeleaf`를 이용해 Layout을 적용해 보겠다.`jsp`를 사용할 때에는 `tiles`를 사용했었다 보니 `thymeleaf`의 문법이 낯설어 약간의 거부감이 들었지만 사용자가 직접 설정할 부분이 현저히 줄어들어 굉장히 편하다는 인상을 받았다.그럼 차근차근 적용을 시작해 보자. 0. 레이아웃 적용 왜 하나?1) 편하다나에게는 가장 중요한 이유라고 볼 수 있겠다. 여러 페이지를 만들다 보면 결국에 공통적으로 들어가야 할 부분이 생기기 마련인데 레이아웃 적용을 안 해놓으면 그때마다 복사 붙여 넣기를 할 수밖에 없다. (사실 복붙이야 개발자의 일상이니까 조금 피곤하고 말면 되기는 한다.)2) 유지보수이게 정말 중요한데, 유지보수에 드는 에너지를 현저히 줄여준다. 100..
[자바 디자인 패턴]의 싱글톤 패턴이란?
·
JAVA
자바의 기본적인 문법을 익히고 나서 개발을 하다 보면 조금 더 높은 수준을 갈망하게 되는데, 그때쯤 뭘 더 배워야 할지 고민하다 보면 정말 많은 것들을 공부해야 된다는 것을 알고 절망에 빠지게 된다. 정말 행복한 고민이 아닌가? 올라갈 수 있는 길이 있다는 사실에 기뻐하며 오늘도 공부해보자. 그중에 하나는 바로 디자인 패턴이다. 내가 만나본 자바 고수들은 모두 디자인 패턴을 중요하게 생각했다. 그들은 이러쿵저러쿵 설명하기보다는 '이 패턴을 사용해 보세요...' 같은 전문가 같은 대화를 나눌 수 있는 사람을 선호했다. 물론 나의 수준은 팩토리 메서드 패턴이요? 들어는 봤는데...? 헤헿..ㅎ 1. 싱글톤 패턴(Singleton Pattern)이란? 싱글톤 패턴은 자바와 같은 객체 지향 프로그래밍 언어에서 ..
[JAVA] VO(DTO) LIST를 특정 필드값으로 정렬하기 + 형변환
·
JAVA
나는 VO(DTO)로 이루어진 List를 List 각 객체의 특정 값으로 정렬해야 했다. 검색으로 알아낸 코드는 이렇다. List list = list.stream() .sorted(Comparator.comparing(CodeVO::getCnt).reversed()) .collect(Collectors.toList()); java stream을 활용한 정렬 방법이다. 정렬하고자 하는 list를 stream()을 이용해 정렬sorted()하는데 정렬 조건이 (Comparator.comparing(CodeVO::getCnt).reversed())인 것이다. CodeVO의 cnt값을 기준으로 내림차순 정렬하는 것이다. 오름차순 정렬을 원한다면 reversed()를 생략하면 되겠다. 여기 까지는 검색으로 빠르..
[백준] 1152번: 단어의 개수 자바(JAVA)
·
카테고리 없음
https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 풀이 import java.util.Scanner; import java.util.StringTokenizer; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); scanner.close(); Stri..
[백준] 1085번: 직사각형에서 탈출 자바(JAVA)
·
코딩테스트/백준(BAEK JOON)
풀이import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.nextInt(); //(x,y)에 위치 int y = sc.nextInt(); int w = sc.nextInt(); //직사각형 오른쪽 위 꼭지점(w,h) int h = sc.nextInt(); int[] arr = new int[4]; arr[0] = h-y; arr[1] = w-x; arr[2] = y; arr[3] = x; Arrays.sort(arr); System.out.pr..
[백준] 2884번: 알람 시계 자바(JAVA)
·
코딩테스트/백준(BAEK JOON)
풀이문제가 어쩌구 저쩌구 엄청 긴데 몇 시, 몇 분을 입력하면 입력한 시간에서 45분을 뺀 뒤 출력해주라는 문제이다.`하루는 24시간`이고 `1시간은 60분`이라는 것을 염두에 두고 문제를 풀면 되겠다.이게 왜 중요하냐면 우리가 평소에 사용하는 십진법과 받아내림이 다르기 때문에 컴퓨터한테 발생할 수 있는 모든 경우의 수에 대한 대처법을 알려줘야한다. 45분을 빼는 계산에서 발생할 수 있는 경우의 수는 이렇다.`M(분)이 45이상일때`  : M(분)에서 45를 빼주기만 하면 된다.`M(분)이 45미만일때` : H(시)에서 1을 빼고 M(분)에 15를 더해주면 된다.(1시간은 60분)`M(분)이 45미만인데, H(시)가 0일때` : H(시)가 0일 경우 23을 출력해주고 M(분)에 15를 더해준다.impor..
[백준] 2739번 구구단 자바(JAVA)
·
코딩테스트/백준(BAEK JOON)
풀이`Scanner`와 `for문`을 활용해 문제를 풀었다.`Scanner`를 통해 `N값`을 입력받아 `예제 출력`과 똑같은 결과를 뽑아내면 된다.`for문`을 사용하지 않고도 문제를 풀 수 있는지 궁금해 풀어봤다.컨트롤 c 컨트롤 v를 활용하면 그렇게 오래 걸리지도 않지만 솔직히 굉장히 귀찮은 방법이다.코드 길이가 더 긴 아래 제출답안이 바로 이 노가다 풀이법인데 소모시간은 더 짧다.그럼 이렇게 해도 상관없는거네? 싶은 생각이 잠깐 들었지만 그래도 이건 아닌 것 같다.이 문제 하나만 맞추는 게 목적이라면 사실 별 상관없지만, 유지보수 측면에서 이 코드는 질이 나쁘다고 생각한다. 처음에는 구구단을 만들고 싶었지만 만들다 보니 백 단이 만들고 싶어 졌을 때 이 방법은 너무나도 비효율적이다.출력문을 일일이..
[백준] 2558번 곱셈 자바(JAVA)
·
코딩테스트/백준(BAEK JOON)
풀이import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); //첫번째 세 자리 수 m int n = sc.nextInt(); //두번째 세 자리 수 n sc.close(); System.out.println(m*(n%10)); System.out.println(m*((n/10)%10)); System.out.println(m*(n/100)); System.out.println(m*n); }}세 자리 자연수 2개를 입력받아 두 자연수의 곱을 구하는 문제이다.하지만 곱셈의 답만 구..
[백준] 2439번 별 찍기 - 2 자바(JAVA)
·
코딩테스트/백준(BAEK JOON)
풀이import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); sc.close(); for(int i=1 ; i0 ; j--) { if(j지난번에 풀었던 2438번 별 찍기 - 1 의 변형 문제이다.2438번 문제가 이중 for문을 사용하기만 하면 됐다면 거기에 if문을 추가해 조건을 달아주면 된다. 배열을 사용하지는 않지만 배열처럼 생각하면 쉽다.첫 번째 for문을 행두 번째 for문을 열이라고 생각하면 이해가 쉬울 것 같다. `for(int i=1 ; i`for(int j=N ; j>0 ; j..
그레이트현
'java' 태그의 글 목록 (2 Page)