Mysql 비효율적인 쿼리 개선기(+ 무한스크롤, 페이징 성능 비교) 현재 진행중인 프로젝트에서 공동구매 기능이 있어 상품을 보여주는 페이지가 존재한다. 공동구매라는 특성 상, 사용자에게 빠르게 상품 데이터를 보여주고 추후 검색 기능까지 확장하기 위해서 페이징 방식보다는 커서 기반의 무한스크롤 방식을 채택하게 되었다. 그 후, 무한스크롤에 대한 정보를 찾아보던 중 기존 offset 기반 페이징 방식에 비해 커서방식의 무한 스크롤이 데이터가 많아질 수록 성능적으로 이점을 가져간다는 것을 알게 되었다. 이유는 간단하다, offset 방식의 경우 원하는 데이터가 나올 때까지 모두 탐색을 한 후에 원하는 데이터를 가져오게 된다. 예를 들어, offset이 100만이라면 100만 개의 데이터를 탐색한 후에 원하는 데이터를 가져오게 되는 셈이다. 하지만 커서 기반 무한스크롤의 경우.. 스프링 프레임워크 따라해보기 - 멀티 모듈과 빈 생성 및 등록 멀티 모듈로 변경한 이유먼저 다른 기능들을 구현해보기에 앞서 멀티모듈로 변경한 이유부터 말해보려 한다.기존 프로젝트의 경우에는 한 개의 src 파일 아래로src| - framework| - project이런식으로 2개의 패키지를 구성해서 framework 패키지 아래로는 스프링을 따라해본 구현체를 사용하고, project 패키지에는 우리가 흔히 웹 서비스를 만드는 것처럼 controller, service, repository를 사용하려고 했다. 그런데, 곰곰히 생각을 해보니 결국 framework 패키지는 외부에서 주입받아 사용되어야 하기 때문에 이를 1모듈 2패키지가 아니라, 2모듈 2패키지로 진행하는 것이 좋을 것 같다는 생각을 해서 분리를 하게 되었다. 또한, 앞선 글에서는 basepackage를.. [Spring] Spring의 기본적인 구조는 어떻게 생겼을까? Intro Spring boot를 통해서 프로젝트를 진행하고 공부하는 사람들 중에는 나처럼 일단 해보고 생각하자! 하면서 @Controller... @Entity.. 이렇게 코드부터 작성을 하는 사람들이 많을 것이다. 강의를 통하든, 인터넷 게시글 등을 통하든 대략적인 정보를 파악하고 코드를 쓰다 보면 에러가 발생하는 경우가 많은데, 이 에러들이 내가 평소에 알던 에러의 이름들이 아니다. Servlet이 어쩌고 저쩌고... Bean이 어쩌고 저쩌고.. 하면서 알지 못하던 부분들이 많게 되서 그때마다 구글링을 통해서 누락된 부분을 추가하거나 수정하는 식으로 공부를 하였다. 그러던 와중 대체 이 Spring Boot가 어떻게 동작하길래 저런 에러들이 존재하는걸까? 하는 의문을 가지게 되었고 한 번 알아보기로.. [Spring] Spring? Spring Boot? Intro 백엔드 개발에 대해 공부를 하다 보면, 백엔드 개발을 하기 위한 언어에도 여러 가지가 존재하는 것을 알 수 있다. Java, JavaScript(node.js), Ruby, Python 등... 또한, 이러한 언어들에서 웹 개발을 조금 더 수월하게 진행하게 해주기 위한 프레임워크들(Spring, Django ..)등 많은 언어들이 있을 것이다. 나는 Java Spring을 이용한 백엔드 개발자가 되는 것을 희망하고 있었는데, 그 이유는 단순히 "현재 기업에서 많이 선택하는 언어인 것으로 알고 있고, 입문하기에 자료들이 가장 많지 않을까?" 하는 이유였다. 그런데 조금 자세히 보면 Java? Java Spring? Spring Boot? 등 처음 입문하는 사람들은 찾아보지 않으면 그 의미를 정확.. 이전 1 다음