개발 공부/Spring

    [Spring+MySql] Spring에 AWS RDS(MySQL) 연결하기 / driver 에러 해결

    [Spring+MySql] Spring에 AWS RDS(MySQL) 연결하기 / driver 에러 해결

    AWS에서 RDS를 생성하고, 기존에 세팅해놓은 백엔드 프로젝트에 연결하는 걸 해봤다. 우선 AWS에서 RDS를 생성했다. 그 후, 다른 블로그를 참고해서 build.gradle과 application.yml을 세팅했다. 세팅한 내용은 다음과 같다. spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: [AWS RDS 엔드포인트] username: [master name] password : [password] jpa: hibernate: ddl-auto: update properties: hibernate: format_sql: true 엔드포인트는 RDS 세팅 후 정보란에 나와있다. username과 password는 DB생성할 때..

    [SpringBoot] 등록/수정/조회 API 만들기 - 그리고 중단..

    [SpringBoot] 등록/수정/조회 API 만들기 - 그리고 중단..

    API를 만들기 위한 3개의 클래스 1. Request 데이터를 받을 Dto 2. API 요청을 받을 Controller 3. 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service 스프링 웹 계층은 다음과 같다. 비즈니스 처리를 담당하는 부분은 Domain이다. 모든 로직이 서비스 클래스 내부에서 처리가 된다면 서비스 계층이 무의미하고, 객체란 단순히 데이터 덩어리 역할을 하게 된다. (자세한 내용은 책 참고해주세요!) 그렇기 때문에 이 실습에서는 도메인 모델을 다루고 코드를 작성한다. 각각의 클래스 생성 (경로는 패키지명 참고) package com.jojoldu.book.springboot.web.dto; import com.jojoldu.book.springboot.domain.posts.Po..

    [SpringBoot] JPA로 데이터베이스 다루기

    [SpringBoot] JPA로 데이터베이스 다루기

    현대 웹 애플리케이션에서 관계형 데이터베이스(RDB)는 빠질 수 없는 요소이다. Oracle, MySQL 등 다양하게 쓰이고 있고, 그러다보니 객체를 관계형 데이터베이스에서 관리하는 것이 중요하다. 관계형 데이터베이스를 사용하는 상황에서 SQL는 피할 수 없는 요소이다. 하지만 , SQL은 유지보수하는 것이 어렵고, 패러다임 불일치 문제가 발생한다. 관계형 데이터베이스는 어떻게 데이터를 저장할지에 초점이 맞춰져있지만, 객체 지향 프로그래밍 언어는 메시지를 기반으로 기능과 속성을 한 곳에서 관리하는 기술이다. 이 두개의 패러다임이 서로 다른데, 객체를 데이터베이스에 저장하려고 하니 문제가 발생하고, 이를 패러다임 불일치라고 한다. JPA는 이러한 문제점을 해결하기 위해 등장한다. 서로 지향하는 바가 다른 ..

    [SpringBoot] 롬복 소개 및 설치

    [SpringBoot] 롬복 소개 및 설치

    롬복이란? 롬복은 자바 개발에서 자주 쓰이는 Getter, Setter, 기본 생성자 등을 어노테이션으로 자동 생성해준다. 프로젝트에 롬복 라이브러리 다운로드 build.gradle에 implementation('org.projectlombok:lombok') 추가 후 gradle을 새로고침해준다. 롬복 플러그인 설치는 플러그인 마켓에서 설치한 뒤 여기를 체크해주면 된다. 플러그인은 한번 설치하면 되지만 해당 과정은 프로젝트 마다 설정해줘야한다. 롬복 테스트 package com.jojoldu.book.springboot.web.dto; import lombok.Getter; import lombok.RequiredArgsConstructor; @Getter //선언된 모든 필드의 get메소드 생성 @R..

    [Springboot]  스프링 부트에서의 테스트 코드

    [Springboot] 스프링 부트에서의 테스트 코드

    스프링부트에서의 테스트 코드 최근 회사 채용 공고를 보면 테스트 경험에 대한 경험을 요구한다. 또한 TDD라는 테스트 주도 개발 경험을 요구하는 곳들도 있다. 참고책에서는 TDD가 아닌 단위 테스트 코드에 대해 기술한다. 테스트 코드를 작성해야 하는 이유? 1. 빠른 피드백 - 개발을 하는 과정에서 테스트 코드가 없다면 코드 수정 -> 프로그램 실행 -> API테스트 도구로 HTTP 요청 -> 출력 후 검증 -> 다시 코드 수정 과정을 거친다. 하지만 테스트 코드가 작성된다면 코드 수정 후 간단하게 테스트 코드만 실행시키면 되기 때문에 빠른 피드백을 받을 수 있다. 2. 검증 - 테스트 코드를 작성하면 직접 print문을 작성하여 눈으로 확인해야하는 것들을 자동으로 검증해준다. 3. 기능 보호 - 기존 ..

    [SpringBoot] 스프링부트 프로젝트 세팅하기

    [SpringBoot] 스프링부트 프로젝트 세팅하기

    스프링부트 공부해보고 싶어서 실습을 진행하려고 한다. 원래는 강의 부터 들을까 생각도 했지만, 처음부터 모르는 것 투성이로 강의 듣는것과 실제로 실습을 한 뒤에 강의를 듣는 것은 큰 차이가 있다고 생각이 들어서 그래도 어느정도 아는 상태에서 강의를 들어보고자 빠르고 간단하게 경험해보고자 실습부터 하려고 한다. 다음 책을 참고해서 실습을 진행했다. http://www.yes24.com/Product/Goods/83849117 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - YES24 가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링 www.yes24...

    [Spring] 인프런 스프링 입문 강의 정리 #5

    [Spring] 인프런 스프링 입문 강의 정리 #5

    [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 글에서 나오는 모든 코드와 사진들은 김영한님의 인프런 스프링 입문 강의에서 가져온 것임을 미리 알립니다. 회원 관리 예제 - 웹 MVC 개발 회원 웹 기능 - 홈 화면 추가 controller 패키지 안에 HomeController 클래스를 만들어준다. 그리고 안에는 다음과 같이 작성해준다. package hello.hellospring.controller; import org.springframework.stereotype.Controller..

    [Spring] 인프런 스프링 입문 강의 정리 #4

    [Spring] 인프런 스프링 입문 강의 정리 #4

    [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 글에서 나오는 모든 코드와 사진들은 김영한님의 인프런 스프링 입문 강의에서 가져온 것임을 미리 알립니다. 스프링 빈과 의존관계 컴포넌트 스캔과 자동 의존관계 설정 컨트롤러가 서비스를 통해서 기능을 동작하는 것을 의존관계가 있다고 표현한다. ( 컨트롤러가 서비스를 의존한다. ) MemberController 만들어주기 스프링은 @Controller라는 어노테이션을 보고 스프링이 작동할 때 해당 컨트롤러 객체를 생성해서 가지고 있는다. => "스프..

    [Spring] 인프런 스프링 입문 강의 정리 #3

    [Spring] 인프런 스프링 입문 강의 정리 #3

    [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 글에서 나오는 모든 코드와 사진들은 김영한님의 인프런 스프링 입문 강의에서 가져온 것임을 미리 알립니다. 회원 관리 예제 - 백엔드 개발 비지니스 요구사항 정리 비지니스 요구사항은 가장 쉽게 구성되어있다. 그래서 데이터, 기능 모두 간단하게 구성되어있다. DB는 아직 정해지지 않은 상황 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 ..