프로젝트36 Cache에 Redis 적용시키기 기존 Cache는 시간 관련 기능이 적용되지 않았고, 이를 해결하기 위해 Redis를 도입했다.가장 먼저 redis를 다운받았다. https://redis.io/download/ DownloadRedis You can download the last Redis source files here. For additional options, see the Redis downloads section below. Stable (7.2) Redis 7.2 includes optimizations, several new commands, some improvements, bug fixes, and several new module APIs. It alsoredis.iogradle.build에는 다음과 같은 코드가 추.. 2023. 9. 23. 효과적인 부분 문자열 검색(Full-Text, 캐시, Redis) %Like%의 성능 관련 이슈에 대해서 보았다.%Like% 쿼리는 데이터베이스의 모든 레코드를 스캔하며 부분 문자열을 찾기 위해 일치하는 모든 데이터를 찾습니다. 이로 인해 대량의 데이터가 있는 테이블에서는 성능 문제가 발생할 수 있으며 쿼리 실행 시간이 길어질 수 있습니다.라고한다.고로 어찌해야 성능 관련 이슈를 해결할 수 있을까라는 생각을 해봤다.생각을 해봤자, 인간으로써 빠르게 찾는 방법은 딱히 생각나지 않았고, 검색결과 Full-Text와 캐시를 이용하는 방법을 찾았다. Full-TextFull-Text는 빠르기보다는 정확한 일치를 확인하는 것이다. 이는 자연어를 이용하여 데이터를 검색할 수 있도록 모든 데이터의 문자열 단어를 저장한다.고로 이렇게 문자열 단어를 저장하면 인덱싱 방식을 활용할 수 .. 2023. 9. 23. 프론트엔드 개발 근 3일동안 TIL을 쓰지 못했다. 바쁘고 힘든것도 있지만.. 무었보다 진행이 더뎠기 때문이다.하지만 드디어 팀장님이 해내셨다! 팀장님 덕분에 프론트와 백을 연결할 수 있었고 그 방법은 아래서 소개하겠다.각 html 파일을 만드는 것도 중요하지만, 각각의 파일과 연결해줄 주소들이 필요했다.그 주소들을 아래 homeController에서 만들었다. 이제 각각의 파일들은 html과 연결된다.@Controllerpublic class HomeController { @GetMapping("/") public String home() { return "index"; } @GetMapping("/user/login-page") public String loginPage() {.. 2023. 9. 22. 코드 병합 정말 어려웠다.. 각각 말을 맞추면서 작성을 했지만, 결국 오류를 일으켰다..그나마 내 기능은 회원가입 로그인으로, 베이스코드를 빨리 만들어준 시점에서 더이상 병합과정에서 충돌이 일어나지 않았지만, 상점기능, 메뉴기능, 주문관리 기능을 맡은 팀원들은 병합과정에서 충돌을 겪어야 했다.특히 주문관리를 맡은 팀원분은 정말 많은 고생을 했다.. 코드를 예측해서 작성하는 과정을 거치고, 그만큼 오류가 많은 코드가 완성되었기 때문이다.. 심지어 가장 양이 많고 중요한 부분이라 많은 고생을 하셨다.오류의 원인은 크게 두가지였고 다음과 같다.1. @OneToOne 양방향 매핑시 LazyLoding 이슈 정말 가장 중요한 문제였다. 모두가 잘 모르는 문제였고, 덕분에 매핑과, 지연로딩에 대해 확실하게 감을 잡을 수 .. 2023. 9. 18. 이전 1 ··· 6 7 8 9 다음