개발

자바, 파이썬 중심의 실무 개발 기록과 도구 활용, 회고 및 기타 기술들을 정리합니다.

자바

BOM 기반 파일 문자 인코딩 확인하기 By Java

Photo by Markus Spiske on Unsplash 개요 Java로 BOM(Byte Order Mark)을 이용하여 파일의 문자 인코딩을 감지하는 것을 만들어 봤다. 이미 관련된 오픈소스들이 많기는 하다. 그래도 근래에 관련 정보들을 찾아봤으니, 간단하게라도 한 번 만들어 보는 게 의미가 있을 것 같아서 해봤다. Byte Order Mark UTF-8: EF BB BF UTF-16(BE): FE FF UTF-16(LE): FF FE UTF-32(BE): 00 […]

기타 개발

crontab 등록 정보 현행화

불편해 프로그램정보를 관리하고 있는 화면과 테이블이 있다. 그 중 일부는 crontab에 등록해서 주기적으로 실행하고 있는데, 관리가 잘 되지 않아서 부정확한 정보가 많다. 그렇다고 필요할 때마다 서버에 접속해서 crontab을 확인하자니 힘이 빠진다. crontab을 읽어서 자동으로 동기화 해주는 걸 만들면 두고두고 편할 것 같다. 계획 먼저 crontab에 저장된 작업 정보를 읽어서 Map 형태로 저장한다. 프로그램정보를 DB에서 읽어서

자바

자바에서 파일의 문자 인코딩 감지

바이트 스트림에서 문자 인코딩을 자동으로 감지하는 신뢰할 만한 방법이 없다. (출처: 카이 호스트만의 코어 자바 8) juniversalchardet 프로그래밍 언어 별로 인코딩을 감지할 수 있는 오픈소스들이 있긴 하다. 자바에서는 juniversalchardet를 찾을 수 있었다. Mozilla의 인코딩 감지기인 “universalchardet”를 자바 버전으로 만든 것인데, 지금까지 나온 최종 버전은 1.0.3 이다. 최종 릴리스에서 자바 1.5와 호환된다는 노트가 있는 걸 보면,

자바

문자집합과 인코딩, 그리고 자바

문자집합이란 표현해야 할 문자를 정하고 순서를 지정한 것이다. 문자집합을 코드 형태로 표기한 것을 코드화 된 문자집합(CCS, Coded Character Set) 이라고 한다. 인코딩 방식이란 CES(Character Encoding Scheme) 문자집합을 컴퓨터에 저장하기 위해서 8비트 형태로 표현한 것이다. 한글 표현 방식 한글은 문자집합의 구성에 따라 조합형, 완성형, 유니코드로 나뉜다. 조합형: 한글의 제자 원리에 기반하여 초성, 중성, 종성에 각각 코드를

경험 & 회고

오라클 실행계획의 중요성

내 자리에서는 0.1초 만에 결과가 나와요. 실시간으로 결과를 제공해 주는 서비스를 운영시스템에 반영했다. 오픈 전 사용자 테스트를 진행했는데, 유독 한 서비스만 종종 타임아웃이 발생한다는 연락을 받았다. 해당 프로그램 개발자는 자기 로컬에서 관련 쿼리를 실행해 보면 모두 0.1초 내에 결과가 나오기 때문에 문제가 무엇인지 모르겠다고 한다. APM 툴 확인 제니퍼에서는 서비스 응답 처리 중 특정 쿼리를

자바

IntelliJ: svn: e155036

svn: E155036 로컬 PC에 보관 중이던 모듈을 오랜만에 소환했다. 그간 Subversion에서 변경사항은 없었는지 확인하려니, 낯선 에러코드를 내뱉는다. 오후 9:35 Errors found while detecting svn working copies. Fix it. 오후 9:36 Problems while loading file history: File C:/works/src/moduleName is not under version control C:workssrcmoduleName URL: svn: E155036: Please see the ‘svn upgrade’ command svn: E155036: The

자바

IntelliJ에서 Maven 모듈의 컴파일러 버전 설정

IntelliJ에서 JAVA 모듈의 컴파일러 버전을 지정하는 방법이다. 그러나 Maven 모듈인 경우에는 pom.xml에 컴파일러 버전을 지정하는 것이 좋다. IntelliJ는 해당 모듈의 컴파일러 버전을 pom.xml과 자동으로 맞춰주기 때문이다. 만약 pom.xml에 설정하지 않으면, IntelliJ는 컴파일러 버전을 초기화 시킨다. (1.5버전으로 초기화 시켰으나, 다른 환경에서는 어떻게 바뀔지 모르겠다.) <plugins>     <plugin>         <groupId>org.apache.maven.plugins</groupId>         <artifactId>maven-compiler-plugin</artifactId>         <version>3.1</version>         <configuration>             <source>1.8</source>             <target>1.8</target>         </configuration>     </plugin> <plugins> Colored

자바

RESTful 자바 패턴과 실전 응용 – 샘플 실행하기

RESTful 자바 패턴과 실전 응용 – 바크티 메타 지음, 이일웅 옮김/에이콘출판 책의 샘플 소스는 GlassFish에서 실행하는 방법을 안내하고 있다. GlassFish는 써본 적이 없기 때문에, Tomcat에서 실행했지만 쉽지 않았다. 결과적으로 pom.xml에서 일부 dependency의 scope을 변경하고, 신규 dependency를 추가하여 실행할 수 있었다. 실행환경 – Windows 7 Professional K – IntelliJ IDEA Ultimate 2017.2 – Tomcat 8.5.16 chapter01.

파이썬

윈도우에서 Python 버전 별 가상환경 설정하기

Why? Python 2.7 버전이 설치된 상태에서, Python 3.6 버전을 설치했다. virtualenv를 이용해서 실행환경만 분리하면 될 거라 생각했는데, 오산이었다. 검색을 통해 여러 글들을 참조하며 시도해 봤지만, 잘 안되더라. 어찌 어찌 운 좋게 stackoverflow에서 찾은 방법을 정리한다. 나의 환경 Python 2.7 설치 – c:Python27 – pip, virtualenv 등을 설치하여 사용 중 – 환경변수 Path 설정 Python 3.6

기타 개발

telnet 명령어를 이용한 포트 오픈 확인 방법

Photo by Dima Pechurin on Unsplash 대상 장비의 특정 포트가 열려 있는 지 여부를 확인할 수 있는 방법 중 하나는 telnet 명령어를 이용하는 것이다. telnet 대상장비IP Port번호  telnet 명령어를 통해 얻을 수 있는 결과는 아래 세가지 경우가 있다. 포트 막힘 & 포트 오픈 필요 user@pluto:~$ telnet 192.168.0.200 9999 Trying 192.168.0.200… cs 포트 오픈 & 해당 포트 서비스가 없음 user@pluto:~$ telnet 192.168.0.200 9999

위로 스크롤