본문 바로가기

전체보기96

[Spring Boot, Data JPA] 마이페이지 - 찜(좋아요), 협약 맺기(친구 추가) 이제 남아있는 기능인 찜 목록, 협약 맺기 기능을 완성해보자. 찜(좋아요) 기능 좋아요의 경우에는 가게 좋아요와 게시글 좋아요로 나누어진다. 대상은 다르지만 과정은 동일하므로 가게 좋아요를 기준으로 살펴보자. fig 2-1의 하트를 클릭하면 하트가 채워지고 해당 가게가 회원의 favoriteStores 리스트에 추가되고, 다시 터치하면 제거된다. 컨트롤러 @PostMapping("/favorite/toggle") public ResponseEntity addMemberFavoriteStore(@RequestParam Long storeId, Principal principal) { Long memberId = Long.parseLong(principal.getName()); return memberSer.. 2022. 10. 1.
[Spring Boot, Data JPA] 마이페이지 - 회원 정보 수정, 개인 이벤트 등록 대략적인 기능 이제 회원가입/로그인 과정까지는 구현이 되었으니 마이페이지를 구현해보자. 일반 회원들은 로그인을 해도 즐겨찾는 가게를 모아서 확인할 수 있는 정도의 기능만 있어서 마이페이지는 크게 필요없지만, 사장님 회원들은 자신의 가게 정보를 수정, 자체적인 이벤트를 추가/삭제, 협약 요청 확인 및 처리를 해야하기 때문에 해당 기능에 편하게 접근할 수 있는 마이페이지가 필수적이다. 마이페이지에 들어가면 fig 1처럼 페이지가 뜬다. 여기에 있는 기능들을 구현하면 된다. 내가 담당한 파트는 내 가게 정보 수정, 개인 이벤트 등록, 찜 목록, 협약 요청 목록이다. 하나씩 살펴보자. 내 가게 정보 수정 마이 페이지에서 '내 가게 정보 수정' 버튼을 클릭하면 fig 2와 같은 페이지로 넘어간다. 그리고 이때의 .. 2022. 9. 28.
SQL 3 Aggregation Aggreation 함수들은 데이터들을 정리해서 보여주는 기능을 한다. 다음과 같은 구조로 이뤄진다. 여기서도 이전과 동일한 데이터를 기준으로 설명이 진행된다. select avg(GPA) from Student; avg를 통해 학생들 GPA의 평균을 구할 수 있다. Student 테이블의 GPA attributes의 평균을 구하는 것이므로 쉽게 이해할 수 있다. select min(GPA) from Student, Apply where Student.sID = Apply.sID and major = 'CS'; min을 통해 CS 전공에 지원한 학생들의 GPA 중 가장 낮은 값을 구한다. 당연히 max는 최댓값을 구하는데 사용된다. select count(*) from College.. 2022. 9. 28.
SQL 2 Subqueries in WHERE clause Select 문은 fig 1-2처럼 구성이 되는데 또다른 Select문을 Where문 안에 위치 시킬 수 있다. 그리고 이것을 서브쿼리라고 한다. select sID, sName from Student where sID in (select sID from Apply where major = ‘CS’); 결과만 보면 전공을 CS로 선택한 학생들의 ID와 이름을 가져온다. 굳이 이렇게 하지 않고 일반적인 select 문으로 고쳐보면 다음과 같다. select distinct Student.sID, sName from Student, Apply where Student.sID = Apply.sID and major = ‘CS’; 여기서는 sID를 Student... 2022. 9. 23.