이미지 크기 조절
이미지의 네 점 중 한 점($P_3$)을 이동시켜 크기를 조정하려고 합니다. 여기서 한 가지 조건이 있는데 기존의 X-Y 비율을 지켜야 한다는 것입니다. 비율은 아래와 같이 정의할 수 있습니다. \(ratio = \frac{|\overrightarrow{P_4 - P_3}|}{|\overrightarrow{P_2 - P_1}|}\) $P_2$의 ...
이미지의 네 점 중 한 점($P_3$)을 이동시켜 크기를 조정하려고 합니다. 여기서 한 가지 조건이 있는데 기존의 X-Y 비율을 지켜야 한다는 것입니다. 비율은 아래와 같이 정의할 수 있습니다. \(ratio = \frac{|\overrightarrow{P_4 - P_3}|}{|\overrightarrow{P_2 - P_1}|}\) $P_2$의 ...
점 P가 실린더 내부에 있으려면 실린더 시작점과 끝점 사이에 있어야 한다. 실린더 축에서의 거리가 실린더 반경보다 작거나 같아야 한다. 위 두 조건을 만족해야 합니다. 첫 번째는 아래 식으로 검사할 수 있습니다. [\begin{align} P1 &= \text {...
원점을 기준으로 점 $(x,y,z)$을 $Z$축으로 $\theta$만큼 회전시키는 수식은 다음과 같이 행렬로 표현할 수 있습니다. [\begin{bmatrix} x’ y’ z’ \end{bmatrix}= \begin{bmatrix} cos(\theta)& -sin(\theta)&0 sin(\theta)&cos(\theta)&...
데이터베이스를 읽어 DataTable을 만들고 DataTable에서 다시 클래스를 만드는 작업을 합니다. 이렇게 하는 이유는 DataTable은 Control에 바인딩하기 위해서고 클래스는 프로그램에서 사용하기 위함입니다. 이렇게 하기보다는 클래스가 최종 데이타이니 이걸 그냥 바인딩 시키면 안되나?하는 의구심이 들었습니다. List<E...
동료가 새로운 프로젝트를 맡게되어 하던 일을 제가 이어 하게 되었습니다. 프로젝트 전반적인 내용은 알고 있는 상태였고 개발에 앞서 지금까지 작성한 코드를 리뷰하였습니다. 가장 눈에 띄는 부분은 클래스 데이터를 자동화하여 데이타베이스로 저장하는 구조였습니다. 클래스의 속성을 읽어와 자동으로 데이타베이스로 저장하는 SQL 구문을 작성하게 되어 있었습...
그림책 속 수많은 사람들 중에서 월리를 찾는 것처럼 문서의 수많은 단어들 중에서 원하는 단어를 찾는 일은 쉬운 일이 아닙니다. 아니 월리를 찾는 것이 더 쉬울지도 모르겠습니다. 요즘 회사들 사이에 Digital Transform(이하 DT)가 유행하고 있습니다. DT는 회사가 가지고 있는 문서들을 디지털 데이터로 변환하는 것을 말합니다. 4차 산업...
현재 GCP(Google cloud platform)에 SCM(gitea), 도쿠위키, 워드프레스가 돌아가고 있습니다. 크레딧으로 거의 일 년 동안 무료로 사용하다가 지난달에 요금이 33,470원이 나왔습니다. 개인이 사용하기에는 부담이 되어서 SCM은 Github로 도쿠위키는 개인 서버로 이전하기로 마음먹고 어린이날 연휴 동안 작업하였습니다. ...
요즘에는 거의 모든 프로그램에서 자동 업데이트 기능을 제공하고 있습니다. 저의 경우 2008년도 SI 프로젝트에서 자동 업데이트 기능을 직접 구현하여 사용하였고, 또 그 시절 데브피아에서는 어떤 분이 자동 업데이트 기능을 판매하기도 했었습니다. 최근 회사 프로그램에서도 직접 자동 업데이트 기능을 구현하여 사용하였습니다. 이제는 맥에서 사용하던 자동...
고객사에서 프로그램을 외부에서 사용해야 하는데 프로그램 유출이 우려되어 보안 기능을 적용해달라고 합니다. 고객사에서 제시한 기능은 다음과 같습니다. 프로세스 체크(특정 프로세스가 돌아가고 있는지 확인) 라이선스 키 체크 만료 기간 설정 첫 번째는 요새 기업에서는 보안 프로그램이 돌아가고 있기 때문에 그걸 체크해달라는 겁니다. 두,...
Jenkins와 연동하기 위해서 SonarQube Scanner for Jenkins 플러그인을 설치합니다. SonarQube에서 프로젝트를 생성합니다. Project key로 프로젝트 이름을 입력합니다. 그리고 Set Up 버튼을 클릭합니다. 토큰을 생성하기 위해 프로젝트 이름을 입력하고 [생성하기] 버튼을 클릭합니다. 생성한 토큰은 ...