spring8 [빌드도구] maven & gradle 이란? 1. 빌드 (Build) 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 일련의 과정 또는 그에 대한 결과물. 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, .jpg, .jar, .properties) 을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징하는 과정 및 결과물. 프로그래머가 작성한 소스코드를 실행할 수 있는 독립적인 형태(.war, .jar)로 변환하는 과정 및 결과이며 변환하는 과정에는 컴파일 과정도 포함된다. 2. 빌드도구 (Build Tool) 빌드 도구는 이러한 빌드 과정을 자동으로 수행해주는 도구이며, 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이다. 빠른 기간 동안 계속해서 늘어나는 라이브러.. 2022. 10. 11. [spring] POJO POJO (Plain Old Java Object)란? 오래된 방식의 간단한 자바 객체라는 의미이다. Java EE 등의 무거운 프레임워크 들을 사용하게 되면서 해당 프레임워크에 종속된 점점 무거워지는 객체에 대해 반발하며 나타난 개념이다. 2000년 9월에 마틴 파울러, 레베카 파슨, 조쉬 맥킨지 등이 시작하였으며 그 기원에 대한 내용은 마틴 파울러가 다음과 같이 말했다. "We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name. So we gave them one, and it's caught o.. 2022. 1. 9. [spring] DispatcherServlet 1. DispatcherServlet이란? Spring MVC, as many other web frameworks, is designed around the front controller pattern where a central Servlet, the DispatcherServlet, provides a shared algorithm for request processing, while actual work is performed by configurable delegate components. This model is flexible and supports diverse workflows. The DispatcherServlet, as any Servlet, needs to be declared a.. 2021. 10. 23. [spring] Context란? 스프링을 공부하면서 Context란 용어를 많이 봤는데 정확히 어떤 것을 나타내는지 알고 싶어서 공부해보았다. 1. Context란? Bean을 다루기 위한 Container라는 공간 안에 Context라는 공간이 존재한다. Bean들은 모두 Context에서 있기 때문에, 개념적으로 Bean들이 담겨있는 공간이라고 할 수 있다. 그리고 그외 여러 기능들도 있다고 한다. 즉 Context란, Bean들을 포함하여 여러 기능을 가진 공간이다. 2. 종류 자바에는 서블릿이란 객체가 존재한다. 모든 객체는 Bean으로 관리되니, 서블릿 또한 Bean으로 존재한다. 이러한 서블릿 Bean들도 각자 공통적인 부분이 있을 것이다. 예를 들면 DB 연결, 트랜잭션 처리, AOP 관련설정을 생각할 수 있다. DB 연결.. 2021. 10. 20. [spring] annotation 이용한 DI 자바에서 Annotation(@)은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다. 수업때 2가지 경우를 실습해보았는데 2가지 경우에서 사용한 어노테이션을 위주로 복습하면서 작성하였다. 어노테이션의 종류는 훨씬 다양하다고 하니 기본부터 익히고 차차 다른 종류도 공부해봐야 할 것 같다. 1. @Configuration & @Bean @Configuration //클래스를 스프링 설정 클래스로 지정하고 스프링 빈으로 등록을 하겠다. public class BeanFactory { @Bean public Person createPerson() { Person p2 = new Person(); p2.setName("유재석"); Food myfood = new Chicken(); p2.. 2021. 10. 20. [spring] 느슨한 결합력과 인터페이스(DI 이해에 도움) 어제 DI에 대해 공부했는데 복습 겸 좀더 이해하고싶어서 결합력과 인터페이스 차원으로 공부했다. 간단하지만 DI와 결합력으로 인해 인터페이스를 사용하는 이유에 대해 이해하는데 도움이 됐다. 1. 결합력이 높은 상황 B1클래스의 코드를 수정하고 싶어서 B2라는 클래스를 만들어서 B1클래스를 덮어쓰려고 한다. 하지만 S에서 B1클래스 객체를 생성하여 쓰기 때문에 S에서 수정해줘야 한다. 즉 Dao의 소스코드를 고치면 Service의 소스코드도 수정해야 하기 때문에 결합력이 높다. 2. 결합력 낮추기 위해 interface 도입 결합력을 낮추기 위해서 B라는 인터페이스를 사용하고 B2클래스를 구현클래스로 하여 b 객체를 생성한다. B 인터페이스를 이용하여 B1, B2, B3 등 클래스의 기능을 이용할 수 있으.. 2021. 10. 15. [spring] AOP 1. AOP (Aspect Object Programming) 관점 지향 프로그래밍 일반적으로 사용하는 클래스(Service, Dao 등) 에서 중복되는 공통 코드 부분(commit, rollback, log 출력처리, session close처리) 을 별도의 영역으로 분리해 내고, 코드(service, dao 의 메소드)가 실행되기 전이나 이 후의 시점에 해당 코드를 붙여 넣음으로써 소스코드의 중복을 줄이고, 필요할 때마다 가져다 쓸 수 있게 객체화하는 기술 객체지향 프로그래밍(OOP)를 한 단계 발전 시킨 기술 1-1. AOP 구조 사용자가 '회원가입'요청을 한다. Target Object가 처리하는 클래스 Service, Dao클래스라고 생각하면 된다. AOP가 Proxy를 만든다. 실제 targe.. 2021. 10. 15. [spring] DI, IOC란? 1. DI (Dependecy Injection) 의존 관계 주입기능으로 사용하는 객체를 직접 생성하여 만들지 않고, 외부에서 생성한 후 주입시켜주는 방식이다. 컨테이너가 빈의 설정 정보를 읽어와 자동으로 해당 객체에 연결하는 것을 의미한다. 이렇게 의존성을 주입받게 되면 이후 해당 객체를 수정해야 할 상황이 발생했을 때 소스코드의 수정을 최소화할 수 있다. DI를 통해서 각 모듈 간의 결합도를 낮출 수 있다. - 방법 1 (의존성 주입 X) : A객체가 B , C 객체를 New생성자를 통해서 직접 생성하는 방법이다. 아래와 같이 BoardServiceImpl 클래스에서 BoardDao객체를 직접 생성하는 방식이다. BoardServiceImpl 클래스를 만들려면 BoardDao 클래스를 필요로 하는데,.. 2021. 10. 14. 이전 1 다음