분류 전체보기
-
[Spring Boot] 지역별 카페 추천 프로젝트 (3)Spring/Spring Boot Project 2022. 9. 6. 00:55
여행할 때 방문하면 좋을 카페를 추천하는 웹 프로젝트 📌 지역명을 클릭하면 해당 지역의 추천 카페 리스트가 뜨도록 처리하기 📍 필요한 정보 및 계획 카페 이름, 카페 추천 키워드, 카페 위치, 카페 사이트 📍 카페 추천 키워드 우선 카페 키워드를 만들 것인데 이는 enum을 사용할 것이다. Keyword 클래스 package yeonjy.cafe.information; public enum Keyword { Wide("넓어요"), View("풍경이_좋아요"), SeaView("바다가_보여요"), Traffic("교통이_좋아요"), Bread("빵이_맛있어요"), Coffee("커피가_맛있어요"), ; private String krKeyword; Keyword(String krKeyword) { this..
-
@OneToMany @ManyToOne카테고리 없음 2022. 9. 5. 21:19
FetchType.LAZY - 지연로딩 : 데이터가 필요한 시점에 연관된 데이터를 불러오는 것 @ManyToOne(fetch = FetchType.LAZY) 비즈니스 로직에서 Member를 사용할 때 Team까지 동시에 사용하지는 않는 경우, 연관관계가 걸려있어도 손해이다. 이를 JPA은 지연로딩을 이용해서 프록시로 조회하는 방법으로 해결한다. 이를 사용하면, Member를 조회하는 시점이 아닌 실제로 Team을 사용하는 시점에 쿼리가 나가도록 할 수 있음 => 모든 연관관계에 지연 로딩을 사용하는 것이 가장 적절한 방법 (이후 꼭 필요한 곳에만 즉시 로딩을 사용하도록 하기)
-
[Spring Boot] 지역별 카페 추천 프로젝트(2)스프링 프로젝트 - 카페 만들기 2022. 9. 1. 11:18
여행할 때 방문하면 좋을 카페를 추천하는 웹 프로젝트 📌 데이터베이스를 활용해서 화면 구성하기 이제 저장한 데이터베이스에서 데이터들을 불러와서 화면을 구성하도록 처리할 것이다. 일단 DTO를 사용할 것이다. DTO는 Data Transfer Object로, 데이터 전달을 목적으로 하고, 일회성으로 데이터를 주고받는 용도이다. 반면, Entity 객체는 실제 데이터베이스와 관련있으며, 일회성 사용이 아닌 엔티티 매니저가 관리하는 객체이다. DTO를 사용할 경우 엔티티 객체를 DTO객체로 변환하거나, DTO객체를 엔티티 객체로 변환하는 과정이 필요하다는 단점이 있다. 이제 서비스 계층에서 DTO로 파라미터 리턴타입을 처리하도록 구성할 것이다. 📍 우선 DTO를 만든다. package yeonjy.cafe.d..
-
[Spring Boot] 지역별 카페 추천 프로젝트 (1)스프링 프로젝트 - 카페 만들기 2022. 8. 28. 16:59
여행할 때 방문하면 좋을 카페를 추천하는 웹 프로젝트 📌 기본 설정 의존성 추가 항목 build.gradle 수정 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' annotat..
-
코드로 배우는 스프링부트 웹 프로젝트 Day 11Spring/코드로 배우는 스프링부트 웹 프로젝트 2022. 8. 26. 17:57
/* Annotation들은 스프링부트 프로젝트의 Annotation 정리 페이지에 따로 정리해두었습니다. */ GuestbookServiceImpl에서 목록을 조회할 때 사용하는 getList()는 기존의 코드를 조금 수정해서 작성 GuestbookServiceImpl 클래스 수정 @Override public PageResultDTO getList(PageRequestDTO requestDTO) { Pageable pageable = requestDTO.getPageable(Sort.by("gno").descending()); BooleanBuilder booleanBuilder = getSearch(requestDTO); // 검색 조건 처리 Page result = repository.findAl..
-
[Querydsl] BooleanBuilder과 BooleanExpressionSpring 2022. 8. 26. 05:17
BooleanBuilder 쿼리를 조건별로 쌓아서 동적 쿼리로 쓸 수 있음 where문에 들어가는 조건들을 넣어주는 컨테이너 and나 or 사용 가능 BooleanExpression 메서드가 늘어나지만 메서드 명을 통해 어떤 기능인지 확인이 가능다는 것 등 가독성이 증가하며, 메서드를 이용하므로 재사용성이 증가 Predicate의 구현체 null일 때 무시될 수 있고, and 또는 or절을 통해 조합 가능 BooleanExpression ⇨ qGuestbook.title.contains(keyword) 같이 표현식의 결과로 반환되는 값 BooleanBuilder ⇨ 이러한 표현식을 모아서 사용할 수 있도록 도와주는 도구 => BoolenaBuilder는 and() 혹은 or()의 파라미터로 Boolean..
-
Javascript프론트엔드 2022. 8. 26. 02:11
• attr() ↪ 요소의 속성의 값을 가져오거나 속성을 추가 ① .attr(attributeName) $( "form" ).attr( "action" ); : 태그의 action 속성을 가져옴 ② .attr(attributeName, value) $( "form" ).attr( "action", "/guestbook/remove" ); : 태그의 action 속성에 값으로 /guestbook/remove 를 지정 • confirm() ↪ 확인, 취소 버튼을 보여주는 다이얼로그 박스를 보여줌 ↪ 즉, 파일을 수정하거나, 삭제할 때 등 재확인하기 위해 사용하는 경우가 많음 $(".modifyBtn").click(function() { if(!confirm("수정하시겠습니까?")) { return; } } ..
-
코드로 배우는 스프링부트 웹 프로젝트 Day 10Spring/코드로 배우는 스프링부트 웹 프로젝트 2022. 8. 25. 21:28
/* Annotation들은 스프링부트 프로젝트의 Annotation 정리 페이지에 따로 정리해두었습니다. */ [방명록의 수정/삭제 처리] 계획 Guestbook의 수정은 Post 방식으로 처리하고 다시 수정된 결과를 확인할 수 있는 조회 화면으로 이동 삭제는 Post방식으로 처리하고 목록 화면으로 이동 목록을 이동하는 작업은 Get 방식으로 처리. 기존에 사용하던 페이지 번호 등을 유지해서 이동! 수정과 삭제는 모두 '수정 및 삭제가 가능한 페이지'로 이동한 상태에서 수정과 삭제 중 선택을 해서 작업이 이루어짐 이를 구현하기 위해 GuestbookController에서는 조회와 비슷하게 Get방식으로 진입하는 'gusetbook/modify'를 기존의 read()에 어노테이션의 값을 변경해서 처리 @..