본문 바로가기

Java3

SpringDataSolr 적용하기 1 (Spring,Kotlin) 안녕하세요. 오늘은 프로젝트 내에서 자동완성 기능을 구현한 과정을 간략하게 공유해보고자 합니다. 1. SpringDataSolr 도입 이유와 문제 상황 [기획 요구사항] 1. 상품 검색시 (이름, 브랜드명(회사명), 성분명) 3가지중 어디서 검색 키워드가 걸렸는지 우선순위에 따라 검색이 되어야합니다. 2. 예) 정관장 화이락 이라고 검색했을때, 정관장이 포함된건도, 화이락이 포함된 건도 나와야합니다. 위 2가지를 초점 맞추어서 진행할 수 있는 검색엔진을 찾아보다가 Solr 도입을 검토하게 되었습니다. 특히 Solr에서 제공하는 Full text search 기능이 필요했고, 검색어 자동완성을 구현하고자 했습니다. 한글 형태소 분석을 통해서 띄어쓰기를 하더라도 단어들이 모두 포함될 수 있도록 해야 했습니다.. 2023. 2. 4.
[BOJ 7562] 나이트의 이동 (JAVA) [문제링크] 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net [배운점] - 문제에서 '최소 몇 번만에 이동할 수 있는지' => BFS를 떠올리자..! - 단순히 재귀로 또 풀어내야겠네~했다가 stack over flow에 걸렸다. (이동 횟수를 직접 매개변수로 전달해주면서 카운트했었음) - 이런 문제를 접하면 이동 횟수를 배열에 저장해나가는 방식으로 하면 편리한 것 같다. - 맞추고 다른 사람들의 코드를 보다보니 입출력에 BufferedReader, 문자열 다룰때 StringTockenizer를 많이 사용한다... 2021. 9. 14.
String, StringBuffer, StringBuilder 의 차이 String 자바 문자열(Java String) 은 프로그램에서 자주 사용되기 때문에 특별합니다. 따라서 효율성 (계산 및 저장 측면에서)이 중요합니다. Java 디자이너는 언어의 성능을 향상시키기 위해 모든 것을 객체로 만드는 대신 객체 지향 언어에서 기본 타입(primitive type) 을 유지하기로 결정했습니다. 기본형 타입은 저장공간을 덜 필요로 하고 조작비용이 저렴한 call stack 에 저장이 됩니다. 반면, 개체(Object)는 Heap 메모리에 저장이 되어 복잡한 메모리 관리와 더 많은 저장공간을 필요로 합니다. Java 의 String은 한번 생성되면 Immutable(불변) 하므로, 값을 변경할수가 없습니다. (내부적으로 final이라는 키워드가 붙어 있기때문입니다) String 을.. 2021. 8. 8.