티스토리 뷰
코드 리뷰를 받으면서 세부적인 개선을 요청받은 부분은 예외처리였다.
아래 항목중 1번을 제외한 항목들은 모두 처음 듣는 권장 사항들이었다.
이번에 정리하면서 기억하고 다음 프로젝트에는 꼭 적용해야겠다.
예외처리에 관한 권장사항은 다음과 같았다.
1. try~catch문 중에서 Exception으로 예외처리하지 않고, 세분화하기
Exception으로 처리하게 되면 Findbugs나 PMD에서 에러가 나서, 이 부분에 관해서는 인지하고 있었다.
Exception 처리를 지우고 나면 처리해야하는 예외에 대해 이클립스 자동완성 툴이 친절하게 가르쳐준다.
자동완성 툴을 뗄수 있을 순간을 기대해보며...처리해야 하는 예외에 대해 조금씩 공부해야겠다.
2. catch 안 블럭은 비우지 않기
보통 비우거나 System.out.println()처리를 했었다... 비우지 않기!! 명심해야겠다.
3. 개발서버에서는 e.printstacktrace()이나 System.out.println(e.toString())으로 처리해도 되지만, 운영서버로 코드 배포할때는 시스템출력이 아니라 log에 남기기
예외를 시스템에 출력해버리면 쉽게 읽을 수 있다.
그러면 출력된 예외를 모으고 모아서 프로그램의 약점을 알게 된다.
사내에서만 접근할 수 있는 개발서버는 상관이 없지만 공개되는 운영서버에서는 예외를 log로 처리해야한다.
4. 관리자 프로그램 log 페이지
코드리뷰에서 프로젝트에서 관리자부분에 log를 확인하는 부분이 없냐고 물으셔서 당황했었다;;
어떤 계정 혹은 user가 어떠한 활동을 했는지 확인 할 수 있어야한다.
내가 개발한 프로젝트 log에는 ip,시각,파일명이 출력이 된다. 특정 ip가 운영서버 시각기준으로 언제 어떤 메소드 혹은 파일에 접근하는 지만 출력되는 것이다.
이 부분에 관해서 ip가 어떤 user계정인지, 어떤 활동(DB접근 등)을 하는 지 더 구체적으로 log에 출력되어야하고, 이러한 사실들은 관리자 프로그램에서 쉽게 볼수 있어야한다.
5. 자원해제는 finally안에서
필요할 때 혹은 생각날 때 불특정 위치에 자원해제를 했었다.
이 부분에 관해 finally안에서 자원해제를 하는 것은 권장한다.
'Language > java' 카테고리의 다른 글
[OCPJP]Java SE 8 Programmer II Certification Exam | 1Z0-809 덤프/DUMP 문제#1~20 (0) | 2021.03.01 |
---|---|
[OCAJP/OCPJP]Java SE 8 Programmer I, II Certification Exam | 1Z0-808 / 1Z0-809 시 (75) | 2020.08.19 |
java.io.BufferedOutputStream (0) | 2018.03.11 |
팩토리얼 (0) | 2018.03.11 |
String java.lang.String.substring(int beginIndex, int endIndex) (0) | 2018.03.08 |
- Total
- Today
- Yesterday
- 캐시삭제
- 백준
- 백준퇴사
- script버전
- 백준14501
- 개발중캐시삭제
- 프론트엔드
- C++
- c#
- C# java 차이점
- html꿀팁
- html
- 런타임에러
- 퇴사
- 프론트엔드개발자
- boj
- 선언적트랜잭션 #noRollbackFor #@Transactional
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |