TIL

· TIL
대규모 시스템개발을 하다보면 수백만 명의 사용자가 동시에 접속하고 상호작용 할 수 있는 시스템을 구축해야 하는 상황이 생길 것이다.여기서 시스템의 안정성, 신뢰성을 유지하며 고성능의 어플리케이션을 제공해야한다.여기서는 대규모 스트림 처리로 해결하는 방법을 설명할 예정이다. 대규모 시스템 기준TPS(Transactions Per Second)초당 처리되는 트랜잭션 수일간 평균 접속량이 아닌 가장 많이 접속한 시간대의 최대값을 기준으로 대규모 시스템을 구축해야한다.접속량은 일정하지 않고 특정 시간대에 몰리는 현상이 잦다.   DB IO 최적화서버에서 데이터 제공 및 저장에서 대부분의 Database 에서 일어난다.Input:InMemoryDB Cache 사용DB 부하 감소빠른 응답으로 사용자 경험 향상데이터..
· TIL
하하 CASCADE가 JPA 에서만 쓰이는 기능인줄 알았는데 사실 DB 기술에서 비롯된 거였다. 제약조건제약조건은 테이블에 저장될 데이터의 무결성, 즉 데이터의 정확성과 일관성을 유지하고, 데이터에 결손과 부정합이 없음을 보증하기 위해 해놓는 장치다.필수는 아니지만, 나중을 위해 초기에 정의해주는 것이 좋다. 제약조건의 종류Primary Key(기본키) - Row의 대한 고유성 보장, 한 테이블 하나 씩 지정 가능, Null 값 입력 X, 자동으로 Unique 인덱스로 생성Unique Key(고유키) - PK와 유사, 각 Row에 대한 고유성 보장, Null 값 입력 ONot Null - 해당 컬럼에 Null 값 입력 XCheck - 컬럼에 저장될 수 있는 값의 범위를 제한Foreign Key(외래키) ..
· TIL
AttributeConverterDB와 언어 사이에서 컨버터 역할을 해준다.예를 들어 객체가 있다고 하자public class VO { String value;}public class Entity { private VO name;}// 머 그냥 대충 적었다~~ 이렇게 있을 때 Entity를 DB에 저장하려고 하면VO는 원시 타입이거나 지원하지 않는 객체이므로 에러가 뜰것이다. 그래서 컨버터를 사용해서 VO를 db와 맞게 바꿀 수 있다. @Converter(autoApply = true)public class VOConverter implements AttributeConverter { @Override public String convertToDatabaseColumn(VO vo) { ..
· TIL
다들 코로나 조심하세요.. 나 죽어 @Override@Transactionalpublic void createOrder(OrderCreateDto orderCreateDto) throws ParseException, JsonProcessingException { Order order = Order.of(orderCreateDto); orderRepository.save(order); Set productIds = new HashSet(); String products = productClient.getProducts(); JSONParser jsonParser = new JSONParser(); JSONObject parsedJson = (JSONObject)..
· TIL
서비스 디스커버리 (feat. Eureka)MSA에서 각 서비스의 위치를 동적으로 관리하고 찾아준다.각 서비스는 등록된 서버에 각자 위치를 등록, 다른 서비스는 이를 조회하여 통신한다.주요 기능서비스 등록서비스 조회헬스 체크Eureka란넷플릭스에서 개발한 서비스 디스커버리 서버서비스 위치 동적 관리헬스 체크여러 인스턴스 지원 - 고가용성 Eureka 서버를 구성하고각 서비스가 Eureka Client 로 서버에 자신을 등록해야 사용할 수 있다.클라이언트 사이드 로드 밸런싱 (feat. FeignClient, Ribbon)로드 밸런싱이란네트워크 트래픽 분산 기술가용성 UP, 성능 UP종류: 클라이언트, 서버클라이언트 로드 밸런싱이란클라이언트가 여러 서버 중 하나를 선택 후 요청클라이언트는 서버의 목록(fe..
· TIL
다익스트라그래프에서 최단 거리를 구하는 알고리즘이다. 1. 인접 리스트로 표현 배열의 자료형은 노드, 가중치2. 최단 거리 배열 초기화 출발 노드 인덱스 0 / 나머지 무한3. 값이 가장 작은 노드 선택4. 선택된 노드에 연결된 에지의 값을 바탕으로 다른 노드의 값 업데이트공식 Math.min(선택 노드 최단 거리 배열 값 + 에지 가중치, 연결 노드 최단 거리 배열의 값)D[1] == 0 && D2[2] == 무한1 -> 2 가중치 8D[1] + 8 D[2] 값 갱신
wonow_
'TIL' 카테고리의 글 목록