728x90 반응형 Web Develop31 [Spring JPA] ORM 그리고 Spring Data JPA ORM (Object Relational Mapping, 객체-관계 매핑) - 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다. ORM을 사용하면 DB를 몰라도 될까? - ORM을 이용할 때 어쨋든 영속성을 가진 객체는 DB에 저장된다. 테이블과 객체의 매핑을 하는 것이기 때문에 DB와 OOP를 모두 잘 알고 있어야 한다. ORM을 사용하는 이유는? - DB(SQL)를 직접 다루게 되면 코드의 반복이 발생하고, SQL에 의존적인 개발을 하게 된다. ORM DB 데이터 객체(클래스) 테이블 연관관계 속성(관계매핑) FK 혹은 Join Key ORM을 쓰면 좋은 점은? (1) 객체 지향적이기 때문에 개발자가 비지니스 로직 및 코드 자체에 집중할 수 있다. (2) 관념적 코드가 없거나 적.. 2023. 11. 22. [Rest API] Spring JPA를 통한 CRUD 구현하기_SpringBoot 💡 PURPOSE 개인 프로젝트를 진행하려고 했으나 스스로 생각하기에 아직 api 작성에 대해 많이 부족한 것 같아 어디서부터 시작해야할 지 모르겠어서 일단 jpa에 대한 기초적인 지식을 쌓기 위해 공부한 것을 복습할 겸 포스팅해보겠다. 💡 STUDY LIST # Subject 2 : Spring JPA를 통한 CRUD 구현하기 1. 사용자 인증 (31~35) 2. 사용자 인증 (2) (36~42) 3. 사용자 인증 토큰 발행 (43~47) 4. 사용자 관리 (48~55) 5.사용자 관리 (2) 통계 (56~60) 💡 CONTENTS (31) 사용자 등록시 입력값이 유효하지 않은 경우 예외를 발생시키는 기능 입력값 이메일(ID), 이름, 비밀번호, 연락처 사용자 정의 에러 모델을 이용하여 에러를 리턴 /.. 2023. 10. 25. [Rest API] 컨트롤러를 통한 게시판 기능 구현하기_SpringBoot 💡 PURPOSE 개인 프로젝트를 진행하려고 했으나 스스로 생각하기에 아직 api 작성에 대해 많이 부족한 것 같아 어디서부터 시작해야할 지 모르겠어서 일단 jpa에 대한 기초적인 지식을 쌓기 위해 공부한 것을 복습할 겸 포스팅해보겠다. 💡 STUDY LIST # Subject 1 : 컨트롤러를 통한 게시판 기능 구현하기 1. 주소요청에 대한 이해 2. 게시판 기본 목록 (6~10) 3. 게시글 작성 (11~15) 4.게시글 수정 (16~20) 5.게시글 삭제 (21~25) 6.게시판 추가기능 (26~30) 💡 CONTENTS (6) 공지사항 게시판의 목록에 대한 요청 처리 API 형식 : REST API HTTP METHOD : GET 요청 주소 : "/api/notice" return : 문자열 "공.. 2023. 10. 25. [Book Study] 스프링 부트 핵심 가이드 - 10. 유효성 검사와 예외 처리 [Book Study] 스프링 부트 핵심 가이드 10. 유효성 검사와 예외 처리 10 - 1 . 2023. 9. 25. [Book Study] 스프링 부트 핵심 가이드 - 9. 연관관계 매핑 [Book Study] 스프링 부트 핵심 가이드 9. 연관관계 매핑 9 - 1 . 연관관계 매핑 종류와 방향 연관관계 매핑 종류 - One To One 일대일 (1:1) - One To Many 일대다(1:N) - Many To One 다대일 (N:1) - Many To Many 다대다 (N:N) 단방향과 양방향 - 단방향 : 두 엔티티의 관계에서 한쪽의 엔티티만 참조하는 형식 - 양방향 : 두 엔티티의 관계에서 각 엔티티가 서로의 엔티티를 참조하는 형식 2023. 9. 25. [인프런 김영한] - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 본 포스팅은 인프런 - 김영한 강사님의 [코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술]를 수강하며 작성하였다 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세 www.inflearn.com 1. 프로젝트 환경설정 https://start.spring.io/ 접속 후 아래와 같이 설정 -> http://localhost:8080 실행 * 스프링 부트 라이브러리 spring-boot-starter-web spring-boot-starter-tomcat: 톰캣 (.. 2023. 9. 18. [Book Study] 스프링 부트 핵심 가이드 - 8. Spring Data JPA [Book Study] 스프링 부트 핵심 가이드 8. Spring Data JPA 활용 8 - 1 . 쿼리 메서드 쿼리 메서드의 생성 - 크게 동작을 결정하는 주제와 서술어로 구분 - 'find...By', 'exists...By'와 같은 키워드로 쿼리의 주제 정함 - 'By'는 서술어의 시작을 나타내는 구분자의 역할 리포지토리의 쿼리의 구조 리턴타입 + {주제 + 서술어(속성)} ex) 쿼리 메서드의 주제 키워드 - find...By - read...By - get...By - query...By - search...By - stream...By 리턴타입으로 Collection이나 Stream에 속한 하위 타입을 설정 가능 exists...By - 특정 데이터가 존재하는지 확인하는 키워드, 리턴 타입으.. 2023. 9. 15. [Book Study] 스프링 부트 핵심 가이드 - 6. 데이터베이스 연동 [Book Study] 스프링 부트 핵심 가이드 6. 데이터베이스 연동 6 - 1 MariaDB 설치 6 - 2 ORM ORM (Object Relational Mapping) - 객체와 RDB의 테이블을 자동으로 매핑하는 방법 - 클래스는 데이터베이스의 테이블과 매핑하기 위해 만들어진 것이 아니기 때문에 RDB테이블과 어쩔수 없는 불일치 존재 - ORM은 이 둘의 불일치와 제약사항을 해결하는 역할 ORM의 장점 1. ORM을 사용하면서 데이터베이스 쿼리를 객체지향적으로 조작할 수 있다. 2. 재사용 및 유지보수가 편리하다. 3. 데이터베이스에 대한 종속성이 줄어든다. ORM의 단점 1. ORM만으로 온전한 서비스를 구현하기에는 한계가 있다. 2. 애플리케이션의 객체 관점과 데이터베이스의 관계 관점의 불.. 2023. 9. 9. 스프링 Swagger 오류 해결 - Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException 오류 발생 Spring boot에서 swagger를 사용하려고 build.gradle에 다음을 추가해줬다 dependencies { implementation 'io.springfox:springfox-swagger2:2.9.2' implementation 'io.springfox:springfox-swagger-ui:2.9.2' } 그런데 서버를 실행하니 발생하는 오류 Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException [전문] Error starting ApplicationContext. To display the conditions report re-run y.. 2023. 9. 2. [Book Study] 스프링 부트 핵심 가이드 - 5. API를 작성하는 다양한 방법 [Book Study] 스프링 부트 핵심 가이드 5. API를 작성하는 다양한 방법 5 - 1 프로젝트 설정 5 - 2 GET API 만들기 1. @RequestMapping으로 구현하기 package com.springboot.api.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api/v1/get-api") public class Ge.. 2023. 8. 30. [Book Study] 스프링 부트 핵심 가이드 - 4. 스프링 부트 애플리케이션 개발하기 [Book Study] 스프링 부트 핵심 가이드 4. 스프링 부트 애플리케이션 개발하기 4 - 1 프로젝트 생성 인텔리제이 IDEA에서 프로젝트 생성하기 Name : 프로젝트 이름 Location : 프로젝트를 생성할 위치 Language : JVM (Java Virtual Machine) 상에서 동작하는 언어 Type : 빌드 툴을 선택 Group : 프로젝트를 정의하는 식별자 정보인 그룹을 설정 Artifact : 세부 프로젝트를 식별하는 정보를 기입 Package name : Group과 Artifact를 설정하면 자동으로 입력 Project SDK : 주로 자바와 같은 버전을 선택 Java : 자바 버전 (Spring boot 버전에서 작동이 안 되는 자바 버전이 있을 수 있다) Packaging.. 2023. 8. 30. [Book Study] 스프링 부트 핵심 가이드 - 3. 개발 환경 구성 [Book Study] 스프링 부트 핵심 가이드 3. 개발 환경 구성 3 - 1 자바 JDK 설치 자바(Java)는 기본적으로 개발 도구인 JDK(Java Development Kit)와 실행 환경인 JRE(Java Runtime Environment)로 구성 JVM(Java Virtual Machine)은 이들의 핵심 구성 요소 중 하나 ▶ JDK (Java Development Kit) 자바 개발자가 자바 애플리케이션을 개발하는 데 사용되는 도구 모음 자바 컴파일러를 비롯하여 다양한 개발 도구와 라이브러리, 디버깅 도구 등이 포함되어 있습니다. 주요 구성 요소 : 자바 컴파일러(javac), 자바 실행기(java), 자바 문서 생성기(javadoc) 등 JDK를 사용하면 소스 코드를 컴파일하여 실행 .. 2023. 8. 22. [Book Study] 스프링 부트 핵심 가이드 - 2. 개발에 앞서 알면 좋은 기초 지식 [Book Study] 스프링 부트 핵심 가이드 2. 개발에 앞서 알면 좋은 기초 지식 2 - 1 서버 간 통산 ▶ 마이크로 서비스 아키텍처(MSA: Microservice Architecture) 2 - 2 스프링 부트의 동작 방식 ▶ 스프링 부트의 동작 방식 기본적으로 톰캣을 사용하는 스프링 MVC 구조를 기반으로 동작 서블릿은 클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기를 관리 서블릿 객체는 싱글톤 패턴으로 관리 멀티 스레딩을 지원 2 - 3 레이어드 아키텍처 애플리케이션의 컴포넌트를 유사 관심사 기준으로 레이어를 묶어 수평적으로 구성한 구조 프레젠테이션 계층 상황에 따라 유저 인터페이스 계층이라고도 함 클라이언트와.. 2023. 8. 22. [Book Study] 스프링 부트 핵심 가이드 - 1. 스프링 부트란? [Book Study] 스프링 부트 핵심 가이드 1. 스프링 부트란? 1 - 1 스프링 프레임워크 ▶ 제어 역전 (IoC : Inversion of Control) 사용할 객체를 직접 생성하지 않고 객체의 생명 주기를 스프링 컨테이너 또는 IoC 컨테이너에 위임 제어 역전 : 객체의 관리를 컨테이너에 맡겨 제어권이 넘어간 것 제어 역전을 통해 의존성 주입(DI: Dependency Injection), 관점 지향 프로그래밍(AOP: Aspect-Oriented Programming) 등이 가능 ▶ 의존성 주입 (DI : Dependency Injection) 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식 의존성을 주입받는 방법 세 가지 생성자를 통한 의존성 주입 .. 2023. 8. 22. [Book Study] 스프링 프레임워크 첫걸음 - 12. 애플리케이션 만들기 (애플리케이션 레이어) [Book Study] Spring Framework 스프링 프레임워크 첫걸음 12. 애플리케이션 만들기 (애플리케이션 레이어) 12- 1 애플리케이션 레이어 12 - 2 애플리케이션 레이어 만들기 (목록 표시) 12 - 3 애플리케이션 레이어 만들기 (뜽록/변경/삭제 가능) 12 - 4 애플리키에션 레이어 만들기 (게임 기능) 2023. 8. 17. [Book Study] 스프링 프레임워크 첫걸음 - 11. 애플리케이션 만들기 (비즈니스 로직 처리) [Book Study] Spring Framework 스프링 프레임워크 첫걸음 11. 애플리케이션 만들기 (비즈니스 로직 처리) 11 - 1 비즈니스 로직의 처리 내용 확인과 작성 11 - 2 트랜잭션 관리 알아보기 트랜잭션 - 복수의 처리를 하나의 그룹으로 모은 것 롤백 : 처리 중 싪했을 경우 트랜잭션은 실행 전의 상태로 돌아감 커밋 : 처리가 모두 성공하면 처리가 확정됨 부분적인 성공이나 부분적인 실패라는 것은 없음 트랜잭션 경계 - 시작되고 끝나는 위치를 반드시 지정해야 하고, 시작되고 끝날 떄까지의 범위 클래스나 메서드에 @Transactional 어노테아션을 부여하면 트랜잭션이 관리되어 트랜잭션의 시작, 커밋, 롤백이 자동으로 실행. 클래스에 @Transactional 어노테이션 부여 - 그 .. 2023. 8. 17. [Book Study] 스프링 프레임워크 첫걸음 - 10. 애플리케이션 만들기 (데이터베이스 조작) [Book Study] Spring Framework 스프링 프레임워크 첫걸음 10. 애플리케이션 만들기 (데이터베이스 조작) 10 - 1 데이터베이스 조작 10 - 2 데이터베이스 처리 10 - 3 데이터베이스 처리 결과 확인 2023. 8. 16. [Book Study] 스프링 프레임워크 첫걸음 - 9. 애플리케이션 만들기 [Book Study] Spring Framework 스프링 프레임워크 첫걸음 9. 애플리케이션 만들기 9 - 1 애플리케이션 설명 9 - 2 OX 퀴즈용 데이터베이스 생성 2023. 8. 16. [Book Study] 스프링 프레임워크 첫걸음 - 8. 유효성 검사 기능 알아보기 [Book Study] Spring Framework 스프링 프레임워크 첫걸음 8. 유효성 검사 기능 알아보기 8 - 1 유효성 검사의 종류 유효성 검사 - 입력 내용이 요건에 만족하는지 그 타당성을 확인하는 입력 체크 1. 단일 항목 검사 - 입력 항목 하나에 대해 설정하는 입력 체크 기능 - Form 클래스 등의 필드에 어노테이션을 부여해서 사용 2. 상관 항목 검사(서로 관련이 있는 항목을 함께 체크하는 방법) 커스텀 유효성 검사 - 여러 필드에 대해 혼합해서 체크하는 것을 상관 항목 검사라고 함 1. Bean Validation을 사용하는 방법 2. 스프링 프레임워크에서 제공하는 Validator 인터페이스를 구현하는 방법 8 - 2 단일 항목 검사를 사용하는 프로그램 만들기 8 - 3 메시지 관.. 2023. 8. 16. 이전 1 2 다음 728x90 반응형