22년 05월 4주차 회고록

2022. 5. 30. 01:13회고록

22년 05월 4주차 회고록

오랜만의 회고록...

  • 일단 정말 오랜만에 회고록을 작성하는 것 같다. 입사를 하고 게을러서 써야지...써야지.. 생각만 되풀이하고 정작 입사하고 6개월이 넘어가는 시점에 끄적인다..
    2022-05-30-00-44-24.png|300

HotFix는 무서워

  • 이번 스프린트(우리 부서는 기능 구현을 1주일 단위로 구현(?) 한다. → 기획된 기능을 일주일 잡는다고 생각하면 된다...) 에서 엑셀을 사용하여 Bulk Insert 기능을 구현을 하게 되었다.
  • 어디보자... 🤔 기존 단건 등록 로직을 참고하여 Bulk 기능을 하면 되겠지? 하면서 기존 단건 등록을 분석하고 있었다. 운영팀에서 급하게 해야해서 수요일까지 해줄 수 있는 요구사항이 들어왔다..네??? 오늘 월요일인데요??😇
    2022-05-30-00-53-00.png|200
  • 그렇게 야근을 하게되면서 기존 코드를 빠르게 분석하고 코드를 작성했지만 중복등록... 및 exception 방어는 모두 집어쳐!! 등록만 일단 되게해 😱 일단 등록에 대한 Repository 테스트 및 통합테스트를 작성한 뒤 hotFix 브랜치를 만들고 master에 반영시켜!!!

자신없는 코드는 항상 말썽꾸러기

  • 테스트코드와 방어코드를 허술하게 작성하다보니 이번 코드에는 자신이 없었다. 일단 기능구현하고 다음 스프린트에 리팩터링을 진행하기로 하였지만 역시나 배포를 진행한 뒤에 아니나 다를까 이거 안되는데요??? 라는 cs가 들어왔고,,, 다시 원인 분석을 해보니 DTO쪽에 valid 어노테이션 을 붙혀놓았던 @NotBlank 가 Integer 타입에 작성되있었다..

@NotBlank는 String 만 받을 수가 있다.
@NotNull 에서는 여러 타입이 들어갈 수 있지만 @NotEmpty@NotBlank 에서는 그렇지 않다.
int, long 등 수에 대한 valid 체크 고민이 있다면 @DecimalMax, @DecimalMin, @Max, @Min, @Positive, @PositiveOrZero, @Negative, @NegativeOrZero,@Digits,@Size 등 여러 어노테이션들이 있다.
시간의 경우에는 @Future, @FutureOrPresent,@Past,@PastOrPresent 들이 있다.
그 외에 @Email,@Pattern 등도 있다는 것을 알아두도록 하자.🥹🥹🥹🥹

2022-05-30-01-02-26.png

마지막으로..

  • 급한 기능이어서 스스로 위안을 삼으면서 기능구현을 했지만 이번에 많이 부족하다는 것을 느꼈다.. ㅠㅠ 다시 RollBack을 진행하고 다시 배포를 진행하면서 CTO님과 FE팀의 Jenna와 같이 야근... 허허 정말 미안했다.. ㅠㅠㅠ (다시 한번 죄송합니다..🥲)
  • 어떠한 상황에서도 방어 테스트와 코드를 잘 작성해야겠다고 느꼈고, 자기와 타협하지 않는 개발자가 되어야겠다!! 그리고 더욱 더 개발자 역량을 쌓아야겠다.
  • 또한 위에서의 @Valid 어노테이션도 그냥 흩날리듯이 막 가져다 붙였다... doc 문서를 잘 챙겨 보면서 어떠한 상황, 적절한 상황인지 알고 쓰는 개발자가 되자!! 명심...!

Ps...

  • 이 글을 쓰면서 해당 기능을 리팩터링 진행중입니다.