전체 글15 [MySQL] 격리수준 (isolation level) 여러 트랜잭션이 동시에 처리될 때, 하나의 트랜잭션이 다른 트랙잭션에서 조작한 데이터를 조회하는 걸 "어디까지 허용할 것인가" 하는 수준이다.격리수준이 낮을수록 데이터 부정합이 발생하고 높을수록 동시성이 떨어진다. Read uncommited한 트랜잭션이 다른 트랜잭션에서 커밋하지도 않은 데이터 변경사항을 조회할 수 있다. (Dirty read) Read commited한 트랜잭션에서 동일 데이터를 두 번 조회하는 사이에 다른 트랜잭션이 해당 데이터를 변경한 것을 커밋하면 두 번의 조회 결과가 다를 수 있다. (Non-Repeatable read) Repeatable readInnoDB에서는 MVCC(Multi Version Concurrency Control)방식으로 변경 전 데이터를 언두로그에 백업하.. 2026. 1. 10. [JPA] entity 상속 관계 매핑 (@Inheritance) 실무에서 테이블 설계를 하다 비슷하면서도 미묘하게 다른 데이터를 다뤄야할 경우가 있다.마케팅 컨텐츠 SaaS 프로젝트를 진행하면서 요구사항이 바뀌게 되면서 초기 테이블 설계를 변경하고 상속 구조로 엔티티를 설계한 경험을 정리해보았다.이해를 돕기 위해 서비스에 대해 대략적으로 설명하자면, 여러 컨텐츠를 제공하고 클라이언트가 어드민에서 사용할 컨텐츠를 선택한다. 유저에게 노출되는 영역을 설정하고, 자사 앱에 간편하게 임베딩하여 유저의 참여와 리텐션을 올리는 서비스이다.초기에는 단일 컨텐츠만 제공하다가 요구사항이 변경되면서 여러 타입의 컨텐츠 관리가 용이하도록 테이블 구조를 변경하게 되었다.(사내 프로젝트이니 실제 구현된 내용과 다른 예시를 들었다.) 예를 들어, 초기에는 블로그형 컨텐츠만 제공했다고 해보자... 2025. 10. 23. NewRelic 도입을 위한 분석기 사내에서 ELK으로 구축된 로깅 모니터링 시스템을 운영 중이다. 메트릭 정보나 RDB 혹은 외부 API 통신 등 트랜잭션(요청) 단위로 세밀하게 성능을 측정할 수 있기 때문에 APM 도입 검토를 하게 되었다. 로깅 모니터링 시스템과 APM은 기본적으로 데이터 수집 방법과 컨셉이 다르다. ELKNew Relic데이터 수집 방식로그 파일 기반Java agent 기반트랜잭션(요청-응답) 혹은 에러를 로그로 남겨서 로그파일에서 데이터를 수집agent에서 로그 수집, 에러 감지 및 수집, 트랜잭션(요청)과 트랜잭션 별 stack trace(span) 수집filebeat 설정에서 수집할 로그 형태를 설정하고 logstash에서 정의한 타입별로 로그를 가공하여 ElasticSearch 인덱스로 저장한다.agent에.. 2025. 10. 4. Spring Boot 3 버전 주요 변경 사항 Spring Boot 3.x.x 버전은 Java 17 버전 이상을 지원한다.Spring Security 버전은 6.x.x을 지원한다.Java EE를 jakarta EE로 대체한다.javax 패키지를 jakarta로 변경해야한다.javax.persistence.* → jakarta.persistence.*javax.validation.* → jakarta.validation.*등등 …참고: https://www.samsungsds.com/kr/insights/java_jakarta.htmlJava의 record 키워드java 14버전에 새로 생긴 키워드 record불변 데이터 객체를 쉽게 생성할 수 있는 클래스lombok 대신에 record 클래스로 만들어서 사용하면 lombok과 비슷한 기능을 사용할 수.. 2024. 7. 16. 이전 1 2 3 4 다음