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..
해당 글에서는 @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..
참조의 의미와 자바의 GC(가비지컬렉터)가 어떻게 동작하는지 초보자의 시점에서 알아보자 참조(Reference)란? 어떤 객체를 가리키고 있다는 뜻 - 객체의 주소를 기억해서 그 객체에 접근할 수 있게 해주는 역할 예시 ) public class Example { public static void main(String[] args) { Person person = new Person(); // 'person'은 Person 객체를 참조하고 있음 person.setName("John"); Person anotherPerson = person; // 'anotherPerson'도 같은 Person 객체를 참조함 ..

자바의 메모리 구조중에 Stack 영역과 Heap 영역에 대해서 알아보자 Stack 영역 각 메소드가 호출될 때마다 그 메소드 내에서 사용되는 지역 변수(로컬 변수)들이 저장됨메소드가 끝나면 그 메소드에 대한 스택 영역은 사라짐일시적인 데이터들(메소드 실행 중에만 유효한 데이터)을 저장하는 공간빠르게 접근 가능 public class Example { public static void main(String[] args) { int x = 10; // Stack에 저장되는 지역 변수 int y = 20; // Stack에 저장되는 지역 변수 int sum = add(x, y); // Stack에 메소드 호출 정보 저장 System.out.prin..
' 인프런 강의의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 을 듣다가 든 궁금점 ' -> " html 파일이 실행되는 루트 폴더가 다르네?" ( /resources/templates 가 공통인 줄 알았음 ) Spring Boot 에서 war 로 패키징하는 의 경우 scr/main/webapp 경로에 index.html 이 있으면 기본 루트가 된다. 내가 여기서 말하는 기본루트라는 것은 'http://localhost:8080' 과 같이 실행 한 경우에 해당 경로의 index.html 이 실행된다는 것이다. 보통 main/resources/templates 가 기본 루트가 된다고 알고 있었는데, 해당 경우는 jar 로 패키징한 경우 이고 war 파일의 경우에는 /webapp 폴더를 루트로 설정..

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

Spring ? Spring Boot?? 간단하게 개념을 정리해 두려한다. 이번엔 확실히 기억해 두자 !! 젭알 ~~ Spring Framework = Spring -> Spring 은 Java 를 위한 프레임워크이다( Spring Framework 를 Spring 이라고 간략히 부른다 ) Spring Boot -> Spring 의 문제점을 해결하기 위해 개발된 프레임워크 Spring 과 Spring Boot 둘 중에 선택해서 사용하는 것? -> 🙅: 아니야!!!Spring Boot 는 Sping 을 확장하여 사용하는 것으로서 Spring 기능을 기반으로 만들어 진 것이기 때문에 Spring Boot 를 사용하게 되면 Spring 보다 더 높은 수준의 추상화와 자동화된 기능을 사용할 ..
InterruptedException Java 에서 멀티스레딩을 다룰 때 발생할 수 있는 예외중 하나 스레드가 interrupted 되었을 때 발생하며, 스레드가 일시적으로 멈추거나 작업을 중단해야할 때 사용됨 InterruptedException 을 발생시키는 예외 public class InterruptExample { public static void main(String[] args) { Thread myThread = new Thread(() -> { try { for (int i = 0; i < 5; i++) { System.out.println("Working " + i); Thread.sleep(1000); // 스레드를 1초간 일시 정지 } } catch (InterruptedExcept..