bbangsomi
@bbbangsomi6246
수강평 작성수
-
평균평점
-
블로그
전체 3#카테고리
- 백엔드
#태그
- 인프런워밍업클럽
![[인프런 워밍업 클럽 스터디 0기] 3주차 발자국](https://cdn.inflearn.com/public/files/blogs/f89cbb39-a184-44f3-8952-2eff37f0d1d8/332957.png?w=260)
2024. 03. 10.
0
[인프런 워밍업 클럽 스터디 0기] 3주차 발자국
3주차 학습 내용이전 시간에 개발했던 도서 관리 시스템을 객체지향적인 방법으로 리팩토링하고, 배포를 진행했습니다.객체지향적인 설계 방법 중 JPA 연관관계 매핑을 집중적으로 학습하며 연관관계를 사용하여 개발할 때와 사용하지 않고 개발할 때의 차이점을 이해할 수 있었습니다.도메인 계층이 비즈니스 로직에 들어가면서 서비스 코드가 간결해지고 각자의 역할에 충실할 수 있게 되었습니다. 우리는 더 직관적이고, 유지보수가 용이한 코드로 한걸음 더 다가갈 수 있었습니다 !하지만 지나친 연관관계 사용은 시스템 파악을 어렵게 만들 수 있어 요구사항을 잘 살펴보고, 설계를 고민하며 적용해야 합니다.우리는 AWS의 EC2 서비스를 이용하여 리눅스 명령어를 통해 도서관리 시스템을 배포해 보았습니다.IP 주소가 아닌 도메인 이름으로 사이트에 접속하며 보다 실제 서비스에 가깝게 운영해볼 수 있었습니다.미니 프로젝트지금까지 학습했던 내용을 기반으로 간단한 '출퇴근 사내 시스템' 어플리케이션을 개발했습니다.프로젝트 1단계에서는 팀과 직원을 등록하고, 조회할 수 있는 기능을 개발해 보면서 기존 학습 내용을 정리할 수 있었습니다.프로젝트를 진행하면서 어디까지 에러 처리를 해야 하는지 예외 처리 범위를 파악하기 어려웠고, 데이터 형식은 어떤 걸 사용해야 할지 등 여러 부분에서 고민거리가 생겨났습니다. 기능 구현에 급급하느라 엄밀하게 코드를 작성하지 못해 아쉬움이 남았던 마지막 과제였습니다 ... 🥹마지막 라이브 세션을 통해 다른 러너분들의 코드를 살펴보고, 강사님을 통해 리팩토링 하는 과정을 실시간으로 확인할 수 있었습니다. 리뷰 내용을 참고하여 조금 더 요구사항에 대해 고민해보고, 추후 4단계까지 진행하는 것이 목표입니다 💪마무리3주라는 시간동안 열정적인 러너분들과 하나라도 더 알려주시려는 강사님의 모습을 보며 자극을 받고, 어제의 나보다 성장할 수 있었던 유익한 시간이었습니다. [워밍업 클럽 스터디 0기]에 참여할 수 있어 영광이었습니다 🙇0기를 시작으로 커뮤니티가 더 활성화 되어 다양한 러너분들과 꾸준히 소통하고 싶습니다 🏃성장에 매마른 개발자를 꿈꾼다면, 스터디를 통해 목마름을 해결하시기를 바랍니다 !
백엔드
・
인프런워밍업클럽
![[인프런 워밍업 클럽 스터디 0기] 2주차 발자국](https://cdn.inflearn.com/public/files/blogs/9fa0a67f-b0c6-47dc-bc6a-52ab42127432/332957.png?w=260)
2024. 03. 03.
0
[인프런 워밍업 클럽 스터디 0기] 2주차 발자국
2주차 학습 내용지금까지 작성했던 코드를 보다 좋은 코드로 리팩토링하면서 스프링 컨테이너와 스프링 빈이 무엇인지 알아보았습니다.기존 메모리 저장 방식에서 데이터베이스 저장 방식으로 변경하면서 Service 코드 변경을 최소화하기 위해 인터페이스를 도입했지만, 변경 코드 범위가 줄어들 뿐 근본적인 문제가 해결되지 않았습니다.제어의 역전 방식을 사용하는 스프링 컨테이너를 적용해 코드 변경 없이 원하는 클래스를 주입할 수 있게 되었습니다. 2주차에 접어들며 드디어 우리는 JPA를 적용할 수 있게 되었습니다 !문자열 SQL을 직접 사용하는 것에 한계를 느끼고, 객체 지향적인 JPA를 활용해 코드를 변경했습니다.이제 Spring Data JPA를 이용해 데이터를 생성, 조회, 수정, 삭제할 수 있게 되었으며트랜잭션 적용으로서비스 메소드가 시작할 때 트랜잭션이 시작되고서비스 메소드 로직이 모두 정상적으로 성공하면 commit서비스 메소드 로직 실행 도중, 문제가 발생하면 rollback 이 되도록 처리했습니다.트랜잭션 사용 과정에서 생겨나는 영속성 컨텍스트에 대해 알아보며 1주차보다 더 클린한 코드로 변경해 나갔던 2주차입니다. 2주차 미션2주차 부터는 새로운 것을 만들어내기보다 기존의 코드를 리팩토링하면서 학습 내용을 적용하는 시간을 가져보았습니다.Controller - Service - Repository로 3단 분리하고, 데이터베이스 저장 방식도 나누어보며 더 클린한 코드 작성 방법에 다가갈 수 있었습니다.2주차 리팩토링 과제를 수행하기에 앞서 과제 4에서 마무리하지 못한 부분을 다시 한번 강의를 들으며 차근차근 수정했으며, 다른 수강생분들의 코드도 참고하여 마무리하고 다음 과제를 진행했습니다.처음부터 잘 짜인 코드를 공부했다면 클린 코드의 중요성에 대해 와닿지 않을 수도 있었겠지만, 점차 코드를 발전시키는 과정을 거치면서 좋은 코드의 필요성에 대해 또 한번 느꼈던 미션이었습니다. 마무리개발 과정을 머릿속에서 그려보며 틀을 잡는 것은 여전히 쉽지 않지만, 이번 강의와 과제를 통해 그 과정이 조금은 이해되고 있음을 느꼈습니다. 이제는 API 명세서를 읽고 간단한 API는 직접 만들 수 있으며, Controller - Service - Repository 계층 동작 방식을 이해할 수 있게 되었습니다.점점 클린 코드로 발전해 나가면서 코드 정리가 수월해진 것을 몸소 느끼며 저의 이해도를 통해 다시 한 번 클린 코드의 중요성에 대해 깨달았습니다. 💡이제 과제가 모두 종료되고 마지막 미니 프로젝트를 남겨두고 있습니다. 남은 한 주 잘 마무리하여 배포까지 진행해 보고 싶습니다 🏃🏻♀
백엔드
・
인프런워밍업클럽
![[인프런 워밍업 클럽 스터디 0기] 1주차 발자국](https://cdn.inflearn.com/public/files/blogs/1409c49f-ea26-40d7-a5e2-196e9c31ddf5/332957.png?w=260)
2024. 02. 25.
0
[인프런 워밍업 클럽 스터디 0기] 1주차 발자국
1주차 학습 내용스프링 프로젝트를 시작하는 방법부터 여러 API 개발, 그리고 좋은 코드로 리팩토링까지 첫 주 동안 다양한 내용을 학습했습니다.먼저 API 개발을 위해 필요한 기본적인 네트워크 지식을 학습하고, API를 만들어 보았습니다.데이터가 메모리에서만 유지되고 있어 서버가 종료되면 정보가 사라진다는 문제점을 해결하기 위해 데이터베이스와 연결도 해보았습니다.예외 처리 API를 직접 작성해보고, 개발 요구사항이 늘어날 것을 고려하여 컨트롤러의 역할을 3단으로 분리했습니다.점차 클린하게 작성하는 방법으로 코드를 개선해보면서 결국 클린 코드는 중요하다! 라는 것을 깨닫게 되었던 1주차입니다. 1주차 미션학습 내용을 바탕으로 추가적인 API를 만들어 보았습니다. 수업 시간에 배운 내용에서 그치는 것이 아닌 그 이상의 학습이 필요하여 매일 매일 쉽지 않은 미션이였습니다 😢 API 설계에 익숙하지 않아 배운 범위에서 조금만 응용되어도 손대기 어려웠습니다.하지만 학습 범위 내에서 해결할 수 있는 과제만 주어졌다면, 그저 코드를 따라 치는 타자 연습과 다름없다는 생각이 들었습니다. 남은 미션들도 잘 따라갈 수 있도록 부족함을 인정하고 공부하려고 합니다 🥺 코드 설계 미션뿐만 아니라, 블로그 글을 직접 찾아보며 개념을 정리하는 과제도 있었습니다.방대한 정보를 간추리고, 유용한 정보를 찾아내는 것부터 어려움을 겪었습니다. 그러다 보니 과제 마무리에 급급한 나머지 제대로 알지 못한 채 미션을 수행한 적이 대부분이였습니다 ... 😮💨또한 클린코드가 아직 와닿지 않아 리팩토링을 어디서부터 시작해야 하는지 감이 오지 않았고, 변수명 선언이 힘들어 ChatGPT의 도움을 받기도 하며 꾸역꾸역 과제를 해나갔던 한 주입니다. 마무리개념을 이해하는 것과 실제로 적용해 보는 것은 다르다는 걸 과제를 통해 매일 매일 느꼈습니다. 그리고 강의를 듣기만 하는 건 공부가 아니라는 걸, 역시 '백문이 불여일타'라는 걸 다시 한번 깨닫게 되었습니다 ... 👩🏻💻 직접 코드를 짜보는 것이 나의 성장에 도움이 된다는 걸 🌱나의 부족함을 드러내는 것이 부끄러워 스터디 참여를 망설였습니다. 하지만 부족하기에 더 성장할 가능성이 있다고 생각하여 남은 2주간 빈틈을 잘 메꿔보려고 합니다. 🏃🏻♀
백엔드
・
인프런워밍업클럽




