개발자의 공부방/스프링 29

스프링 학습 중

아직 정리하지 않은 글 입니다. 스프링OOP 구조를 뒷받침하고 구조를 설계하는 사상.다른 프레임워크들과의 통합을 지원. ApplicationContex이 녀석이 필요한 객체들을 생성, 필요한 객체들을 주힙하는 역할을 해주는 구조.스프링에서는 ApplicationContext가 관리하는 객체를 Bean 이라는 용어로 부름. 빈과 빈 사이의 의존관계XML, 어노테이션, JAVA로 설정 가능. AOP반복적인 코드의 제거보안, 로그, 트랜잭션 → 횡단관심사 라고 함.횡단관심사를 모듈로 분리하는 프로그래밍의 패러다임 1) 핵심 비즈니스 로직에만 집중해서 코드를 개발2) 각 프로젝트마다 다른 관심사를 적용할 때 코드의 수정을 최소화3) 원하는 관심사의 유지보수가 수월한 코드를 구성 트랜잭션지원 의존성 주입 테스트1..

스프링 기초] jUnit 이란?

jUnit의 특징 TDD의 창시자인 Kent Beck과 디자인 패턴 책의 저자인 Erich Gamma가 작성했다. 단정(assert) 메서드로 테스트 케이스의 수행 결과를 판별한다. ex) assertEquals(예상 값, 실제 값) jUnit4부터는 테스트를 지원하는 어노테이션을 제공한다. ex) @Test @Before @After 각 @Test 메서드가 호출할 때 마다 새로운 인스턴스를 생성하여 독립적인 테스트가 이루어지도록 한다. jUnit 어노테이션 @Test @Test가 선언된 메서드는 테스트를 수행하는 메소드가 된다. jUnit은 각각의 테스트가 서로 영향을 주지 않고 독립적으로 실행됨을 원칙으로 하므로 @Test 마다 객체를 생성한다. @Ignore @Ignore가 선언된 메서드는 테스트를..

스프링 기초] DI (Dependency Injection)란?

1. DI 의 개념 각 클래스간의 의존관계를 빈 설정 (Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것을 말함. 개발자들은 단지 빈 설정파일에서 의존관계가 필요하다는 정보를 추가하면 된다. 객체 레퍼런스를 컨테이너로부터 주입 받아서, 실행 시에 동적으로 의존관계가 생성된다. 컨테이너가 흐름의 주체가 되어 애플리케이션 코드에 의존관계를 주입해주는 것이다. 빈 설정을 개발자가 XML, annotation 방식으로 설정을 하면 컨테이너가 빈의 설정 정보를 읽어서 컨테이너가 자동으로 짝짝꿍을 시켜준다. (프로필을 등록하고 프로필에 취미, 성향 등을 보고 자동으로 매칭 시켜주는...? 결혼 정보 업체같은 느낌..?) new 를 사용해서 객체를 불러올 필요성이 없어진다? 2. DI의..

스프링 기초] 컨테이너와 IoC (Inversion of Control, 제어의 역전) 란?

웹개발을 배우면서 항상 개념에 대한 부분이 너무 어렵고 공부를 하고 나면 까먹고 또 까먹는다. 컨테이너 또한 JAVA 기초와 함께 MVC를 배우면서 배웠으나 또 까먹었다...그런데 스프링에서도 컨테이너가 나온다. 과연 컨테이너는 뭐고 IoC랑은 어떤 상관관계가 있는지 한번 배워보겠다. IoC == 컨테이너? 그럼 먼저 컨테이너라는 것이 무엇인지 한번 알아보자. 1. 컨테이너란?? Servlet 컨테이너, EJB 컨테이너 ... 등 기본적으로 웹개발을 배우다보면 처음에 Servlet 컨테이너라는 말로 '컨테이너' 라는 것이 익숙하게 느껴질 것이다. 컨테이너는 보통 인스턴스의 생명주기를 관리, 생성된 인스턴스들에게 추가적인 기능을 제공하도록하는 것이라고 한다. 즉, 컨테이너란 당신이 작성한 코드의 처리과정을..

스프링 기초] 스프링 프레임워크 Request Life Cycle

1) user(클라이언트) 로부터 요청이 들어온다. 2) user의 요청으로 인하여 DispatcherServlet 이 반응한다. 3) Controller 에 연결을 하기 위해 HandlerMapping을 참조한다. 4) Contoller 로 넘어간 요청은 Service를 호출하여 필요한 데이터들을 DAO를 통해 DB에서 꺼내온다. 5) 꺼내온 데이터들을 ModelAndView & Model 이라는 객체에 담아 다시 DispatcherServlet에 반환한다. 6) ViewResolver 를 통해서 비로소 View와 연결되고 화면으로 출력된다. *기본적인 동작의 개념입니다. 출처 : https://steady-snail.tistory.com/66?category=788300

Simple Project와 Spring MVC Project 차이점? 그리고 Spring Project와 Spring Legacy Project 차이점은??

Spring Project와 Spring Legacy Project 차이점? Spring Legacy Project : 일반적인 Spring Framework 프로젝트입니다. 필요에 따라서 Spring Framework 의 라이브러리가 내장되어 있어서 이용할 수 있습니다. Spring Starter Project : Spring Boot 라는 응용 프로그램의 빠른 개발 프레임워크를 이용한 프로젝트입니다. 간단한 라이브러리를 추가하는 것만으로 필요한 프레임워크들이 모두 포함할 수 있도록 되어 있습니다. 기본적으로 Spring Legacy Project를 많이 사용하는 것 같습니다. Simple Project와 Spring MVC Project 차이점? 제일 많이 궁금했던 부분입니다.어느 분은 Simple ..

스프링이란??

스프링이란?? IOC란? 개발자는 JAVA 코딩시 New연산자, 인터페이스 호출, 팩토리 호출 방식으로 객체를 생성하고 소멸시킨다. IOC란 인스턴스(객체)의 생성부터 소멸까지의 객체 생명주기 관리를 개발자가 하는 대신 스프링(컨테이너)이 대신 해주게 하는것을 말한다. 그럼 이런 의문이 생기겠지 . 이걸 왜 스프링 시켜 내가하면 되는데?! 천재적으로 코딩을 잘하는 개발자라면 쓰지 않아도 된다. Java 상으로 구현하면 되니까.. 하지만 Spring 의 목적에서도 봤듯이 스케일이 커져만 가는 요즘 세상에 그 많은 객체들을 깔끔하게 관리하기도 빡시고 또 자원을 잘 활용해야되는데 이걸 개발자가 하지말고 Spring 시키자!! 이런의미에서 Spring 을 쓰고 이게 IOC 다. 책이나 인터넷 이런곳에서 설명하는..

스프링 프레임워크] Collection List, Set, Map, Property 사용법

https://devbox.tistory.com/entry/Java-%EC%BB%AC%EB%A0%89%EC%85%98-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC List applicationContext.xml 경기도 수원시 장안구 연무동 서울시 강남구 대치동 서울시 성북구 성북동 서울시 중랑구 중화동 CollectionBean.java package org.green.dbtest.injection; import java.util.Properties; public class CollectionBean { private List addressList; public List getAddressList() { return addressList; } public void ..