TIL

· TIL
@SQLRestriction("is_deleted IS FALSE")@SQLDelete(sql = "UPDATE p_product SET deleted_at = CURRENT_TIMESTAMP, is_deleted = true WHERE product_id = ?") 엔티티 단에 해당 어노테이션을 붙여주면softDelete 에 대한 처리가 가능해진다. 이게 신기한게 JPA 뿐만 아니라, QueryDSL 까지도 적용이 된다는 것
· 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..
wonow_
'TIL' 카테고리의 글 목록