첫 스프린트 시작!
드디어 프로젝트에 돌입하고 스프린트를 진행하기로 했다. 지금까지 팀원들과 얘기 나눈 기능들을 토대로 역할 분배를 하였다.
나는 모종의 이유로 두 개의 프로젝트를 담당하게 되었다. 하나는 우리 유데미 부트캠프의 커뮤니티 사이트인 "스타트밸리"와 강아지계의 틴더(?)같은 "환승견애"라는 프로젝트이다. 전자는 리액트와 통신하고 후자는 안드로이드랑 협업하는 것이기에 두 가지의 프론트와 작업을 할 수 있는 아주 좋은 기회가 되었다. 하지만 두 개의 프로젝트를 진행하다보니 시간이 두 배로 든다는 의미인 것이기에 시간 분배를 잘해야겠음을 느꼈다. 현재 스타트밸리에서는 출석 기능을 담당하였고, 환승견애에서는 OAuth를 활용한 로그인/회원가입을 맡았다.
스타트밸리의 출석기능은 유저와는 연동작업이 아직 안 이루어졌지만, 수월하게 재밌게 작업할 수 있었다. 하지만 환승견애의 로그인/회원가입은 결국 성공하지 못했다.. 이미 다른 팀에서 OAuth로 로그인을 만들었다 하여 금방할 수 있을것이라 호언장담 하였지만. 나부터 개념이 제대로 정리되지 않은 상태에서 진행하다보니 아직 제대로 끝내질 못했다. 그래도 계속 시간을 투자해서 흐름에 대해서는 갈피가 잡혀서, 정말로 구현하여 다음주에 적용할 수 있도록 해보아야겠다. 다음에 언제까지 구현가능할 수 있냐는 물음에는 더더더더 고민하고 얘기를 나누어야겠다.
멘토님과의 시간
목요일 교육이 끝나고 바로 멘토링을 진행하였다. 현재 우리가 무엇을 공부하고 있는지, 프로젝트는 잘 진행되고 있는지 알려드렸다. 그리고 또 질문타임을 시작하였다.
- 예외는 언제 만들어서 던지는게 좋을까?
출석 체크 코드를 작성할 때 if문을 활용해 지각이면 예외를 발생하는 코드를 작성해서 코드를 좀 더 간략히 해봄을 노려보았다. 멘토님 말씀으론 지각도 정상적인 흐름인데 예외를 발생시키는 것은 아닌거 같다 하셨다. 예외를 처리할 것은 시스템에서 처리할 수 없는 것이라던가, 의도한 매개변수가 들어오지 않았을 때, 또는 출석 기능에서는 반경을 벗어난 곳 정도에서 적용해볼만하다 하셨다. 예외를 언제 적용하면 좋을지는 좀 더 고민해봐야겠다. 그리고 찾아보니 스프링 @Transactional에서 Unchekced 예외에 대해서는 RollBack을 발생시킨다고 한다. 이렇게 또 하나 배워가는 것은 뿌듯하다 ㅎㅎ
- 현재 출석 테이블에 대한 질문
테이블 구조는 계속 고민이 많다. 나 같은 경우에 하루가 지나 00시가 되면 출석 상태가 지각인 교육생 row들을 만들어 미리 넣어두고자 하는데, 만약 서비스가 잘 되어 교육생 수가 늘어난다면? 계속 집어넣는게 괜찮을까? 나중에 특정 시간에 해당 교육생이 없으면 넣어주는게 어떨까 말씀하셨다. 근데 또 백오피스에서 전체 교육생의 출석 상태를 일괄적으로 보여줄거면,, 또 내 방식도 괜찮을 것이라고 하셨다. 이것은 정답이 없는거 같아 일단은 돌아가게끔 만들어보며 다시 리팩토링 할 수 있도록 해야겠다.
- WebClient
스프링에서도 다른 서버에 통신을 해야해서 찾아보니 자바의 HttpConnection을 사용하거나 RestTemplate, 또는 WebClient를 사용하라고 한다. Connection을 학습하여 적용해보는 것도 괜찮겠다만, 이미 정리가 잘 된 라이브러리들을 사용해보고자 한다. 멘토님께서는 학습시간이 있으면 WebClient 괜찮을 것인데 아니면 RestTemplate 쓰라고 하신다. RestTemplate은 Spring5 이후부터 Deprecated 될 거라 적혀있던데, 인터페이스로 만들고 이것저것 찍먹해봐야겠다. 지금은 시간관계상 WebClient만 써볼 것 같다.
- Swagger 도입
안드로이드팀 멘토님이 Swagger를 도입을 제안해주셨다. API 문서도 쉽게 볼 수도 있고, 이력서 한 줄로 추가할 수 있으니?(ㅎㅎ) 나도 마음 같아선 Swagger 아니면 RestDocs를 작성해보고 싶다. 근데 이것저것 학습하다 보니 아직 여력이 되질 않는다. 그래도 궁금한 부분이니 한 번 짬내서 더 찾아봐야겠다.
그리고 다음 멘토링땐 TDD에 대해서 직접 보여주신다고 하셨다. TDD도 말로는 쉬워보였다. 먼저 테스트 코드를 짜고 그것을 토대로 되게끔 코드를 만들면 된다는데, 직접 해보려니 잘 모르겠더라. 잘 알려주셔서 적용해 볼 수 있었음 좋겠네 ㅎㅎ
더 나은 내가 되기 위해선?
꾸준한 CS Study
첫 스프린트로 인해 정리를 제대로 못하고, 바쁘단 이유(핑계..!)로 CS Study 3주차를 작성하지 못했다. 얼른 만들어서 학습을 이어갈 수 있도록 해야겠다. SQL 공부로 덕 본것은 출석기능에서 NativeQuery를 짤 때였다. 복합키로 묶여 있는 것을 JPA 대신 NativeQuery로 푸니 아주 손쉽게 해결할 수 있었다. 이때 SQL이 아주 도움이 되었다! 얼렁 SQL 더 하고 다른 개념들도 학습해야겠다.
스프링의 원리를 더 잘 이해하기
위에서 적었듯이 @Transactional에서 Unchecked 예외가 발생하면 롤백이 됨을 이번에 알게 되었다. 큼직하게는 많이 공부했다고 생각했는데, 세부적으로 놓치던 것들이 많던 것이다. 스프링 마스터가 되기 위해 더 열공 열공!!
이번 주말은 김장을 다녀와서 체력이 많이 방전되었다. 남은 시간 잘 쉬고 다음주도 화이팅할 수 있어야겠다!
나 화이팅! 월드컵 화이팅!!
* 유데미 바로가기 : https://bit.ly/3SFlXDy * 유데미 STARTERS 취업 부트캠프 공식 블로그 보러가기 : https://blog.naver.com/udemy-wjtb 본 후기는 유데미-웅진씽크빅 취업 부트캠프 2기 - 프론트엔드&백엔드 과정 학습 일지 리뷰로 작성되었습니다.
'유데미 부트캠프' 카테고리의 다른 글
유데미 스타터스 취업 부트캠프 2기 - 백엔드(java, 자바) 9주차 학습 일지 (0) | 2022.12.11 |
---|---|
유데미 스타터스 취업 부트캠프 2기 - 백엔드(java, 자바) 8주차 학습 일지 (0) | 2022.12.04 |
유데미 스타터스 취업 부트캠프 2기 - 백엔드(java, 자바) 6주차 학습 일지 (1) | 2022.11.20 |
유데미 스타터스 취업 부트캠프 2기 - 백엔드(java, 자바) 5주차 학습 일지 (0) | 2022.11.13 |
유데미 스타터스 취업 부트캠프 2기 - 백엔드(java, 자바) 4주차 학습 일지 (0) | 2022.11.06 |
댓글