2024/02 4

로드밸런서Load Balancer

배경서버에 많은 클라이언트의 요청을 응답하기 어려울 경우, 문제해결 방법으로는 크게 두가지가 있다.scale-up : 서버가 더 빠르게 동작하도록 단일서버의 하드웨어의 성능을 올리는 방법scale-out : 하나의 서버보다는 여러대의 서버가 나눠서 일을 하는 방법. 무중단서비스를 재공할 수 있다.로드밸런서는 이 중 scale-out에 관한 방법이다.정의클라이언트의 요청에 대하여 각각 서버의 부하,속도저하를 고려하여 적절히 분산처리해주는 것을 말한다.트래픽을 여러대의 서버에 균등하게 분산시켜주는 역할을 한다.분산방식Round Robin라운드로빈서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식을 말한다.Least Connections최소 연결 방식연결개수가 가장 작은 서버를 선택하는 방식트래픽으로 인하여..

카테고리 없음 2024.02.29

JPA

정의Java Persistence API. 자바에서 ORM기준 표준으로 사용되는 인터페이스 모음을 말한다.자바 어플리케이션에서 관계형 데티어베이스를 사용하는 방식을 정의한 인터페이스인터페이스이기 때문에 별도로 JPA의 구현체가 필요하다. 대표적으로 Hibernate가 있다.정리 : 자바의 ORM기술표준으로 인터페이스의 모음이 됩니다. 엄밀히 따지면 인터페이스이기 때문에 Hibernate와 같은 구현체가 필요하고 스프링에서는 SpringDataJPA를 통해 JPA를 사용합니다. JPA를 사용하면 개발자가 쿼리를 직접 작성하지 않고도 db테이블과 맵핑되어있는 엔티티 모델클래스와 자바메소드를 이용하여 DB를 조작할 수 있게 만들어줍니다.특징영속성 컨텍스트엔티티를 DB에 영속화 시킬수 있는 환경을 말한다. 엔티..

카테고리 없음 2024.02.22

Hash Collision 해시 충돌

정의해시값을 이용하여 데이터를 저장할때 해시주소가 겹쳐 충돌하는 경우 생기는 문제Open Addressing / Separate Chaining 두가지 방법으로 해결을 한다Open Addressing저장하려는 데이터에 할당한 해시주소가 이미 존재한다면 다른 주소로 새롭게 할당하는 방식Separate Chaing해시 테이블의 구조를 변경하여 하나 이상의 키값을 저장할 수 있도록 만드는 방법Java에서는 Separate Chaing를 사용하여 해쉬 충돌을 해결해시 충돌의 해결 방법1. Chaning해시 버킷내 링크드 리스트를 할당하여 버킷에 데이터를 삽입하다 해시 충돌이 발생하면 링크드 리스트로 데이터를 연결하는 방식장점링크드 리스트 하나로 해결 가능하기에 복잡한 계산식을 사용할 필요가 없다.개방주소법의 선..

카테고리 없음 2024.02.15

Spring과 Spring Boot의 차이점

어렴풋이 대충 알고 있던 내용을 정리해본다 공통점Spring 생태계 기반 자바 프레임 워크Spring개발자가 직접 설정파일을 작성해야 하는 부분의 리소스가 크다. 모든 빈 객체 등록, 객체 간 의존성 설정, 컴포넌트 구성을 해야함별도로 was를 설치하고 설정하는것이 필요배포시 war파일을 생성해서 Tomcat에 배포해야함Spring Boot간결한 설정 & 자동 구성보일러 플레이트 코드 최소화 - 보편적으로 많이 사용되는 트랜잭션 매니저, JDBC Template등을 기본적으로 Bean으로 등록되어있음XML 설정 불필요어노테이션을 통해 컴포넌트들을 스캔하여 자동으로 Bean에 등록(@Component, @Controller, @Service…)의존성 & 버전 관리 간소화Starter를 통한 dependen..

카테고리 없음 2024.02.14