본문 바로가기

공부66

이펙티브 자바 4장 규칙13. 클래스와 멤버의 접근권한은 최소화하라 13장. 클래스와 멤버의 접근권한은 최소화하라. 잘 설계된 모듈의 경우, 구현 세부사항을 다른 모듈에 잘 감추어야 함. 즉, 정보은닉 및 캡슐화가 잘 되어야 함 이를 위한 원칙 1. 각 클래스와 멤버는 가능한 한 접근 불가능하게 만들어야 한다 2. 최소한의 public API를 설계하고 다른 모든 클래스, 인터페이스, 멤버는 API에서 제외할 것 3. Public static final 필드를 제외한 어떤 필드도 public 선언하지 말라. 4. Public static final 필드가 참조하는 객체는 변경불가능 객체로 만들라. 2021. 3. 14.
[Spring] JSP 한글깨짐 수정 다시금 스프링을 처음 배웠을 때의 기억을 되살리려 Spring 프로젝트를 혼자 구축해보고, 평소 일 할 때는 직접 구현을 잘 하지 않는 이런저런 기능들을 구현해보기로 했음. 최근 업무를 하며 대용량 엑셀 다운로드 기능을 구현할 일이 있었는데, 속도가 나지 않아 직접 다운로드 로직을 구현함. 이 경험을 계기삼아서 오늘부터 책도 읽으면서 간단한 실습을 조금씩 해보고자 함. 기존에 깔아놓은 톰캣을 추가했는데, 뭔가 파일이 꼬였는지 제대로 config 파일을 불러오지 않아, 재설치를 하였음. 프로젝트를 하나 추가하고, 서버를 시작한 후 생각없이 http://localhost:8080/ 를 쳤는데 404 에러가 떠, tomcat 서버의 module 탭에 내가 추가해준 프로젝트의 경로를 '/' 로 수정. home... 2021. 3. 13.
[JAVASCRIPT] Date 의 getMonth() 2021.03.11 급하게 기록. 자바스크립트의 Date 객체를 사용할 일이 있었다. 지정한 날짜보다 4달 이전의 날짜를 구해야 했는데, getMonth() 로 날짜를 구하니, 예상했던 날짜와 다르게 보였다. 예를들면, 나는 03월로 날짜를 생성했는데, 생성한 객체를 출력해보면 April을 출력하였다. 구글링을 해보니, getMonth() 함수의 경우, 0(zero) 베이스라, 0이 결국은 1월을 의미한다는 것을 알게 되었다. 따라서, 내가 원하고자 하는 결과를 얻기 위해서는 3이 아닌 2로 월을 설정해야한다는 사실을 알게 되었다. + javascript 의 prototype 에 대한 공부를 해서 정리할 예정. 2021. 3. 11.
[SQL] ROWNUM 적용한 페이징 쿼리 SELECT A.* FROM (SELET ROWNUM AS RNUM , EMPL.PERS_NO , INFO.KOR_NM , EMPL.STAFF_FG FROM ( SELECT PERS_NO , STAFF_FG FROM EMPL WHERE ROWNUM = '1' 사실, 대용량이라고 하기도 애매한 건수이지만, 어쨌든 성능이 안나오는 쿼리에 페이징을 적용해야 할 일이 생겼다. 대충 위와 같은 방식으로 쿼리를 짜 페이징 적용을 했다. ROWNUM 을 사용한 것 외에도, 안쪽 테이블에 직접 INFO 테이블을 LEFT 조인을 걸고 있었는데 이를 바깥으로 빼 페이징이 적용된 데이터들만 가지고 조인을 하도록 했다. 페이징 쿼리를 짜는 방법에 따라 속도가 조금씩 차이가 나는 것 같다. 기존 쿼리에는 안쪽 EMPL 테이블 .. 2021. 2. 20.
쿼리(LEAD) SELECT PERS_NO , A.OFORD_FR_DT , CASE WHEN LEAD(A.OFORD_FG_CD) OVER (ORDER BY A.PERS_NO, A.OFORD_SEQ) LIKE 'D%' THEN LEAD(A.OFORD_FR_DT) OVER (ORDER BY A.PERS_NO, A.OFORD_SEQ) ELSE A.OFORD_TO_DT END AS OFORD_TO_DT FROM TABLE A ORDER BY A.PERS_NO, A.OFORD_SEQ 오늘은 LEAD 구문을 썼다. 특정 컬럼을 기준으로 정렬하여 자기보다 바로 다음 행의 값을 가져올 수 있음. 2021. 2. 18.
이펙티브 자바 3장 규칙 12. Comparable 구현을 고려하라 Effective Java 3장 객체의 생성과 삭제 규칙 12. Comparable 구현을 고려하라 CompareTo compareTo 메서드는, Object 에 구현되지않았으며, Comparable 인터페이스에 있는 유일한 메소드 단순 동치검사 외 순서비교가 가능한 메서드임. 거의 모든 자바 플랫폼 라이브러리에 포함된 값 클래스는 해당 인터페이스를 구현한다고 보면 됌. compareTo 메서드 일반규약 일반적으로 해당 규약을 가지는데, 이는 규칙8의 equals 와 매우 유사함. sgn(x.compareTo(y) == -sgn(y.compareTo(x))) x.compareTo(y) > 0 && y.compareTo(z) > 0 이면, x.compareTo(z) > 0 x.compareTo(y) == .. 2021. 2. 17.