본문 바로가기

3개월 휴면 계정 프로젝트 때문에, 많은 부분을 놓고 있었는데,그중 하나가 블로그.잠깐 참고할 자료가 필요해서 예전 기록을 뒤지다가 로그인하려하니,3개월이라는 시간이 흘러 휴면계정이 되었다. 진짜 박터지고 머리 아프고, 온몸이 아픈 상황인지라무엇하나 건사못하는 상황이라 이제와 블로그질을 해볼까 하는 생각조차 들지는 않지만,잠깐 내가 어디까지 놓치고 있나라는 생각을 아주 잠깐이나마 하게 해줬다. 이제... 승부의 날은 다음 주.다음 주만 아니, 다다음 주까지 어떻게든 잘 끝나야 할텐데... 더보기
왜 클래스 상속을 하는 걸까? 내가 만드는 프로젝트들은 상속에 상속을 자주 하곤 한다.리펙토링을 하다가 보면, 왜 이렇게 짰지 할 정도로 상속하는 경우가 있다.되돌려서 생각해보면 상속하게 되는 조건은 다음과 같다. 1. 반복적으로 작성된 코드의 Generaiize - 일반화 구성 프로그램을 짤 때 제일 중요하게 여기는 부분은 같은 코드 또 안짜기다. 똑같이 동작하는 코드들이 산재되어 있을 때를 바라보면, 각 클래스들은 무언가 공통적인 부분이 존재한다. 그런 경우 해당 클래스들의 역할과 내용을 보고 비슷한 애들끼리 다시 묶는다. 묶어주는 상위 클래스에서 공통적인 코드들을 제공한다. 물론 static 클래스와 같이 Util 을 제공하는 방법도 있지만, 나름 멤버 변수등을 통해서 데이터를 유지하면서 공통적인 코드를 실행하는 방법은 역시 일.. 더보기
MS SQL Connection Timeout MS SQL에서 연결 Timeout을 설정할 수 있다.설정 방법은 SQL ConnectionString을 수정하면 된다. Data Source=DBServer;Initial Catalog=DBName;User ID=userid;Password=Password;Connect Timeout=30 대부분의 경우 위의 Connect Timeout의 값이 설정되지 않으면 기본값으로 15(초)로 설정된다.그런데, 최소 값은 반드시 4을 초과해야 한다.만일 1, 2, 3, 4 중의 숫자로 입력하는 경우에는 약 28초 이상을 Timeout으로 갖게 된다. Connection이 되는지 여부를 판단 하기 위해서 Connection을 수행하는데, 이 Timeout을 3이하로 하니까 원하는 결과를 제대로 얻지를 못했다. 그래.. 더보기
SVN Hook 관련 Windows 기반에 SVN 서버가 동작할 때, Hook 설정이다.특히 SVN에서 Commit Action에 Jenkins를 연결할 때 사용하는 방법이다. 1. hook 폴더로 이동.2. post-commit.bat 파일 작성3. post-commit.bat 파일 내에 아래와 같이 작성 powershell -Command (New-Object System.Net.WebClient).DownloadString(\"http://{jenkins_url}/job/{ProjectName}/build?delay=0sec\"); 4. 저장 후 Commit. 만일 인증 토큰을 이용하는 경우에는 URL 부분을 좀 손을 봐야 한다. powershell -Command (New-Object System.Net.WebClie.. 더보기
악순환의 프로젝트 대략적으로 만들어야 하는 제품을 기준으로 각 구성요소들을 단순 무식하게 계산하여 약 400 M/M 사이즈 프로젝트가 있다고 하자.1인당 1달 유지비를 1천만원(유지비에는 월급, 행정 처리, 프로젝트 진행 잡비 등등)으로 잡는다고 했을 때, 이 프로젝트는 최소한 40억은 있어야 한다. 그 외에는 별개로 이익 5% 까지 계산하면, 42억 정도 잡힌다. 24개월 기준으로 보면 최소 16명이 있어야 되며, 16명이 24개월 정도 업무를 수행해야 한다. 그런데, 이 M/M에는 함정이 있다. 바로 인력의 개개별의 능력이나 속도 그 외 업무에 대한 이해도 따위는 전혀 없다.다행히 1~2명은 사업에 대한 이해나, 관련 기술의 이해가 있다고 치다.문제는 주변인이다. 많게 쳐서 4명이 잘 안다고 해도, 16 명 중 4명 .. 더보기
SVN Sync SVN 기능 중 Svnsync 라는 기능이 있어, 원격에서 서로 다른 레파지토리를 동기화 시킬 수 있다. 물론 양 측의 리비전을 맞추기 위해서는 저장 대상이 되는 위치는 빈 데이터이여야 한다.그런데 복사해야할 레파지토리가 오래된 경우 데이터가 매우 커서 한번 Sync를 시도하면 세월아 내월하가 될 수 있다. 더욱이 특정 버전에서 파일크기가 크면, http 기반의 svn 서버 중 일부는 에러를 내고 이야기를 진행하지 못하는 경우도 있다.이 경우에 처리하는 방법은 다음과 같다.1. svnadmin dump를 이용해서 원본 데이터를 뜬다.2. 복제 대상에 원본 데이터를 svnadmin load를 이용해서 붇는다.3. svnsync init 할 때, --allow-non-empty를 넣어 처리한다. 즉 svns.. 더보기
리눅스 백그라운드 실행 참조글 : https://www.linuxquestions.org/questions/linux-software-2/rtorrent-how-to-make-it-run-in-the-background-596041 보통 리눅스 작업을 하면 SSH와 같은 원격 접속 쉘을 사용한다.여러가지 명령들을 사용해서 백그라운드로 실행하는데, 만일 백그라운드로 실행시키지 않았을 때, 해당 SSH를 닫으면 프로그램이 같이 종료된다. 그래서 보통 nohup 과 같은 유틸을 이용해서 백그라운드로 실행을 한다.그런데 Console 기반의 프로그램 중에는 ANSI를 이용해서 예전 도스 프로그램 처럼 사용자와 In/Out 하는 프로그램들이 있다. 그냥 단순하게 백그라운드 실행을 하게 되면, 해당 화면을 다시 불러오지 못하는 경우가 발.. 더보기
Windows 10에서 HDPI상태 이용 중 확장 모니터 사용할 때 일반 DPI로 쓰는 법 Windows 10을 쓰다가 보면, 미묘하게 화면이 틀어져 보일 때가 있다.특히 고해상도의 작은 노트북에 모니터를 확장해서 연결했을 때가 좀 골때린다. 13인치에 QHD(3200 X 1800) 일 때, 글자가 매우 작아 보이기 때문에, 전체 화면을 200% 정도 확대해서 보곤 한다. 하지만, 모니터는 Full-HD 밖에 지원하지 않기 때문에, 그냥 100%로 맞춰서 사용한다.그랬을 때 느낄 수 있다. 아래의 사진은 고해상도의 13인치 노트북에서 찍은 이미지다.아래의 사진은 24인치 Full-HD 화면에서 찍은 사진이다. 딱 봐도 각 픽셀 사이즈 때문에, 전체적인 그림이 뿌옇게 나타난다. (물론 카메라를 한번 거친거라, 실제 보는 화면 보다는 좀 그럴싸하게 나온건 함정...)노트북에서는 세밀하게 잘 나오는.. 더보기