2023. 2. 11. 20:37ㆍ프로젝트/[Sleeper] 수면관리 어플리케이션
회고록이 늦게 써진 이유
2023년 1월 20일에 프로젝트 발표가 끝났다.
사실, 프로젝트 회고를 바로 작성하고 싶었는데... 1월 3주차에 장염이 걸려 휴식이 필요했다.
그리고, 이것 저것 밀린 것들을 처리 하다보니 시간이 훌쩍 지나가버렸다..
이대로라면, 회고를 작성하지 못 할 것 같아 늦었지만 오늘이라도 작성하려 한다.
회고록
먼저, 이번 프로젝트는 PM 1명, 프론트엔드 개발자 1명, 백엔드 개발자 2명으로 진행되었습니다.
첫 프로젝트의 목표는 백엔드 개발자로서 제가 구현하기로 한 기능을 구현해내는 것이었습니다.
막상 구현을 하는 데에는 2주도 채 걸리지 않았던 것 같습니다.
그래서, 발표 전까지 계속계속 객체지향적으로 리팩토링하는 데 힘을 쏟았습니다.
아쉬웠던 점은 리팩토링을 하면서 전에 작성했었던 테스트 코드들을 지워버린 것 입니다..
그때 당시에는, '포스트맨과 H2를 확인하면 되잖아'라고 생각했었는 데 다시 생각해보면 안일했던 생각이었습니다.
따라서, 다음 프로젝트에는 테스트 코드를 꼭 작성할 것입니다.
그리고 프로젝트를 진행하던 초기도 그랬었지만 리팩토링을 진행하면서 객체지향을 공부하겠다는 열망이 점점 커졌습니다.
(사실 지금도 object - 조영호님 책으로 스터디를 진행중이다. 설계하는 게 너무 재밌어~~ 덕후인가...)
백엔드 개발자 2명 모두 git에대해서 지식이 부족했던터라 병합 과정에서 conflict를 해결하느라 꽤나 애를 먹었습니다.
Git에 대해서 어느정도 안 다고 생각하였지만, 한참 부족했던 것 같습니다.
프론트엔드에서 통신을 구현할 때 API문서가 작성되있지 않아서 통신을 구현할 때 백엔드 개발자인 제가 상시(?) 호출을 당했었습니다. 다음 프로젝트에서는 꼭 프론트엔드도 보기 쉬운 API 문서를 작성하도록 하겠습니다.
(사실 API문서를 일일이 작성하기가 귀찮아 스웨거를 사용해서 API문서를 만들었지만, 잘 쓰이지 못했던 것 같습니다.)
그리고, 프론트엔드에서 통신을 TEST할 때 백엔드에서 사용하는 POSTMAN을 사용했었는데 이 방식보다 스웨거를 더 잘 활용하거나 아니면 다른 방식을 찾아봐야 할 것 같다.
마지막으로 프로젝트 발표!!
이번 프로젝트에서 트러블 슈팅 부분을 내가 담당하기로 하였습니다.
하지만, 특별히 발표할 만한 내용이 없었습니다. 고심고심 한 끝에 '프로젝트를 진행하면서 요구사항이 변경되었을 때 어떠한 방식으로 대처를 했었냐?' 라는 주제로 발표를 진행했었습니다.
사실 객체지향적으로 잘 설계했었다면 발표에서 다룬 문제가 생기지 않았을 것이다!!
지금 다시 생각해보면, 객체지향적으로 설계를 더 잘했으면 문제가 생기지 않았을까 하는 의문도 있다!
자부심과 아쉬움이 남는 내 첫 프로젝트였다!!!
아래는 깃허브 주소와 프로젝트 발표 영상이다!
hwangdaesun/sleeper: 복덩이팀 백엔드 레포지토리 (github.com)
(1) 2023 ECONOVATION WINTER DEV. - YouTube
팀 발표 시간 : 35분 ~ 57분
백엔드 트러블 슈팅 발표 시간(내 발표 시간!!) : 41분 40초 ~ 48분 43초 + 50:26초 ~ 52:46초(앱 시연 영상)
앱 시연 영상에서는 개발에 대한 이야기인만큼 동아리원분들이 아닌 학생들이 지루해하실 수도 있었기 때문에!!
약간의 웃음을 유도하려고 노력했습니다!!
4L
Liked
- 협업을 할 때 상대방의 의견을 존중 및 공감하고, 만약 반대되는 의견을 제시한다면 그에 맞는 합리적인 근거를 제시할 것
- 이슈 발생시 슬랙, 모각공을 이용하여 상시 회의를 진행한 것
- springboot와 jpa에대한 지식이 부족했음에도 불구하고, 프로젝트를 잘 마무리한 것
- '객체지향의 사실과 오해'라는 책을 읽고 이번 프로젝트에 적용해본 것
- 구현에 만족하지 않고, 끊임없이 내 코드를 개선하려고 했던 것
- 최대한 객체지향적으로 짜려고 노력했던 것
Leared
- API 문서 작성의 필요성
- 테스트 코드의 중요성
- ZonedDateTime의 존재 및 써야하는 이유
- 날짜 타입과 문자열간의 타입 변환 방법 - DTO 사용에서 요청을 받을 시!
- JPA를 사용할 때 양방향 관계를 사용하기 보다 단방향 관계를 사용해라!(필요할 시에는 양방향 관계 사용)
- JPA를 사용하는 방법 - 매핑, JPQL, 각종 애노테이션 등
- 예외 처리
Lacked
- 데이터베이스에대한 지식 필요(JOIN 구문)
- 객체지향
- 로그인(인증)에대한 지식
- JAVA8 후반부 사용 미숙(람다와 스트림, 재네릭 등)
- git에대한 지식
Longed for
다음 학기의 최우선 목표는 객체지향에대해서 공부하고, JAVA 문법(후반부), 그리고 데이터베이스에 대한 기초적인 지식, 마지막으로 git을 공부하는 것이다.
물론, SpringBoot와 JPA에대한 학습도 꾸준히 진행해나가겠지만, 위의 지식을 먼저 공부를 하는 것이 더 옳다고 판단했다.
이상입니다~~
2023년도 화이팅!!!
올해에 3학년이 되었다...
3학년 전공과목 야무지게 한번 공부해보도록 하겠습니다!!
운영체제 and 데이터베이스
'프로젝트 > [Sleeper] 수면관리 어플리케이션' 카테고리의 다른 글
엔티티에 의존성 주입을 해야할까? (0) | 2023.03.08 |
---|---|
NoResultException : No entity found for query 에러 해결 (0) | 2023.01.18 |
에러 해결을 통해 공부하는 지연로딩과 프록시 (0) | 2023.01.18 |
Error creating bean with name 'handlerExceptionResolver' (0) | 2023.01.17 |
JdbcSQLIntegrityConstraintViolationException - @GeneratedValue의 GenerationType (0) | 2023.01.06 |