본문 바로가기
  • SDXL 1.0 + 한복 LoRA
  • SDXL 1.0 + 한복 LoRA

Development165

[디비 파기 | PMD] PositionLiteralsFirstInComparisons 외 4건 PositionLiteralsFirstInComparisons우선순위 : 3 Position literals first in comparisons, if the second argument is null then NullPointerExceptions can be avoided, they will just return false. equals()를 통한 비교를 할 때는 항상 상수 값을 앞에 두어야 한다. 만일 두번째 인자가 null인 경우에는 NullPointerException이 발생하지 않으며 단순히 false를 리턴하게 된다. 하지만 상수가 아닌 참조타입의 변수가 앞에 오게 되면 이 변수가 null인 경우 NullPointerException이 발생하게 된다. 샘플 코드12345class Foo {.. 2016. 4. 3.
[디비 파기 | PMD] FinalFieldCouldBeStatic 외 4건 FinalFieldCouldBeStatic우선순위 : 3 컴파일 타임에 상수가 할당되는 final 필드는 자동으로 static으로 변환된다. 따라서 이러한 필드들은 runtime시의 부하를 줄여주기 위해 static을 명시적으로 지정해주는 것이 좋다. 샘플 코드123public class Foo { public final int BAR = 42; // this could be static and save some space} OptimizableToArrayCall우선순위 : 3Calls to a collection’s toArray() method should specify target arrays sized to match the size of the collection. Initial arrays .. 2016. 3. 26.
[디비 파기 | PMD] ConstructorCallsOverridableMethod외 4건 ConstructorCallsOverridableMethod우선순위 : 1영어 실력이 그지같아서 번역이 힘드네요…원문 적고 설명은 샘플 밑에 부연 설명으로 대신하겠습니다.마지막 줄만 설명하자면 일반적인 제어의 흐름을 따르는 메소드 호출을 하라는 것인데 예를들어생성자인 Foo()에서 public 메소드인 buz()를 호출하는 private 메소드 bar()를 호출하는 것과 같이 비비 꼬아놓으면문제의 소지가 있다는 말입니다. 원문Calling overridable methods during construction poses a risk of invoking methods on an incompletely constructed object and can be difficult to debug. It may l.. 2016. 3. 19.
[디비 파기 | PMD] NullAssignment 외 3건 NullAssignment우선순위 : 3코드 중간에서 변수에 null을 할당하는 것은 좋지 않은 형태이다.이런 형태의 할당은 종종 개발자들이 프로그램의 흐름을 이해하지 못하고 코딩을 하고 있다는 표시가 될 수 있다.주의 : 이런 형태의 경우가 드물게는 garbage collectoin에 도움이 되는 경우도 있다. (물론 잘 이해하고 사용했을경우) 이렇게 의도하고 사용한 경우에는 이 룰을 무시해도 좋다. 샘플코드1234567public void bar() { Object x = null; // this is OK x = new Object(); // big, complex piece of code here x = null; // this is not required // big, complex piece .. 2016. 3. 13.
[디비 파기 | PMD] AvoidBranchingStatementAsLastInLoop외 3건 AvoidBranchingStatementAsLastInLoop우선순위 : 2루프의 가장 마지막 위치에서 분기문을 사용하는 경우 버그가 발생할 가능성이 높다.사용한 방법이 버그가 아닌지 확인하거나 다른 접근 방법을 사용해야 한다. 샘플 코드1234567891011121314 // unusual use of branching statement in a loopfor (int i = 0; i 2016. 3. 5.
[Spring] 작은 사이트 구축 과정에서 발생한 소소한 에러들... 지난 번 잠시 언급한 적이 있지만 현재 Spring 3.1.1 + MyBatis + jQuery + Bootstrap을 이용하여업무에 사용할 작은 사이트를 만들고 있다. 기업체의 내부망에서 작업하는 중이라 소스를 공개하지 못하는 것이 못내 아쉽다. 사실 Spring을 다시 만져보는 것이 거의 7년만이라 약간의 낯설음은 있지만 그 낯설음을 상쇄할만한변화가 있었기에 어렵지 않게 다시 시작해 볼 수 있었다. 그래도 어디 세상 일이 밥 달라면 밥 나오고 물 달라면 물 나오던가?이래 저래 소소한 에러들을 자주 접하게 된다. 그리고 언제나 그렇듯 아무 것도 아닌 문제로반나절을 그냥 날리기도 하고... 어차피 전문적인 내용이야 볼 수 있는 곳이 천지니 나는 내가 겪은 에러나 정리하련다. 1. Mapped Statem.. 2016. 3. 4.
[Spring] 웹 서비스 구현 시 사용한 기술에 대한 느낌들 먼저 이 글은 기술적인 분석이 아닌 학습 과정에서 느낀 개인적인 느낌을 적은 글임을 밝힙니다...^^ 별로 바쁘지도 않은 SM 업무를 하면서도 어찌 그리 시간을 내지 못했는지...거의 2년에 가까운 시간 동안 앱 개발도 못하고 실습을 동반한 학습을 진행하지도 못했다.이러다가 바보 되는 것이 아닌가 싶어 마침 급조된 몇몇 업무용 시스템을 통합하여 조금은 쓸모있게 만들 겸Spring기반으로 재구축하는 작업을 시작하였다. 얼마전 공부하던 Springboot + JPA + AngularJS + Bootstrap으로 진행하려 했으나 대부분의 기업 환경이 그렇듯이최신 기술을 적용할 만한 상태가 아니기에 Spring 3.1.1 + MyBatis + jQuery + Bootstrap으로 진행할 수밖에 없었다. Spri.. 2016. 3. 1.
[디비 파기 | PMD] CheckResultSet CheckResultSet우선순위 : 3Database 사용과 관련하여 ResultSet클래스의 탐색 메소드(next, previous, first, last)를 사용하는 경우반드시 그 리턴 값을 확인하여야 한다. 만일 이 메소드들이 false를 리턴하는 경우 적절한 처리를 해주어야 한다. 샘플 코드11234Statement stat = conn.createStatement();ResultSet rst = stat.executeQuery("SELECT name FROM person");rst.next(); // 나쁜 예. 만일 next()의 결과가 false인 경우에는 어떻게 처리될 것인가?String firstName = rst.getString(1); 샘플 코드212345678Statement sta.. 2016. 2. 28.
[디비 파기 | PMD] BrokenNullCheck BrokenNullCheck우선순위 : 2null 체크가 잘못되어 NullPointerException이 발생하는 경우로 논리 연산자인 &&나 ||를 잘못 사용하여 발생하게 된다. 샘플 코드1234567891011public String bar(String string) { // ||연산자의 특성상 string이 null인경우 string != null은 거짓이 되고 || 연산자는 뒤의 문장도 실행하게 된다. // string이 null이므로 string.equals("")는 NullPointerException을 발생시킨다. if (string!=null || !string.equals("")) return string; // ||연산자의 특성상 string이 null인경우 string == null은.. 2016. 2. 28.
반응형