java 14

[Spring] JPA 게시판 CRUD 구현 - Read 전체조회

제주 여행 플랫폼에서 여행 추천 정보로 관광지, 음식점, 관광지, 호텔 정보를 제공하는데카여기서 각 카테고리별로 조회하는 Read 구현 과정을 소개하겠다. 📌 CRUD 기능구현 - Read 전체 조회@GetMapping / @RequestParam Read는 서버에서 데이터를 요청하여 가져오는 방식입니다 GET 메서드를 통해 특정 리소스를 조회하고, 해당 데이터의 자세한 내용을 반환1. Repository(레포지토리) - Jpa 적용JpaRepository는 Spring Data JPA에서 제공하는 인터페이스로, CRUD 작업과 페이징, 정렬 등의 기능을단순하게 사용할 수 있도록 한다.데이터베이스와 상호 작용하는 부분.특정 태그나 지역에 해당하는 관광지 목록을 데이터베이스에서 검색.JpaReposito..

[Spring] JPA 연관관계 @ManyToOne, @OneToMany 적용하기

JPA(Java Persistence API)에서는 객체 간의 관계를 데이터베이스의 테이블 관계와 매핑해주는 여러 어노테이션을 제공한다. @ManyToOne과 @OneToMany는 관계형 데이터베이스의 외래 키(foreign key) 관계를 객체 지향적으로 표현한다. @ManyToOne @ManyToOne 어노테이션은 다대일(N:1) 관계를 나타낸다. 여기서 '다(N)'는 소유하고 있는 객체, '일(1)'은 참조되는 객체가 되는 것 예를 들어, 여러 개의 자식은 하나의 부모에 속해있다. ManyToOne자식 테이블에 외래 키 컬럼을 생성하여 부모 테이블의 기본 키(primary key)를 참조한다.@Entitypublic class Child { @Id @GeneratedValue(strate..

[Spring] WebClient VS RestTemplate 이해하기

Spring Boot 애플리케이션에서 REST API를 호출하는 방법은 여러 가지가 있다.두 가지 주요 방법은 RestTemplate과 WebClient 다.RestTemplate: Spring Framework 3.0부터 사용되어 온 전통적인 방법이다. 동기적인 방식으로 작동하여 현재 스레드가 외부 서비스로부터 응답을 받을 때까지 기다린다. RestTemplate은 간단하고 직관적인 API를 제공하며, 작은 어플리케이션 또는 간단한 API 호출에 적합하다. 하지만, Spring WebFlux의 등장으로 이제는 유지 관리 모드로 들어가며 새 프로젝트에서는 WebClient 사용이 권장된다.WebClient: Spring 5에서 도입된 WebClient는 비동기적이고 논블로킹 방식을 지원하여 요청을 처리하..

[Spring] 백엔드 개발 Modelmapper, builder

Modelmapper * save() 메소드를 통해 하나의 엔티티를 저장 * 전달 되어 오는 데이터는 MenuDTO 타입이므로 Menu Entity로 변환해서 처리 * DB 삽입, 수정, 삭제 로직은 @Transcational 어노테이션 //service public void registNewMenu(MenuDTO newMenu){ menuRepository.save(modelMapper.map(newMenu, Menu.class)); //modelMapper 역할, 엔티티 필드, DTO 변수 매칭 } * 파라미터로 전달 받고 MenuService에 구현한 메소드를 호출 * 별도의 Exception 발생이 없었다면 * 클라이언트가 메뉴 목록을 조회하는 기능을 다시 요청할 수 있도록 redirect 처리 ..

카테고리 없음 2024.04.09

[Spring] 백엔드 개발 @RequestBody @PathVariable @RequestParams

@RequestBody//service@Transactionalpublic CreatePostResponse createPost(CreatePostRequest request) { /** builder 등록 * request 사용자 한테 받는 DTO * CreatePostResponse Controller 보내는 DTO * requestDTO를 POST 엔티티 객체로 바꿔줌 * builder 직접 값 입력*/ Post post = Post.builder() .title(request.getTitle()) //getTitle DTO 값 .content(request.getContent()) .build(); ..

[JAVA]MacOS에서 Homebrew JAVA버전 바꾸기

macOS에서 JAVA 17을 설치하려고 했더니 JAVA 21 버전으로 확인돼서 여러 방법을 시도해봤다. macOS에서 자바 개발을 시작하는 첫 번째 단계는 JDK를 설치해야 된다. 다양한 설치 방법이 있지만 맥 사용자들은 주로 패키지 관리자인 Brew를 많이 사용한다. Brew를 사용하면 자바를 간편하게 설치할 수 있으며 필요에 따라 다양한 자바 버전을 손쉽게 변경할 수 있다. 하는 방법에 대해 안내하겠습니다. mac에서 Brew 패키지 관리자를 활용하여 OpenJDK를 설치하고 JAVA17버전을 변경하는 방법에 대해 기록해본다. Homebrew 설치 하기 홈페이지 접속 : https://brew.sh/ 터미널에 Install Homebrew 명령어를 넣는다 (2024년 2월 기준 ) * 홈페이지에서 ..

웹개발/JAVA 2024.02.24

[ SpringBoot] JPA Entity Mysql 연동 과정

mysql데이터베이스 연동과 JPA를 사용하는 과정을 기록해보려고 한다. 1. dependencies 추가 JAP, mysql 의존성을 추가한다 dependencies { // spring-boot-jpa implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // mysql runtimeOnly 'com.mysql:mysql-connector-j' } 2. application.yml 에 DB정보 추가하기 applicatdion.yml : 스프링부트와 같은 스프링 프로젝트 기반 어플리케이션에서 사용되는 설정 파일 만약 application.properties 가 있다면, 어플을 실행시킬시 properties 설정이 먼저 실행됨. s..