전체 글16 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. [Filebeat] 파일 수집과 registry 파일 수집과 registryfilebeat는 registry에 파일을 어디까지 읽었는지 offset으로 저장한다.cursor의 offset에 해당하는 숫자가 파일내의 바이트 단위 offset이다.output으로 설정된 시스템(es나 logstash)와 연결이 끊기면 마지막으로 전송된 줄을 추적하고 연결이 다시 되면 다시 마지막으로 전송된 줄부터 파일을 읽어서 전송한다.logstash가 죽더라도 logstash가 정상 구동되고 filebeat와 연결되면 그때부터 다시 로그를 수집하고 registry가 업데이트된다. 파일비트의 파일 식별 기준리눅스 파일시스템에서 파일비트는 inode와 device 값을 사용하여 파일을 식별한다.디스크에서 파일을 제거하면 새로운 파일이 제거된 inode와 device값을 할당.. 2024. 7. 14. 이전 1 2 3 4 다음