spring/스프링 부트와 JPA 활용 강의 내용 정리
-
공부 방향 변경spring/스프링 부트와 JPA 활용 강의 내용 정리 2023. 12. 14. 17:45
인프런 :김영한 강사님의 JPA1 편은 JPA 기본 편의 지식을 활용하여 실제 애플리케이션을 개발하는 강의이다. 나는 강사님이 추천한 대로 1편을 보고 따라하며 개발 흐름을 직접 경험하고, 이후에 JPA 기본 지식을 습득하는 공부 방향을 선택했다. 그러다보니 JPA1편을 듣고있는 지금, 이론적인 내용을 모르는 채로 코드를 따라하고 있다보니 블로그에 정리하기가 매우 애매한 상황이다. 이전 글들을 보면서도 이해가 바탕이 된 글이 아니다 보니, 사실상 뇌를 비우고 받아쓰고 있다는 느낌을 지울 수 없다. 때문에 해당 강의에 대한 정리는 블로그에 정리하지 않고, 깃헙에 흔적을 남기는 정도로 만족하려고 한다. 이 강의는 며칠내로 다 들을 수 있을거라 생각한다. 이후에 목표로는 알고리즘 SW 기출문제, 자바 ORM ..
-
도메인 모델과 테이블 설계spring/스프링 부트와 JPA 활용 강의 내용 정리 2023. 12. 13. 20:28
도메인 모델과 테이블 설계 회원, 주문, 상품의 관계: 회원은 여러 상품을 주문할 수 있다 그리고 한 번 주문할 때 여러 상품을 선택할 수 있으므로, 주문과 상품은 다대다 관계이다 하지만 이런 다대다 관계는 관계형 데이터베이스는 물론이고, 엔티티에서도 거의 사용하지 않는다 따라서 그림처럼 주문상품이라는 엔티티를 추가해서 다대다 관계를 일대다, 다대일 관계로 풀어냈다 상품 분류 : 상품은 도서, 음반, 영화로 구분되는데 상품이라는 공통 속성을 사용하므로 상속 구조로 표현했다 회원 엔티티 분석 회원(Member): 이름과 임베디드 타입인 주소(Addredd), 그리고 주문(orders)리스트를 가진다 주문(Order): 한번 주문시 여러 상품을 주문할 수 있으므로, 주문과 주문상품(OrderIten)은 일대..
-
JPA와 DB 동작 확인spring/스프링 부트와 JPA 활용 강의 내용 정리 2023. 12. 13. 17:32
Member 객체 생성 @Id 로 식별, @GeneratedValue 로 자동으로 값 입력할 수 있는 에노테이션을 붙혔다 리포지토리 생성 이전 강의들처럼 간단히 저장, 조회만 구현했다 하지만 @PersistenceContext 라는 엔티티 매니저를 사용한다 나는 스프링 핵심 원리 이후에 바로 JPA 활용을 듣고있기 때문에 JPA 에 대한 사전지식이 없는 상태라 엔티티 매니저는 들어만 봤을 뿐, 어떤 기능을 하는지 모르고있다 그것을 감안하더라도 한번 쭉 따라하면서 코딩을 하는것이 중요하다고 들었기에, 앞으로도 모르는 것들은 눈으로만 담아두며 라이브 코딩을 따라하는 것에 집중하고자 한다 실패한다 엔티티 객체는 항상 트랜잭션 안에서 수정이 일어나야 한다 이제야 성공을 하는 모습 이제 데이터베이스를 확인해보자 ..
-
JPA와 DB 설정spring/스프링 부트와 JPA 활용 강의 내용 정리 2023. 12. 13. 16:31
application.properties 를 지우고, 그 대신 application.yml 파일을 생성한다 같은 역할을 무엇으로 수행할지 선택하는 것인데, 설정이 많아질 수록 yml이 편하다고 한다 이렇게 사용을 하면 되는데... 이런 설정에 관한 내용은 어떻게 배워야 하는 걸까? Reference Doc 에 들어가면 많은 자료들이 있는데, 여기에 있는 수많은 것들을 하나하나 찾아서 사용하는 것이라 한다... 아직 뉴비인 나에겐 쉽지 않는 방법이다 여기서 show_sql은 System.out을 통해 출력하는 것이고, org.hibernate.SQL: debug 는 로그를 통해서 출력하는 것이다 때문에 show_sql은 #을 붙혀 주석처리? 한 듯 하다 운영단계에서 로그들은 System.out이 아니라, ..
-
View 환경 설정spring/스프링 부트와 JPA 활용 강의 내용 정리 2023. 12. 13. 15:35
여러 배경지식에 대한 이야기와 도움이 될 만한 공식 문서에 대한 내용이 있었다 그 내용은 강의자료를 들고 있는 것으로 충분할 것 같아 생략했다 tymleaf 를 사용하여 해당 문법으로 서버에서 랜더링 되는 값이 있다면, 그 값이 '안녕하세요 손님' 이라는 문구 대신에 들어가게 된다 위는 절대경로를 통해 hello.html 을 그대로 열었을 때의 모습이다 소스보기를 하면 코드내용을 볼 수 있다 다음은 서버를 통해 랜더링 된 화면을 보도록 하자 이렇게 서버에서 랜더링 된 값으로 대체된 모습이다 다음은 정적인 html 파일을 만들어 순수한 html 코드를 화면에 띄워보자 static 폴더에 index.html을 만들어 위의 코드를 입력했다 링크를 누르면 아래의 페이지로 이동하게 만들었다 참고로 조금씩 코드를 ..
-
프로젝트 생성spring/스프링 부트와 JPA 활용 강의 내용 정리 2023. 12. 13. 14:51
프로젝트 생성 jpashopApplication을 실행시키면 로그에 Tomcat started on port 8080 이라는 문구가 보인다 localhost:8080 에 접근했을 때 이 화면이 나오면 성공 테스트도 실행 성공 아무것도 없지만, 혹시 설정이 잘못됐을 경우를 대비하여 이렇게 테스트하는 것도 나쁘지 않다 이어서 롬복 설치와 설정이다 롬복 설치는 이미 했기 때문에, 업데이트가 있지 않은 이상 더 할 것은 없다 하지만 신기하게도 아래의 설정은 프로젝트마다 초기화 되는 모양이다 다시 설정해 주자 롬복 동작 테스트이다