Spring Boot에서 어플리케이션 로딩 완료 시 호출되는 함수들
안녕하세요! 프로그래밍과 소프트웨어 개발을 사랑하는 여러분, 오늘은 Spring Boot를 활용하여 어플리케이션이 로드된 후에 호출되는 함수들에 대해 알아보도록 하겠습니다. 개발을 하다 보면 어플리케이션의 로딩 시점은 매우 중요한 요소입니다. 그래서 이번 포스트에서는 이러한 로딩 시점에 특정 함수를 호출하도록 설정하는 방법에 대해 설명하겠습니다.
들어가며
웹 서버를 개발할 때 매번 실행 후에 테스트 페이지를 띄워야 할 경우가 많은데요, 포트나 페이지의 주소가 자주 바뀌면 매번 들락날락하기 귀찮아질 수 있습니다. 그래서, 어플리케이션이 실행된다면 자동으로 해당 URL을 콘솔에 출력하도록 만드는 방법을 알아보겠습니다. 이는 여러분이 개발하는 환경에 따라 유용하게 활용될 수 있습니다.
자, 그럼 본격적으로 시작해볼까요?
1. 웹 서버 구성하기
먼저, 간단한 Spring Boot 웹 서버를 구성합니다. start.spring.io 웹사이트에 접속하여 필요한 의존 관계를 설정한 후, 프로젝트 파일을 생성하도록 합니다.
이후 IntelliJ IDEA를 사용하여 해당 프로젝트를 실행하면 기본 8080 포트로 서버가 실행되며 http://localhost:8080 주소로 접속할 수 있습니다.
@RestController
public class DemoController {
@GetMapping("/test")
public ResponseEntity<String> test(HttpServletRequest request){
return new ResponseEntity<>("Success", HttpStatus.OK);
}
}
위와 같이 /test
에 대한 간단한 응답 매핑을 추가해 줍니다.
2. 콘솔창에서 URL 호출하기
서버가 기본적으로 잘 작동하는지 확인 후, 이제는 콘솔에서 URL 호출의 정보를 로그에 찍어보겠습니다. 다음과 같이 main
함수에 로그를 추가하여, 서버가 실행될 때 관련 URL을 출력하도록 합니다.
@SpringBootApplication
public class DemoServerApplication {
public static void main(String[] args) {
SpringApplication.run(DemoServerApplication.class, args);
System.out.println("main :: http://localhost:8080/test");
}
}
이제 서버를 실행하고 콘솔을 확인하면 지정한 URL이 출력되는 것을 확인할 수 있습니다.
3. 어플리케이션 로딩 후 호출하기
이제 조금 더 발전된 형태로, 모든 컴포넌트가 로딩된 후에 특정 함수를 호출하는 방법을 알아보겠습니다. 대표적인 방법으로 CommandLineRunner
와 ApplicationRunner
를 활용할 수 있습니다.
CommandLineRunner
@SpringBootApplication
public class DemoServerApplication implements CommandLineRunner {
@Autowired
DemoDataManager demoDataManager;
public static void main(String[] args) {
SpringApplication.run(DemoServerApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
demoDataManager.select();
System.out.println("CommandLineRunner executed");
}
}
위와 같은 CommandLineRunner
를 구현하여 run
메소드를 사용했을 때, 어플리케이션이 시작될 때마다 원하는 동작을 수행할 수 있습니다.
ApplicationRunner
또한 ApplicationRunner
를 활용할 수도 있습니다:
@SpringBootApplication
public class DemoServerApplication implements ApplicationRunner {
@Autowired
DemoDataManager demoDataManager;
public static void main(String[] args) {
SpringApplication.run(DemoServerApplication.class, args);
}
@Override
public void run(ApplicationArguments args) throws Exception {
demoDataManager.select();
System.out.println("ApplicationRunner executed");
}
}
이 두 방식은 대체로 동일하게 동작하지만, ApplicationRunner
는 ApplicationArguments
를 더 편리하게 사용할 수 있는 장점이 있습니다.
4. 이벤트 리스너 사용하기
Spring Boot에서 어플리케이션 로딩이 완료되면 발생하는 이벤트를 잡아내는 방법도 있습니다. @EventListener(ApplicationReadyEvent.class)
를 활용하면 됩니다.
@SpringBootApplication
public class DemoServerApplication {
@Autowired
DemoDataManager demoDataManager;
public static void main(String[] args) {
SpringApplication.run(DemoServerApplication.class, args);
}
@EventListener(ApplicationReadyEvent.class)
public void initialize() {
demoDataManager.select();
System.out.println("Application is ready!");
}
}
이 방법을 통해 모든 초기화가 끝난 후에 관련 로직을 수행할 수 있습니다.
마무리하며
오늘 포스트에서는 Spring Boot에서 어플리케이션이 로딩된 후에 함수 호출을 설정하는 다양한 방법을 살펴보았습니다. 귀찮은 URL 호출을 잊지 않게 도와주며, 프로젝트 개발 과정에서 유용하게 활용할 수 있으리라 생각합니다.
프로그래밍은 여러 방면에서 창의력을 발휘할 수 있는 재미있는 경험입니다. 여러분이 직접 코드들을 활용하여 더 나은 프로그램을 만들어 보시길 바랍니다!
어떤 질문이든 댓글로 남겨주시면 언제든지 도와드리겠습니다. 그럼 다음 포스트에서 만나요!
'개발' 카테고리의 다른 글
효율적인 팀워크를 위한 Bitbucket에서의 Pull Request 완벽 가이드 (3) | 2024.11.12 |
---|---|
효율적인 CI/CD 자동화 시스템 구축을 위한 Jenkins Declarative Pipeline 활용법 (0) | 2024.11.12 |
Python을 활용한 이미지 리사이징 자동화 가이드 (1) | 2024.11.12 |
Golang으로 GraphQL 서버 구축하기 GQLGEN 활용기 (0) | 2024.11.12 |
파이썬을 이용한 텍스트 파일 데이터 처리와 분석 방법 (0) | 2024.11.12 |