본문 바로가기

컴퓨터공학/스프링8

에러 페이지 만들기 목차 에러 페이지를 만드는 이유 위와 같이 에러페이지를 그대로 노출하면 해킹에도 취약해지고 고객들의 신뢰에도 문제가 생길 수 있다. 때문에 오류 페이지를 따로 처리해 줘야 한다. 에러 코드에 따른 페이지 지정 web.xml에 에러 코드에 대응되는 페이지를 맵핑 404 /WEB-INF/views/error/error_404.jsp 500 /WEB-INF/views/error/error_500.jsp 에러 발생시 이동할 페이지 생성 404 에러페이지입니다. 500 에러페이지입니다. 에러 유발 코드 작성 @GetMapping("err") public String error() { return "error/errorcode"; } 동작 확인 404 에러 유발 localhost:8080/alksjflkasdjf;.. 2023. 12. 27.
Spring Project 생성하고 환경설정까지! 목차 STS 다운받기 스프링은 프로젝트를 생성하고 환경설정을 하기가 매우 힘들다. 때문에 스프링 개발을 편리하게 도와주는 eclipse를 개조한 STS라는 프로그램을 사용하자. 다운 링크: https://github.com/spring-attic/toolsuite-distribution/wiki/Spring-Tool-Suite-3 Spring Tool Suite 3 the distribution build for the Spring Tool Suite and the Groovy/Grails Tool Suite - spring-attic/toolsuite-distribution github.com 위 링크에서 sts3를 eclipse버전에 맞춰서 다운받자. sts4는 스프링 부트에 최적화되어있기 때문에 스.. 2023. 12. 11.
Spring의 처리 흐름 모든 요청은 Dispatcher Servlet으로 간다. 요청이 들어오면 해당 요청이 어떤 Method와 맵핑되는지를 찾는 것을 Handler Mapping이 수행한다. Handler Mapping이 메소드를 찾으면 해당 메소드를 Dispatcher Servlet으로 리턴한다. Dispatcher Servlet은 해당 메소드 정보를 Handler Adapter로 보낸다. Handler Adapter는 해당 메소드가 있는 Controller를 실행한다. 여기까지는 개발자가 관여할 일이 없다. 개발자는 톰캣을 실행하기 전, Controller에 @Controller를 잘 붙혀주고 맵핑될 URL만 제대로 적어두면 나머지는 톰캣이 알아서 수행한다. 이후부터는 우리가 만든 비즈니스 로직을 실행한다. 비즈니스 로직.. 2023. 12. 11.
DB 접속정보 git에 공유되지 않도록 설정하기 목차 아래와 같이 접속정보가 Java코드 내에 있어 git으로 공유되면 여러 문제가 발생할 수 있다. @Bean(destroyMethod = "close") public HikariDataSource dataSource() { HikariDataSource dataSource = new HikariDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test"); dataSource.setUsername("testuser"); dataSource.setPassword("test1234"); return dataSource; } DB 접속정.. 2023. 12. 10.
[Slf4j] 스프링의 디버깅 도구 Slf4j Library 목차 Slf4j를 사용하는 이유 개발을 하면서 로그를 띄울 때 System.out.println()을 사용하는 경우가 있다. 그러나 System.out.println()으로 디버깅을 할 경우 배포한 이후에도 해당 메세지가 콘솔에 계속 출력되고, 이는 심각한 성능 저하로 이어진다. 그렇다고 매번 디버깅 메세지를 썼다가 지웠다 하기는 매우 번거롭다. Slf4j를 사용하면 메세지의 log level을 설정할 수 있고, 개발 단계 로그의 log level과 배포 단계 로그의 log level을 구분하면 log4j.xml을 통해 쉽게 특정 단계의 로그만 출력되도록 할 수 있다. log level과 log4j.xml에 관한 글 Slf4j 사용방법 log4j.xml 설정 변경 log4j.xml의 Application.. 2023. 12. 10.
[log4j.xml] 스프링의 디버깅 로그 자세히 띄우기 목차 Log Level trace > debug > info > warn > error > fatal trace log가 가장 많이 발생하고 fatal log로 갈수록 적게 발생한다. 일반적으로 개발 환경에서는 debug레벨의 로그들을 확인해가며 개발하고, 운영 서버는 로그가 너무 많이 출력되면 서버의 속도가 저하되기 때문에 error레벨의 로그만 출력되도록 한다. 출력될 Log Level 설정하기 src/main/resources/log4j.xml 파일 안에 3rdparty Loggers라는 항목이 있을 것이다. log4j.xml파일을 변경하지 않았다면 모두 info로 설정되어 있을 텐데 조금 더 자세히 출력하고 싶을 경우 내가 출력하고 싶은 이들의 level value를 debug로 변경하면 된다. .. 2023. 12. 10.