본문 바로가기

개발자 취업 프로젝트[일지]

💻개발자가 되기 위한 프로젝트(91)💻

06.14.2023 - 학습 일지

 

1. AM 09:00 ~ PM 18:00분 : BE(백엔드 KDT)

   - [AM 09:00 - 11:50]

Spring - JPA
 -  (오전 학습)

✔ [학습 내용]

 

   Spring JPA

      - IoC Container에 대해서 이론적으로 학습을 함

      - Component, Service, Repository, Controller, ResponseBody, RestController, Configuration, Bean 어노테이션의 구현과 역할에 대해서 학습함

      - Start.Spring.io에 접속하여 Spring Data JPA, Spring-Web, LomBock 의존성과 SQLite 까지 gradle package를 다운받고 프로젝트를 생성하고, 간단하게 Annotation의 역할의 의미를 실습을 통해 학습

Spring - JPA
 -  (오후 학습)

✔ [학습 내용]

 

   Spring JPA

      - Object Relational Mapping에 대해서 이론을 학습함

      - JPA와 Hibernate에 대해서 서로의 역할에 대해서 구분 할 수 있도록 각 쓰임새에 대해서 이론을 학습함

      - JPA 프로젝트에 필요한 부분을 yaml file을 통해 sqlite, jdbc를 이용하겠다고 명시하고 Entity 객체를 사용하겠다고도 명시하는 작업을 실시함

      - Entity 작업과 Annotation의 역할에 대해 간단하게 이론적으로 학습함

      - Repository를 생성하여 Entity를 사용하기 위해서 EntityManager를 이용하여, JpaRepository 사용을 하도록 작업함

      - Service를 통해서 CRUD 각 method를 생성하여 Controller에서 의존성을 부여할시 이용되게 작업을 함

      - Controller를 통해서 Service에서의 기능을 받아서 사용하도록 CRUD 각 method에게 부여하여 실시되도록 작업함

      - Repository는 Service에서 Repository의 각 Jpa method의 기능을 통해서 의존받아 CRUD에 맞게 호출시 해당 Data들이 표기되도록 작업해줌

Spring - JPA(실습)

Spring JPA - 내부코드 [CRUD를 위해 Controller, Service, Entity, Repository를 이용하여 Data가 잘 생성되고 Data가 잘 보여지는가, Data의 수정이 잘되었는가, Data가 삭제가 되었는가를 Test할 수 있도록 if-else문으로 작업을 실시함]
Spring JPA - Create 부분
Spring JPA - Read All(List) 부분
Spring JPA - Read One(하나의 Data) 부분
Spring JPA - Update 부분
Spring JPA - Delete 부분(삭제하고, 한번 더 Read One을 통해서 삭제가 되었다면 Message로 삭제되어 Data가 없음을 표시함)

KDT 학습내용 용어정리

2. KDT 학습내용중 기본개념 및 용어정리

 - Spring - MyBatis, JPA →노션

 - JPA - Repository규칙  노션

KDT 학습내용 용어정리(노션내용 일부)

Spring JPA 프로젝트를 통해서 이해가 안되거나, 보충해야 하는 부분을 따로 메모해서 노션으로 정리함

마무리

   - Spring JPA에 대해서 오늘은 학습을 했는데, 어제와 비교하면 조금 더 난이도는 있었으며, Mybatis를 사용할때에는 따로 Xml file에 SQL문을 직접 작성하여 View로 표현을 하였다면 JPA에서는 좀더 의존성을 각각 부여하여 xml을 사용하지 않고 Repository를 통해서 Entity에서 data를 받아 Servcie에게 각 method의 기능에 해당 data가 담길 수 있도록 작업하고 Controller에서는 Service에서 만들어 놓은 method를 의존하여 Controller에서는 CRUD 어노테이션을 이용하여 Data가 잘 생성되는지와 생성되었다면 조회할때 Data가 있는지와 해당 Data를 수정하고 수정이 되었는지 한번 더 조회시 수정되었는가를 확인하고, 해당 Data를 삭제하고 잘 삭제되었는지 조회하여 잘삭제 되었다면 메시지로 Data가 삭제되어 해당 Data가 없음을 표시하는 것까지 진행한다는 것을 알게되었고, 실습을 통해서도 이렇게 구현을 하므로써 둘중 선택한다면 난 JPA가 좀 더 서로의 의존성부분에서 로직을 구현할때 어렵지만 그래도 직접 Controller, Service, Repository, Entity등을 이용하면서 좀더 MVC패턴에서도 학습하면서 느꼈지만 상속받고 그 의미를 부여하고 부여받는 형태가 직관적이고 처음에 OOP를 이해하는데 어려웠지만, 현재는 OOP에 대해서도 더 친숙해지고 있다는 것이 오늘의 최고의 수확이 아닐까 생각한다. 그리고 Annotation의 각 의미를 정리를 계속 하면서도 느꼈지만, Bean에 대해서도 어떤 의미를 부여하는 것이고 Application에서 실행을 해주기 위해서 Spring FrameWork에서 짜놓은 패키지, 라이브러리의 의미에 대해서도 이용하면서 점점 더 깊게 알아가게 되어 좋았다. :) 즐겁게 학습하다보니 시간은 너무 빠르게 흘러가는 것 같고, 벌써 6월도 중순이고 해야하는 부분, 알아야하는 부분은 너무나도 방대하지만 그래도 재밌어서 좋은 것 같다! :)