[Spring Boot] Redis를 이용한 좋아요 순 리뷰 정렬 api 구성
·
스프링부트
🥐 왜 Redis를 사용하게 되었는가?책 리뷰와 책 리뷰에 대한 좋아요, 두 테이블이 존재하는 상태에서 각 리뷰마다 좋아요 개수를 알아내는 것은 사실 sql 쿼리로도 구현해낼 수 있다. 그러나 그렇게 하게 되면, 많은 데이터가 존재하는 경우 지속적으로 해당 쿼리를 실행시켜서 가져오기 때문에 성능 저하 발생할 수 있다고 생각했고, 그런다고 하는 이야기를 전해들었다! 그래서 구글링을 통해서 redis에서 캐싱을 이용해서 좋아요 수를 가져오기로 했다. 그렇지만,, 나는 redis에 대해 잘 알지 못했고 엄청 억지로 코드를 작성하게 되었다.(부끄부끄 😳) 그래도 작성한 코드이니 한 번 정리하는 것이 좋을 것 같아 이 글을 쓰고 있다.ㅜㅜ 레쭈고 ~ ♣ 🥐 Redis.. 이것 뭐예요???Redis는 치타, ..
[Spring Boot] 최신 순 리뷰 불러오는 api 작성
·
스프링부트
이번에는 작성된 책 리뷰를 불러오는 api를 만들었다.한 개의 테이블에 해당되는 정보만 불러오면 편했을 것 같은데, 그게 아니라서 편하지는 않았다 ... 아직 내가 부족해서 그런 거겠지만 🥲 그리고 구조도 고민되는 부분이 많았고 코드를 짜면서도 비효율적이라는 생각이 많이 들었다.. 그런데 어떻게 개선해야될지를 잘 모르겠어서 추후에 꼭 수정해야겠다는 생각을 했다📖 BookReview DTO @Builder@Getter@NoArgsConstructor@AllArgsConstructorpublic class BookReviewResponse { private Long bookReviewId; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yy..
[Spring Boot] 작성한 도서 리뷰 저장하기
·
스프링부트
앞으로 코드 작성 후에 조금이나마 왜 이 코드를 작성했는지 적어보려고 한다  사실 이전에 진행한 도서 검색은 단순히 도서 리뷰 작성을 위한 한 걸음이었을 뿐이다.일단은 도서 검색 -> 검색한 도서의 isbn을 통한 도서 리뷰 작성이 도서 리뷰 작성의 큰 틀인데,오늘은 도서 리뷰를 작성할 수 있는 api를 만든 것에 대해 정리를 해보려고 한다... 근데 너무 주먹구구로 한 감이 있어서 단순 정리용이다...! 절대 이 글을 참고해서 뭘 만들면 안됨!! 🥐 DB 구성 이런 식으로 DB를 짜놓았는데 사실 여기서 지우거나 만든 column도 있다 ㅎㅎ그리고 좋아요도 다른 테이블로 저장하게끔 되어있다일단은 좋아요 기능은 추후에 만들거라 아직 구성은 하지 않은 상태이다. 리뷰랑 책, 회원이 연관관계이므로 이 부분에..
[SpringBoot] 카카오 도서 검색 api 사용하기
·
스프링부트
https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-book Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 위의 링크에서 친절하게 설명되어 있는 내용을 사용해서 개발을 하게 되었다. 🧑‍💻 왜 카카오 도서 검색 api를 사용했을까?책 리뷰를 남기는 서비스를 개발 중인데 이 작업에서 사용자가 책 제목이나 작가로 책을 검색하면 클라이언트로 정보를 전달해주는 작업이 필요했다. 처음에는 출판 전산망 api를 사용하려고 했는데 이 api를 사용하려면 신청서를 제출해야 하기도하..
Cloudinary 이용
·
카테고리 없음
지난번에 AWS 백엔드 테스트 서버 관련한 글을 적어둠으로써 스스로 도움을 많이 받아서 이번에도 한 번 적어보려고 한다. Cloudinary 란 ?Cloudinary Programmable Media offers AI-powered APIs to automate image and video management, transformation and optimized delivery at scale 출처: Cloudinary 공식 홈페이지 이미지, 비디오 등을 저장하고 관리할 수 있는 클라우드 기반의 서비스이다.  이미지 및 비디오 관리: 클라우드에 저장된 이미지와 비디오를 관리하고, 자동으로 최적화된 포맷으로 변환할 수 있다.이미지 및 비디오 변환: 다양한 크기, 비율, 필터 적용 등으로 자동 변환을 할 수..
RDS 없이 AWS EC2를 통해서 백엔드 api 테스트 서버 배포해보기
·
카테고리 없음
프론트엔드에서 테스트를 하려면 서버가 필요할 것 같아서 서버를 배포해보기로 했다.모종의 이유로 react js, node js로 개발된 사이트를 ec2를 통해 배포한 경험이 있어서 쉽게 될 줄 알았는데 다른 점이 있어서 어려움을 겪었다! STEP 1. AWS EC2 인스턴스 생성EC2>인스턴스>인스턴스 시작 버튼을 누르면 된다.여기서 주황 버튼을 누르면 됩니다!!  ubuntu 선택 > 24.04 혹은 22.04 선택 기존의 키 페어가 있으면 그걸 써도 좋고 (물론 .pem, .ppk 파일이 존재하는 경우이다...) 없으면 새 키 페어 생성! 키 페어 이름 입력RSA 선택.pem 선택 > 키페어 생성 해주면 파일이 다운로드 될 것이다. 이거는 잃어버리면 안된다~~ 왜냐면 우리는 이걸로 로그인을 할 것이기..
[Lombok 인식 에러] pom.xml 수정
·
카테고리 없음
Spring Boot로 코드를 작성하는데 자꾸 Lombok과 관련된 어노테이션을 인식을 못해서 손수 Getter, Setter를 generate해야했는데 너무 불편하고 이대로는 둘 수 없겠다고 생각해서 문제를 해결해보고자 했다. 1. Lombok 플러그인 설치 확인사실 이걸로는 문제가 될 일을 없었다.. 왜냐면 최신 버전에서는 이미 Lombok이 기본 플러그인으로 설치가 되어 있기 때문이다. 나 또한 제일 최신 버전의 intellij를 사용하고 있기 때문에 이미 설치가 되어있긴 했지만, 혹시 몰라 확인해보았다.역시나 잘 설치가 되어있었다...ㅎㅎ2. 어노테이션 프로세서 설정 구글링했을 때는 컴파일러>어노테이션 프로세서>어노테이션 처리 활성화 를 해서 해결되는 부분이 많았는데, 나는 이미 활성화가 된 상태..
[캡스톤디자인 - Adultree] 크롤링해서 얻은 텍스트, 이미지를 파일로 저장하여 google drive api를 이용해 drive에 업로드하기
·
project
💬 왜 이러한 일을 하게 되었는지  먼저 졸업 프로젝트에서 가장 중요한 기능은 자립준비청년이 텍스트로 궁금한 점에 대해 물어보았을 때, 챗봇이 사용자에게 필요한 정보를 제공하는 기능이다. 우리는 이러한 챗봇이 정보를 제공해줄 때의 정확성을 높이기 위해서 RAG를 이용하기로 하였다. RAG 구축하는 과정에서 chroma DB로 벡터 DB를 구축하고 이 벡터 DB에 자립준비청년에게 도움이 되는 정보(주거 정보, 취업 정보, 조례 등)를 크롤링하여 넣어주기로 하였다. 🍥 selenium으로 크롤링을 해보자!https://wikidocs.net/137914 6) 동적 웹크롤링 - selenium 소개 및 기초사용법# 1. Selenium 패키지란? selenium 패키지는 chromedriver를 제어하거나..