[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..
[Spring] Hikari 이용하여 데이터베이스 연결 관리하기
·
SpringBoot
0. 시작하기 전JDBC 란?JDBC( Java Database Connectivity ) 란 자바에서 데이터베이스에 접속하기 위한 표준 인터페이스를 뜻함데이터베이스와 연결할 때마다 새로운 커넥션을 생성 & 연결하는 비용을 줄이기 위한 기술JDBC 커넥션 풀 구현체란?커넥션 풀링 기능을 제공하는 라이브러리데이터베이스에 연결할 때 생성된 커넥션 풀에서 사용커넥션 풀 크기, 커넥션 대기 시간, 커넥션 최대 최소 수 등  설정 가능구현체 종류 : Apache Commons DBCP, HikariCP, Tomcat JDBC 등Hikari 란?Spring Framework에서 사용되는 데이터베이스 커넥션 풀 라이브러리HikariCP라고도 불림빠르고 경량화된 JDBC 커넥션 풀 구현체Spring Hikari는 데이..
[Spring] Jpa 이용해서 db 에 entity 추가
·
SpringBoot
0. 환경- DB : Postgres- DBeaver 을 사용하여 확인- Spring boot 환경에서 Jpa를 이용하여 테이블 생성1. 연동하기- src > main > resources > application.yml 파일spring: datasource: driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:포트번호/스키마이름 platform: postgres username: 지정한이름 (미설정시 기본) password: 지정한비번 (미설정시 기본) jpa: hibernate: ddl-auto: create # 처음에 create로 작성하시고 이후에는 none show-..
[Spring] Spring 환경 IntelliJ에 구축
·
SpringBoot
IntelliJ 다운로드 https://www.jetbrains.com/ko-kr/idea/download/#section=windows(위의 사이트에서 다운로드 진행)원하는 것으로 다운로드 진행하면 되나 무료 버전인 Community Edition 으로 다운로드 함Spring 환경설정 1. Spring Initializr 이용하기https://start.spring.io/사이트에서 원하는 버전과 프로젝트 명을 지정하고 다운로드한다. 2. IntelliJ에서 폴더 열기1번에서 다운받은 폴더의 압축을 해지한 경로를 확인하고IntelliJ에서 열어준다.위의 사진처럼 빌드되지 않는다면 1번 단계에서 Spring Boot 의 버전을 2.7.7로 바꿔보시는걸 추천드립니다 추가정보1. application.yml ..
[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..