본문 바로가기

전체 글219

(25.03.05) Label CRUD & CSV File Download 기능 구현 Label CRUD 구현// Sample 엔터티@Entity@Table(name = "samples")public class Sample extends Timestamp {...@Column(columnDefinition = "JSON")@Convert(converter = ListToJsonConverter.class)private List labels;샘플과 N:M 관계를 형성할 경우 PoC단계에서 중간 테이블이 계속 생성이 될 수 있음 -> Sample 에 Json 타입으로 리스트로 지정이벤트 소싱기반 이기 때문에 중간 테이블에 비효율적으로 기록이 많이 될 수 있다는 점File Download 기능 구현@Transactionalpublic InputStreamResource getCsvFile(St.. 2025. 3. 6.
(25.03.01) ERD Update & 기능 개발(User, Sample, Template, Group CRUD) ERD 재정리review_groups로 SQL 문법과 겹치지 않게 변경review_groups 와 users 테이블이 N:M 관계를 형성을 해야했기 때문에 중간 테이블인 user_group테이블을 생성추후 라벨링 기능이 결정이 된다면 추가로 수정이 필요User, Sample, Template, Group 테이블에 맞도록 각각의 CRUD 개발domain/global 분리해서 개발CSV File Upload 기능 dataset 도메인에 CSV file upload 시 자동으로 sample 과 template에 해당하는  컬럼을 따로 분리해서 samples, review_groups 로 분리 // Controller @PostMapping(value = "/upload", consumes = MediaTyp.. 2025. 3. 5.
(25.02.26) Git Flow 명령어와 활용 정리 실제 회사의 개발환경에서 macOS와 Linux기반으로 개발이 진행되다 보니 일반적인 깃을 사용하기 보다는 git flow를 적극적으로 활용하는 개발 규칙이 있어 급하게 git flow에 대해서 공부하고 실습하면서 중요한 내용들을 정리했다. Git FlowGit을 활용한 브랜치 전략(branching strategy), 소프트웨어 개발 프로젝트에서 효율적인 브랜치 관리를 위한 Workflow 모델기능 개발, 버그 수정, 배포 등을 체계적으로 관리하는 방법개발, 배포, 버그 픽스 등의 브랜치를 생성하고 병합하는 과정에서 규칙에 맞춰 빠르게 체계적으로 관리할 수 있도록 할 수 있음안정적인 배포병렬 개발버전 관리주요 Branch브랜치역할생성 시점main제품으로 출시되는 브랜치배포할 때develop개발 중인 최.. 2025. 2. 26.
(25.02.26) ERD - Simplified Simplified Data Management Architecture with MySQL - Event Sourcing AppliedPOC Level에서의 Mulit-DB 를 구성하는 것 보다 일단 YAGNI를 팀 리더가 강조하면서 테이블 역시 가장 최소화 하려고 했음MySQL ReplacementThe multi-DB resource architecture with MongoDB has been replaced with a MySQL-only approach to facilitate faster and more straightforward POC-level development.YAGNI ImplementationThe use of MongoDB for handling varied dataset co.. 2025. 2. 26.
(25.02.24) Event Sourcing 기업에서 인턴으로 업무를 지내면서 만들어야 될 POC 단계의 툴의 아키텍쳐를 기본적인 CRUD를 만드려고 했지만, 복잡한 Relation 과 구현으로 POC단계와 부합하지 않다는 의견을 받아,아카이빙하고 업데이트 하는 구조가 아닌 Event Sourcing 기반의 데이터 수정 업데이트 툴로 바꾸고자 했다.그렇게 많은 양의 데이터를 다루는 툴이 아니기 때문에 DB에 무리가 가지 않기 때문에 하나의 DB에서 업데이트를 진행하기 때문에 해당 패턴이 선정이 되었다.툴을 개발하기에 앞서 생소할 수 있는 Event Sourcing패턴의 정의와 의의를 공부하면서 기록했다.Event Sourcing데이터를 변경된 최종 상태만을 저장하는 것이 아닌 이벤트(event) 순서대로 저장 → 재구성하는 패턴기존의 CRUD 방식.. 2025. 2. 24.
(25.02.20) ERD (Even Sourcing Based) Multi-DB Resource-based Architecture - Event Sourcing Applied회의를 통해 CRUD 패턴이 아닌, Event Sourcing 기반으로 사용자(Reviewer)가 잘못된 데이터가 있을 경우 업뎅이트 진행하면서 업데이트가 지속적으로 업데이트 되는 패턴으로 결정필터를 통해 원하는 데이터만 조회해 오는 간단한 구조 따라서 원하는 버전과 함께 저장하면서 버저닝 가능The dataset, including its sample data (row data), versioning archive, and template data, will be managed using MongoDB.The columns in each dataset may vary.Distinction is .. 2025. 2. 24.
(25.02.19) ERD (draft) Multi-DB Resource-based Architecture (Draft)User Scenario를 기반으로 작성한 초기 ERD : MongoDB 와 MySQL 두 DB를 모두 사용한 멀티 리소스 아키텍처를 구현Spring Boot 내에서 JPA를 활용해서 CRUD 기반으로 구성하지만, 2000~3000개의 샘플데이터로 구성된 데이터 베이스를 업데이트하기 위해서 해당 데이터는 MongoDB에 저장The dataset, including its sample data (row data), versioning archive, and template data, will be managed using MongoDB.The columns in each dataset may vary.Distinction is .. 2025. 2. 24.