본문 바로가기

전체 글

(97)
부하 분산(로드밸런싱)을 위한 네트워크 스케일아웃과 로드밸런싱 분산 처리를 위해 여러 대의 서버들을 놓게 되는 스케일 아웃 작업을 하게되는데, 이 때 여러 서버들로 대규모의 네트워크 트래픽을 분산 처리하는 기술을 로드 밸런싱이라고 한다. 스케일 아웃> 스케일 아웃(Scale Out)과 스케일 업(Scale Up) 1. 스케일 아웃 - 서버의 대수를 늘려 처리 능력을 향상 시키는 것. 하나의 장비에서 처리하던 일을 여러 장비에 나눠서 처리할 수 있도록 설계를 변경하는 것. 비교적 저렴한 서버를 사용하므로 sloth.tistory.com 로드밸런싱이란? 로드밸런싱은 네트워크 또는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 기술을 의미하며, 이를 제공하는 서비스 또는 장치(로드밸런서)는 클라이언트와 네트워크 트래픽이 집중되는 서버들(Se..
스케일 아웃(Scale Out)과 스케일 업(Scale Up) 1. 스케일 아웃 - 서버의 대수를 늘려 처리 능력을 향상 시키는 것. 하나의 장비에서 처리하던 일을 여러 장비에 나눠서 처리할 수 있도록 설계를 변경하는 것. 비교적 저렴한 서버를 사용하므로 일반적으로 비용 부담이 적다. 하지만 대수가 늘어날 수록 관리 편의성이 떨어지며 운영 비용이 증가한다. 읽기/쓰기가 여러대의 서버에 분산되어 처리됨으로 장애 시 전면 장애의 기능성이 적다. 2. 스케일 업 - 서버 그 자체를 증강하는 것에 의해 처리 능력을 향상 시키는 것. 더 바른 속도의 CPU로 변경하거나, 더 많은 RAM을 추가 등, 하드웨어 장비의 성능을 높이는 것. 성능 증가에 따른 비용 증가폭이 크다. 운영비용은 큰 변화가 없다. 한대의 서버에 부하가 집중되므로 장애시 장애 영향도가 크다.
[SPRING BOOT_JPA] 부트스트랩으로 페이징구현 Spring Data Jpa는 페이징을 쉽게 하도록 인터페이스를 제공해준다. PaginAndSortingRepository인데 이 인터페이스는 CrudRepository를 상속하고 있기 때문에 JpaRepository에서 구현이 가능하다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @NoRepositoryBean public interface PagingAndSortingRepository extends CrudRepository { /** * Returns all entities sorted by the given options. * * @param sort * @return all entities sorted by the given options */ Ite..
[Spring Security] UsernamePasswordAuthenticationFilter에 대해서 UsernamePasswordAuthenticationFilter는 Form인증을 처리하는 필터이다. 사용자가 로그인하면 인증처리가 이루어지는데, 이 인증처리를 담당하고 관련된 요청을 처리한다. 내부적으로 각각의 인증처리의 역할을 따라 여러 클래스를 활용해서 인증처리를 하게 된다. 인증을 처리하는 과정이다. 1. Form인증으로 인증을 시도하면 UsernamePasswordAutenticationFilter가 요청을 받는다. 2. 사용자가 요청한 url정보(요청정보)를 확인한다. 위의 사진에서는 현재 요청정보의 url이 login인지 확인한다.(default값은 login) 이 값은 http. loginProcessingUrl("...")에서 바꿀 수 있다. default값이 login이기 때문에 /lo..
[Spring Security] Form Login 인증에 대해서 http. formLogin() : Form 로그인 인증 기능이 작동 http .formLogin() .loginPage("/login.html") 로그인이 필요할 시 사용자가 만든 로그인 페이지로 넘어간다. 따로 정의하지 않으면 spring security에 자체적으로 있는 페이지가 나온다. .defaultSuccessUrl("/home") 로그인 성공 후 이동할 페이지 .failureUrl("..") 로그인 실패 후 이동할 페이지 .usernameParameter("username") 아이디 파라미터명 설정 .passwordParameter("password") 패스워드 파라미터명 설정 .loginProcessingUrl("/login") form태그에서 action Url을 설정한 대로 변경할 수 ..
[Spring Security] 스프링 시큐리티 시작 Spring Security를 의존성 추가하고 서버를 기동시키면 서버 안에 spring security가 초기화되면서 웹 보안 기능을 활성화시킨다. spring security가 활성화될 때 가장 중요한 핵심은 WebSecurityConfigurerAdapter클래스이다. 이 클래스는 웹 보안 기능을 초기화 및 설정하는데 이 과정에서 HttpSecurity클래스 객체를 생성한다. 이 클래스는 세부적인 보안기능을 설정할 수 있는 인증 API와 인가 API를 제공한다. HttpSecurity의 applyDefaultConfiguration에서 11개 설정을 초기화해주고 configure메서드로 넘어가는데, configure메서드는 인증 또는 인가와 관련된 기능들을 추가적으로 설정할 수 있다. 여기서 . au..
[JAVA] Call by value 와 Call by reference 영어 해석 그대로 Call By Value는 '값에 의한 호출' Call By Reference는 '참조에 의한 호출'이다. Call by value 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public class CallBy { public static void main(String[] args) { int a= 10; int b = 20; System.out.println("Before>> a=" + a + " b=" + b); swap(a, b); System.out.println("After>> a=" + a + " b=" + b) } public static void swap(int one, int two){ int temp = one; one = two; two = temp;..
[SPRING SECURITY] 실제 DB에서 인증하기 DB로부터 사용자를 직접 조회하고, 조회한 사용자를 통해서 인증처리를 이루어질 수 있도록 구현하려고 한다. 그러기 위해 UserServiceDetailsService를 커스터마이징을 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 @Service("userDetailService") public class CustomUserDetailsService implements UserDetailsService { @Autowired private UserRepository userRepository; @Override public UserDetails loadUserByUsername(String username) throws UsernameNo..