Back-end/Spring 9

MySQL 연동 (기존 H2 DB 사용)

MySQL으로 DB 교체하기 build.gradle에 MySQL에 대한 의존성 추가 implementation 'mysql:mysql-connector-java:8.0.32' application.yml 설정 파일 수정 datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/{DB이름}?useSSL=false&serverTimeZone=Asia/Seoul&characterEncoding=utf-8 username: {사용자} password: {비밀번호} 비밀번호는 대문자, 소문자, 숫자, 특수문자가 포함된 8자 이상으로 설정해야 한다. 비밀번호 재설정 없이 스프링 서버를 실행했다가 오류를 마주했다. ..

Back-end/Spring 2024.03.08

ResponseEntity 클래스

ResponseEntity ResponseEntity는 다양한 생성자와 메서드를 가지고 있어 다양한 종류의 응답을 처리할 수 있다. 예를 들어, 'ResponseCntity.ok(body)는 HTTP 상태 코드를 200으로 설정하고, 응답 본문에 body를 설정하는 메서드이다. @RestController public class MyController { @GetMapping("/getSomething") public ResponseEntity getSomething() { String responseString = "This is the response body"; return ResponseEntity.ok(responseString); } } 위의 코드에서 getSomething 메서드는 Respo..

Back-end/Spring 2023.10.17

어노테이션, HandlerMethodArgumentResolver, DTO

@Target 자바 어노테이션을 정의할 때 사용되는 메타어노테이션 중 하나이다. 메타어노테이션은 다른 어노테이션을 설명하거나 제한하는데 사용된다. 1. ElementType.TYPE: 클래스, 인터페이스, 열거형 등에 적용 가능 2. ElementType.FIELD: 필드에 적용 가능 3. ElementType.METHOD: 메서드에 적용 가능 4. ElementType.PARAMETER: 메서드의 파라미터에 적용 가능 5. ElementType.CONSTRUCTOR: 생성자에 적용 가능 @Retention 어노테이션의 수명을 설정하는데 사용되는 메타어노테이션이다. 어노테이션이 유지(retained)되는 기간을 지정한다. 1. RetentionPolicy.RUNTIME: 어노테이션이 런타임에도 사용 가능..

Back-end/Spring 2023.10.10

JPA, Hibernate 에러 -> org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing :

에러 org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : 원인 -> FK로 사용되는 컬럼 값이 없는 상태에서 데이터를 추가하려다 나타난 에러이다. 예를 들어, Character 컬럼이 PK, Exp 컬럼이 FK일 때, PK 데이터를 넣지 않고 FK 데이터를 추가하려고 할 때 발생하는 오류이다. 해결 방법 연관관계 매핑 어노테이션(@OneToOne, @OneToMany, @ManyToOne)을 사용할..

Back-end/Spring 2023.09.25

Maven 이란?

Maven은 자바 프로젝트의 빌드를 자동화해주는 빌드 도구이다. Maven은 프로젝트의 전체적인 라이프사이클을 관리하는 도구이다. 프로젝트 POM이라는 개념을 바탕으로 프로젝트의 의존성 관리, 라이브러리관리, 프로젝트 라이프사이클 관리 기능 등을 제공하는 프로젝트 관리 도구이다. 플러그인을 기반으로 소스 코드로부터 배포 가능한 산출물을 만들어내는 빌드 기능을 제공한다. 사용할 라이브러리 이름과 버전만 명시하면 라이브러리를 자동으로 내려받고 관리해 준다. 애플리케이션을 빌드하는 표준화된 방법을 제공한다. 1. settings.xml settings.xml은 Maven tool 자체에 관련된 설정을 담당한다. 2. pom.xml 하나의 자바 프로젝트에 빌드 도구로 Maven을 설정했다면, 프로젝트 최상위 디..

Back-end/Spring 2023.07.31

어노테이션(Annotation) 정리

Annotation은 클래스와 메서드에 추가해 사용하며, 다양한 기능을 부여합니다. Annotation을 사용하여 해당 클래스가 어떤 역할을 하는지 정합니다. 이 글에서는 다양한 Annotation에 대해 정리해보려 합니다. @Controller @GetMapping @RequestParam @ResponseBody: 자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로 전송 @RequestBody: HTTP 요청 본문에 담긴 값들을 자바객체로 변환시켜, 객체에 저장 @Test @Override @Transactional -> 해당 어노테이션은 데이터베이스 트랜잭션을 지원하고 관리하기 위해 사용된다. 1. 트랜잭션 관리: JPA가 트랜잭션을 자동으로 시작하고 종료한다. 때문에 개발자가 직접 트랜..

Back-end/Spring 2023.04.20

[Spring] 오류 목록

1. thymeleaf 오류 WARN 14128 --- [ main] ion$DefaultTemplateResolverConfiguration : Cannot find template location: classpath:/templates/ (please add some templates, check your Thymeleaf configuration, or set spring.thymeleaf.check-template-location=false) 클래스 실행할 때 WERN이 뜨길래 확인해 봤다. template 폴더 아래 index.html (Welcome Page)를 추가해 주니 해결되었다. 2. SQL 구문 오류 jakarta.persistence.PersistenceException: Conve..

Back-end/Spring 2023.04.18

[Spring] 빌드하기 + 실행하기

명령 프롬프트(cmd)로 빌드하기 cmd 실행 후 spring boot 프로젝트가 저장된 경로로 접근한다. (파일 이름이 hello-spring라고 가정) gradlew 입력 후 엔터키를 누르면 빌드 파일이 생성된다. (윈도우의 경우만 gradlew을 입력하면 됨) 생성된 build 파일로 들어간다. (dir로 확인 후, cd build ) build 파일 안에 libs 파일로 들어간다. (cd libs) lib파일의 파일 목록을 보면 확장자가 .jar인 파일이 들어있다. (hello-spring-0.0.1-SNAPSHOT.jar) java -jar hello-spring-0.0.1-SNAPSHOT.jar 실행 위의 화면이 뜨면 빌드와 실행이 잘 된 것이다. 만약 빌드나 실행이 잘 되지 않는다면 버전 호..

Back-end/Spring 2023.04.12

[Spring] 프로젝트 생성 및 기본 설정

이 글은 인프런 김영한 강사님의 스프링 입문 강의를 참고하여 쓴 글입니다. 프로젝트 생성 https://start.spring.io/ Spring Boot 버전은 3.0.5, Java 버전은 17을 선택했다. 기본 라이브러리로는 Spring Web, Thymeleaf를 추가하여 프로젝트를 생성했다. 기본 라이브러리를 설치하면 의존관계에 있는 라이브러리들도 같이 설치된다. 생성된 프로젝트를 실행하여 build.gradle 파일을 확인해 보면 spring boot 버전과 java 버전, 설치된 라이브러리 등을 볼 수 있다. Welcome Page src/main/resources/static 파일에 index.html을 추가하여 static파일은 말 그대로 정적 파일이므로 주로 welcome page(시작화..

Back-end/Spring 2023.04.11