본문 바로가기

Spring62

[Spring boot]의존성 관리 | 스프링 부트 의존성 관리 (Spring Boot Dependency Management) 스프링 부트는 Maven, Gradle 같은 빌드 관리 툴을 통해 의존성을 관리합니다. 여기서는 Maven 기준으로 스프링 부트가 의존성을 어떻게 관리하는 지 살펴보도록 하겠습니다. pom.xml 에 스프링 부트에 대한 기본적인 의존성을 추가하면 다음과 같습니다. org.springframework.boot spring-boot-starter-parent 2.1.1.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test 다음과 같이 의존성을 추가하면 스프링 부트가 자체적.. 2020. 1. 18.
[Spring]AOP(Aspect Oriented Programming)란? @Service public class AppRunner implements ApplicationRunner { @Autowired EventService eventService; @Override public void run(ApplicationArguments args) throws Exception { eventService.createEvent(); eventService.publishEvent(); eventService.deleteEvent(); } } 스프링 AOP ( Aspect Oriented Programming ) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인.. 2020. 1. 16.
[Spring]스프링 Expression Language란?SpEL (Spring Expression Language) | 스프링 Expression Language : SpEL ● 객체 그래프를 조회하고 조작하는 기능을 제공한다. ● Unified EL과 비슷하지만, 메소드 호출을 지원하며, 문자열 템플릿 기능도 제공한다. ● OGNL, MVEL, JBOss EL 등 자바에서 사용할 수 있는 여러 EL이 있지만, SpEL은 모든 스프링 프로젝트 전반에 걸쳐 사용할 EL로 만들었다. ● 스프링 3.0 부터 지원한다. SpEL 구성 ● ExpressionParser parser = new SpelExpressionParser() ● StandardEvaluationContext context = new StandardEvaluationContext(bean) ● Expression expression = parser.par.. 2020. 1. 15.
[Spring] Lombok 이란? Lombok 1. 왜 쓰죠? 새로운 라이브러리를 보았을때에는 항상 왜 사용하는지를 파악하는 것이 우선인것 같습니다. 당연시 여기는 것들이 가끔은 당연하지 않은 경우가 있습니다.. 왜 쓸까를 한번 생각해 보시죠. Lombok 이전의 코드 우리는 프로젝트를 진행하면서 DB와 데이터를 주고받기 위해 DTO, VO Class들을 작성하여 데이터를 손쉽게 다루게 됩니다. 그런데 항상 반복되는 코드들이 눈에보입니다. public class Student { ​ private String id; private String name; ​ public Student(){} public Student(String id, String name) { this.id = id; this.name = name; } ​ public.. 2020. 1. 14.
[Spring]Resource 추상화 Resource 추상화 Resource 추상화라고 하니까 뭔가 말이 거창하고 어려워 보이네요. 간단하게 의미를 정의해보겠습니다. Resource 추상화는 java.net.URL을 추상화 한 것 입니다. 우선 java.net.URL이 무엇인지를 알아보아야 할 것 같습니다. java.net.URL 이란 우선 URL은 인터넷상의 주소를 표현하는 방법을 의미합니다. URL 클래스는 웹 상에 존재하는 자원에 접근할 때 사용하는 클래스입니다. URL 클래스를 사용하면 위와 같이 간단히 웹상의 자원을 가져올 수 있습니다. 이유 java.net.URL을 왜 추상화 했을까요? 기존 java.net.URL 클래스에는 classpath를 기준으로 resource를 가져오는 방법이 없었다고 합니다. 하지만 classpath,.. 2020. 1. 14.
[Spring] DataBinding추상화,Converter,Formatter란? 데이터 바인딩이란? -사용자가 입력한 값을 어플리케이션에서 사용하는 도메인으로 매핑하는 기능을 일컫습니다. -Spring MVC에서 Controller 안의 Mapping 메소드들에서 사용자가 전달한 값을 자동으로 매개변수에 입력된 Command 객체로 변환되는 것도 이 데이터바인딩을 통해서 가능한 것입니다. 데이터 바인딩 필요 이유 why? 왜 바인딩이 필요한가? -사용자가 입력한 값은 서버에서 기본적으로 String으로 인식을 합니다. HttpServletRequest 객체의 getParameter() 메소드가 반환하는 값이 String인 것을 보면 알 수 있습니다. 이 때문에 서버 프로그램에서 이 데이터를 상황에 맞게 처리하기 위해서는 특정 객체로 맵핑을 할 필요가 있습니다. 간단히 예제를 통해 알.. 2020. 1. 14.