울음참고 개발공부
AOP 동작 방식
Spring & Spring Boot 2025. 2. 4. 16:07

AOP(Aspect-Oriented Programming) 가 프록시 기반으로 동작하는 원리   - AOP 는 Spring의 프록시 기반 방식으로 동작하기 때문에 @Controller 이든 @RestController 이든 @Component 이든 Spring이 관리하는 Bean 이면 적용된다. @Controller vs @RestController 차이점- @Controller : 주로 View(HTML,JSP) 반환하는 MVC 컨트롤러- @RestController : JSON 데이터를 반화하는 REST API 컨트롤러(@ResponseBody 가 기본 적용)  동작 예시 ) [ AOP 적용 전 ]@Servicepublic class SampleService { public void doSomethi..

Spring에서 @Autowired와 static 메서드 사용 시 NullPointException
Spring & Spring Boot 2025. 1. 22. 17:57

해당 글에서는 @Autowired로 주입된 빈을 static 메서드에서 사용하려고 할 때 NullPointerException 이 발생하는 원인과 해결방안에 대해 다루려고 한다.   문제 상황 static 메서드 exctractBrandName() 에서 @Autowired로 주입된 someDAO를 사용하여 실행하면 NullPointerException이 발생한다.  @Slf4j@Service("dataService")public class DataService { @Autowired private someDAO someDAO; public static String extractBrandName(String input) throws Exception { List brandNam..

Spring boot - war 파일 기본 루트
Spring & Spring Boot 2023. 12. 7. 15:15

' 인프런 강의의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 을 듣다가 든 궁금점 ' -> " html 파일이 실행되는 루트 폴더가 다르네?" ( /resources/templates 가 공통인 줄 알았음 ) Spring Boot 에서 war 로 패키징하는 의 경우 scr/main/webapp 경로에 index.html 이 있으면 기본 루트가 된다. 내가 여기서 말하는 기본루트라는 것은 'http://localhost:8080' 과 같이 실행 한 경우에 해당 경로의 index.html 이 실행된다는 것이다. 보통 main/resources/templates 가 기본 루트가 된다고 알고 있었는데, 해당 경우는 jar 로 패키징한 경우 이고 war 파일의 경우에는 /webapp 폴더를 루트로 설정..

article thumbnail
Spring Boot 의 내장웹서버 Tomcat 의 위치
Spring & Spring Boot 2023. 11. 29. 10:11

Tomcat 은 WAS 의 한 종류이다* WAS ( Web Application Server ) : 정적리소스 및 동적인 애플리케이션 관리 서버     Spring Boot 는 내장형 웹 서버를 가지고 있으므로 애플리케이션을 실행할 때 별도의 구성 없이도 내장된 서버를 사용하여 애플리케이션을 실행할 수 있다.  기본적으로 Tomcat, Jetty, Undertow 와 같은 내장형 서버를 제공하며 선택해서 사용할 수 있다.    Spring 은 내장형 웹 서버를 가지고 있을까 ?? Srping Framework 는 Spring MVC 를 사용하여 웹 애플리케이션을 구축할 수 있다.Spring MVC 를 사용할 때, 일반적으로 외부 웹 서버(Tomcat, Jetty 등)를 사용하지만 ......Spring ..

article thumbnail
Spring Framework , Spring , Spring Boot 간단 정리
Spring & Spring Boot 2023. 11. 28. 16:46

Spring ? Spring Boot?? 간단하게 개념을 정리해 두려한다. 이번엔 확실히 기억해 두자 !! 젭알 ~~    Spring Framework = Spring  -> Spring 은 Java 를 위한 프레임워크이다(  Spring Framework 를 Spring 이라고 간략히 부른다 )    Spring Boot -> Spring 의 문제점을 해결하기 위해 개발된 프레임워크   Spring 과 Spring Boot 둘 중에 선택해서 사용하는 것? -> 🙅: 아니야!!!Spring Boot 는 Sping 을 확장하여 사용하는 것으로서 Spring 기능을 기반으로 만들어 진 것이기 때문에 Spring Boot 를 사용하게 되면 Spring 보다 더 높은 수준의 추상화와 자동화된 기능을 사용할 ..

article thumbnail
의존성 주입이란? + @Autowired , IoC
Spring & Spring Boot 2023. 11. 2. 13:30

의존성 주입하면 생각나는 것이 @Autowired 인데, 실제로 이것들의 정확한 개념은 설명할 수 없었다. @Autowired 를 사용하면 DI 를 편리하게 할 수 있다. 정도? 그럼 얘들은 언제 어디에 어떻게 사용하는거지?? 이번 정리를 통해 완벽하게 개념을 알고 있자 !! 의존성 주입(Dependency Injection) "소프트웨어 개발에서 다른 객체나 모듈로부터 필요한 의존성(객체, 서비스, 데이터 등)을 주입하는 디자인 패턴" 코드 간의 결합도를 낮추고 유지 보수성을 향상시키며 코드를 더 테스트하기 쉽게 하기 위함 먼저 DI 개념을 익히기 위해 스프링 프레임워크를 사용하지않고, 순수한 Java 코드로 의존성 주입을 해보자 아래 예시는 생성자 주입을 통한 의존성 주입이다. Car 클래스 : 자동..

article thumbnail
@Autowired(required = false) 사용 목적
Spring & Spring Boot 2023. 11. 2. 11:16

@Autowired 를 사용하는 경우 기본적으로 필수적인 의존성을 가진다. ( 기본값 : required=true ) 해당 클래스를 주입할 수 있는 빈(Bean) 이 존재 하지 않으면 애플리케이션 컨텍스트 초기화 과정 중에 예외가 발생한다. @Autowired(required = false) 해당 의존성을 주입할 수 있는 빈이 없어도 예외를 발생시키지도 않고 무시됨 해당 필드 또는 메서드 인젝션 포인트는 null 값으로 남음 특정 상황에서 의존성이 없이도 애플리케이션이 잘 동작하도록 도와줌 @Autowired (requird = false) 를 사용하는 것과 @Autowired 어노테이션 자체를 사용하지 않는 것의 차이? [ 상황 ] Member 클래스는 스프링 빈으로 등록되어있지 않다. 그런 경우 @A..

article thumbnail
springframework 템플릿 엔진 - thymeleaf, mustache
Spring & Spring Boot 2023. 5. 11. 14:52

상황  spring 에서  html 파일을 여는 방법은 이렇다.(다른방법이 또 있을지도... )    login.html 이 들어있는 구조를 확인하면 이렇다  templates 안에 -> account 안에 -> login.html 파일이 존재한다  그런데 호출할 때는 templates도 없고 ~ .html 파일임을 명시해주지 않았음에도 페이지가 열린다.  어떻게 이렇게 되는지 궁금한적이 없다그냥 여긴 그렇구나~ 하고 말았었음...   궁금증 해결 과정  먼저 'templates'키워드를 검색하여 관련하여 설정해 둔 파일이 있는지 찾아보았다  발견!!   json 형태로 적혀있는데, spring-boot-configure.json 에 존재한다해..