본문 바로가기

[Gena Co.] Internship Project13

(25.04.23) Spring Security 인증 인가를 통한 Login 기능 구현 & Token 재발급 구현 2025.03.20 - [[Gena Co.] Internship Project/GENA Labeling Tool] - Gena Labeling Tool 개발기 : 기획부터 PoC 까지 Gena Labeling Tool 개발기 : 기획부터 PoC 까지안녕하세요, 저는 Gena Co. 인턴 김현진(Andrew) 입니다. Gena에서 text2sql GenaSQL의 자연어(NL) - SQL query 변환 간 AI 학습을 위한 고품질의 데이터 셋을 만들기 위해, 기존 데이터 셋의 주석과 오류andrew75313.tistory.com2025.04.22 - [Develop Study/Spring] - (25.04.22) Spring Security 인증 인가를 통한 Login 기능 - Filter & JW.. 2025. 4. 23.
Gena Labeling Tool Development: From Planning to PoC Hello, I am Kim Hyunjin (Andrew), an intern at Gena Co.   In order to create a high-quality dataset for AI training in Gena's text2sql GenaSQL project, which focuses on natural language (NL) to SQL query transformation, I participated in annotating and error-checking the existing dataset.  During this process, I encountered some issues when manually handling CSV files with Data Anaylist of Gena .. 2025. 3. 21.
Gena Labeling Tool 개발기 : 기획부터 PoC 까지 안녕하세요, 저는 Gena Co. 인턴 김현진(Andrew) 입니다.   Gena에서 text2sql GenaSQL의 자연어(NL) - SQL query 변환 간 AI 학습을 위한 고품질의 데이터 셋을 만들기 위해, 기존  데이터 셋의  주석과 오류 점검에 참여하면서, CSV 파일로 수동으로 진행하던 애로사항을 발견했습니다. 이러한 문제를 해결할 수 있을 만한 Gena Labeling Tool 기획을 할 수 있는 기회를 얻게 되어 PoC(Proof of Concept) 수준으로 개발하게 되어 그 개발기를 소개시켜드리려고 합니다. 데이터 분석가 니즈 파악 : 비효율적인 라벨링    데이터 분석가 분과 얘기를 통해 진행하면서, 분석가의 페인포인트를 확인할 수 있었습니다. 첫번째로 해결하기 위해서, 활용할 수.. 2025. 3. 20.
(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.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.