본문 바로가기

Spring

(43)
03. 애플리케이션 구현 준비 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발에 대해 공부하고, 정리한 내용입니다.1. 애플리케이션 구현 준비1) 구현 요구사항(1) 요구사항 분석 - 01기능 목록회원 기능회원 등록회원 조회상품 기능상품 등록상품 수정상품 조회주문 기능상품 주문주문 내역 조회주문 취소예제를 단순화하기 위해 다음 기능은 구현하지 않음로그인과 권한 관리파라미터 검증과 예외 처리상품은 도서만 사용카테고리배송 정보2) 애플리케이션 아키텍처(1) 애플리케이션 아키텍처 - 01계층형 구조 사용Controller, Web 계층: 웹 요청을 처리하고 응답을 반환.Service 계층: 비즈니스 로직과 트랜잭션 관리.Repository 계층: JPA를 사용해 데이터..
02. 도메인 분석 설계 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발에 대해 공부하고, 정리한 내용입니다. 1. 도메인 분석 설계1) 요구사항 분석(1) 요구사항 분석 - 01기능 목록회원 기능회원 등록회원 조회상품 기능상품 등록상품 수정상품 조회주문 기능상품 주문주문 내역 조회주문 취소기타 요구사항상품은 재고 관리가 필요하다.상품의 종류는 도서, 음반, 영화가 있다.상품을 카테고리로 구분할 수 있다.상품 주문 시 배송 정보를 입력할 수 있다.2) 도메인 모델과 테이블 설계(1) 도메인 모델과 테이블 설계 - 01회원, 주문, 상품의 관계회원은 여러 상품을 주문할 수 있습니다. 한 번 주문할 때 여러 상품을 선택할 수 있으므로, 주문과 상품은 다대다(N:..
01. 프로젝트 환경설정 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발에 대해 공부하고, 정리한 내용입니다. 1. 프로젝트 환경설정 및 초기 세팅1) 프로젝트 생성(1) 필수 설정Project: Gradle ProjectLanguage: JavaSpring Boot: 2.4.xPackaging: JarJava Version: 11(2) 의존성 설정Spring Web: 웹 애플리케이션 개발을 위한 라이브러리로, HTTP 기반의 웹 애플리케이션을 쉽게 만들 수 있도록 지원합니다.Thymeleaf: 서버사이드 템플릿 엔진(View)으로 HTML 파일을 서버 측에서 렌더링합니다.Spring Data JPA: JPA(Java Persistence API)와의 통합을..
03. 영속성 관리 - 내부 동작 방식 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편에 대해 공부하고, 정리한 내용입니다.1. 엔티티 매니저 팩토리 & 엔티티 매니저1) 엔티티 매니저 팩토리- 생성 비용이 큼- 여러 스레드 동시 접근에 안전2) 엔티티 매니저- 생성 비용이 거의 없음- 여러 스레드 동시 접근 시 동시성 문제 발생, 스레드 간 공유 금지(1) 웹 어플리케이션 구조- EntityManagerFactory에서 다수의 엔티티 매니저를 생성- 엔티티 매니저는 데이터베이스 연결이 꼭 필요한 시점까지 커넥션을 얻지 않음- 보통 트랜잭션을 시작할 때 커넥션을 획득- JPA 구현체들은 EntityManagerFactory 생성 시 커넥션 풀도 함께 생성- J2EE 환경(스프링 포함)에..
02. JPA 시작하기 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편에 대해 공부하고, 정리한 내용입니다.1. 프로젝트 생성1) IntelliJ IDEA에서 프로젝트 생성- IntelliJ IDEA를 실행한 후, [파일] > [새로 만들기] > [새 프로젝트] 메뉴를 선택하여 새 프로젝트를 생성합니다.- 프로젝트 생성 시, 프로젝트 SDK와 빌드 도구(Maven 또는 Gradle)를 선택합니다.- Maven 프로젝트를 사용하는 경우 pom.xml 파일을 통해 종속성을 관리합니다.- Gradle 프로젝트를 사용하는 경우 build.gradle 파일을 통해 종속성을 관리합니다.2. 종속성 설정1) Hibernate 라이브러리 추가- JPA를 사용하기 위해 Hibernate..
IntelliJ(JetBrains) 가이드 Edit Code 기능 macOS Windows & Linux 설명 Generate code ⌘ N Alt+Insert 코드를 자동 생성합니다. Run ⌃ ⌥ R (⌃ ⇧ R) Alt+Shift+F10 (Ctrl+Shift+F10) 프로그램을 실행합니다. Run context configuration ..
01. TDD란? 💡 본 게시글은 최범균 저자님의 "테스트 주도 개발 시작하기"에 대해 공부하고, 정리한 내용입니다.Chapter 02. TDD 시작1) TDD란?TDD(Test-Driven Development)는 테스트를 먼저 작성하는 소프트웨어 개발 방법론입니다. 기능을 검증하는 테스트 코드를 먼저 작성하고, 이 테스트를 통과시키기 위해 필요한 최소한의 코드를 작성합니다.2) 간단한 덧셈 기능을 TDD로 구현하기1. 테스트 코드 작성Calculator 클래스를 작성하지 않았으니 당연히 컴파일 에러가 발생해야 합니다.public class CalculatorTest { @Test void plus() { int result = Calculator.plus(1, 2); assertEquals(3,..
01. JPA 소개 💡 본 게시글은 김영한님의 인프런(Inflearn) 강의 자바 ORM 표준 JPA 프로그래밍 - 기본편에 대해 공부하고, 정리한 내용입니다.01. SQL 중심적인 개발의 문제점CRUD 쿼리의 반복 작성 문제:기존 SQL 중심의 개발에서는 CRUD(Create, Read, Update, Delete) 작업을 위한 SQL 쿼리를 반복 작성해야 했습니다. JPA는 이를 자동으로 생성해 주어 개발자의 작업을 간소화합니다.패러다임 불일치 해결:상속: 객체 지향에서는 상속 관계가 명확하지만, RDB에서는 슈퍼타입-서브타입 관계로 간접적으로 표현됩니다. JPA는 객체 상속 구조를 데이터베이스 테이블에 맞게 매핑해줍니다.연관관계: 객체 지향에서는 객체 간 참조로 관계를 맺지만, RDB에서는 외래 키를 사용합니다. J..