Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있다. Spring MVC Framwork에서 사용되는 컨트롤러는 @Controller이고, RESTful Service에서 사용되는 컨트롤러는 @RestController이다. 이러한 두 가지 컨트롤러의 차이점은 HTTP Response Body가 생성되는 방식이다. 그러면, 두 가지 종류의 컨트롤러가 어떻게 동작하는지 알아보자. @Controller(Spring MVC Controller) @Controller 어노테이션을 통해 생성한 컨트롤러는 전통적인 Spring MVC Framework에서 주로 사용하는 컨트롤러이다. 이 컨트롤러의 주요 목적은 View를 반환하기 위함이다. 즉, Clie..
Lombok Annotation Lombok은 자바에서 Model(DTO, VO, Domain) Object를 생성할 때, 멤버필드(Property)에 대한 Getter/Setter, toString, Constructor 등을 만드는 코드를 반복적으로 작업해야 하는 상황을 어노테이션을 통해 줄여주는 라이브러리이다. Lombok 설치 Lombok을 사용은 Lombok.jar를 직접 다운로드 하거나 Maven/Gradle을 사용해 Dependency를 추가해 사용할 수 있다. Lombok.jar를 직접 다운로드 받는 링크는 다음과 같다. Maven을 사용하기 위한 Dependency는 다음과 같다. (아래 Dependency를 pom.xml에 추가하면된다.) Gradle을 사용하기 위한 Dependency..
Java 에서 외부 프로세스를 실행하는 기능은 주의해서 다루지 않으면 애플리케이션을 불안정하게 만든다. 해커가 해당 애플리케이션을 공격할 때 RCE가 발생할 포인트가 될 수 있기 때문이다. Java.lang.Process 클래스 외부 프로세스와의 접점인 Process 객체는 java.lang.Runtime 클래스와 java.lang.ProcessBuilder 클래스를 통해서 얻어낼 수 있다. 그에 대한 코드는 다음과 같다. public class ProcessTest { public static void main(String[] args) { String[] command = new String[] {"echo", "ch4njun"}; ProcessTest.byRuntime(command); Proces..