[Java] Refactor: switch statement can be replaced with enhanced 'switch'
·
Development/Java
개선된 switch문을 사용하라는 경고이다. AS-ISswitch (unitCode) { case "SS": // 초 return count; case "MI": // 분 return count * 60; case "HH": // 시간 return count * 60 * 60; case "DD": // 일 return count * 24 * 60 * 60; case "WK": // 주 return count * 7 * 24 * 60 * 60; case "MM": // 월 (30일 기준) return count * 30 * 24 * 60 * 60; case "YY": // 년 (365일 기준) ..
[Java] Refactor: Non-constant string concatenation as argument to logging call
·
Development/Java
개요문득 눈에 들어온 코드 품질..warning의 개수를 줄이고 싶었다.그 중 눈에 들어오게 된 Non-constant string concatenation as argument to logging call. 의미문자열 연결 (+) 대신 인수로 상수를 전달하라는 경고다.상수가 아닌 문자열 연결은 로깅 메시지가 기록되지 않는 경우에도 런타임에 평가되므로 성능에 부정적인 영향을 미칠 수 있다고 한다. 로깅이 비활성화된 경우, 매개변수화된 로그 메시지를 사용하는 것이 좋다. AS-IStry { return CryptoUtil.makeHash((rawPswd + salt).getBytes(), "SHA-256");} catch (Exception e) { log.error("======= error..
[Java] Getter/Setter 지양과 trim 책임 분리 (feat.model 리팩토링)
·
Development/Java
로그인 정책 리팩토링: 모델 Setter 정리와 trim 책임 분리 담당 기능을 개발하려고 레거시 소스를 열어보았다. 코드가 너무 길어 눈에 들어오지 않았다. IDE에는 미사용으로 회색 처리된 코드들이 가득했고, 언제 적혔는지 모를 주석들이 즐비했다.주변 동료들은 "굴러가면 일단 둬.."라고 했지만, 나는 거슬려서 견딜 수가 없었다. 결국, 로그인 정책 모델을 중심으로 리팩토링을 감행했다. 요약문제: 로그인 정책 모델에서 문자열 공백 제거를 위한 trim 로직이 모든 Setter에 반복되고 있었다.원인: MyBatis는 문자열을 자동으로 정제하지 않는다. 모델 내부의 개별 trim 처리는 입력 경로에 따라 데이터 일관성을 해칠 수 있다.해결: 모델 내부의 trim 로직을 모두 제거하고, Spring의 ..
[Java] 자바 기본 정리하기
·
Development/Java
자바 기본 내용들을 복습하기 위해 정리하였습니다. 다른 언어와 유사한 부분은 생략하였습니다. (Python, PHP, C) 🧑🏻‍🏫 유튜브의 나도코딩님 '자바 코딩 무료 강의(기본편)' 9시간 영상을 참고하였습니다. 자바란? 자바는 썬 마이크로시스템즈의 제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 현재 웹 개발에서 가장 많이 사용되고 있으며, 안드로이드 애플리케이션 개발에도 사용된다. 사용 툴 인텔리제이 팁 psvm 또는 main을 입력하면 자동으로 public static void main () 이 자동으로 생성된다. sout 입력하면 System.out.println()이 만들어짐 한 줄 주석 단축키: Ctrl + / 여러 줄 주석 단축키: Ctrl + Shift + / ..