[스프링 부트 쇼핑몰 프로젝트 with jpa] Repository 설계
·
프로젝트/Archive
상품 Repository 설계 com.shop.repository패키지 생성 후 ItemRepository 인터페이스 생성 package com.shop.repository; import com.shop.entity.Item; import org.springframework.data.jpa.repository.JpaRepository; public interface ItemRepository extends JpaRepository { } JpaRepository를 상속받는 ItemRepository 작성. JpaRepository는 2개의 제네릭 타입을 사용하므로 첫 번째에는 엔티티 타입 클래스를 넣고, 두 번째는 기본키 타입을 넣어줍니다. JpaRepository에는 기본적인 CRUD 및 페이징 처리를..
[Java] OpenJDK 11 설치
·
Server/Java
AdoptOpenJDK11 설치 https://adoptopenjdk.net/ 원하는 버전을 선택하고 파란 버튼의 adoptium.net을 클릭합니다. 저는 OpenJDK 11 (LTS)와 HotSpot을 선택하고 버튼을 클릭하였습니다. 설치하는 사용자의 환경에 맞게 Operationg System, Architecture, PackageType, Version을 선택하고 원하는 설치 파일을 다운로드합니다. 저는 JDK - 175MB인 확장자 msi파일을 다운로드하였습니다. 이후 설치 과정에서 NEXT버튼을 이어서 눌러주고 마지막 install 버튼을 누른다면 정상적으로 설치가 되는 것을 보실 수 있습니다. 설치가 완료되었다면 cmd창을 켜신 후 java -version 명령어를 입력하여 버전을 확인하시..
[스프링 부트 쇼핑몰 프로젝트 with jpa] 상품 엔티티 설계
·
프로젝트/Archive
상품 엔티티 설계 엔티티 데이터베이스의 테이블에 대응하는 클래스. @Entity가 붙은 클래스는 JPA에서 관리하며 엔티티라고 부릅니다. Entity클래스는 반드시 기본키(@Id)를 가져야 합니다. 상품의 기본적인 정보를 담은 Item 클래스 생성 com.shop.entity 패키지 생성 후 Item 클래스 생성 package com.shop.entity; import com.shop.constant.ItemSellStatus; import lombok .Getter; import lombok.Setter; import lombok.ToString; import java.time.LocalDateTime; // 롬복을 사용하여 어노테이션으로 Getter/Setter/ToString 처리 @Getter @..
[스프링 부트 쇼핑몰 프로젝트 with jpa] 프로젝트 생성
·
프로젝트/Archive
프로젝트 생성 프로젝트 설정 https://start.spring.io/에 접속하여 스프링 부트로 프로젝트를 생성한다. 교재에서는 java 11, boot 2.5.2 버전을 사용하고 있지만 현재 설치되어 있는 버전인 java 8(1.8), 그리고 spring initializr에서 제공하는 최신 버전인 2.7.3 버전을 선택했다. 의존성 설정 Spring Web Lombok Thymeleaf Spring Data JPA MySQL Driver H2 Database 책 내용이 진행되면서 필요한 의존성들은 따로 추가하는 것 같다. application.properties설정 #애플리케이션 포트 설정 server.port=80 #MySQL연결설정 spring.datasource.driver-class-name..
[멋쟁이사자처럼 백앤드 스쿨 2기] 01. 2차 과제 그리고 최종 합격
·
회고록/Archive
1차 선발 결과 합격 8월 31일 저녁 6시, 멋쟁이사자처럼 BACK-END SCHOOL 2기 서류 합격 결과를 받고 2차 과제를 찾아보게 되었다. 2차 과제 프로그래밍 과제 2차 과제는 프로그래밍 과제와 영상 과제로 이루어져 있었다. 프로그래밍 과제는 총 5가지 문제가 제출되었으며 난이도 별로 '상' 1문제, '중' 2문제, '하' 2문제가 제출되었다. 이 중 한 가지 문제만 풀어도 제출에는 문제가 없었다. 문제 내용으로는 특정 값을 구하는 문제가 많았고 게시판을 구현하는 과제를 제외하고는 백준 브론즈 등급의 난이도였던 것 같다. 5번 게시판 구현의 경우에는 프레임워크와 DB까지 모두 사용하여 프론트 페이지 및 페이징까지 구현해야 하는 문제로 가장 난이도가 높았고 아무래도 초보자의 경우에는 선뜻 도전하..
[JPA] 01. JPA 시작
·
Server/JPA
객체 매핑 시작 회원 클래스 import javax.persistence.*; public class Member { private String id; private String username; private Integer age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Integer getAge() { return age; } public void setAge(Inte..
[JPA] 00. JPA 소개
·
Server/JPA
JPA를 사용해서 얻은 가장 큰 성과 "왜 객체 지향의 장점을 포기하고 객체를 단순히 테이블에 맞추어 데이터 전달 역할만 하도록 개발할까?" 애플리케이션을 SQL이 아닌 객체 중심으로 개발하니 생산성과 유지보수가 좋아지고 테스트를 작성하기도 편리함. 개발 단계에서 MySQL 데이터베이스를 사용하다가 오픈 시점에 오라클 데이터베이스를 사용하게 되는 경우 JPA를 사용하면 코드를 거의 수정하지 않고 데이터베이스를 손쉽게 변경할 수 있음 SQL을 직접 다룰 때 발생하는 문제점 객체를 데이터베이스에 CRUD하려면 너무 많은 SQL과 JDBC API를 코드로 작성해야함. Member 객체가 연관된 Team객체를 사용할 수 있을지 없을지는 전적으로 사용하는 SQL에 달려 있음. 이런 방식의 가장 큰 문제는 데이터 ..
[JPA] 자바 ORM 표준 JPA 프로그래밍 - Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass.
·
Server/Error
Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int) error: hhh000142: javassist enhancement failed: jpabook.follow.member 해당 에러가 발생하고, 아무리 검색해봤지만 내가 원하는 에러 원인을 찾지 못했었는데.. 명확한 해결 인지는 모르겠으나 추측상 Java EE의 버전, 이클립스의 버전이 너무 높아서 에러가 발생한 것이 아닐까 생각한다. 김영한님의 자바 ORM 표준 JPA 프로그래밍 책에 적혀있는 https://www.eclipse.org/downloads/packages/release/luna/r/e..
코드플리
코드 플레이 리스트