[Jdbc] DriverPropertyInfo를 이용해 현재 드라이버 연결의 파라미터 값 확인하기 jdbc에서 useAffectedRows 파라미터를 테스트해보던 중에 현재 jdbc 드라이버에 제대로 적용이 되어있는 것인지 확인이 필요했는데, java.sql.DriverPropertyInfo 를 이용해서 확인할 수 있었다. 아래와 같이 테스트 소스를 작성하고 파라미터 설정을 바꿔가면서 확인해보니 제대로 동작하는 것을 확인할 수 있었다. 출력 부분은 필요에따라 변형하면될 것 같고 어플리케이션 개발 단계에서는 DEBUG 모드로 […]
[httpd] http/2 설정
[httpd] http/2 설정 http/2 http/1.x는 요청 하나당 하나의 응답을 제공한다. 하나의 페이지에 모든 리소스들을 때려넣었다면 단 한번의 요청으로 웹페이지를 렌더링할 수 있겠지만 다양한 목적이나 제약에 의해서 대부분의 웹페이지들은 리소스들을 분리시킨다. 스타일시트나 자바스크립트 등의 정적인 리소스들은 캐시해두고 재사용하면 통신 비용이 절감될 것이고 미디어파일들은 대부분 다이나믹이기때문에 (미디어도 코드로 넣을 수는 있지만) 분리하는게 편리하기 때문이 아닐까 이런 상황에서 […]
[windows] Lenovo Thinkpad X390
Thinkpad X390 구입 배경 이직하게 되면서 전 직장에서 지급받았던 노트북은 반납했고 보안환경에서 근무하는 지금, 회사에서 지급된 맥북은 집으로 가져올 수가 없어서 새로운 노트북이 필요하게 되었는데 회사에서 사용하는 환경과 연속성(?) 이 있으면 좋을 것 같아 맥북도 고려했지만, 대한민국에서는 Windows 환경이 꼭 필요한 경우가 아직 있어 메인 컴퓨터를 맥으로 하기에는 불편함이 많을 것도 같고 필요한 사양을 맞추는 […]
[Oracle] Diagnosability in Jdbc, driver에서 사용되는 SQL 로깅
[Oracle] Diagnosability in Jdbc, driver에서 사용되는 SQL 로깅 Oracle jdbc driver (ojdbc) 중에서 _g 로 끝나는 라이브러리가 있는데 이걸 이용하면 driver 를 통해서 쿼리하는 SQL 을 모두 추적할 수가 있다. Oracle Test DB docker hub 에 간단하게 오라클 데이터베이스를 테스트해볼 수 있는 이미지가 있어 이걸 이용했다. 등록한 사용자랑 DB 스키마를 보니 owncloud 에서 repository DB […]
[StreamSets] Data Collector 및 Oracle bulkload 설치
시스템 환경 설정 StreamSets는 openfile 제한을 32,768 이상으로 설정해야한다. sudo vim /Library/LaunchDaemons/limit.maxfiles.plist 파일을 열어 아래 내용 입력 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>limit.maxfiles</string> <key>ProgramArguments</key> <array> <string>launchctl</string> <string>limit</string> <string>maxfiles</string> <string>32768</string> <string>32768</string> </array> <key>RunAtLoad</key> <true/> <key>ServiceIPC</key> <false/> </dict> </plist> 파일 저장 후, 다음 명령으로 적용 sudo launchctl unload […]
[Nextcloud] PHP OPcache 및 imagick 설정
Nextcloud 관리 화면에서 다음과 같은 경고문이 나왔었는데 크게 신경쓰지 않고 있다가 PHP OPcache모듈이 정상적으로 로드되지 않았습니다. 더 나은 성능을 위해 PHP 설치에 위 기능을 로드하는것을 권장합니다. (The PHP OPcache module is not loaded.) This instance is missing some recommended PHP modules. For improved performance and better compatibility it is highly recommended to install them. imagick […]
[SQL] mysql data sample
데이터 파이프라인, 마트 개발 업무를 맡게 되면서 SQL 역량에 대한 필요성을 많이 느낀다. 데이터베이스 엔지니어로 일했던 이전까지의 경력에서는 DB 인스턴스 레벨에서 시스템 구축에 눈높이가 맞춰져있었다. DB 성능을 개선하는 일을 많이 해보기는 했지만 인스턴스 리포트의 몇가지 지표를 보고 적절한 설정을 하는 일들 위주였고, SQL은 이미 짜여진 쿼리를 간단히 변형해보는 정도이거나 시스템 카탈로그를 뒤지는 정도의 쿼리 밖에 […]
[Docker] 실행 중인 Container에 포트 추가하기
[Docker] 실행 중인 Container에 포트 추가하기 cloudera/quickstart 도커 이미지를 이용해서 로컬 테스트를 하던 중 drill 을 추가로 설치했는데 drill 웹 서비스 포트는 기존에 포트 맵핑을 해두지 않았기 때문에 새롭게 추가해야만 했다. 이미 컨테이너로 실행 중인 상태에서 동적으로 포트 포워딩 룰을 추가해줄 수 없고 실행중인 컨테이너를 종료하고 현재 상태를 이미지로 만든 뒤, 해당 이미지로 다시 실행해야한다고 […]
[Python] SSL: CERTIFICATE_VERIFY_FAILED 문제 우회
인터넷 연결이 자유롭지 않은 사설망에서 이런 문제가 종종 발생할 수 있는데 이런 경우 인증서 검증 단계를 무시해주는 것으로 우회(?)할 수 있다. 물론 신뢰받지 못한 호스트에 https 연결을 하는 것은 보안 측면에서 위험할 수 있다는 사실은 알고있어야 한다. pip 을 이용해서 패키지를 설치할 때 다음과 같은 문제가 발생한다면 Collecting encodings Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) […]
[ElasticSearch] 검색엔진 만들기 4 – Flask 웹서비스
[ElasticSearch] 검색엔진 만들기 4 – Flask 웹서비스 elasticsearch에 필요한 데이터는 다 색인해뒀기 때문에 검색엔진 자체는 다 만들어졌고 서비스를 위해서 적당한 UI 만 있으면 될 것 같다. 기존 운영하는 웹페이지에 이식하고자 하는 경우에는 작게 모듈형태로 만들어서 간단한 스크립트로 해당 검색 엔진을 불러오게할 수도 있을 것 같은데 이것만으로 완전한 독립 서비스를 구축하는 것이어서 크게 단계를 나누어서 만들지는 […]