본문 바로가기

WEB/Spring9

[Spring] AOP(Aspect Oriented Programming) 모든 메서드의 호출 시간을 측정하고 싶은 상황이 있다고 생각해보자. 모든 메서드 안에 시간을 측정하는 코드를 하나하나 집어넣는 방법이 있다. 하지만 이 방법은 작성 및 유지보수가 매우 어렵다. 이런 경우, 시간 측정 로직을 모듈화하여 원하는 곳에 적용되게끔 하면 좋을 것이다. 이럴 때 사용하는 것이 AOP(관점 지향 프로그래밍)다. 🌸 AOP(Aspect Oriented Programming) - 관점 지향 프로그래밍 - 공통 관심 사항(cross-cutting concern)과 핵심 관심 사항(core concern)을 분리하는 것 - 핵심 관심사항을 깔끔하게 유지 가능 - 변경이 필요하면 로직부분만 변경하면 된다.(유지보수 쉬움) - 원하는 적용 대상을 선택할 수 있다. 🌸 AOP 사용 방법 ① 원하.. 2022. 12. 29.
[Spring] 스프링 빈(Spring Bean), 스프링 빈 등록법 🌸 스프링 빈(Spring Bean) - 스프링 컨테이너가 관리하는 자바 객체 🌸 스프링 빈을 등록하는 방법 ① 컴포넌트 스캔과 자동 의존관계 설정(자동) ② 자바코드로 직접 스프링 빈 등록하기(수동) 🌸 컴포넌트 스캔과 자동 의존관계 설정 - 빈으로 등록되길 바라는 클래스에 @Component 애노테이션을 붙여준다. - @Controller, @Service, @Repository 애노태이션이 @Component를 포함하고 있기 때문에, 해당 애노테이션을 가지고 있으면 스프링 빈으로 자동 등록된다. - 빈 이름은 클래스의 이름 첫 글자를 소문자로 변경한 것(ex. MyService 클래스는 myService 라는 이름으로 등록) - 생성자에 @Autowired를 사용하면 객체 생성 시점에 스프링 컨테이.. 2022. 12. 29.
[Spring] 스프링 웹 개발 방법 스프링 웹 개발은 크게 3가지 방법이 있다. ① 정적 컨텐츠 ② MVC와 템플릿 엔진 ③ API 🌸 정적 컨텐츠 - 파일을 "그대로" 내려줌 - 기본적으로 static 폴더에서 찾아서 내려줌 - 참고 문서 https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content Spring Boot Features Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both re.. 2022. 12. 21.