🍃 Spring

    Spring과 Spring Boot의 예외 처리와 에러 페이지 처리 방식

    예외 처리 전 에러 페이지 먼저 설정하기 Spring에서 예외 처리란 예외가 발생할 수 있는 곳에 예외 처리를 하여 어플리케이션이 중간에 멈추지 않게끔 만드는 것이다. WAS(예외 페이지 처리) ← 필터 ← 서블릿 ← 인터셉터 ← 컨트롤러 (예외 발생) 위처럼 서버 영역인 Controller에서 발생한 예외에 대한 처리를 안하게 되면 예외를 서블릿 컨테이너인 WAS(보통 톰캣)에 던져 에러 페이지를 통해 처리하게 된다. 그러므로 컨트롤러에서 예외가 발생했다면 어플리케이션이 멈추지 않게 하기 위해 예외를 처리해줘야 한다. 참고 - 에러 페이지를 설정하지 않고 모든 예외를 예외 처리하면 되지 않나하고 생각할 수 있다. 하지만 404 Not Found 에러처럼 페이지 자체가 존재하지 않는 경우는 예외 처리를 ..

    Spring Boot에서 파일 저장을 위한 상대경로 getRealPath() 사용 금지

    문제의 원인 새로 만드는 개인 프로젝트에서 클라이언트에서 이미지를 생성해서 백엔드에 보내서 저장하기 위해 프로젝트 내 Resources 폴더를 이용하려고 했다. Resources에 파일을 저장하게 되어버리면 당연히 프로젝트 빌드, 배포 시에 저장된 파일이 유실된다는 단점이 있었지만 구현하려던 기능이 이미지가 저장된 후에 전송 후 바로 삭제되는 작업이었기 때문에 Resources 폴더에 저장해도 상관없다 생각했다. 서버 경로에 파일 저장하기 정적 파일을 프로젝트에 업로드 하는 과정은 보통 아래와 같은 코드를 많이 쓴다. String folder = request.getServletContext().getRealPath("/"); 근데 무슨 일인지 위의 코드를 이용해 파일을 저장하고 나면 resources ..

    Spring Boot application Property와 yml 작성 방법

    프로퍼티 파일 생성 방법 properties 파일과 yaml 파일 두가지가 존재하고 한가지를 선택해서 사용할 수 있다. resource 폴더 밑에 application이라는 이름으로 만들어주면 된다. 프로퍼티 파일 작성법 properties .으로 연결해서 사용한다. 회색으로 뜨는 부분은 Intellij Community 버젼이라서 그렇다. 해당 property의 warning을우클릭해서 suppress for this property기능을 쓰면 server.port처럼 사용가능하다. yaml .이 아닌 tree 방식을 이용해서 기술한다. 여러개의 프로퍼티 파일 작성법 보안상의 문제로 형상에 Oauth 인증 번호 등에 관한 파일을 올리면 안되므로 해당 파일을 나눠서 관리하게 된다. 해당 파일의 이름은 아..

    @RequestParam, @RequestBody, @ModelAttribute, HttpServletRequest 사용법

    HttpRequestServlet과는 다르게 어노테이션이 붙은 Spring 문법은 '자바 객체로 변환' 시켜준다는 공통점을 갖고 있다. HttpRequestServlet public String getTest(HttpRequestServlet request){ System.out.println(request.getParameter("cmd")); } Get 방식으로 받아온 데이터를 쓴다. Post 방식으로 받아온 데이터는 커스텀 메소드를 작성해서 Decode를 한 후에 사용한다. @RequestParam public String getTest(@RequestParam("name") String name){ System.out.println(name); } Get 형태의 Query Parameter를 가져..