📝오늘 공부한 것
- 실전프로젝트 - '행동대장' 코드리팩토링(중복 코드 수정)
- 자바의 정석 스터디 - Chapter 07 '객체지향 프로그래밍2' ~ 추상클래스
- 기술면접 스터디
📌 코드리팩토링 - 중복된 코드 수정
⛔ 문제점 ①
- 기능별로 Exception클래스를 만들다 보니 같은 코드임에도 불구하고 이름만 다른 클래스가 여러 개 생겼다.
이렇게 비슷한 예외 처리 로직을 각각의 클래스에서 중복으로 구현하다 보니 코드의 가독성과 유지보수가 어렵다고 느껴졌다. - CustomExceptionHandler을 통해 기능별로 예외처리를 하였다.
기능별로 Exception클래스마다 handler를 만들어주었더니, Exception의 이름만 다른 중복된 코드들이 생겼다.
💯 해결
- CommonException을 만든 뒤 모든 Exception들을 통합하여 중복된 코드를 최소화하고 유지보수성을 향상시켰다.
- 기존에는 각 Exception클래스마다 별도의 Handler가 있어 중복 코드가 발생했다. 이 문제를 해결하기 위해 CommonException에 대한 Handler를 생성하였다. 이 Handler는 모든 CommonException에 대한 처리를 하게 한다.
- CommonException 클래스를 사용함으로써 예외 메시지와 상태코드의 관리가 용이해진다.
[폴더 구조]
[Exception 클래스]
[CustomExceptionHandler]
⛔ 문제점 ②
팀원들이 개별적으로 에러 코드를 작성하여 프로젝트에 추가하다 보니 에러 코드가 점점 늘어나면서 사용하려는 에러 코드가 이미 존재하는지 확인하지 못한 채 중복해서 만들게 되었다. 이로 인해 비슷한 내용의 에러 코드가 여러 개 존재하는 문제가 발생했다.
💯 해결
이런 상황을 해결하기 위해 중복된 내용의 에러 코드를 통합하기로 결정하였다.
가입되지 않은 계정과 해당 유저가 존재하지 않는다는 의미가 동일하다고 생각되었고, 이 코드를 사용하였던 부분을 수정하려고 보니 심지어 사용되지 않고 있는 코드였다!! 그래서 NO_USER 에러코드를 삭제하였다.
⛔ 문제점 ③
지금 handler에서는 ErrorResponse를 통해 에러메시지만을 보내고 있다.
불필요한 과정이 한 번 더 생기기 때문에 효율적이지 않아 보인다.
💯 해결
ErrorResponse를 없앴다.
이로 인해 중간 단계를 제거하고 예외처리로직을 더 간결하게 만들 수 있었다.
개선할 점💪🏻
오늘 리팩토링을 통해 코드 중복 문제를 해결하고, 예외 처리 로직을 효율적으로 관리할 수 있게 되었다. 이로 인해 코드의 가독성이 향상되었고, 유지보수성이 높아졌다.
또한, 예외 처리의 중요성과 공통 처리 패턴의 중요성을 배웠다. 앞으로의 프로젝트에서는 중복 코드를 최소화하고 일관된 예외 처리를 할 수 있도록 할 것이다!!
'TIL(Today I Learned)' 카테고리의 다른 글
TIL-230921('행동대장' 코드리팩토링 - 마이페이지) (0) | 2023.09.21 |
---|---|
TIL-230920(자바의정석 Chapter07 '객체지향 프로그래밍2') (0) | 2023.09.20 |
TIL-230918('행동대장' 코드리팩토링 - 폴더구조 변경) (0) | 2023.09.18 |
TIL-230916(자바의정석 Chapter06 '객체지향 프로그래밍1') (0) | 2023.09.16 |
TIL-230915(AWS S3와 EC2) (0) | 2023.09.15 |