Spring (14) 썸네일형 리스트형 [Spring] Bean Bean Spring 에서는 Spring Container에 객체들을 저장하여 객체끼리의 의존성을 주입해주는 역할을 합니다. 이때 Spring Container에 등록되는 객체들을 Bean이라고 합니다. 특징 @Configuration이 선언된 클래스의 메소드에서 사용가능합니다. 메소드의 반환객체가 스프링 Bean 객체임을 선언하는 작업입니다. Bean의 이름은 기본적으로 메소드 이름이고, 원한다면 바꿀 수 있습니다. Bean을 등록하는 방법 @Component Spring Boot에서는 클래스 선언부 위에 @Component를 선언하면 Bean으로 등록해줍니다. 자주 사용하는 @Controller, @Service, @Repository는 모두 @Component를 포함하고 있습니다. 직접 등록 Bea.. [Spring] Spring MVC Spring MVC Spring MVC는 웹 애플리케이션을 빌드하기위한 프레임워크입니다. 또한 Spring MVC는 MVC 패턴을 따르며 IOC-DI등을 구현할 수 있습니다. Spring MVC 동작구조 서블릿(Servlet)은 클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술입니다. 일반적으로 서블릿은 서블릿 컨테이너에서 관리합니다. 서블릿 컨테이너는 서블릿 인스턴스를 생성하고 관리하는 역할을 하는 주체로서 톰캣은 WAS의 역할과 서블릿 컨테이너의 역할을 수행하는 대표적인 컨테이너입니다. Servlet Container 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기를 관리합니다. 서블릿 객체는 싱글톤 패턴으로 관리합니다. 멀티 스레딩을 지원합니다. Spring에서는 Disp.. [Spring] @Transactional Transaction 사전적 정의로 "거래"를 뜻하는데요. Transaction 하면 나오는 대표적인 개념이 ACID입니다. ACID Atomicity : 하나의 Transaction 내에서 실행한 작업들은 하나의 단위로 처리 Consistency : Transaction은 일관성 있는 데이터베이스 상태를 유지 Isolation : 동시에 실행되는 Transation들이 서로 영향을 미치지 않도록 격리 Durability : 트랜잭션을 성공적으로 마치면 결과가 항상 저장 따라서 Transaction이란 위 조건들을 모두 만족하는 하나의 단위를 생각하면 될 것 같습니다. @Transactional Spring에서는 Transaction 설정을 애노테이션 기반으로 사용할 수 있습니다. 이를 선언적 트랜잭션이.. [Spring] Redis Redis 란 Remote Dictionary Server의 약자로 Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 비 관계형 데이터 베이스 시스템입니다. Cache Server Redis는 데이터를 저장하고 관리한다 했는데 왜 데이터베이스가 있는데도 Redis를 사용할까요? 그 이유는 Redis의 여러 장점들 때문입니다. 데이터베이스는 일반적으로 데이터를 디스크에 저장하게됩니다. 이는 비정상적으로 작업이 끝나도 데이터가 손실되지 않는다는 장점이 있지만 데이터를 가져오는 속도가 느리다는 단점이 존재합니다. 따라서 자주 호출되는 데이터를 대상으로 적용시키기 좋은 방법입니다. 하지만 자주 값이 바뀌는 데이터는 대상으로 적합하지 않습니다. 이유는 일일히 최신 데이터를 업데이트 시켜줘야하기 때.. [Spring] WS/WAS WS (Web Server) 정적인 처리를 제공하는 서버로 HTML, CSS ,JS, JPG와 같은 작업을 처리합니다. 정적인 작업은 WAS로 넘기지 않고, 바로 처리해버립니다. 동적 요청이 많을경우 WS 자체의 Load Balancing을 통하여 다수의 WAS에 정해진 규칙에따라 요청을 배분합니다. 서버의 Proxy 역할을 수행하여 WAS자체의 ip를 외부에 노출시키지않습니다. 또한 helath check를 통하여 WAS의 통신상태도 점검할 수 있습니다. ex) apache, nginx.. WAS (Web Application Server) 동적인 처리를 제공하는 서버로 동적 처리를 통해 WS에 정적인 정보를 제공합니다. 일반적으로 WS의 기능도 포함하고있어 웹 서버 없이도 서비스가 가능합니다. DB와.. [Spring] IOC-DI #3 IOC와 DI IOC : 제어의 역전으로써 프로그램의 흐름을 프레임워크가 제어한다는 것입니다 DI : 의존성주입으로 외부에의해 즉 ioc 컨테이너에 의해 의존성이 주입되어 객체를 생성하지않아도 프레임워크가 관리해줍니다. 여기서 알다싶이 IOC 라는 개념은 DI 라는 개념을 통해 객체의 생성, 소멸과같은 라이프 사이클을 프레임워크가 관리하는것을 의미할 수 있습니다. 또한 DI 는 IOC 라는 개념을 설명하기위한 디자인패턴이라고 설명할수 있을것같습니다. Repository나 Service, Controller등 객체를 만들지 않고 사용할 수 있었던 이유는 Spring Boot가 제공하는 IOC Container 덕분입니다. IOC Container에 등록된 필요객체는 @Autowired를 통해 객체를 .. 이전 1 2 다음