본문 바로가기

분류 전체보기126

[프로그래머스] 실패율 import java.util.*; class Solution { public int[] solution(int N, int[] stages) { int[] answer = new int[N]; int stageNum = N; int[] player = new int[stageNum]; int[] fail = new int[stageNum]; Map map = new HashMap(); List answerList = new ArrayList(); for(int x=0; xinteger).toArray(); } } 2023. 2. 13.
[SpringBoot] @Valid 어노테이션으로 collection 객체 검증 문제상황Controller에서 @RequestBody에 @Valid를 사용 할 경우, 단일 Object 타입일 때는 Validator가 잘 동작하지만, 객체가 Collection 타입으로 감싸져 있을 경우에는 Validator가 동작을 하지 못했다.(예외를 내뱉지 않음) 아래는 문제가 되는 예시@PostMapping("") public Result doOrder(@RequestBody @Valid List order, Errors errors) { return orderService.doOrder(order); } 문제원인에러가 나지 않는 이유는 @Valid는 JavaBeans에 적용되는데, List(컬렉션)는 JavaBeans 명세에 포함되지 않기 때문이다. 해결Vali.. 2023. 1. 30.
[JavaScript] Safari 에서 new Date() NaN 오류 이슈 Safari 브라우저에서 Date가 안나오고 NaN이라고 뜨는 이슈가 있다. 아래와 같이 자바스크립트에서 흔히 사용하는 Date 객체에 String 타입의 날짜를 담아 사용할 때, 문제를 뱉는다. new Date('2021-11-01'); 이 이슈 해결하기 위해서 두가지 방법이 있다. 1. moment.js 라이브러리를 사용하는 방법. moment.js를 사용하면 어느 브라우저에서나 호환이 된다고 한다. 2. 아래 예시와 같이 2021-11-01T00:00:00 을 2021/11/01 00:00:00 형식으로 바꿔서 넣어주면 된다고 한다. // $("#countDownDate").val() == '2022-11-30 23:59' let countDownDate = new Date($("#countDown.. 2022. 11. 21.
[Thymeleaf] 타임리프 th:onclick 사용하기 타임리프 템플릿을 사용하면서 onclick 이벤트를 걸 때, 자꾸 헷갈리고 잊어버리는 부분이 있어서 기록함. 1. location.href 이용한 경로 이동th:onclick="|location.href='@{/notice/info}'|" 2 .태그 내에 attribute를 주어서 함수 호출 할 때, 파라미터로 넘기기 3. location.href 경로 이동 시에 requestParam으로 파라미터를 넘기는 경우1) 단일 파라미터인 경우아래와 같은 예시는 실제로는 Url이 이렇게 찍힌다 -> ( /notice/ranking?rankCode=RANK_0001 )공지 랭킹 2) 파라미터가 여러 개인 경우아래와 같은 예시는 실제로는 Url이 이렇게 찍힌다 -> ( /event/ranking?rankCd=RAN.. 2022. 7. 30.
[Spring Boot] .jar 배포 후 resources 파일 경로 찾기 문제 상황 진행하고 있는 프로젝트 개발 서버에 jar 파일로 말아 배포시켰다. 그런데 한 메소드에서 해당 파일 경로를 읽어오지 못하는 문제가 발생했다. 분명 local에서는 문제없이 잘 읽어 오는데, 배포한 jar파일에서는 파일을 찾지 못하는 에러가 계속 났다. 아래는 로컬에서 잘 돌아가는 기존 소스 URL resource = getClass().getClassLoader().getResource("templates/fo/ko/utility/terms"); File dir = new File(resource != null ? resource.getPath() : null); String[] filenames = dir.list(); // 하위 파일들의 이름을 배열에 담는다. 원인 보통 IDE등에서 개발하.. 2022. 6. 10.
[Git] git ignore한 파일이 함께 올라 갈 때 프로젝트 진행하다보면 Git에 올라가서는 안 될 파일이나 IDE에 종속되어 협업에 문제가 될만한 파일들은 .gitignore 설정파일에 기입하여 관리한다.그런데  .gitignore 설정파일에 작성하더라도 이게 적용이 안 되는 경우가 종종 발생한다. 일반적인 경우는 git의 캐시가 문제가 되어 .gitignore 파일이 적용되지 않는 것이다. 이럴 땐 캐시를 삭제한 후 다시 push하면 된다.  git config --list git rm -r --cached .git add . git commit -m "remove cache for gitignore" 위 명령어를 순서대로 IDE 터미널창에 입력!캐시를 지워 해결한다. 2022. 5. 12.