java

· Issue
문제 이슈Batch 프로그램을 개발하다가, 수동으로 Batch 실행 시, 파라미터를 입력받아 분기처리하는 로직이 있다.자동으로 Batch 실행 시, 해당 파라미터에는 Null 값이 들어와서 해당 파라미터를 분기하는 로직에서 NullPointerException이 발생하였다.문제 원인String agencyId = null; 일 때,if(agnecyId.equals("ALL"))이라는 구문이 존재였다.equals()함수를 사용할 때, null을 비교하면 NullPointerException이 발생하기 때문에 반드시 문자열이 앞으로 와야한다.기본이지만, 지키지 못하면 아주 치명적인 실수가 될 수 있다.String str1 = "test";String str2 = "test";boolean result = s..
· Spring
컨트롤러에서 쿠키 사용사용자의 편의를 위해 아이디를 기억하고, 다음에 로그인 시도 시, 아이디를 자동으로 넣어주는 사이트가 많음해당 기능을 구현하기 위해 쿠키를 사용한다.이메일 기억하기 기능 구현 방식로그인 폼에 '이메일 기억하기' 옵션 추가로그인 시에 '이메일 기억하기' 옵션을 선택했으면 로그인 성공 후 쿠키에 이메일 저장-> 쿠키는 웹 브라우저를 닫더라도 삭제되지 않도록 유효시간을 길게 설정이후 로그인 폼을 보여줄 때 이메일을 저장한 쿠키가 존재하면 입력 폼에 이메일을 보여준다.컨트롤러에 적용스프링 MVC에서 쿠키를 사용하는 방법 @CookieValue@CookieValue 애노테이션 : 요청 매핑 애노테이션 적용 메서드의 Cookie 파라미터에 적용@GetMappingpublic String for..
· Spring
컨트롤러에서 HttpSession 사용요청 매핑 애노테이션 적용 메서드에 HttpSession 파라미터 추가요청 매핑 애노테이션 적용 메서드에 HttpServletRequest 파라미터 추가 후, HttpServletRequest를 이용해서 HttpSession 구하기요청 매핑 애노테이션 적용 메서드에 HttpSession 파라미터 추가@GetMappingpublic String form(LoginCommand loginCommand, HttpSession session) { return "login/loginForm";}요청 매핑 애노테이션 적용 메서드에 HttpSession 파라미터가 존재할 경우 스프링 MVC는 컨트롤러의 메서드를 호출할 때 HttpSession 객체를 파라미터로 전달HttpS..
· Algorithm
문제어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다. 'radar', 'sees'는 팰린드롬이다.수도 팰린드롬으로 취급할 수 있다. 수의 숫자들을 뒤에서부터 읽어도 같다면 그 수는 팰린드롬수다. 121, 12421 등은 팰린드롬수다. 123, 1231은 뒤에서부터 읽으면 다르므로 팰린드롬수가 아니다. 또한 10도 팰린드롬수가 아닌데, 앞에 무의미한 0이 올 수 있다면 010이 되어 팰린드롬수로 취급할 수도 있지만, 특별히 이번 문제에서는 무의미한 0이 앞에 올 수 없다고 하자.입력입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다.출력121 -> yes1231..
· Spring
@InitBinder 애노테이션컨트롤러 범위 Validator 설정 가능package controller;import javax.validation.Valid;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.validation.Errors;import org.springframework.validation.annotation.Validated;import org.springframework.web.bind.WebDataBinder;import org.springframework.web.bind.annotation.GetMapping;import org.s..
· Spring
글로벌 Validator 설정과 @Valid 애노테이션글로벌 Validator 적용방법설정 클래스에서 WebMvcCOnfigurer의 getValidator() 메서드가 Validator 구현 객체를 리턴하도록 구현글로벌 범위 Validator가 검증할 커맨드 객체에 @Valid 애노테이션 적용package config;import org.springframework.context.MessageSource;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.support.ResourceBundleM..
· Spring
스프링은 로케일(지역)에 상관없이 일관된 방법으로 문자열(메시지)을 관리할 수 있는 MessageSource 인터페이스를 정의하고 있습니다.MessageSource 인터페이스의 정의특정 로케일에 해당하는 메시지가 필요한 코드는 MessageSrouce의 getMessage() 메서드를 이용해서 필요한 메시지를 가져와서 사용합니다.package.org.springframework.context;import java.util.Locale;public interface MessageSource{ String getMessage(String code, Obejct[] args, String defaultMessage, Locale locale); String getMessage(Strin..
· Spring
ModelAndView를 통한 뷰 선택과 모델을 전달해 보는 것에 대해 알아보겠습니다. ModelAndView를 통한 뷰 선택과 모델 전달ModelAndView를 사용하면 이 두 가지를 한 번에 처리할 수 있습니다. 요청 매핑 애노테이션을 적용한 메서드는 String 타입 대신 ModelAndView를 리턴할 수 있습니다.  @Controller@RequestMapping("/survey")public class SUrveyController{ @GetMapping public ModelAndView form() { List questions = createQuestions(); ModelAndView mav = new ModelAndView(); mav.addObject("questions", q..
· Spring
처음 스프링 MVC를 이용해서 웹 개발을 하다 보면 사소한 설정 오류나 오타로 고생합니다. 이번 시간에는 입문 과정에서 겪게 되는 에러 사례를 정리해 보았습니다. 요청 매핑 애노테이션과 관련된 주요 익셉션 흔한 에러는 404 에러입니다. 요청 경로를 처리할 컨트롤러가 존재하지 않거나 WebMvcConfigurer를 이용한 설정이 없다면 404 에러가 발생합니다. 404 에러가 발생하면 - 요청 경로가 올바른지 - 컨트롤러에 설정한 경로가 올바른지 - 컨트롤러 클래스를 빈으로 등록했는지 - 컨트롤러 클래스에 @Controller 애노테이션을 적용했는지 뷰 이름에 해당하는 JSP파일이 존재하지 않아도 404에러가 발생합니다. 차이점으로 메시지에 해당 뷰가 없다고 표시됩니다. 위 그림과 같은 에러가 발생한다면..
· Study
Mac OS M1 Chip이 탑재된 환경에서 STS4를 설치 후 일정 기간이 지나면 STS4 응용프로그램을 열 수 없다는 경고창이 나옵니다. 해당 이슈는 맥 자체의 인증 문제이기 때문에 다음과 같이 명령어를 터미널에 입력해 줍니다. codesign --force --deep --sign - /Applications/SpringToolSuite4.app 참고 블로그 MAC 응용프로그램을 열 수 있는 권한이 없습니다 MAC에서 STS 사용중에 갑자기 아래와 같은 문제가 발생하여 STS를 실행할 수 없을 때 조치 먼저 pkgutil로 인증 상태 확인 pkgutil --check-signature /Applications/SpringToolSuite4.app 강제로 인증하는 거라고 하는 happy-jjang-a..