본문 바로가기

전체 글187

81. 페이징 뷰 개선 부트스트랩 https://getbootstrap.com/docs/4.5/components/pagination/ Pagination Documentation and examples for showing pagination to indicate a series of related content exists across multiple pages. getbootstrap.com 정렬 조건 추가 스터디 공개 일시 멤버수 키워드 하이라이팅 mark.js https://markjs.io/ mark.js – JavaScript keyword highlight If mark.js made you happy then give a thanks with a star. markjs.io npm install mark.js .. 2020. 5. 18.
80. 페이징 적용 고전적인 방식의 페이징 SQL의 limit과 offset 사용하기 스프링 데이터 JPA가 제공하는 Pageable 사용하기 page와 size sort도 지원한다. 기본값 설정하는 방법 @PageableDefault 이전에 empty 컬렉션을 Model에 넣을 때 발생했던 버그(?)에 대하여... 사실 버그가 아니라 스프링 MVC의 정해진 동작 방식.(이상하긴 하지만..) 우회하려면 이름을 반드시 줄 것. 페이징 적용을 확인하기 위해 /study/data라는 요청을 받는 핸들러로 임시로 여러개의 스터디를 삽입 할 수 있게 코드를 생성한다.(생성 후 제거) package me.weekbelt.studyolle.modules.study; @RequiredArgsConstructor @Controller pu.. 2020. 5. 17.
79. N+1 Select 문제 해결 left (outer) join + fetchJoin + distinct로 해결. left (outer) join 첫번째(left) 테이블에 연관 관계가 있는 모든 데이터 가져오기. 연관 데이터가 없으면 null로 채워서라도.. 첫번째 테이블 컬럼만 본다면 중복 row 발생 fetchJoin join 관계의 데이터도 같이 가져온다. distinct 중복 제거 홈 화면에서 스터디를 조회할 때 Study엔티티만을 조회했기 때문에 Study하나당 Study관련 쿼리, Tag관련 쿼리, Zone관련 쿼리, 멤버 관련쿼리 이렇게 여러번 쿼리가 나가게 된다. 이것을 최적화 시키기 위해 findByKeword를 수정하여 Study조회시 Study와 연관된 tags, zones, member를 같이 조회하는 쿼리를 날.. 2020. 5. 17.
78. 검색 기능 구현 GET "/search/study" keyword 입력 받아서 스터디 검색 스터디 제목, 태그 이름, 도시 로컬 이름에 해당하는 키워드를 가지고 있는 공개된 스터디 조회 페이징 없이 정렬 조건 없이 로그인 없어도 사용 가능 보여줄 내용 검색 키워드와 결과 개수, 없으면 없다고 표기 스터디 당 보여줄 정보 스터디 이름 짧은 소개 태그 지역 멤버 수 스터디 공개 일시 keyword에 따른 Study를 불러오기위해 QueryDsl을 활용합니다. 먼저 StudyRepository를 확장하여 StudyRepositoryExtension 인터페이스에 keyword에따른 Study리스트를 불러오는 메소드를 생성합니다. package me.weekbelt.studyolle.modules.study; @Transacti.. 2020. 5. 17.