4. 검증 1 - Validation
·
Spring/MVC 2
1. 과거 프로젝트 build.gradle 오류1) jdk 17 버전 수정https://www.inflearn.com/questions/1232895/no-matching-variant-%EC%98%A4%EB%A5%98  2) gradle 버전 수정[gradle-wrapper.properties]distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zipzipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/dists   2. 검증 요구사항[상품등록]1) 타입 검증      → 가격..
3. 메시지, 국제화
·
Spring/MVC 2
CSR의 경우, '메시지'와 '국제화' 같은 기능들은 클라이언트 개발자가 구현한다.추후에 SSR 프로젝트에서 관련 기능이 필요할 때 자세히 정리하려 한다.😴 +. '메시지'는 검증 단계에서 에러를 바인딩 할 때, 각 단계마다 세부적인 메시지를 주고 싶을 때 사용할 수 있다.
2. 타임리프 - 스프링 통합과 폼
·
Spring/MVC 2
추후에 Thymeleaf가 필요할 때 자세히 공부하고 정리하려 한다.😴
1. 타임리프 - 기본 기능
·
Spring/MVC 2
1. 타임리프 특징 1) 서버 사이드 HTML 렌더링(SSR): 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다. 2) 네츄럴 템플릿: 웹 브라우저에서 파일을 열어도, 순수 HTML을 최대한 유지하는 특징이 있다.물론 위 경우에는 동적으로 결과가 렌더링 되지는 않는다. 3) 스프링 통합 지원: 스프링에서 공식으로 추천하고 있는 템플릿 엔진으로, 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원한다.   2. escape'cf. HTML 엔티티 : '  escape가 필요한 이유: 웹 애플리케이션에서 사용자의 입력을 그대로 HTML 페이지에 반영할 경우,악의적인 스크립트를 삽입하는 XSS(Cross Site Scripting) 공격을 받을 수 있다.따라서 이러한 공격을 방지하기 위해 사용자 입..
7. Projections
·
Spring/Spring Data Jpa
1. Projections 장점 : jpql select 최적화 + dto 조회 그러나 실무의 복잡한 쿼리를 해결하기에는 한계가 있다. 단순한 쿼리일 때만 사용하고, 중첩 구조와 같이 복잡해지면 QueryDSL을 사용하는 것이 좋다. 1) 인터페이스 기반 interface의 구현체를 spring data jpa가 제공한다. public interface UsernameOnly { // open projection : entity 전체를 가지고 와서, 원하는 데이터를 넘긴다. (jpql select 최적화 X) // close projection : 원하는 데이터 값만 fit 하게 가지고 온다. @Value("#{target.username + ' ' + target.age}") String getUser..
[백준] 2138번 전구와 스위치 _ Python
·
Algorithms/Greedy
https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 1. Preview 시간 복잡도: O(N) 공간 복잡도: O(N) 참고 : https://velog.io/@waoderboy/BOJ-%EB%B0%B1%EC%A4%80-2138-%EC%A0%84%EA%B5%AC%EC%99%80-%EC%8A%A4%EC%9C%84%EC%B9%98-%ED%8C%8C%EC%9D%B4%EC%8D%AC 유형: 그리디 2. 초기 접근 방법 중앙점이 ..