본문 바로가기

반응형

Spring/Spring Boot

(6)
스프링 Dependency Injection은 어떻게 동작할까? 왜 JUnit 테스트에서 @Autowired한 bookService 필드는 아무런 초기화를 안했는데 왜 null이 아닐까? 리플렉션 API: 클래스 정보 조회 docs.oracle.com/javase/8/docs/api/index.html Java Platform SE 8 docs.oracle.com Class API 사용하기 Class 메소드를 통해서 필드, 상위 클래스, 클래스가 구현하고 있는 인터페이스, 메소드 목록 등을 가져올 수 있다.
IoC 컨테이너: MessageSource 국제화 (i18n) 기능을 제공하는 인터페이스 - 메세지 다국화 기능 ApplicationContext extends MessageSource getMessage messages.properties messages_ko_KR.properties Spring Boot에서는 messages로 시작하는 properties들을 모두 읽어 옵니다. -> ResourceBundleMessageSource setCacheSeconds(3): Cache를 3초만 유지 해주고 재정의 -> Reloadable 함 Build를 해주면 메세지 내용이 새롭게 반영 됨
SXSSFWorkbook를 사용한 엑셀 생성 및 다운로드 대용량 데이터 엑셀 파일 처리 기존 문제점 1. 엑셀 자체의 한계 : 데이터 양을 소화 못시키는 경우 발생 2. 엑셀 라이브러리 사용시 느려지는 경우 3. 데이터 조회 후 List에 담아두고 엑셀 파일 생성 작업시 메모리 부족상황 발생 4. 데이터 다운로드시 엑셀 파일 생성 시간 다수 소요 -> 클라이언트에게 표현을 어떻게? Spring Framework + MyBatis 환경 구현 방안 1. 엑셀 파일은 xlsx 를 사용해서 최대한의 데이터를 표현할 수 있도록 합니다. 2. 엑셀 라이브러리는 POI를 사용합니다. POI 에 있는 SXSSFWorkbook은 엑셀 파일 생성시 메모리상에 지정된 숫자의 행만을 유지하고, 초과되는 행은 파일에 적어 메모리 사용량을 줄일 수 있게 해줍니다. 단점은 현재 메모리에..
Spring 용어 정리 WAS란? WAS (Web Application Server) WAS는 일종의 미들웨어로 웹 클라이언트(보통의 웹 브라우저)의 요청 중 웹 애플리케이션이 동작하도록 지원하는 목적을 가집니다.(Tomcat) 웹 서버의 기능들을 구조적으로 분리하여 처리하려는 목적으로 제시 - WAS에서 일을 나누어 역할 분담 웹 서버 담당 : 클라이언트로 부터 요청 받는 일과 화면에 표현하는 로직 컨테이너 담당 : 다양한 기능을 수행하는 로직 Servlet이란? 자바 웹 어플리케이션의 구성요소 중 동적인 처리를 하는 프로그램의 역할입니다. 서블릿을 정의해보면 서블릿(servlet)은 WAS에 동작하는 JAVA 클래스입니다. 서블릿은 HttpServlet 클래스를 상속받아야 합니다. 서블릿과 JSP로부터 최상의 결과를 얻으려..
의존성 주입 DI(Dependency Injection) 이해 시켜줘 제발 DI 란? DI는 클래스 사이의 의존 관계를 Bean Configuration 정보를 통해서 컨테이너가 자동으로 연결해주는 것이다. 개발을 하면서 개발자가 제어를 담당할 필요가 없이 Bean의 설정 파일을 보고 의존관계가 필요하다는 정보를 추가해주기만 하면 된다. 그러면 오브젝트 레퍼런스를 외부(Container)로 부터 주입을 받아서, 실행 시에 동적으로 의존 관계가 생성된다. 결국 컨테이너가 흐름의 주체가 되어서 애플리케이션 코드에 의존 관계를 주입해주는 것이다. 1 2 3 4 5 6 7 public class Foo{ private Bar bar; public Foo() { bar = new SubBar(); } } cs 위와 같이 Foo 객체는 bar를 인스턴스화 할 수 있다. Bar 인터페이스를..
Spring Framework Ioc (Inversion of Control) 컨테이너 - ApplicationContext (Bean Factory) ApplicationContext 는 BeanFactory를 상속받고 있음 IoC 컨테이너가 하는 일 Bean 생성 Bean들 사이의 의존성을 엮음 Bean들을 제공해서 사용하게 해줌 다양한 방법으로 등록된 빈들은 서로간의 의존성 주입을 IoC 컨테이너가 해준다. Bean → IoC 컨테이너가 관리하는 객체 클래스

반응형