반응형

현재 서버에 OS 기본 편집기가 nano로 설정 되어 있다. 하지만 개인적으로 vi편집기만 써왔던 나로써는 해당 파일은 vi 편집기로 실행하고 싶었다. 그래서 찾게 된 명령어는 다음과 같다.

vi편집기로 실행

export VISUAL=vi; crontab -e

nano편집기로 실행

export VISUAL=nano; crontab -e

 

728x90
반응형
SELECT 
        T.idx, T.path, T.hash_idx
      , (SELECT MAX(modify_time) FROM proc WHERE hash_idx = T.hash_idx) as hash_lmt
      , (SELECT MAX(modify_time) FROM proc WHERE hash_idx = T.hash_idx AND `path` = T.path) AS modify_time
 FROM (
      SELECT * FROM proc
   ) AS T
GROUP BY T.hash_idx, T.path 
ORDER BY hash_lmt DESC, modify_time DESC;

경로와 해쉬 기준으로 group by 할 경우 단순 조회시 시간 정보가 누락되어 조회가 되었습니다.

그래서 서브쿼리를 이용해서 해당 경로의 최신 시간 정보를 가져오도록 서브 쿼리를 작성하였습니다.

SELECT 
        T.idx, T.group_code, T.path, T.hash_idx
      , (SELECT MAX(modify_time) FROM proc WHERE hash_idx = T.hash_idx) as hash_lmt
      , (SELECT MAX(modify_time) FROM proc WHERE hash_idx = T.hash_idx AND `path` = T.path AND `group_code` = T.group_code) AS modify_time
 FROM (
      SELECT * FROM proc
   ) AS T
GROUP BY T.hash_idx, T.path, T.group_code
ORDER BY hash_lmt DESC, T.group_code desc, modify_time DESC;

해시, 경로, 그룹 기준으로 group by 할 경우도 동일하게 조건을 하나 더 추가해서 누락된 시간정보를 조회하도록 하였습니다.

728x90
반응형

toString을 항상 재정의하라

Object의 기본 toString 메서드가 우리가 작성한 클래스에 적합한 문자열을 반환하는 경우는 거의 없음

toString을 잘 구현한 클래스는 사용하기에 훨씬 즐겁고, 그 클래스를 사용한 시스템은 디버깅하기 쉬음

실전에서 toString은 그 객체가 가진 주요 정보 모두를 반환하는 게 좋음

포맷을 명시하든 아니든 여러분의 의도는 명확히 밝혀야 함

class sample(){

    @Override public String toString(){
        return String.format("%03d-%03d-%04d", areaCode, prefix, lineNum);
    }

}
class sample(){

    @Override public String toString(){
        ...
    }

}

포맷 명시 여부와 상관없이 toString이 반환한 값에 포함된 정보를 얻어올 수 있는 API를 제공하자
PhoneNumber 클래스는 지역 코드, 프리픽스, 가입자 번호용 접근자를 제공해야함
그렇지 않으면 이 정보가 필요한 프로그래머는 toString의 반환값을 파싱할 수 밖에 없음

정적 유틸리티 클래스, 대부분의 열거 타입 이미 toString을 제공함

하지만 하위 클래스들이 공유해야 할 문자열 표현이 있는 추상 클래스라면 toString을 재정의해줘야 함
대다수의 컬렉션 구현체는 추상 컬렉션 클래스들의 toString 메서드를 상속해 씀

구글의 AutoValue 프레임워크는 toString도 생성해줌

정리

모든 구체 클래스에서 Object의 toString을 재정의하자.

toString은 해당 객체에 관한 명확하고 유용한 정보를 읽기 좋은 형태로 반환해야함

728x90

+ Recent posts