목록전체 글 (303)
처음부터 차근차근
문제 https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 내 풀이 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { int num, max = -1000000, min = 1000000; int[] arr; BufferedReader br = new Bu..
Bean Validation Bean Validation 데이터 유효성 검사 프레임워크이다. 어노테이션으로 데이터를 검증한다. 검증 자체를 DTO or 도메인에 얹는 방식으로 수행한다. Hibernate Validator Bean Validation 명세의 구현체이다. 스프링 부트에서는 이 Hibernate Validator를 유효성 검사 표준으로 채택해서 사용하고 있다. 스프링 부트의 유효성 검사 스프링 부트는 각 계층으로 데이터가 넘어오는 시점에 해당 데이터에 대한 검사를 실시한다. 여기서 각 계층은 컨트롤러, 서비스, 레파지토리 등을 의미한다. dto는 데이터를 담아 컨트롤러 -> 서비스 -> 레파지토리 이렇게 이동한다. 그래서 dto에다 유효성 검사를 얹어놓은 것이다. 스프링 부트는 dto 객체를..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bEtk8O/btrN5wRqHPs/loPV1pVYQmLe4wBl9aeOgk/img.png)
문제 https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 입력된 수를 연속된 수들의 합으로 나타낼 수 있는 가짓수를 출력하는 문제이다. 이 문제 에선 투포인터 알고리즘이 들어간다. 입력된 수가 7일 때 1 ~ 7까지의 숫자를 순서대로 놓는다. start index와 end index를 각각 1로 두고, count = 1 // 연속된 수들의 합으로 나타낼 수 있는 가짓수 sum = 1 // 수들의 합 으로 둔다. count를 1..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/r2yuS/btrMljftqdp/TkW7UmAxbp1KBLjfmVqbO1/img.png)
exception을 커스텀해서 만드는 방법 1. 클래스 생성 2. RuntimeException class 상속받고, 생성자를 정의한다. public class CRUDFailException extends RuntimeException { public CRUDFailException(String message) { super(message); // RuntimeException 클래스의 생성자를 호출합니다. } } 3. controller advice에서 예외를 받아 처리할 로직을 작성한다. @ControllerAdvice public class ExceptionController { ... @ExceptionHandler(CRUDFailException.class) protected String ha..
swagger 설정 파일 만들다가 configuration class에 extends WebMvcConfigurationSupport implements WebMvcConfigurer 함에 따라 결과가 달라져서 찾아보게 되었다. WebMvcConfigurationSupport https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupport.html WebMvcConfigurationSupport (Spring Framework 5.3.22 API) Add custom HandlerMethodArgumentResolve..
영화관 예매사이트는 처음으로 해본 팀 프로젝트였다. 자바만 알고있고 jsp랑 spring에 대해서 전혀 모르는 상태에서 열정하나로 참여했었는데, 생각보다 스프링 개념이 너무 어려워서 힘들기도 했지만 나름 공부도 많이 하고 실력도 올랐던 프로젝트였다. 스프링을 어떻게든 이해해보려고 멘땅에 헤딩하는 기분으로 인프런 강의도 보고 책도 보면서 혼자 끙끙 공부했던 기억이 난다. 이 프로젝트에서 제일 많이 배운건 git의 중요성이었다. git을 처음 써봤었는데, 내가 혹시나 실수를 해서 다른 팀원이 쓴 코드에 영향을 주거나 피해를 주지 않을까 걱정이 많았다. 그래서 커밋도 혹시 잘못될까봐 엄청 긴장하면서 하고, 내가 한게 틀리지 않았나 계속 확인했었다. git에 대해서 잘모르니까 git을 사용하면서 어렵고 힘들었는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CeqYB/btrLLx596VT/eOASlC8SqG9M7nBK0KeZ71/img.png)
controller advice의 예외 처리 원리 contoroller advice는 controller에서 예외가 생겼을 때 @ControllerAdvice나 @RestControllerAdvice를 붙인 class의 해당 예외를 핸들링하는 메서드를 호출해서 예외를 처리한다. controller는 controller 안에 클라이언트가 입력한 주소와 mapping이 되는 메서드가 있어야하는데, 404 에러 같은 경우에는 controller안에 mapping되는 메서드가 없다보니까 controller 내에서 생긴 예외처리로 구분되지 않아서 controller advice로 예외처리하는 것이 불가능하다. 예외처리 방법 하지만 다행히도 contoroller advice 로 404에러를 해결하는 방법이 있다. ..
Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 빈 'documentationPluginsBootstrapper'를 시작하지 못했습니다. 중첩 예외는 java.lang.NullPointerException입니다. swagger을 사용하려고 세팅 다하고 실행했을 때 생긴 오류이다. 저 에러가 뜨면서 애플리케이션이 실행되지 못하고 다운됐다. 이 에러는 Spring boot 2.6버전으로 업그레이드된 이후에 spring.mvc.pathmatch.matching-strategy 값이 ant_apth_matcher에서 path_pattern_parser로 변경되면서 생긴..