블로그
전체 2#카테고리
- 백엔드
#태그
- 인프런워밍업클럽스터디1기
- 워밍업클럽스터디1기
- 워밍업클럽1기
- 워밍업클럽BE
- 인프런워밍업클럽스터디
- 1기
- 워밍업클럽스터디
- 백엔드
2024. 05. 11.
0
[인프런 워밍업 클럽 스터디 BE 1기] 두 번째 발자국
두 번째 발자국배운것들스프링 컨테이너의 의미와 사용 방법국비교육에서 이미 스프링 컨테이너에 대해 배웠었기 때문에 어느 정도 알고 있었는데, 강사님의 상세한 강의로 모르고 있었던 개념들과 헷갈렸던 부분들을 확실하게 잡고 갈 수 있었다. 특히 "@bean 어노테이션의 경우 메서드에 사용하고, @Component어노테이션은 클래스에 사용한다" 라는 것만 알고 있었는데, 기존에 이미 사용하고 있었던 어노테이션들도 @Component를 사용한 것이 었다는 것을 알고 더 깊게 이해할 수 있었다. Spring Data JPA를 사용한 데이터베이스 조작이제까지 MyBatis만 사용하고 SQLMapping기술만 사용해서 어떻게 sql을 쓰지 않고 DB를 조작할 수 있는지 의문이었는데, 강의를 듣고 JPA에 대해 알아가면서 SQLMapping기술과는 너무 달라서 충격이었다. 단지 JpaRepository를 상속받은 인터페이스를 만든 것 만으로 SQL없이 DB를 조작하는 것을 보고 너무 생소해서 필기하면서 공부하고 복습이 필요하겠다는 것을 느꼈다. 그리고 이제까지 MyBatis처럼 JPA가 하나의 라이브러리인줄 알았는데, JPA는 하나의 규칙이라는 것을 새롭게 알게 됐다. JPA의 구현체 중 하나가 Hibernate이며 이 전체를 쓰기 쉽게 해주는 것이 Spring Data JPA 라이브러리이다. 라는 부분을 들으면서 JPA에 대해 하나도 몰랐구나를 알게 됐다.. 트랜잭션과 영속성 컨텍스트JPA를 사용하면서 가장 흥미로웠던 부분이 Update부분이다. 기존 자료를 수정하기 위해서는 Update 쿼리를 날려줘야하지만 JPA에서는 도메인 내부에서 데이터 수정함수를 만들면 기존 데이터에서 바뀐 데이터를 감지하고 update문을 알아서 날려준다는 것이다. 이 부분이 가능했던 이유가 영속성 컨텍스트 라는 것의 변경감지 기능 덕분이다. 이 외에도 쓰기지연(여러 sql문이 commit될 때 한번에 저장됨/ DB커넥션비용을 절감), 1차 캐싱(ID를 기준으로 엔티티를 기억)등이 있다!회고저번주까지는 알고 있던 내용들이었기에 복습하는 과정이었다면, 이번주는 JPA를 다루기 시작하면서 새롭게 배우는 것들이 훨씬 많아졌다. 그중에서도 JPA 직접 다뤄보면서 SQL을 직접 만들어서 쓰던 것과 다르게 신세계를 경험할 수 있었다. 이제까지 따로 필기는 하지 않으면서 과제 정도만 진행했었는데, 배우는 내용이 많아지면서 필기를 하지 않으면 까먹겠다는 생각이 들어 뒤늦게 블로그에 배운 내용들을 올리고 있다. 이번주 금요일에 깜짝 라이브 방송이 있었는데, 까먹고 참여하지 못해서 너무 아쉬웠다. 다음주 금요일은 진짜 꼭 참여해야겠다.
백엔드
・
인프런워밍업클럽스터디1기
・
워밍업클럽스터디1기
・
워밍업클럽1기
・
워밍업클럽BE
2024. 05. 05.
0
[인프런 워밍업 클럽 스터디 BE 1기] 첫 번째 발자국
참가계기국비학원에서 기초를 다졌지만 이제까지 MyBatis만을 사용한 프로젝트를 진행했었다. 때문에 요즘 기업에서 많이 요구하는 JPA를 공부해야겠다는 생각으로 강의를 결제했지만, 혼자서 게시판을 만들어보는 개인프로젝트를 진행하면서 차일피일 미뤘었다.그런데 마침 인프런 워밍업 클럽 스터디가 시작한다는 것을 알게 되었고, 개인 프로젝트도 어느 정도 기능 구현이 완료된 상태였기에 JPA 기초를 공부하면서 기존 프로젝트를 JPA로 마이그레이션 하는 것이 좋은 경험이 될 것 같아서 워밍업 클럽 스터디에 참여하게 됐다.배운 것1주차는 IDE설치부터 기초적인 개념을 다시 공부하는 시간을 가졌다.1 .인텔리제이와 MySql이제까지 이클립스와 오라클을 사용했지만 강의에서는 인텔리제이와 mySql을 사용해서 두 개를 써보고 있다. 그런데 확실히 인텔리제이가 이클립스 보다 더 안정적으로 느껴져서 앞으로는 인텔리제이를 쭉 사용할거 같다.(사실 SSD 교체해서 이클립스 설치는 귀찮았다.)DB는 오라클 GUI를 사용했었는데, MySql CLI를 사용하려니 살짝 어려운 감이 있었다. 다만 아직 테이블을 설정하고 만들 일이 많이 없기 때문에 크게 힘들지는 않았다. 나중에 개인프로젝트 할 때는 MySql워크벤치? 사용해서 만들 것 같다.2. API알고 있는 내용들을 복습하고 잊고 있었던 부분들을 상기시킬 수 있는 좋은 기회였다.3. 리팩토링국비교육에서는 Controller, Service, Repository를 나눠야 하는 이유를 알려주지 않고 3개가 각자 어떤 책임과 역할이 있는지 알려주지 않았었다. 그래서 국비에서 만든 프로젝트를 보면 컨트롤러에서 많은 역할을 수행하고 서비스단에서는 리포지토리로 넘겨주는 역할 밖에 없었다. 다행히 친구의 피드백으로 인해 왜 3개가 나뉘어야하고, 각자의 책임이 뭔지 알게 됐었는데, 강의에서 그런 부분을 하나하나 짚고 넘어가면서 혼자 공부했던 내용들을 다시 짚고 넘어갈 수 있었다.느낀점위에서 말했던 것처럼 국비교육은 생략해서 혼자 공부하면서 알게 됐던 내용들이 멘토님의 강의에 찰떡 같은 비유와 함께 있는 것을 보면서 국비교육 말고 혼자서 강의로 공부했다면 더 많이 배웠을까 라는 생각이 들었다.개인사유로 인해 금요일에 있었던 백엔드 1차 중간점검에 참여하지 못해서 너무 아쉬웠다. 다음에 있는 중간점검은 꼭 참여해서 멘토님의 이야기를 들으면서 식견을 넓혀야겠다.
인프런워밍업클럽스터디
・
1기
・
워밍업클럽스터디
・
백엔드