클린코드 15장 - 17장 궁금증 자문자답

지송·2023년 11월 16일
0

클린코드

목록 보기
8/8

📚 클린코드 15장 JUnit 들여다 보기 16장 SerialDate 리팩터링 17장 냄새와 휴리스틱 을 읽고 생긴 궁금증을 정리해 보았습니다


< 느낀 점 >

먼저! 드디어 우리 스터디가 대략 8주간의 활동을 통해 종료되었다
끝까지 열심히 해준 스터디원들에게 감사하다 ㅎㅎ
뒤쪽으로 와서는 내용도 아주 와닿지는 않고 또 일정이 바빠져서 엄청 급하게 읽고 글을 쓸 때도 많았는데
어찌 됐든 코드 작성을 하며 클린코드를 읽으니
바로바로 읽었던 내용을 상기하며 코드를 작성할 수 있어서 좋았다
어쩐지 코드가 더 깔끔하게 작성되는 것 같기도 하고

오늘은 아주 깔끔하게 마무리를 한 듯한 단원이었다
15장과 16장의 경우 배웠던 내용을 바탕으로 차례대로 상기하며 적용하는 듯한 느낌의 장이었고 17장은 지금껏 배운 내용을 총정리하는 장이었다
가벼운 마음으로 쓱쓱 읽으며 이런 식으로 적용하는구나 이해했다
따라서!
오늘의 글도 상당히 클린코드는 이용만 당한... 일주일동안 내가 코드 공부를 하며 궁금했던 걸 돌아보는 글이 될 예정이다 ㅎㅎ


1. 그래서 ENUM은 왜 쓰나요?

자바에서 클린코드를 작성하라 하면 바로 나오는 enum class가 있다
근데 난... 도무지 왜 쓰는지 어떻게 쓰는지 모르겠어서 간단하게 정리해 보겠다

https://velog.io/@mooh2jj/Java-Enum%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0

(1) 사용 이유

  • 타입 안정성
  • 가독성
  • 유지보수 용이성
  • 상수니까 성능을 위해
  • 직렬화: 싱글톤 보장

사용 이유를 작성하다 보니 내가 헷갈린 이유는 사실 사용 방법을 제대로 몰라서가 아닐까? 라는 생각이 들어 사용 방법을 익혀보고자 한다

(2) 사용 방법

https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%97%B4%EA%B1%B0%ED%98%95Enum-%ED%83%80%EC%9E%85-%EB%AC%B8%EB%B2%95-%ED%99%9C%EC%9A%A9-%EC%A0%95%EB%A6%AC

https://techblog.woowahan.com/2527/

해당 글로 대체함...

잘 익혀서 더 멋진 방법으로 사용해 보도록 하겠습니다....


2. 테스트 어떻게 해야 잘했다고 소문이 날까

최근 소프트웨어 테스팅 이론 강의를 듣기도 했고
테스트 코드를 열심히 작성하기도 했는데
어느 날 테스트까지 거친 코드가 이상해서 확인해 보니
애초에 테스트 코드까지 오류를 못 잡는다는 것을 알고 말았다

사실 소프트웨어 테스팅 이론 강의에서 들은 내용을 온전히 적용하기는 막막하고
해당 지식을 바탕으로 기본 케이스와 코너 케이스를 추려서 작성한 것이었는데
테스트 케이스를 잘못 작성했나! 라는 생각이 들어
어떻게 하면 잘 작성할지 여기저기 참고해 보겠다

https://techblog.woowahan.com/8942/

(1) 동작하는 코드를 기반으로 사용자 시나리오 작성 후 테스트 코드 작성

// 마감일 / 마감일 수정 표기
1. 내부 사용자일 때
    1-1. 마감일이 있을 때
        1-1-1. 역분개를 했을 때
            - DatePicker를 보여준다.
            - 마감일을 수정할 수 있다.
        1-1-2. 역분개를 하지 않았을 때
            - 마감일을 텍스트로 보여준다.
    1-2. 마감일이 없을 때
        - '-'를 텍스트로 보여준다.
2. 외부 사용자일 때
    2-1. 마감일이 있을 때
        - 마감일을 텍스트로 보여준다.
    2-2. 마감일 없을 때
        - '-'를 텍스트로 보여준다.

// (이력 보기) 표기
1. 내부 사용자일 때
    1-1. 변경이력이 있을 때
        - '(이력 보기)'를 보여준다.
    1-2. 변경이력이 없을 때
        - 아무것도 보여주지 않는다.
2. 외부 사용자일 때
    - 아무것도 보여주지 않는다.

이런 식으로 분기를 하여 모든 케이스를 테스트한다
이때 조건문이 MECE(mutually exclusive and collectively exhaustive. 상호배제와 전체포괄. 즉 중복이 없고, 누락이 없다.)한지 검증하기!

(2) 현업에서 테스트를 진행한 일지

https://techblog.woowahan.com/2572/

이건 자료들을 찾다 보니 재미있어서 공유함

바빠서 이만 마무리하고 추후 보충할 수도...

profile
💻 늘 공부하고 발전하는 개발자

0개의 댓글