본문 바로가기

내가 배운 것들41

[Java] 문자열의 유사도 구하기 : 거리 알고리즘 Levenshtein Distance Algorithm 실전 프로젝트 중, 유튜브 영상을 검색해 관련성 있는 영상을 가져오는 기능을 구현하던 중 문제가 발생했다. 유튜브 영상의 검색결과가 생각보다 그렇게 관련성이 높은 결과가 잘 나오지 않는다는 점이었다. 키워드와 거의 정확히 관련이 있는 영상만 가져와야 하는 상황이었기 때문에 이것은 꽤나 심각한 문제였다. 그래서 대책을 강구하기 시작했다. 그렇게 생각하던 중, 제목이 유사한 영상을 채택한다면 일반적으로 꽤나 높은 신뢰도의 영상을 서치할 수 있게 될 것이라고 생각했다. 그래서 찾은 것이 문자열의 유사도를 구하는 알고리즘이었다. 내가 채택한 알고리즘은 레벤슈타인 거리 알고리즘(Levenshtein distance algorithm) 이었다. 이 알고리즘은 .. 2022. 1. 18.
[Ubuntu] 서버 시간 설정하는 방법 서버 시간 우분투 사용자랑 root계정 둘 다 timezone을 바꿨는데도 서버시간이 바뀐게 적용이 안 된다.. 그래서 찾아봤더니 아예 다른 방법을 사용해야 했다. sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime 기본값 UTC로 저장되어있는 /etc/localtime을 서울 시간으로 변경해주는 명령어다. 근데 이래도 안 될 수 있다. 그럴 땐 이렇게 입력하자. sudo dpkg-reconfigure tzdata # 위 명령어 입력한 후 Asia -> Seoul에서 각 엔터 쳐서 확인 # 확인 명령어 date more /etc/timezone 2022. 1. 12.
[SQL] SELECT 구문 작동 순서 1. FROM 2. WHERE 3. GROUP BY 4. HAVING 5. SELECT 6. ORDER BY 특히 헷갈리기 쉬운 부분이 있다. WHERE과 HAVING인데, 순서 헷갈려서 HAVING에 이상한거 집어넣었다가 성능 떨어지는 일은 하지 않도록 하자. 내가 그런적이 있다는건 아닌게 아니라 맞다..... 2022. 1. 10.
[Redis] Redis에서 불러온 값이 for each문의 조건이 될 수 없는 문제 ObjectMapper 정확하게 이 문제인지는 알 수 없다. 처음 발생한 문제였기 때문이다. List boardMemeBestResponseDtoList = redisService.getBestMemeImgList(BEST_MEME_JJAL_KEY); List resultList = new ArrayList(); for(BoardMemeBestResponseDto boardMemeBestResponseDto : mappedList) { Board board = boardRepository.findById(boardMemeBestResponseDto.getBoardId()).orElse(null); Long boardId = boardMemeBestResponseDto.getBoardId(); Boolea.. 2022. 1. 6.
[QueryDSL] 에러 발생 - query specified join fetching, but the owner of the fetched association was not present in the select list QueryDSL 발생 에러 org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list [FromElement { explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias= board,role=com.teamproj.backend.model.board.BoardLike.board, tableName=board,tableAlias=board1_, origin=board_like boardlike0_, columns={boardlike0_.bo.. 2022. 1. 1.
[Ubuntu/SpringBoot] Ubuntu 8080 포트를 80 포트로 포트포워딩 하기 포트포워딩 sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 2021. 12. 29.