SpingBoot에서 에러가 날 경우 기본적으로 whitelabel 페이지로 이동하여 아래와 같은 에러 화면이 나타난다. # SpringBoot 기본 에러 설정 server.error: include-exception: false include-stacktrace: never path: '/error' whitelabel.enabled: true server.error.include-exception : 응답에 exception의 내용을 포함할지 여부 server.error.include-stacktrace : 응답에 stacktrace 내용을 포함할지 여부 server.error.path : 오류 응답을 처리할 핸들러(ErrorController)의 path server.error.whitelabel...
Interceptor에서 API 요청인지 페이지 이동인지 구분해야 할 때가 있다. 간단하게 API 요청 여부에 대해 확인하는 방법을 알아보자. Http 요청을 하게 되면 요청 헤더에 "X-Request-With" 필드에 "XMLHttpRequest" 값이 포함된 것을 확인할 수 있다. X-Request-With의 접두사 X는 비표준을 의미한다. 하지만 jQuery와 같은 대중적인 라이브러리들이 Ajax 요청 시 헤더에 정보를 담아 전송을 요청한다. 이것을 활용하면 API 호출 여부를 판별하기 쉽다. private boolean isAjaxRequest(HttpServletRequest request) { String header = request.getHeader("X-Requested-With"); i..
ContextPath로 접근하였을 때 index 페이지에서 로그인 페이지로 연결하는 예시이다. Controller 다양한 예제 @Controller public class IndexController { @GetMapping("/") public String indexView() { return "/index"; } } @Controller public class IndexController { @GetMapping("/") public String indexView() { return "redirect:/index"; } } @Controller public class IndexController { @GetMapping("/") public RedirectView indexView() { return..
indexOf 함수는 문자열 내에서 지정된 문자나 문자열이 처음 발견되는 인덱스를 반환한다. 만약 찾지 못했을 경우 "-1"을 반환한다. 시작위치는 생략이 가능하며 생략할 경우 0번째 즉 처음부터 찾는다. 대부분의 개발자들이 알고있는 사실이고 자주 사용하는 함수이기도 하다. 하지만 indexOf 함수 사용시 시작 위치를 지정해서 사용하기를 권장한다. 시작 위치를 지정해서 사용하면 좀 더 명확해진다. indexOf(int ch, int fromIndex) indexOf(String str, int fromIndex) Noncompliant Code Example // a new String is going to be created by "substring" str.substring(beginIndex).i..
프로젝트를 진행하면서 가끔 내가 사용하고 있는 예외(Exception)에 대하여 제대로 사용하고 있는가 라는 의문이 들 때가 있을 것이다. 또는 정리가 필요하는 생각을 가졌을 것으로 생각된다. 이 글을 통해 이해하고 생각하며 적용할 수 있기를 바란다. 1. 예외? (Error vs Exception) 먼저 오류(Error)와 예외(Exception)의 개념을 정리해보자. 오류(Error)는 시스템에 비정상적인 상황이 생겼을 때 발생한다. 시스템 레벨에서 발생하여 심각한 수준의 오류를 말한다. 이런 오류는 개발자가 미리 예측할 수 없기 때문에, 오류에 대한 처리를 신경 쓰지 않아도 된다. 프로그램에 오류가 있을 때 발생되도록 의도된 오류이다. 예외(Exception)는 개발자가 구현한 로직에서 발생한다. ..
데이터를 가공 또는 처리하다 보면 null에 대한 처리가 필요할 때가 있다. 보통 문자열로 형 변환 시 toString()을 자주 사용하는데, null값을 문자열로 형 변화 시 NullPointerException이 발생한다. 그에 반해 String.valueOf()를 사용하면 파라미터가 null이 전달될 경우 문자열 "null"을 반환한다. public static void main(String[] args) { System.out.println("StringMethod".toString()); System.out.println(String.valueOf("StringMethod")); Object object = null; System.out.println(String.valueOf(object));..
public static void main(String[] args) { //Array 선언 String[] aArray = new String[5]; String[] bArray = {"a", "b", "c", "d", "e"}; String[] cArray = new String[] {"f", "g", "h", "i", "j"}; ArrayList list = arrayToArrayList(cArray); //Array 출력 System.out.println("printArray "+ printArray(bArray)); //Array 특정 값 확인 System.out.println("arrayContains " + arrayContains(bArray, "b")); System.out.println..
try catch 구문에서 finally는 예외가 발생 여부와 관계없이 반드시 처리해야 할 때 사용된다. 예를 들어 보자. catch와 finally를 같이 쓸 때는 try 블록에서 리소스를 얻어 사용하고, catch 블록에서는 예외적인 상황을 다루며, finally 블록에서는 리소스를 해제한다. public class TryCatchFinally { public static void main(String[] args) { System.out.println("getReturn : " + getReturn()); } static String getReturn() { String str = "do"; try { str = "Try"; System.out.println(str); return str; } ca..
Java에서 Exception은 checked와 unchecked 두 가지로 나눌 수 있다. 아래 도표는 Java Exception 클래스 계층 구조를 보여준다. 체크 예외(checked Exception) 빨간색은 체크 예외이다. RuntimeException을 상속하지 않는 예외들을 말하는데, 체크 예외가 발생할 수 있는 메소드를 사용할 경우, 복구가 가능한 예외들이기 때문에 반드시 예외를 처리하는 코드를 작성해야 한다. catch문으로 예외를 잡거나, throws로 예외를 자신을 호출한 클래스로 던지는 방법으로 해결해야 한다. 이때 해결하지 않으면 컴파일 시 체크 예외가 발생한다. 체크 예외는 Java 컴파일러와 JVM이 규칙을 준수하는지 확인하기 때문에 Exception이 호출된다. 대표적인 Ex..
Spring Boot에서 기본적으로 모든 @Scheduled 작업은 Spring에 의해 생성된 Thread pool 개수는 1개이다. 하나의 Scheduled이 돌고 있으면 다 끝나야 다음 Scheduled이 실행된다. 아래 로그를 추가하여 확인이 가능하다. logger.info("Current Thread : {}", Thread.currentThread().getName()); Spring Boot에서 설정을 통해 모든 작업을 실행하기 위해 스레드 풀을 사용하도록 아래와 같이 구성할 수 있다. import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.Schedul..
- 프로그래머
- 오라클
- 이직
- Linux 명령어
- 리눅스 명령어
- 성능분석
- javascript
- 자바
- 오라클 내장 함수
- Collection
- 제주도 3박4일 일정
- 회고
- sort algorithm
- Maven
- effective java
- React
- spring
- 리액트
- Java
- 자바스크립트
- 경력관리
- Tomcat
- 리액트 16
- 프로그래머스
- 제주도 여행
- 소프트웨어공학
- Eclipse
- SQL
- 개발환경
- 정렬 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |