Public 131

java에서 property파일 쉽게 찾기 (ClassLoader )

java로 프로그래밍을 하다가 보면 몇가지 설정값을 외부에서 받아야 하는 경우가 있는데 이때 사용하는 것이 property 파일이다. jdk에도 이 프로퍼티 파일을 다룰 수 있는 클래스가 마련되어 있다. java.util.Properties 클래스가 그 용도이다. 이 클래스를 사용하려면 load라는 메소드를 통해서 프로퍼티 파일일 읽어 와야 하는데 이때 전달되는 인자는 InputStream이다. 문제는 이 InputStream을 전달하려면 FileInputStream을 만들어서 전달해야 하는데 이 FileInputStream을 생성하려면 그 프로퍼티 파일의 경로를 알아야 한다는 것이다. 프로퍼티 파일의 경로를 알아오는 방법에 대해서 몇가지 생각해 보자 1. 프로그램 코드에 상수로 프로터피 파일의 경로를 ..

Public/tip & tech 2019.05.16

log4j thread 별 로그찍기

테스트 결과 log4j.properties 파일외에 Thread 클래스 파일 생성자에서 다음과 같이 구현했더니 스레드에 부여한 ID별로 로그 파일이 정상적으로 생성됩니다. 참고하세요 m_logger = Logger.getLogger("SessionThread-" + strSessionID); String strLogFileName = "./log/SessionThread/" + strSessionID + ".log"; Properties prop = new Properties(); prop.setProperty("log4j.logger.SessionThread-" + strSessionID, "DEBUG, SessionThread"); prop.setProperty("log4j.appender.Sessi..

Public/tip & tech 2019.05.14

Thread Pool 언제 사용하는가?

미리 만들어두고 돌려막기로 사용하자!! 쓰레드풀은 동일하고 서로 독립적인 다수의 작업을 실행 할 때 가장 효과적이다.실행 시간이 오래 걸리는 작업과 금방 끝나는 작업을 섞어서 실행하도록 하면 풀의 크기가 굉장히 크지 않은 한 작업 실행을 방해하는 것과 비슷한 상황이 발생한다. 또한 크기게 제한되어 있는 쓰레드 풀에 다른 작업의 내용에 의존성을 갖고 있는 작업을 등록하면 데드락이 발생할 가능성이 높다. 다행스컯게도 일반적인 네트웍 기반의 서버 어플리케이션 (웹서버,메일서버,파일서버등)은 작업이 서로 동일하면서 독립적이어야 한다는 조건을 대부분 만족한다. - Java concurrency in practice 책 발췌 전설의 개발자들이 참여한 저 엄청난 책은 자신들이 참여한 java.util.concurre..

Public/tip & tech 2018.06.20

SecureCRT Color Scheme 설정

코딩을 하다보면 장시간 터미널을 봐야하는데 눈이 아프다.눈 아픈걸 떠나서 ANSI Color Scheme을 적용하면 파란색이 너무 어두워서 주석의 내용이 잘 안보인다. Color Scheme을 변경하고자 한다면 아래 설정대로 진행한다. SecureCRT 6.1.1 ▶ Global Options, Default Session 수정 Optioins > Global Options > General > Default Session > Edit Default Settings ▷ Session Options - Default > Terninal > Emulation- Terminal: VT100 -> Xterm 으로 변경 - Anis color 체크- Use color scheme 체크 ▷ Session Optio..

Public/tip & tech 2017.11.22

High Precision Event Timer - 그 것은 무엇인가??

High Precision Event Timer( HPET )은 인텔과 마이크로소프트가 멀티미디어 프로그램이나 시간에 민감한 프로그램의 요구를 반영하고자 서로 협력해 개발한 것이다. 원래 HPET 은 이름이 멀티미디어 타이머였으나 마이크로소프트의 DirectX 타이머와 혼란을 일으킬 것을 피하고자 이름을 바꾸었다. 실제 마이크로소프트의 테스트 엔지니어들은 HPET 초기 모델에 대해서 테스트를 진행하고 있었답니다. 그런데 이게 뜻밖으로 시스템 성능을 높여주고, 시스템의 정밀도를 높여주어 전체적으로 시스템 수행속도가 빨라졌답니다. 그것은 자신들의 OS인 Microsoft Windows에서 API를 호출함으로써 증명이 되었는데, 유저모드 함수인 QueryPerformanceCounter과 커널모드 함수인 Ke..

Public/tip & tech 2014.02.04

프로그래밍 성능 향상을 위한 C/C++ 튜닝

1 . 소프트웨어 최적화 소프트웨어 최적화란? - S/W가 보다 빠르게 실행되거나 자원(메모리)를 적게 사용하도록 만들기 위해서 S/W를 변경하는 것이다. 하드웨어와 S/W 성능 향상의 관계 - “무어의 법칙”에 따르면 하드웨어의 성능 약 2년마다 2배씩 증가한다. - 같은 하드웨어에서 실행하더라도 보다 빠르게 실행될 수 있는 소프트웨어가 필요하다. - 하드웨어 성능 향상에 비례해서 성능이 향상될 수 있도록 소프트웨어를 개발해야 한다 . → 확장성(scalability) 최적화의 레벨 1) 디자인 레벨 : 적절한 알고리즘의 선택이 S/W 성능에 가장 크게 영향을 준다. 2) 소스 코드 레벨 : 성능 저하를 일으키는 코딩 기법을 피하고, 컴파일러가 최적화하기 좋은 스타일의 코딩 기법을 사용한다. 3) 컴파..

Public/tip & tech 2013.06.04

kernel system call - do_brk()

DPDK 문서를 보다가 커널이 프로세스에게 메모리를 동적으로 할당하는 데 쓰이는 do_brk() 라는 System call 이 kernel 2.4 이하에서 취약점이 발견되어 이것을 이용하면 시스템의 root 를 획득할 수 있다고 하는 흥미로운 기사를 발견했다. 아래는 그 내용이다. ::: 버전 2.4.22 이하 리눅스 커널의 do_brk() 취약점 ::: 작성일 : 2003년 12월 6일 작성자 : iSEC Security Research (http://isec.pl) 번역 : 해커스쿨 (http://hackerschool.org) 이 문서는 지난 12월 초에 발견된 새로운 리눅스 커널 결함에 대하여 외국의 iSEC Security Research사에서 분석한 문서를 번역한 것입니다. 번역과 배포의 목적..

Public/tip & tech 2013.05.06