본문 바로가기

스터디

(5)
[토비의 스프링] 1.6 싱글톤 레지스트리와 오브젝트 스코프 1. 6 싱글톤 레지스트리와 오브젝트 스코프 오브젝트 팩토리인 DaoFactory와 @Configuration 어노테이션이 추가되어 애플리케이션 컨텍스트를 통해 사용하는 것은 차이점이 있다. DaoFactory의 userDao()를 여러번 호출할 때는 새로운 new 연산자에 의해 다른 오브젝트가 만들어져 돌아온다. 애플리케이션 컨텍스트로 getBean()을 사용하여 userDao()메소드를 호출하는 경우는 동일한 오브젝트가 생성된다. 차이점은 바로 애플리케이션 컨텍스트가 싱글톤 레지스트리로서 동작하고 있기 때문이다. 스프링은 싱글톤으로 빈을 만든다. 서버 환경에서 주로 사용되어 매번 클라이언트의 요청을 받을 때마다 각 로직을 담당하는 오브젝트를 새로 만들어서 사용하게 될 경우 매우 많은 오브젝트가 새롭게..
[토비의 스피링] 1.5 스프링의 IoC 1.5 스프링의 IoC 스프링에서는 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트를 가지고 있으며 이를 BEAN 이라고 부른다. 용어 정리 ==빈== 또는 ==빈 오브젝트== 는 스프링이 IoC 방식으로 관리하는 오브젝트 라는 뜻이다. 스프링에서 사용하는 애플리케이션에서 만들어지는 모든 오브젝트가 다 빈은 아니며 그 중에서 스프링이 직접 그 생성과 제어를 담당하는 오브젝트만을 빈이라고 부른다. ==빈 팩토리== 는 스프링의 IoC 를 담당하는 핵심 컨테이너를 가리킨다. 빈을 등록하고 생성하고 조회하고 돌려주고 그 외에 부가적인 빈을 관리하는 기능을 담당한다. 보통은 이를 확장한 애플리케이션 컨텍스트 를 이용한다. BeanFactory 라고 붙여쓰면 빈 팩토리가 구현하고 있는 가장 기본적인..
[토비의 스프링] 1-4. IoC 제어의 역전 1장 오브젝트와 의존관계 ==사전 준비== UserVo 클래스 package com.cafe24.vo; public class UserVo { private String id; private String name; private String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(..
Chapter 01. 대규모 웹 서비스 개발 오리엔테이션 Chapter 01. 대규모 웹 서비스 개발 오리엔테이션 1-1. 소규모 서비스와 대규모 서비스의 차이점 1. 확장성 확보, 부하분산 필요 1) 스케일 아웃으로 서버 1대가 처리할 수 없는 부하를 처리한다. 단, 스케일 아웃 전략은 스케일 업 전략에 비해서 비용이 절감되지만 서버가 1대인 경우와는 다른 문제가 발생한다. 문제의 유형은 다음과 같다. (1) 사용자의 요청을 어떻게 분배할 것인가? (2) 데이터 동기화는 어떻게 할 것인가? (3) 네트워크 통신의 지연시간(latency)을 어떻게 생각해볼 수 있을까? 이에 대한 해답은 앞으로 책의 내용을 통해서 해결해보자. 스케일 아웃, 서버를 횡으로 전개하여 서버의 역할을 분담하거나 대수를 늘림으로써 시스템의 전체적인 처리능력을 높여서 부하를 분산하는 방법..
Chapter 02. 대규모 데이터 처리 입문 메모리와 디스크, 웹 애플리케이션과 부하 대규모 데이터 처리의 어려운 점 메모리와 디스크 속도 차 데이터가 커질수록 메모리 내에서 계산할 수 없으며 계산이 불가능하므로 디스크에 두고 데이터를 검색한다. 하지만 메모리는 디스크보다 10^5 ~ 10^6 배 이상 빠르다. 디스크에서 검색하는 것은 메모리에 비해 상당히 느리다. OS 레벨에서의 연구 >디스크는 느리지만 OS는 연속된 데이터를 같은 위치에 쌓아 1번의 회전으로 읽는 데이터의 수를 많게 한다. 그 결과로 디스크의 회전횟수를 최소화할 수 있게 된다. 하지만 여전히 디스크는 메모리보다 상당히 느리다. 전송속도, 버스의 속도차 >탐색속도 측면에서는 메모리가 디스크에 비해 10^5~10^6배 이상 빠르다. 이유는 디스크의 동작원리에서 찾을 수 있다. 하지..