https://imasoftwareengineer.tistory.com/34?category=772561 위 글을 참조해 TO-DO List project를 만들어 보았습니다. development environment vue.js + javascript + boot
배경 스프링 부트 개발 환경에서 ajax 사용법에 대해 공부하면서 만든 예제이다. 💪 먼저 간단히 ajax 의 개념에 대해 설명하고 만든 예제를 설명하려고 한다. Ajax ajax는 JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주
서론 현재 나는 스프링과 JPA 기반 웹 애플리케이션 개발 강의를 복습 중이다. 복습을 하면서 약간의 스타일링과 기능을 추가적으로 구현하려고 한다. 기존 웹 애플리케이션은 검은색 네비바에 버튼같은 경우는 부트스트랩의 primary 색상을 이용하고 있다. 나는 이번 사
환경(프로필)에 따라 각기 다른 설정 파일 제공하는 방법로깅패키징배포 방법배포 시 주의해야 할 것은 설정파일! 😉여러가지 환경에 따라 각기 다른 설정을 해줘야 하는데 스프링, 스프링 부트에서는 스프링 부트가 제공하는 profile 별 application.proper
Spring @ControllerAdvice 어노테이션을 이용한 에러 처리 클라이언트가 잘못된 요청을 보내오는 경우 404 에러 페이지로 보낸다. 잘못된 요청의 예 없는 스터디 페이지 조회 시도 없는 프로필 페이지 조회 시도 무작위 이벤트 조회 시도 허용하지 않는
Todo N+1 Select 문제 없이, 쿼리 6개를 사용해서 만들기 계정 조회 (관심 주제, 지역 정보 포함) 참석할 모임 조회 ㅇㅇ 내가 참가 신청을 했고 이게 수락이 된, enrollment를 조회해야 한다. 나의 주요 활동 지역과 관심 주제에 해당하는
최근 9개의 스터디를 조회해서 화면에 보여줄 것. (공개했고, 아직 종료하지 않은 스터디중에서)페이징 X, List로 조회쿼리 만들지 말고, 스프링 데이터 JPA 쿼리 메소드로 만들어 볼 것.뷰 코드는 최대한 재사용 할 것.😙😙 재사용하기!!!!!출처 : 인프런 백
부트스트랩 https://getbootstrap.com/docs/4.4/components/pagination/ 정렬 조건 추가 스터디 공개 일시 멤버수 키워드 하이라이팅 mark.js https://markjs.io/ 출처 : 인프런 백기선님의 스프링과 JPA 기반
고전적인 방식의 페이징 SQL의 limit과 offset 사용하기 스프링 데이터 JPA가 제공하는 Pageable 사용하기 page와 size sort도 지원한다. 기본값 설정하는 방법 @PageableDefault 이전에 emtpy 콜렉션을 Model에 넣을 때 발생
스터디 목록 조회하는 쿼리 발생 스터디 마다 쿼리가 3개씩 태그 조회, 지역조회, 멤버 조회 3n+1 스터디가 9개가 있으면 3*9+1 = 28 개 JPA를 쓰면서 성능이 느려지는 이슈중 하나이다. left (outer) join + fetchJoin + dist
GET “/search/study” keyword 입력 받아서 스터디 검색 스터디 제목, 태그 이름, 도시 로컬 이름에 해당하는 키워드를 가지고 있는 공개된 스터디 조회 페이징 없이 정렬 조건 없이 로그인 없이도 사용 가능 보여줄 내용 검색 키워드와 결과 개수, 없으면
Variable 'studyRepository' might not have been initialized@RequiredArgsConstructor 를 붙여주면 된다.
새 모임 추가모임 변경모임 취소참가 신청 수락참가 신청 거절EnrollmentEvent 를 만들고 아래와 같은 방법을 취함! 출처 : 인프런 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발
스터디 소개를 수정 했을 때스터디 종료시스터디 팀원 모집 시작 / 중지StudyService.javaeventPublisher 를 통해 event 를 던짐! 4개의 이벤트를 4곳에서 StudyUpdateEvent를 던지도록 하였음, 그리고 이에 대한 처리로 Study
읽지 않은 알림 메시지만 보여준다.알림 메시지를 카테고리 별로 나눠서 Model에 담아주고 뷰에서 보여준다.모든 읽지 않은 알림 메시지를 읽은 메시지로 수정한다.읽은 알림 메시지를 보여준다.읽은 알림 메시지를 삭제한다.deleteByAccountAndChecked ,
핸들러 처리 이후, 뷰 랜더링 전에 스프링 웹 MVC HandlerInterceptor로 읽지 않은메시지가 있는지 Model에 담아준다. (뷰를 렌더링하기 전에 model에다가 데이터를 하나 더 넣어준다. 현재 읽지 않는 노티가 있느냐 없느냐를 넣어준다. https&#
스터디를 만들때가 아니라 공개할 때 알림 알림 받을 사람: 스터디 주제와 지역에 매칭이 되는 Account 알림 제목: 스터디 이름 알림 메시지: 스터디 짧은 소개 QueryDSL 설정 http://www.querydsl.com/ 타입 세이프하게 JPA 쿼리를 작성할
스터디가 만들어지거나 스터디에 대한 정보가 바뀌거나 참가 신청했던 것에 대한 변경이 생길 시 추가적인 알람을 보내는 것이다. 알림을 받을 때 웹, 이메일 등으로 받을 수 있다. 근데 이 일 자체가 부가적인 일이고, 메인 로직에 영향을 주고싶지 않다. 응답 시간에도 영향
제목링크짧은 메시지확인 여부누구에게 (Account)언제알림 타입 (새 스터디, 참여중인 스터디, 모임 참가 신청 결과)출처 : 인프런 백기선님의 스프링과 JPA 기반 웹 애플리케이션 개발
테스트 DB를 운영용 DB와 같은 유형으로 바꾸자. JPA 또는 하이버네이트가 만들어주는 쿼리가 각 DB밴더에 따라 다르다. 하지만 테스트용 DB를 운영하는 것은 번거롭다. CI 환경은? 그래서 TestContainers를 사용한다. https://www.testcon