TIL

· TIL
동시성 제어 방법들분산락RDB 가 아닌 Redis 에게 분산해서 락을 걸 수 있다. DB 락DB 락에는 여러 종류가 있지만 일반적으로 X-Lock을 걸어 락을 걸 수 있다. 각 구현 방법은 이 글에서 설명하지 않을 것이다. DB 락을 걸면 되는데 왜 분산락을 사용하지?분산락을 사용하는 이유는 다음과 같다. DB 단에 부하가 안 걸린다.다른 이유 (Sorted Set 등...)는 다 제쳐두고 이게 가장 크다. DB 단에 부하가 생기면 각종 예상치 못한 오류가 발생할 수 있다. 추가로 모노DB 면 하나의 도메인에서 발생하는 트래픽이 다른 도메인 트래픽까지 영향이 갈 수 있다.그러면 안 좋겠지?
· TIL
@SQLRestriction("is_deleted IS FALSE") @SQLDelete(sql = "UPDATE p_product SET deleted_at = CURRENT_TIMESTAMP, is_deleted = true WHERE product_id = ?") 엔티티 단에 해당 어노테이션을 붙여주면 softDelete 에 대한 처리가 가능해진다.
· 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)..
wonow_
'TIL' 카테고리의 글 목록