Skip to content

Conversation

@brobro332
Copy link
Contributor

@brobro332 brobro332 commented May 4, 2025

개요

  • v1.0.0 develop → main 브랜치 병합

작업사항

  • develop 브랜치 작업사항 main 브랜치에 병합

Issue 번호

KIMB0B and others added 22 commits April 17, 2025 17:48
* Feat: MySQL -> ElasticSearch 데이터 변경 로직 작성
1. 임베딩 값 생성 API 호출 로직 작성함.
2. MySQL 데이터를 불러와서 임베딩 값을 생성함.
3. ElasticSearch 인덱스 구조에 맞게 데이터를 가공함.
4. store_search_doc 인덱스에 가공한 데이터 bulk insert 과정을 거쳐 저장

* Fix: 임베딩 생성 후 Index 생성 로직 수정
1. Store의 created_at에 DEFAULT값 추가
2. spring ai의 openai 키 설정 추가
3. MySQL에서 Elasticsearch로 데이터를 넣을 때 branch_nm이 없는 데이터만 가져오도록 수정
4. Python 임베딩 서버 불러오도록 추가

---------

Co-authored-by: minseoBae <[email protected]>
1. MySQL 컨테이너의 Timezone을 Asia/Seoul로 수정
2. Store에서 block,floor,room 컬럼의 길이 제한을 50으로 수정
3. gitignore에서 elasticsearch의 데이터 경로를 추가
1.키워드 입력 로직
2.키워드 임베드 생성 로직
3.Elasticsearch 데이터의 임베드 값이랑 비교하는 로직

Resolves: #9
1. store_search_doc 인덱스 변경 -> 형태소 필드 추가
2. MySQL에서 Elasticsearch로 만들기 전에 형태소 분석 과정 추가
3. 잘 되는지 확인
* Fix: 키워드 추출 로직 수정
1. HuggingFace URI 불러오는 과정에서 static 제거
2. my_nori에서 nori_none을 ElasticSearch에 생성하여 해당 analyze 호출
3. request 과정에서 특정 단어 태그를 불러오지 않도록 설정

* Feat: Batch로 Embedding하여 index를 생성
1. 임베딩 생성 서버의 /embed/batch 호출을 통한 벡터값 생성 로직 추가
2. batch를 통해 생성된 벡터값의 집합을 가져오는 DTO 생성
3. index 생성 로직에서 배치를 통한 벡터값 생성 로직 적용

* Feat: Elasticsearch의 custom nori 분석기 자동 등록
1. 환경 변수 최적화
2. custome nori 분석기(my_nori) 자동 등록 클래스 생성
* Feat: Spring Batch를 적용하여 1000개씩 읽어 작업하도록 설정
Spring Batch 적용을 위해 Reader, Processor, Writer 구현

* Feat: 비동기 적용 후MySQL 데이터 읽는 방식을 페이지네이션에서 id기반으로 변경
1. Step에서 taskExecutor()로 비동기 적용
2. StoreRepository에서 id순서로 데이터를 가져오도록 하여 읽기 성능 개선
1.ExceptionHandler 작성
2.CustomExceptionClass 작성

Resolves: #16
* Feat: 크롤링을 통한 csv파일 읽어오기

1. celenium 세팅
2. zip 파일 크롤링해오기
3. zip 파일 압축 해제하기

* Bug: csv 파일 매핑 안되는 현상

* Feature: 스프링 배치 활용하여 CSV 파일들 비동기적으로 파일 하나씩 잡에 맡겨서 MySQL에 저장 로직

* Feat: Csv 데이터를 MySQL에 넣는 Batch 작업 추가

* Fix: Controller 매핑 uri 오류 수정

* Feat: CrtrYm stepScope로 설정해서 processor에서 값을 받도록 로직 변경

1. CrtrYm 설정
2. processor 변수 추가
Resolves: #17

* Refactor: CrawlerService에서 MySQL 저장 과정 삭제, StoreBatchController, TestController 컨트롤러 이름 변경

---------

Co-authored-by: minseoBae <[email protected]>
Co-authored-by: KIMB0B <[email protected]>
Co-authored-by: seykim <[email protected]>
* Feat: 스케줄러 도입

1. 패키지명 변경(batch -> preprocess, patch -> etl, preprocess -> indexing)
2. 스케줄러 도입
3. 파일 관련 코드 UtilFile로 분리

* Feat: 스케줄러 로직 개발 및 샤딩 처리(#21)

1. 스케줄러 로직 개발
2. 샤딩 처리

* Refactor: Error 처리 CustomException 사용하게 변경, 임베딩 문장 생성 로직 각 단어 강조 및 문장 형식으로 변경, 상황에 맞는 ApiStatus Exception 추가, 사용하지 않는 주석문 및 import 문 삭제

---------

Co-authored-by: minseoBae <[email protected]>
* Bug: 가장 최근 분기 추출한 데이터 Elasticsearch 저장 안 되는 현상

* Feat: 인덱싱 대상 문장 간소화

Resolves: #27

* feat: API로 넘길 전체 트렌드 데이터 DTO 생성

* Feat: 워드클라우드와 꺾은선그래프를 위한 데이터 응답 API 생성
1. 트렌드 분석 결과를 위해 최근 분기 인기있는 키워드 목록 파악
2. 그 후 각 키워드들의 모든 분기의 빈도수 계산
3. 빈도수에서 유사도로 점수를 측정하여 전달하도록 변경

---------

Co-authored-by: brobro332 <[email protected]>
Co-authored-by: seykim <[email protected]>
* Feat: 상호명 중복 확인 API 만들기

1. 상호명 중복 확인 API 개발
2. elasticsearch 배치 컨트롤러 최신 분기 파라미터로 받아 저장하도록 수정

* Refactor: 중복 확인 컨트롤러 메서드 명 수정
* Fix: 파티셔닝을 통해 각 스레드가 다른 범위의 MySQL 데이터를 읽도록 수정
1. 해당 crtrYm의 최대/최소 id값을 찾는 기능 구현
2. 찾은 구역을 스레드 수 만큼 나눠서 역할 분담하게함

* Fix: Batch작업의 Reader를 파티셔닝을 진행하여 하도록 수정
* Feat: 인프라 배포 환경 Setting

1. 각 컨테이너로 dockerfile 작성
2. .env파일 docker-compose.yml파일과 동일한 위치로 변경

Resolves: #33

* Feat: 주석처리 된 코드들 수정

Resolves: #33

* Feat: docker-compose.yml 수정

Resolves: #33
1. java.util.zip.ZipFile 도입
2. 압축 파일 내 CSV 파일명 캐릭터셋 검사 로직 추가
* fix: BaseTimeEntity의 createdAt의 Default값 추가

* Feat: 사용자 선호 이름 엔티티 생성
1. PreferName 엔티티 생성
2. BaseTimeEntity의 createdAt 디폴트값 추가
3. BaseTimeEntity의 위치를 Global로 수정

* Feat: PreferName JPA repository 생성

* Feat: PreferName을 저장하는 로직을 개발하여 Patent 확인 기능에 추가
1. PreferName 서비스 개발
2. PatentController에 해당 서비스 추가
3. PreferName 저장 관련 오류 처리 추가

* Fix: CustomException 메시지 처리 수정
ApiStatus에서 설정된 메시지에 더해서 설정한 추가 메시지를 보여주도록 수정

* Fix: @RequestParam대신 @param을 쓴 부분 수정
* Feat: 이름 추천 로직에서 한줄평 추가 로직 작성

Resolves: #38

* Fix: 이름 추천 로직 parse문제 해결

Resolves: #38

* Feat: 이름 추천 시스템 메시지 수정 & ES search방식에서 search After방식으로 로직 변경

Resolves: #38

* Bug: 상위 10000개의 데이터를 뽑아오는 로직 테스트 중, 타임아웃 발생으로 인해서 못받아 오는 현상
Resolves: #38

* Feat: yml 에서 타임아웃 증가(30 -> 1200), 중복해서 relevance 가져오는 로직 수정, 한 분기의 데이터에서 cosineSimilarity값을 계산해서 상위 1만개의 데이터로 보여주는 로직으로 변경
Resolves: #38

* Feat: 멀티쓰레드로 엘라스틱 병렬 작업 후, cosine유사도 계산 후, 정렬된 json으로 반환하도록 수정
Resolves: #38
* Refactor: local / main_app / main_storage로 인프라 패키지 분리

* Refactor: 임베딩 서버 도커 컨테이너 빌드 시 파일 경로 수정

* Refactor: 운영 환경 임베딩 서버 URI 설정 수정

* Refactor: 서버 Elasticsearch 및 운영 환경 Nginx 타임아웃 설정 수정

* Feat : 깃허브 액션 스크립트 추가

* Refactor: application.yml 내 cors 설정 제거
@brobro332 brobro332 changed the title Chore Chore: develop → main 브랜치 병합 May 4, 2025
Copy link
Member

@KIMB0B KIMB0B left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

감동입니다🥹🥹🥹

@brobro332 brobro332 changed the title Chore: develop → main 브랜치 병합 Chore: v1.0.0 develop → main 브랜치 병합 May 4, 2025
Copy link
Member

@seyeon22222 seyeon22222 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 완성이 가까워진다!!!

* Refactor: CI/CD 스크립트 수정

1. push 트리거 제거
2. docker-compose 빌드 시 --force-recreate 옵션 추가

* Refactor: docker-compose 빌드가 아닌 실행 시 --force-recreate 옵션 적용
@seyeon22222 seyeon22222 merged commit 6d50dba into main May 4, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🔧[chore] v1.0.0 배포를 위한 main 브랜치 병합

5 participants