Category 114

SpringBoot JPA 쇼핑몰 상품 서비스 개발

SpringBoot와 JPA, Thymeleaf를 사용하여 간단한 쇼핑몰을 구현하려 합니다. 프로젝트 생성이나 Gradle 빌드는 깃허브 BincoShop을 참고해주세요! 포스팅은 도메인&테이블 설계 -> 엔티티 개발 -> 회원 서비스 -> 상품 서비스 -> 주문 서비스 순으로 진행됩니다. 포스팅의 잘못된 부분은 언제든 댓글로 남겨주시면 수정하겠습니다😀 개요 회원 서비스에 이어서 상품 서비스를 개발합니다. 이전 포스팅과 비슷한 흐름이어서 간단하게 진행될 것 같습니다. 모든 포스팅은 김영한 님의 강의를 참고하였습니다😄 Entity 수정📔 @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "dtyp..

JPA 2022.09.14

SpringBoot JPA 쇼핑몰 회원 서비스 개발

SpringBoot와 JPA, Thymeleaf를 사용하여 간단한 쇼핑몰을 구현하려 합니다. 프로젝트 생성이나 Gradle 빌드는 깃허브 BincoShop을 참고해주세요! 포스팅은 도메인&테이블 설계 -> 엔티티 개발 -> 회원 서비스 -> 상품 서비스 -> 주문 서비스 순으로 진행됩니다. 포스팅의 잘못된 부분은 언제든 댓글로 남겨주시면 수정하겠습니다😀 개요 지난 포스팅까지는 엔티티 개발을 진행하였습니다. 오늘부터는 비즈니스 로직 개발을 진행하는데, 회원 서비스 먼저 개발을 진행하려 합니다. 포스팅의 모든 내용은 김영한 강사님의 강의를 참고했습니다😄 Repository📘 @Repository @RequiredArgsConstructor public class MemberRepository { privat..

JPA 2022.09.14

SpringBoot JPA 쇼핑몰 엔티티 개발Ⅱ

SpringBoot와 JPA, Thymeleaf를 사용하여 간단한 쇼핑몰을 구현하려 합니다. 프로젝트 생성이나 Gradle 빌드는 깃허브 BincoShop을 참고해주세요! 포스팅은 도메인&테이블 설계 -> 엔티티 개발 -> 회원 서비스 -> 상품 서비스 -> 주문 서비스 순으로 진행됩니다. 포스팅의 잘못된 부분은 언제든 댓글로 남겨주시면 수정하겠습니다😀 개요 이전 포스팅에 이어서 Category Entity를 개발합니다. 또한, 내장 타입으로 개발했던 Address를 변경 불가능하게 수정할 예정입니다. 모든 개발 과정은 김영한님의 강의를 통해 포스팅하였습니다😀 Category Entity🔆 @Entity @Getter @Setter public class Category { @Id @GeneratedVa..

JPA 2022.09.14

SpringBoot JPA 쇼핑몰 엔티티 개발Ⅰ

SpringBoot와 JPA, Thymeleaf를 사용하여 간단한 쇼핑몰을 구현하려 합니다. 프로젝트 생성이나 Gradle 빌드는 깃허브 BincoShop을 참고해주세요! 포스팅은 도메인&테이블 설계 -> 엔티티 개발 -> 회원 서비스 -> 상품 서비스 -> 주문 서비스 순으로 진행됩니다. 포스팅의 잘못된 부분은 언제든 댓글로 남겨주시면 수정하겠습니다😀 개요 지난 시간에 포스팅한 도메인과 테이블 설계에 이어서 엔티티 클래스들 먼저 개발을 진행합니다. 폴더 구조는 하단 사진과 같고, 만일 포스팅을 따라 하는 분이 계시다면 엔티티끼리 연관되는 부분이 많기 때문에 하단 끝까지 따라 하셔야 오류가 안 납니다😀 Member Entity🧍 @Entity @Getter @Setter public class Membe..

JPA 2022.09.13

SpringBoot JPA 쇼핑몰 도메인&테이블 설계

SpringBoot와 JPA, Thymeleaf를 사용하여 간단한 쇼핑몰을 구현하려 합니다. 프로젝트 생성이나 Gradle 빌드는 깃허브 BincoShop을 참고해주세요! 포스팅은 도메인&테이블 설계 -> 엔티티 개발 -> 회원 서비스 -> 상품 서비스 -> 주문 서비스 순으로 진행됩니다. 포스팅의 잘못된 부분은 언제든 댓글로 남겨주시면 수정하겠습니다😀 도메인 모델🔆 회원, 주문, 상품의 관계 : 회원을 여러 상품을 주문할 수 있고 한번 주문할 때 여러 상품을 선택할 수 있으므로 주문과 상품은 다대다 관계이다. 하지만 다대다 관계는 잘 사용하지 않아서 위 그림처럼 주문 상품이라는 엔티티를 추가해서 일대다, 다대일 관계로 풀어냈다. 상품 분류 : 상품은 도서, 음반, 영화로 구분되는데 상품이라는 공통 속성..

JPA 2022.09.07

JPA 영속성 관리 Dirty Checking & Merge

김영한 선배님의 JPA 활용 강의를 듣다가 JPA 영속성 컨텍스트에 대해 궁금증이 생겨서 공부를 하게 되었습니다. 이번 포스팅은 [자바 ORM 표준 프로그래밍 - 김영한] 책을 참고하며 포스팅하였습니다😃 JPA Entity🔆 JPA는 엔티티와 테이블을 매핑하는 설계 부분과 매핑한 엔티티를 실제 사용하는 부분으로 나뉩니다. 엔티티를 실제 사용할 때는 엔티티 매니저(em)를 통해 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 작업을 할 수 있습니다. 엔티티 생명주기⏳ 엔티티에는 총 4가지의 상태가 존재합니다. 비영속(new / transient) : 영속성 컨텍스트와 전혀 관계가 없는 상태 // 객체를 생성한 상태 (비영속) Member member = new Member(); member.setId("..

JPA 2022.09.06

JPA Eager Loading VS Lazy Loading

JPA를 사용하다 보면 즉시로딩(Eager)과 지연로딩(Lazy)을 자연스레 접하게 됩니다. 사실 실무에서 모든 연관관계는 지연 로딩으로 설정하는 것이 좋지만, 이렇게 하는 설정하는 법이 왜 좋은지에 대한 의문이 생겨 공부하게 되었고 기록을 남기기 위해 포스팅하게 되었습니다. 개요 JPA에서는 테이블 간 연관 관계는 객체의 참조를 통해 이루어집니다. 실무에서는 서비스의 규모가 대부분 크기 때문에, 데이터의 양이 많은 것은 물론이거니와 각각의 데이터들끼리 참조하고 있기에, 연관된 데이터들을 한번에 가져오는 행동은 부담이 큽니다. 따라서 JPA는 참조하는 객체들의 데이터를 가져오는 시점을 정할 수 있는데, 이것을 Fetch Type이라고 합니다. Fetch Type에는 Eager와 Lazy 방식이 있습니다...

JPA 2022.09.05

네트워크 관리사 2급 필기 단기간(3일) 합격 후기

안녕하세요 오늘은 제가 직접 준비하고 3일 만에 합격한 네트워크 관리사 2급 필기 시험 공부법에 대해 포스팅하려 합니다. 네트워크 관리사 2급은 한국정보통신자격협회(ICQA)가 운영하는 국가공인 민간자격증 입니다. 저는 학점은행제 학위를 위해서 준비를 했고, 저의 공부법이 모든 분들께 다 맞지 않을 수 있으니 공부법은 참고만 해주세요! 네트워크 관리사란? 네트워크 관리사란 서버를 구축하고, 보안 설정을 하며 시스템을 최적화하는 것과 같이 네트워크를 구축하며 이를 효과적으로 관리할 수 있는 기술력에 대한 자격증을 의미합니다. 네트워크 관리사 자격증은 1급과 2급으로 나뉩니다. 제가 시험을 봤던 2급은 네트워크 관련 업무 수행을 위한 일반적인 운용 지식과 구축 기술, NOS 운영, Packet 분석, Mon..

자격증 2022.08.24

MCMS-YC 프로젝트 후기

MCMS(Media Content Management System)는 솔루션 사업이기 때문에 이전 프로젝트와 비슷한 프로젝트를 맡게 되었습니다. MCMS는 디지털 아카이브 사용자 웹 페이지이며, 이전 프로젝트에 비해 새로운 기능들이 많이 추가되었습니다. 모달, 컬렉션, 포탈 다운로드 기능 등 다양한 기능들을 직접 만들어 볼 수 있었던 좋은 기회였던 것 같네요😀 개요 사실 상 새롭게 추가된 기능들을 제외하고는 이전 프로젝트와 동일한 기능들이 많았습니다. 기업의 시청각 자료들을 관리하고 임직원 분들이 사용하는 웹 사이트이기 때문에, 여러 유형별 파일들에 대한 기능이나 사용자가 헷갈릴 만한 부분들을 최대한 고려하여 개발을 진행하였습니다. 두 번째 프로젝트를 진행하면서 사진, 영상, PDF 관련 파일들을 추출하..

Project/Team 2022.08.01

SpringBoot JPA 게시판 CRUD 구현(예외 처리)

오늘은 지금까지 구현했던 WAS 단 로직들 안에서 예외처리들을 커스터마이징 하려 합니다. 로직 수정에 앞서 예외(Exception)와 오류(Error)에 대한 간단한 개념을 먼저 알아보겠습니다😀 에러(Error)📙 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 Error라고 합니다. Error는 JVM 실행에 문제가 생긴 것으로, 프로그램은 실행 불능이 됩니다. 즉, 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제를 의미합니다. 📌Error는 개발자가 미리 예측하여 방지할 수 없습니다. 예외(Exception)📒 자바에서는 에러 이외에 예외라고 부르는 오류가 있습니다. 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 오..

JPA 2022.07.27