본문 바로가기

전체 글217

(25.03.19) 대한민국채용박람회 참여하기 이번에 대한민국채용박람회에 참여하게 되었습니다. 정부 및 경제 단체 등이 주최하는 대규모 형사였고, 미리 준비를 하고 방문했습니다. 사람이 많이 몰려 사전 등록이 며칠 전부터 마감이 되었습니다.  백엔드 개발자로서 이력서와 포트폴리오를 준비하였습니다. 또 사람이 몰릴것을 대비해서, 원하는 회사의 부스 위치를 미리 파악한 뒤에 상담 및 간이 면접 순서를 미리 정했습니다.   보다 편한 복장도 가능했지만, 이력서 사진과 비슷한 느낌을 주기 위해 정장을 입고, 조금더 예의있게 참가하고자 했습니다.    행사는 오전 10시부터 시작했지만, 사람이 많은 것을 대비해서 저는 9시에 도착하여 사전 접수를 마친 후 곧바로 9:30에 입장하였습니다. 사람들이 많아서 일찍부터 혼잡한 분위기였습니다.  채용 설명회도 진행되.. 2025. 3. 19.
(25.03.14) Docker Compose 설정 & Swagger 세팅 Docker Compose 설정... mysql: image: mysql:8.3 container_name: datalabeling_mysql command: mysqld --default-authentication-plugin=mysql_native_password ports: - 3306:3306 - 33060:33060 healthcheck: test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ] interval: 10s retries: 5 timeout: 5s environment: MYSQL_ROOT_USER: root MYSQL_USER: ge.. 2025. 3. 18.
(25.03.11) Event Sourcing Refactoring Event Sourcing Refactoring여러 개의 컬럼 sql_query natural_question 값 또는 샘플에 할당된 라벨 Updated Request를 진행할 경우 → 각 컬럼 별(Attribution 별) 이벤트를 분리해서 저장위 이미지 처럼 sql_query natural_question 내용을 동시에 업데이트 할 시, b c 로 이벤트가 나눠서 저장어드민이 조회할 시 사용자별 각 컬럼별 = 이벤트별 최신 값을 반영한 값을 조회 가능채택된 이벤트는 APPROVED 상태로, 그리고 최신 값들만 반영하여 UPDATED 값으로 저장기존 컬럼별 업데이트 미반영 개선 2025. 3. 18.
(25.03.13) Java Spring JPA @Converter & AttributeConverter Labeling Project를 진행하면서 JSON  형태의 데이터를 계속다루고 있고,좀더 유연한 자료의 저장을 위해서 MySQL 에서 활용하지만, 다양한 Entity에서 String 타입 또는 Json 타입으로 저장하기 위해서Service 단에서 같은 ObjectMapper로 변환하는 비효율적인 코드를 작성했다. 하지만,Converter를 사용하면서 좀더 효율적으로 사용할 것으로 판단했고Row Data 당 사용자가 활용한 Label 리스트 타입을 Json 타입으로 저장하는데 활용할 수 있었다. @Converter@Entity@Table(name = "samples")public class Sample extends Timestamp { ... @Column(columnDefinition = "J.. 2025. 3. 13.
(25.03.10) 데이터 CSV 파일 업로드 / 다운로드 요청 시의 컬럼 순서 문제 인턴십 기간 중 Labeling 데이터 및 CSV 로 정리된 AI 학습용 데이터의 일부분을 업데이트 Application 및 툴을 개발하는 과정에서, 파일을 다운로드 시 업로드 했을 때와 컬럼의 순서가 보장이 되지않아, AI 학습을 위한 정상적인 처리에 애로사항이 발생을 해 관련 내용을 해결하며 트러블슈팅을 정리하고자 한다.이슈CSV 파일을 서버에 업로드시, MySQL DB에 데이터를 저장하여, Labeling Tool 을 통해 업로드된 정보로 최신화하여 다시 다운로드 기능의 트러블CSV 파일을 서버에 업로드시, MySQL DB 테이블의 해당 Sample Row Data를 sample_data 컬럼에 JSON 형태의 TEXT 로 저장하고자 할 때, 기존 CSV 파일의 컬럼의 순서가 보장이 안되는 현상 발.. 2025. 3. 10.
(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.