본문 바로가기

home

(268)
docker log 파일 확인 도커 로그를 "docker logs -f"명령어를 통해서 실시간으로 확인할 수 있지만 오래된 로그를 "docker logs -f"로 확인하기에는 무리가 있습니다. 도커에서 컨테이너의 로그를 따로 저장하고 있는데 "docker inspect --format='{{.LogPath}}' 컨테이너명"으로 로그 파일 위치를 조회할 수 있습니다. 예시로 tomcat 컨테이너를 조회했는데 /var/lib/docker/container/ 디렉토리 밑에 있는 것을 확인할 수 있습니다. tomcat 컨테이너의 로그 파일을 vi로 조회하면 위와 같이 기존 로그를 확인할 수 있습니다. 오래된 로그를 확인하거나 로그 파일을 백업해야 되는 경우 참고하면 좋을 거 같습니다.
개인정보 수집 유효기간 프로그래머스에서 개인정보 수집 유효기간 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제에 대한 설명은 위의 링크에서 확인하시면 됩니다. 문제에서 날짜 형식을 YYYY.MM.DD으로 받기 때문에 LocalDate.parse 메소드 리턴날짜 형식을 수정합니다.(30, 38라인) foreach문 써도 되는데 문제에서 리턴값으로 개인정보의 번호를 리턴을 요구했기 때문에 for문을 사용했습니다.(32라인) 개인 정보 배열과 약..
Domain 객체 메모리 사용자 요청 정보를 받거나 DB 데이터 조회할 때 Domain 객체를 사용하지 않고 Map을 사용하는 것은 메모리 효율 측면에서 봤을 때 좋지 않습니다. Map을 사용하면 메모리 대략 5MB 사용하는 것을 확인할 수 있습니다. Domain 객체를 사용하면 대략 4MB 사용하는 것을 확인할 수 있습니다. 앞의 Map과 비교하면 1MB 정도 차이가 있습니다. 따라서 Map 대신에 Domain 객체를 사용하는 것이 메모리 효율 측면에서 좋고 유지보수 업무를 파악할 때도 유리하기 때문에 Domain 객체 사용하는 것을 권장합니다.
Java Builder 패턴 생성자를 통해 객체를 생성할 때 필드가 많으면 주로 점층적 생성자 패턴을 사용합니다. 이렇게 사용하면 필드 개수에 따라 생성자를 계속 만들어줘야 되는 불편함이 있습니다. 이러한 단점을 Builder 패턴을 통해 해결할 수 있습니다. 위의 예제를 보면 첫번째 p 객체는 모든 필드를 초기화했고 두번째 p2 객체는 name과 age만 초기화했습니다. Builder 패턴을 사용하면 원하는 필드들만 초기화해서 객체를 생성할 수 있습니다.
네이버 메일 SMTP 자바로 네이버 email 보내는 방법은 간단합니다. 먼저 네이버 메일 SMTP 설정을 수정해야 합니다. SMTP 설정을 하는 계정은 송신하는 이메일입니다. 수신 이메일이 아닙니다. 추가로 현재 서버에서 네이버 SMTP 서버에 접속이 가능한지 확인합니다. 이메일을 보내는 라이브러리는 여러 가지가 있지만 javax.mail을 사용하겠습니다. 예제 코드를 설명하자면 49~54라인은 자바에서 네이버 SMTP에 접속 정보(Properties)를 설정하고 있습니다. 53~54라인에 ssl 설정 빠지면 MessagingException 예외가 발생합니다. 56~61라인은 SMTP 세션을 얻고 있는데 이 세션은 송신하는 이메일의 세션이라서 송신 이메일 계정의 아이디와 비밀번호를 통해 인증 정보를 얻고 있습니다.(59라..
Array List min max 자바에서 배열이나 리스트 최소값과 최대값을 루프를 통해 구하는 방법보다 더 쉬운 방법이 있습니다. 위의 예제 코드는 정수 타입의 배열과 리스트의 최소값과 최대값을 구하는 코드로 배열인 경우 Arrays, 리스트인 경우 Collections를 사용하여 각각 최소값과 최대값을 구하고 있습니다. 루프를 사용해서 구하는 코드보다 훨씬 간결하기 때문에 이 방법을 사용하는 것이 좋을 것 같습니다.
Java 파일 경로 조회 자바에서 파일을 읽을 때 일반적으로 파일경로에 현재 디렉토리(./)나 상위 디렉토리(../)를 포함하지 않습니다. 그래도 혹시나 포함하는 경우 파일 위치를 getPath나 getAbsolutePath를 통해 확인하면 현재 디렉토리와 상위 디렉토리가 포함돼서 조회됩니다. 이럴 때 getCanonicalPath를 사용하면 현재 디렉토리와 상위 디렉토리가 포함되지 않습니다. 위의 예제 코드를 보면 현재 디렉토리와 상위 디렉토리가 포함되는 파일 위치를 조회하면 그대로 포함되는 것을 확인할 수 있습니다.(9~14라인) 하지만 현재 디렉토리와 상위 디렉토리가 포함되지 않는 파일 위치를 조회하면 포함되지 않는 것을 확인할 수 있습니다.(16~20라인) 정리하면 getPath는 현재 디렉토리를 기준으로 파일 위치를 조..
firefox json response xml 인식 firefox 브라우저에서 json 데이터를 응답받을 때 response content 타입을 json으로 안 하면 xml로 인식됩니다. 따라서 json을 요청할 때 response content 타입을 json으로 설정해야 합니다. 수정 전에 response content 타입을 설정하지 않았는데 수정 후에는 response content 타입을 json으로 수정했습니다. response content 타입을 수정하고 다시 요청하면 json으로 인식되는 것을 확인할 수 있습니다. json을 처리하는데 문제는 없지만 알아두면 좋을 거 같습니다. 아니면 firefox에 JSONView 플러그인을 설치해서 해결하는 경우도 있습니다.