만쥬의 개발일기
article thumbnail
[Spring 기술 면접 대비] - 2. @Controller VS @RestController

Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있다. 두 어노테이션의 주요한 차이점은 HTTP Response Body가 생성되는 방식이다. 두 어노테이션의 자세한 차이점과 사용법을 살펴보자. @Controller란? 전통적인 Spring MVC의 컨트롤러인 @Controller 주로 View를 반환하기 위해 사용한다. 아래 예시와 같은 과정을 통해 Spring MVC Container는 Client의 요청으로부터 View를 반환한다. Client는 URI 형식으로 웹 서비스에 요청을 보낸다. DispatcherServlet이 요청을 처리할 대상을 찾는다. HandlerAdapter을 통해 요청을 Controller로 위임한다. Control..

article thumbnail
[Java / Spring] Lombok: variable not initialized in the default constructor

스프링 프로젝트 초기 설정 도중, 테스트를 돌리자 variable userRepository not initialized in the default constructor 에러가 발생했다. 생성자를 Lombok을 이용하여 만들었는데, variable not initialized in the default constructor라는 에러가 발생했다면, Lomnok이 정상적으로 동작하지 않는다는 뜻으로 다음과 같은 상황을 의심해봐야한다. Gradle 버전 확인 Gradle을 통해서 롬복 의존성 라이브러리를 추가해주었지만 동작하지 않는다면 자신의 Gradle 버전이 5.x 이상인지 확인해야한다. 그 이유는 Gradle 버전이 올라가면서 Lombok 의존성을 추가하는 방법이 바뀌었기 때문이다. Gradle 버전은 ..

[Spring 기술 면접 대비] - 1. IoC(Inversion of Control), 제어 역전이란? (Autowired를 쓰는 이유)

스프링 프레임워크(Spring Framework) 하면 반드시 알아야 하는 개념이 바로 DI, IoC이다. DI는 의존성 역전으로, 클린 아키텍쳐를 읽으면서도 많이 배우고 개념을 다져왔는데, IoC에 대해서는 아직 잘 모르는 것 같아서 따로 정리해본다. IoC는 스프링 뿐만 아니라 다른 프레임워크에서도 사용되는 범용적인 개념이다. 왜 IoC라는게 생겼을까? 무엇을 제어하고 왜 역전이 필요한 것인지, 천천히 알아보자. IoC의 Control, 제어란? 여기서 제어라는건 "객체에 대한 주도권을 가지고 있다"라고 생각하면 좋다. 자바는 객체지향 프로그래밍 언어이고, 모든 객체는 생명주기(Life Cycle - 객제가 생성된 후 부터 폐기될 때까지의 기간) 를 가지고 있다. 일반적으로 프레임워크를 사용하지 않는..

article thumbnail
[Spring Boot] Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.8...에러 해결하기

spring boot 프로젝트 생성 중, 위 오류에 부딪혀 구글링을 통해 해결했다. 1.환경변수 설정 https://coding-factory.tistory.com/838 [Java] 자바(JDK) 환경변수 설정방법 (for Windows) 자바(Java) 환경변수 설정 이유 환경 변수란 윈도우 운영체제에서 사용하는 설정 정보가 담겨있는 변수입니다. 윈도우에서 명령 프롬프트 (cmd)로 파일을 찾거나 실행을 시킬 때 현재 위치에 파일 coding-factory.tistory.com 위 블로그에 자세한 설명이 나와있다. 2.intellij SDK 확인 File > Project Strucure > Project > SDK 설정 SDK가 기존에 설정이 안되어있어서 11버전으로 설정해주었다. 3.Spring ..