[Spring] 커스텀 에러 만들기
·
SpringBoot
저는 현재 회사에서 WebFlux 를 활용한 PG 도메인 프로젝트를 진행하며, 커스텀 에러를 사용하고 있습니다.이번 글에서는 WebFlux 뿐만 아니라 MVC 환경에서도 적용 가능한 커스텀 에러 설계 및 사용 방법을 공유하고자 합니다. 중간에 WebFlux 문법이 등장할 수 있지만, 사용된 어노테이션은 MVC 환경에서도 적용 가능하니 참고해 주세요 ☺️🪴 들어가기 전커스텀 에러에 대해 소개하기 전에 이 글에서 다뤄질 에러 종류에 대해 정리하고 가겠습니다.이 글에서 언급하는 에러는 크게 HTTP 통신 에러와 애플리케이션 단계의 에러 두 가지로 나눌 수 있습니다.HTTP 통신 에러는 클라이언트가 직접적으로 받게 되는 에러로, 서버에서 응답한 HTTP 상태 코드와 메시지를 통해 전달됩니다.애플리케이션 단계의..
[Spring] Spring Bean 생성 주기 및 어노테이션 비교
·
SpringBoot
Spring Bean ?Spring Bean 스프링 컨테이너가 생성하고 관리하는 객체를 뜻한다.스프링 빈은 컨테이너에 등록되어 있으며, 필요한 경우 스프링 컨테이너가 해당 객체를 제공한다. Spring Bean  생성 주기 (1-8단계)@SpringBootApplication 으로 어플리케이션 기동 시  Component Scanner가 발동하게 되는데 Bean 생성 주기는 아래와 같다.   1. @Configuration2. @Controller3. @Component4. @Repository5. @Service6. @Bean 이 순서대로 Bean 을 등록한다. 이후에는  7. @Autowired 어노테이션으로 의존성 주입을 하고 8. @PostConstruct 생성자가 위의 모든 일들이 이루어지고 난..
[Spring] @Scheduled 스케쥴링 적용 방법
·
SpringBoot
1. 시작하기 전 @Scheduled 지정된 시간에 주기적으로 실행되는 메서드를 만들기 위해 사용함@EnableScheduling스케줄링을 활성화 할 때 사용두 어노테이션 모두 스프링 프레임워크에서 제공하는 어노테이션입니다.  2. 구현 controller 부분@Scheduled(fixedDelay = 1000) // 1초에 1000public void test () { log.info("테스트!");} Application 부분@EnableScheduling 만 추가해주시면 됩니다.@SpringBootApplication@EnableSchedulingpublic class Application { public static void main(String[] args) { SpringAp..
[ect] 객체지향 설계 SOLID 5 원칙
·
공통
0. 들어가기 전 알고 있으면 좋은 것 클린코드로 유명한 로버트 마틴이 5가지 원칙을 정리 다형성이란? 객체 지향의 4가지 틍성 중 하나로 하나의 타입에 여러 객체를 대입 가능한 것을 의미 구현 방법 : 오버로딩, 오버라이딩, 함수형 인터페이스 클라이언트와 서버? 클라이언트 = 호출, 서버 = 응답 호출되는 코드를 서버코드라고 하면 코드를 호출하는 모든 코드 (객체, 클래스)가 클라이언트 코드 1. SRP 단일 책임 원칙 (single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수 있고, 작을 수 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 ..
[Spring] 포트번호 오류 해결
·
SpringBoot
스프링 웹 개발 기초정적 컨텐츠MVC와 템플릿 엔진API생성한 정적 페이지로 이동하는 방법hello-static.html 정적 페이지를 생성한 후 body에 '정적 컨텐츠입니다.' 를 작성해주었다.포트번호 뒤에 이동하고자 하는 파일 명을 붙여주면 된다.포트번호 오류 발생**Error :** Process 'command 'C:\Program Files\Java\jdk\bin\java.exe'' finished with non-zero exit value 1이때 위와 같은 오류 발생 시 아래의 방법처럼 해결할 수 있다. 1. 작업 관리자 이용하기작업관리자에서 불필요하게 실행되는 작업을 중지시킨다.2. application.properties 파일 이용하기server.port=8090위처럼 작성하고 원하는 ..
[Spring] View 환경설정
·
SpringBoot
디렉터리 구조HelloController.javapackage hello.hellospring.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HelloController { @GetMapping("hello") // "hello" 가 들어오면 아래의 메소드를 호출해준다. public String hello(Model model) { model.addAttribute("data","hello!!"); r..