본문 바로가기

분류 전체보기85

[Thymeleaf] 주요 기능 정리 - 출력 그동안 뷰 템플릿으로 jsp만 사용했었는데 스프링부트를 학습하며 Thymeleaf의 존재를 알게 되었다. 스프링부트는 JSP를 지양하고 다양한 뷰 템플릿 중 Thymeleaf의 사용을 지향한다고 한다. 그렇기에 Thymeleaf를 사용하면 스프링과 자연스럽게 통합될 수 있다. Thymeleaf의 주요 기능중 출력 부분에 대해 학습한 내용을 정리하며 다시 한번 복습하자! 주요 특징 타임리프는 기본적으로 HTML 태그의 속성에 기능을 정의해서 동작한다. JSP의 경우 서버를 통해 랜더링 작업을 거치고 정상적인 결과를 볼 수 있지만 타임리프로 작성된 파일은 그대로 열어도 HTML 결과를 확인할 수 있다. 타임리프 소스가 적용된 동적인 부분은 확인하지 못하겠지만 HTML 마크업 결과가 어떻게 되는지 확인 할 수.. 2022. 6. 18.
[JAVA] Builder 패턴 주로 자연스럽게 자바 빈의 형태로 만들어 객체를 만들어 사용했었는데 무분별한 setter사용과 객체 일관성이 깨지는 여러 문제들로 인하여 유지보수성의 저하와 로직의 파악이 힘들어지는 문제 등을 많이 경험하였다. 사용할 때는 편하게 사용하겠지만 무분별한 사용은 문제를 야기할 수 있기 때문에 다른 패턴들에 대해 학습한 결과를 Builder 패턴을 중심으로 정리합니다. 객체 생성의 주요 방법 점층적 생성자 패턴 자바 빈즈 패턴 빌더 패턴 점층적 생성자 패턴 생성자에서 필수 필드값과 선택적 필드 값을 활용하여 모든 맴버 변수를 포함하도록 점층적인 여러 개의 생성자를 생성하는 패턴 public class Body { // 필수 맴버변수 private final int brain; private final int .. 2022. 6. 18.
[JAVA] JAVA 8 interface의 변경사항 자바 8 버전이 나온 지 오래됐지만 8 버전에서 생긴 interface의 변경사항에 대해 학습한 내용을 정리합니다. default method 인터페이스의 메소드는 선언만 가능하고 구현은 불가능했지만 default 키워드를 추가하면 인터페이스 내부에서도 구현된 메소드를 선언할 수 있습니다. public interface Calculator { public int sum(int x, int y); public int min(int x, int y); // default method public default int fac(int x, int y) { return x * y; } } default method는 상속하는 클래스에서 재정의가 가능하지만 하지 않아도 사용할 수 있으며 override가 강제되지 .. 2022. 6. 10.
[알고리즘] Sliding window 배열에서 특정 구간을 설정하고 구간별 데이터를 비교해야할때 사용하기 용이한 알고리즘 ex) 매출기록이 배열로 주어질때 변수 k일간의 최대매출기록을 구하라 // n일간 매출기록 // k = k일간의 연속매출 // arr = 매출 array // k일간의 최대매출기록은? public static int solution(int n, int k, int[] arr) { int answer = 0; // 최대 매출기록으로 갱신될 변수 int sum = 0; for(int i=0; i 2022. 6. 1.