본문 바로가기

분류 전체보기56

Java & Spring | Swagger 커스텀 ApiResponse 어노테이션 사용기(+ Reflection을 통한 문제 해결) 💎 작성된 글의 프로젝트https://github.com/MARU-EGG/MARU_EGG_BE GitHub - MARU-EGG/MARU_EGG_BE: 명지대학교 RAG기반 AI 입학 문의 챗봇 - 백엔드명지대학교 RAG기반 AI 입학 문의 챗봇 - 백엔드. Contribute to MARU-EGG/MARU_EGG_BE development by creating an account on GitHub.github.com 💎 작성된 글의 Pull Requesthttps://github.com/MARU-EGG/MARU_EGG_BE/pull/42 [feat] Swagger 커스텀 ApiResponse 어노테이션 적용 by Hoya324 · Pull Request #42 · MARU-EGG/MARU_EGG_BE.. 2024. 7. 17.
프로젝트 & BDP | Java(Spring)에서 TF-IDF와 Cosine Similarity를 활용한 문장간 유사도 측정 방법 💎 작성된 글의 프로젝트https://github.com/MARU-EGG/MARU_EGG_BE GitHub - MARU-EGG/MARU_EGG_BEContribute to MARU-EGG/MARU_EGG_BE development by creating an account on GitHub.github.com 🚪 들어가기 전에..지난 번에는 Elasticsearch를 사용하지 않게 된 이유와 이를 해결하기 위해 Full-Text Inedx를 사용한 이유, 앞으로 개선점에 대해 다뤘습니다. 🎈 저번 블로그 보기https://hoya324.tistory.com/56 프로젝트 | 텍스트 유사도 검색 어떻게 구현할까?(1) - Elasticsearch를 안 쓴 이유와 MySQL Full Text Index?.. 2024. 7. 7.
프로젝트 & DB | MySQL의 Full Text Index와 TF-IDF, Cosine Similarity로 DB 내 유사한 Text 추출하기(without Elasticsearch) 💎 작성된 글의 프로젝트https://github.com/MARU-EGG/MARU_EGG_BE GitHub - MARU-EGG/MARU_EGG_BEContribute to MARU-EGG/MARU_EGG_BE development by creating an account on GitHub.github.com 🚪 들어가기 전에..프로젝트를 진행하면서 어떤 질문이 들어왔을 때 이전의 질문과 같은 질문인지 판단하는 프로세스가 필요했습니다.이번에는 이 과정에서 어떤 삽질(?)을 했는지 기록해보겠습니다.이번에는 Elasticsearch를 사용하지 않게 된 이유와 이를 해결하기 위해 어떤 고민을 했는지 정리해보았습니다.다음에는 MySQL Full-Text Search와 Apache Class TFIDFSimil.. 2024. 7. 7.
Java | Comparable을 구현할지 고려하라 (Effective Java 3/E - joshua bloch) 해당 글은 이펙티브 자바 (Effective Java 3/E - joshua bloch) 를 읽고 정리한 글입니다. 핵심순서를 고려해야 하는 값 클래스를 작성한다면 꼭 Comparable 인터페이스를 구현하여, 그 인스턴스들을 쉽게 정렬하고, 검색하고, 비교 기능을 제공하는 컬렉션과 어우러지도록 해야한다.compareTo 메서드에서 필드의 값을 비교할 때 연산자는 쓰지 않는다.그 대신 박싱된 기본 타입 클래스가 제공하는 정적 compare 메서드나 Comparator 인터페이스가 제공하는 비교자 생성 메서드를 사용하자. 이유compareTo는 단순 동치성 비교에 더해 순서까지 비교할 수 있다는 것이 Object의 equals와 다른 점이다.compareTo 메서드의 일반 규약이 객체와 주어진 객체의 순.. 2024. 7. 4.
Java | clone 재정의는 주의해서 진행하라 (Effective Java 3/E - joshua bloch) 해당 글은 이펙티브 자바 (Effective Java 3/E - joshua bloch) 를 읽고 정리한 글입니다.  핵심Cloneable이 몰고 온 모든 문제를 되짚어봤을 때, 새로운 인터페이스를 만들 때는 절대 Cloneable을 확장해서는 안 되며, 새로운 클래스도 이를 구현해서는 안 된다.final 클래스라면 Cloneable을 구현해도 위험이 크지 않지만, 성능 최적화 관점에서 검토한 후 별다른 문제가 없을 때만 드물게 허용해야 한다.기본 원칙은 ‘복제 기능은 생성자와 팩터리를 이용하는 것이 최고’라는 것이다.단, 배열만은 clone 메서드 방식이 가장 깔끔한, 이 규칙의 합당한 예외라 할 수 있다. 이유Cloneable을 구현하는 것만으로는 외부 객체에서 clone 메서드를 호출할 수 없다.리.. 2024. 7. 4.
Java | toString을 항상 재정의하라 (Effective Java 3/E - joshua bloch) 해당 글은 이펙티브 자바 (Effective Java 3/E - joshua bloch) 를 읽고 정리한 글입니다. 핵심모든 구체 클래스에서 Object의 toString을 재정의하자. 상위 클래스에서 이미 알맞게 재정의한 경우는 예외다.toString을 재정의한 클래스는 사용하기도 즐겁고 그 클래스를 사용한 시스템을 디버깅하기 쉽게 해준다.toString은 해당 객체에 관한 명확하고 유용한 정보를 읽기 좋은 형태로 반환해야한다. 이유toString: “모든 하위 클래스에서 이 메서드를 재정의하라”toString은 유익한 정보를 담고 있고, 핵심을 직접 전달해야한다.{ Jenny=PhoneNumber@adbbd } 보다는 { Jenny=010-1234-5678 }로 오는 것이 더 반가운 것과 같은 이치이.. 2024. 7. 4.