210518_TIL
1. Facts(사실, 객관)
- 클린코드 3장 읽기
- 회사에서 퍼블리셔와 일하는 방법 고민
- 회사 프로젝트 로그 수정하기
- try...catch에서 log 설정법
- 예외 처리하는 전략 공부하기
- 회사 String 관련 static method 리팩토링
2. Feelings(느낌, 주관)
- 출근 길에 클린코드 3장을 읽었습니다. 컨디션만 괜찮다면 유투브를 보는것보다 훨씬 유익합니다. 이펙티브 자바, 그동안 코드숨에서 배웠던 내용들과 검색하면서 습득한 지식들과 상당부분 겹쳐서 이해가 어렵지 않았습니다.
- 회사에서 오류상황에 대한 로그를 좀 더 잘 관리할 수는 없을까 고민했습니다. 그렇게 try... catch에서 catch에 로그를 찍기 위해 확인했습니다. try...catch를 보다보니 자연스레 예외를 처리하는 방법에 대해서 공부가 필요하다고 느껴서 내용을 찾아봤습니다. 이전에는 봐도 이해가 되지 않았던 부분들이 많았는데 이번에는 굉장히 머리에 쏙쏙 들어와서 신났습니다.
- StringUtil.java에서 각종 문자열 치환이나 유틸기능들을 리팩터링 했습니다. 특히 무분별한 if/else 사용과 1개의 return으로 이루어진 함수들을 최대한 짧게 쪼개 break로 넘기고 else를 제거했습니다. 약 1000줄이 넘는 목록이 있었는데, 하나씩 코드를 수정하면서 클린코드를 만들기 위해 노력했습니다.
3. Findings (배운 점)
- 항상 함수는 하나의 기능을 하도록 노력합니다. 여러가지 기능이 있다면 필히 메서드를 분리시킵니다
- 각 메서드의 인자는 최소한의 갯수를 유지하기 위해서 노력합니다.
- switch 문을 제거하기, 함수 내에서 추상화 수준을 맞추기는 좀 더 고민과 예시 공부가 필요한 부분입니다.
- throws를 통해 예외를 회피할 수 있습니다. 그렇다면, 이 예외를 호출한 쪽에서 예외를 처리해야 합니다. checkedException의 경우 꼭 써주어야하지만, uncheckedException의 경우 써주는 것은 옵션입니다. checkException의 경우 무조건 예외처리를 해야합니다. 그렇지 않으면 컴파일 오류가 납니다. RuntimeException 오류가 날 수 있는 상황이라면 꼭 throws를 쓰지 않아도 되지만, 경우에 따라 개발자에게 알려주기 위해 적는 것이 필요합니다.
- try...catch에서 throw new Exception() 전략을 통해 다시 예외를 전환할 수 있습니다. 웹에서는 보통 RuntimeException에 관한 custom Exception을 만들어서 반환합니다.
- try..catch..finally를 통해서 예외복구를 할 수 있습니다. 이 경우, 예외가 발생했지만 로그등의 정보를 알리고나서 정상적으로 다음 흐름으로 진행합니다. 예를 들어, parse가 잘못되었을 경우 단순히 ""을 반환할 수 있습니다. 또한 비밀번호가 틀렸지만 최대 입력 가능 횟수에 도달하지 않을 경우 정상 진행하여 비밀번호를 다시 입력할 수 있습니다.
4. Affirmation (자기 선언)
- 나는, 강의와 프로젝트 뿐만 아니라 책으로도 부지런히 코딩을 공부하는 개발자다
- 나는, 항상 클린 코드를 만들기 위해서 고민하는 개발자이다
- 나는, 이해가 되지 않는 개념은 주기적으로 다시 공부하며 노력하는 사람이다
5. Future Action ("구체적" 행동 계획)
- 클린코드 정리하기
- jpa 심화 강의 듣기
- html 프런트 개발