본문 바로가기

분류 전체보기

TortoiseGit을 이용해 Github에 저장소 생성 및 데이터 올리기 이번 포스트에서는 실질적으로 Github의 원격저장소에서 소스를 가져오고 수정하여 올리는 내용을 설명합니다. 아래의 절차대로 진행하겠습니다. 1, Github에 저장소 만들기 2, 로컬 저장소 만들기 3, 로컬저장소에 저장 4, 원격저장소에 저장(Github에 반영) Github에 저장소 만들기 우선 원격저장소를 생성하기 위해 Github(https://github.com)에 접속 후 로그인합니다. 저장소 생성 메인화면 우측의 "Your repositories" 옆의 [New repository] 버튼을 클릭합니다. 아래와 같은 화면이 나오면 Project Name에 생성할 프로젝트 명(현재는 테스트를 위해 TEST입력)을 넣고 [Create reposityry] 버튼을 눌러 저장소를 생성합니다. 아래와.. 더보기
[FMX] 컨트롤(TPanel)등에 Form 넣기. Delphi XE2의 FireMonkey에서는 TForm이 TControl을 상속 받지 않아 TPanel등에 Embed 할 수 없습니다. 위 방식으로 구현된 많은 샘플코드들을 Firemonkey에서 사용하지 못해 당황하다. 아래와 같은 방법으로 해결(?: 꼼수)하여 공유합니다.. // AForm을 AParent에 Embed procedure EmbedForm(AParent: TControl; AForm: TCustomForm); begin while AForm.ChildrenCount > 0 do AForm.Children[0].Parent := AParent; end; 정상적으로 말하면 Embed는 아니고 Form에 있는 컨트롤들을 Panel로 부모를 옮겨 버리는 방식입니다. 사용방법은 EmbedFor.. 더보기
Borland Compiler Conditional Defines 컴포넌트 및 라이브러리 소스 만들 때 필요한 델파이 버전별 Conditionnal Define 값입니다.아래 형태로 사용할 수 있습니다.{$IFDEF VER270}// XE6에서만 구현할 코드{$ENDIF}Delphi conditional VERProductProduct VersionPackage VersionVER270Delphi XE6 / C++Builder XE6 (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS/Android)20200VER260Delphi XE5 / C++Builder XE5 (Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS)19190.. 더보기
[FMX] Firemonkey에서 ODS 사용하기 Firemonkey는 아무래도 Cross platform이다 보니 윈도우 API를 사용하는 OutputDebugString 등을 사용할 수 없습니다. 근데, 너무 불편해요 ODS가 없으면 그래서 찾아보니 Window API를 사용할 수 있네요... 그것도 간단하게 uses에 Winapi.Windows를 추가하면 됩니다. 그리고 아래와 같이 예외(IFDEF)하시고 사용하시면 혹시 다른 플랫폼에서 문제가 생길 염려는 없겠죠^^ {$IFDEF MSWINDOWS} OutputDebugString(PChar(Format('우왕 ODS가 된다.', []))); {$ENDIF} 끝~ 더보기
[IDE] 델파이 작업경로 바로가기 델파이로 개발 작업 중 현재 소스 경로로 이동해야 되는 일이 종종 있죠... 그럴때마다 explorer를 실행해서 이동하려면 번거롭습니다. 그럴때 유용한 기능을 소개합니다. * 델파이 메뉴에 현재 작업 중인 작업경로를 여는 메뉴를 추가합니다. 우선 예전 아는 선배에게 들은 재미있는 이야기 하나. 선배는 핸드폰 관련된 개발 일을 했습니다. 동료와 이야기 중 "Window CE에서는 탐색기를 어떻게 열어요?" 라는 질문에 근처에 있던 외국인 개발자 曰 "뭔 새끼? 탐새끼?" -_-; 그래서 그 이야기를 들은 저는 그 이후로 탐새끼라는 단어를 주로 사용합니다. 그러면 위의 탐새끼를 델파이에 등록해 보겠습니다. 1, Tools > Configure Tools 선택 2, [Add] 버튼 클릭 후 아래와 같이 입력.. 더보기
구글캘린더에 ics 파일 등록 구글 캘린더 참 편리하죠? 하지만 음력일자 등이 지원되지 않아 불편한 감이 있습니다. 그래서, 음력 달력 파일 등을 구글 캘린더에 등록하여 사용하는 내용을 소개 합니다. 0, 음력달력 생성 음력달력 생성기(hjLunarCalendarGenerator), 음력양력변환, 달력파일 생성(소스공개) 1, 구글 캘린더 방문 - 구글에 방문합니다.(http://google.co.kr) - 더보기 > 캘린더를 선택하여 구글캘린더로 이동합니다. 2, 새 캘린더 만들기 - 내 캘린더 옆의 “▽” 버튼을 눌러 팝업 메뉴 호출 - “새 캘린더 만들기” 메뉴를 선택합니다. - 캘린더 이름에 만드실 달력 종류 (예> 음력 달력)를 입력하시고 [캘린더 만들기] 버튼을 클릭합니다. 3, 캘린더 가져오기 - 내 캘린더 옆의 “▽” .. 더보기
음력달력 생성기(hjLunarCalendarGenerator), 음력양력변환, 달력파일 생성(소스공개) 2012-11-07 추가 - 블로그 정리하다. 기존 게시물을 날려먹어 다시 글을 등록했습니다.(아까운 소중한 댓글과 좋아요 ㅠㅜ)2012-03-29 추가 -  하단에 소스공개 정보가 있습니다.2015-12-28 추가 - 2017년 1월과 2월의 대월/소월 정보가 바뀐 버그를 바로잡았습니다.(JiNN 님의 댓글 감사합니다.)(v.0.9.2)아이폰 캘린더 및 구글캘린더를 사용하면서 소소한 문제가 되는 음력일정을 자동 변환해 주는 프로그램입니다.개인적으로 구글캘린더와 아이폰 연동 시 어르신 생신을 관리하기 어려워 직접 제작하여 공유합니다.(소스코드도 곧 공개할 예정입니다.)  음력달력 생성기(hjLunarCalendarGenerator)기능은 아래의 3가지 입니다.1, 음력 / 양력 변환 2, 음력.. 더보기
델파이 구조체(record) 사용 팁 구조체(Record) 많이 사용하시죠? 생각보다 구조체를 사용하는 방법이 다양해서 소개하려 합니다. 우선 간단한 샘플 연/월/일 형식으로 데이터 입력 후 한번에 데이터 저장하는 코드입니다. type TRecordType = (rtData, rtStructure); TDateRec = record case TRecordType of rtData: (Data: array[0..5] of Byte); rtStructure: (Year, Month, Day: Word); end; 위와 같이 구조체가 정의 되어 있습니다. 2가지 타입(rtData, rtStructure)로 사용해 봅니다. | rtStructure - 연월일 형식으로 입력 procedure TForm2.btnAddClick(Sender: TObje.. 더보기
hosts 파일의 이용 회사 업무 중 도메인 관련되어 테스트할 일이 있어 hosts 파일을 이용했습니다. hosts 파일이란? - 개인의 DNS 서비스 입니다. - 웹페이지 요청 시 윈도우는 제일 먼저 hosts 파일을 먼저 검색합니다. - 특정 도메인 접근제한 및 개인 IP 등록 등의 용도로 사용가능 말은 어렵습니다. 한번 보시면 | hosts 파일 내용 - hosts 파일의 경로는 "C:\Windows\System32\drivers\etc\hosts" 입니다. - 파일 하단에 IP주소와 매칭되는 도메인을 공백으로 구분하여 입력합니다. | 웹브라우저에서 사용 - hosts에서 등록한 도메인 사용하는 모습입니다. - 매번 testpc IP 기억하기 부담되어 hosts에 등록 후 사용합니다. - testpc 등 정상 도메인이 아.. 더보기
git에서 파일 무시하기(ignore pattern) 제가 사용하는 TortoiseGit에는 TortoiseSVN과 다르게 GUI에서 ignore pattern을 제공하지 않습니다. 그래서 무시할 패턴을 작성한 파일을 수동으로 생성해야 합니다. 2가지 방법이 있습니다. ".gitignore" 파일 생성, ".git/info/exclude" 파일 변경 두가지 모두 파일의 내용은 동일합니다. 우선 .gitignore 방식으로 설명합니다. 1, 작업 디렉토리 최상위에 ".gitignore"파일을 생성합니다. (또는 작업 디렉토리 최상위의 ".git/info/exclude"파일을 오픈합니다.) 2, 위의 파일을 메모장 등으로 엽니다. 3, 원하시는 제외 패턴을 작성하고 파일을 저장 합니다.(끝) 패턴 작성 시 참고사항은 # 이후의 내용은 주석 처리 됩니다. 제가 .. 더보기
7인의 IT 북 콘서트 후기 2012년 1월 17일 광화문 올레 스퀘어에서 IT 저자 7인의 북 콘서트 행사가 있어 다녀왔습니다. 그날이 제 생일임에도 불구하고 발표 주제들이 평소 관심을 갖던 내용이어서 큰 기대를 안고 동료와 함께 갔습니다. 콘서트는 1부와 2부로 나뉘었고 제가 주관적으로 받아 들이기로는 1부는 스마트한 세상에서 살아가기 위한 마음가짐 및 방법이 주가 되었고, 2부는 변해가는 세상에 대한 대처방안이 주가 되었습니다. 평소 제가 두리뭉실하게 꿈꾸고 막연히 원했던 부분을 각 저자들의 강연을 들으며 구체화 되기도 했고, 다시 다짐할 수 있는 좋은 자극제가 됐던 것 같습니다. 그 생각 및 다짐을 다부지고자 저를 위한 강연 후기를 작성합니다. | 공연준비 및 무대인사 위 무대는 7명의 작가들이 강연 할 무대입니다. 앞쪽의 .. 더보기
Github와 로컬 환경 설정 이번 포스트에서는 Github의 사용자 인증을 위한 SSH Key 등록에 관하여 설명합니다. 현재 저는 TortoiseGit을 사용하므로 Puttygen 및 pageant를 이용하여 SSH Key 생성 및 인증작업을 진행 하는 방식으로 설명합니다. SSH Key 등록은 아래의 절차로 진행합니다. 1, SSH 생성(with PuTTY Key Generator) 2, 인증 에이전트(Pageant.exe)에 Key 등록 3, Github에 public key 등록 SSH 생성 해당 작업은 TortoiseGit의 설치가 선행되어야 합니다. 만약, 설치 전이시면 설치를 먼저 해주세요. PuttyGen 실행 시작 메뉴를 이용하여 TortoiseGit의 PuttyGen를 실행합니다. Open SSH key 생성 화면.. 더보기
Windows용 Git Client(msysgit: Git for Windows, TortoriseGit) 설치 이번 포스팅에서는 윈도우즈에서 Git을 사용할 수 있는 환경을 구성하는 방법을 설명합니다. 앞선 글에서 말씀드린 것과 같이 msysgit과 TortoiseGit을 대상으로 합니다. msysgit은 윈도우용 Git 프로그램입니다. TortoiseGit은 Git의 편한사용을 위한 사용자 인터페이스라고 보시면 됩니다. 설치는 아래 순서로 진행 됩니다. 1, msysgit(Git for windows) 설치 2, TortoiseGit 설치 3, 설치 확인 msysgit 설치제품 홈페이지가 변경이 되었습니다.(Github로 이동했습니다.) 다운로드 및 설치과정은 동일합니다.http://msysgit.github.io/ 이전주소제품 홈페이지(http://code.google.com/p/msysgit/) 방문 다운로.. 더보기
GIT과 Github 안내 개인적으로 진행하는 오픈소스에서 Github를 이용하기로 하여, Github 사용법을 조사하여 포스팅 합니다. 순서는 아래와 같이 순서로 진행하겠습니다. GIT과 Github 안내Windows용 Git Client(msysgit: Git for Windows, TortoriseGit) 설치 Github와 로컬 환경 설정Github에 저장소 생성 및 데이터 올리기 새로 시작하시는 분들에게 참고가 됐으면 하네요. 우선 기본적인 개념을 정리해 볼게요. Git이란? 공식사이트 : http://git-scm.com/ 리누스 토발즈가 linux kernel 소스 관리를 위해 만든 소스 버전 관리 프로그램입니다. Git은 속도에 중점을 둔 분산형 버전관리 시스템(DVCS)이며, 대형 프로젝트에서 효과적이고 실제로 유.. 더보기
2011년 한해를 마치며... "모든 걸 버리고 다시 시작하기." 2011년 시작할 즈음 다짐했던 생각입니다. 올 한해 돌이켜 보면 참 다사다난 했습니다. 하고자 하는 사업(?)이 실패로 끝나버려 그 여파로 한참 허덕였구요 그리곤 다시 재취업을 했답니다. 그 덕에 깨달은 교훈은 역시 사람은 잘하는 것 좋아하는 일을 하며 살아야한다는 사실과 난 사업가 체질은 아닌가 보다 하는 암울한 현실 ㅠㅜ 그래서 내가 좋아하는 분야에서 더 뻗어나가고 싶다는 생각을 많이 하게된 한해였습니다. 어느덧 삼십대 중반을 바라보는 아직은 늦지않은 나이에 도약하고자 도전을 합니다. 세상은 말합니다. 우리나라에서는 나이든 개발자는 관리자로 가는게 좋다고 아니 그래야 한다고 하지만 전 말합니다 "시러, 난 개발하는게 제일 재밌고 잘할 수 있다고..." 물론 속으.. 더보기
양력, 음력 기원 및 음력 날짜 변환 원리 아이폰의 기본 캘린더를 사용하다보면 심플하게 잘만든것 같습니다. 구글 캘린더와 연동이 되어 기념일이나 잡다한 일정관리도 PC와 동기화도 잘되어 매우 유용하게 사용하고 있었지요... 하지만, 어르신(부모님, 처가어른)의 생신 입력하려고 음력을 기록하려 하자 턱 막히는 거에요. 그래서 음력을 이용하는 방법을 찾다보니 ICS파일로 음력을 등록할 수 있더라고요. 자 그럼 내가 할일은 음력 ICS파일을 만들어 보자 하여 음력 변환하는 원리를 분석 해보고 일부 포스팅 합니다.^^ 1, 양력의 기원 태양의 운행을 기준으로 만든 역법입니다. 양력은 지구가 태양을 한 바퀴 도는 지구의 공전을 기준으로 만드러 졌습니다. 양력의 1년은 365일이지만, 실제의 일년은 365.2422일입니다. 이 차이를 없애기 위해 4년 마다.. 더보기
델파이 2010(2009)에서 DSPack 설치 델파이 2009, 2010에서 설치 가능한 DSPack package(버전은 2.3.3) 입니다. \src\DSPack\DSUtil.pas 가 \src\DSPack\DSUtils.pas 로 변경 (이유: Delphi DBX Framework인 DSUtil.pas와 충돌) 기존 작성된 소스는 주의 필요 DSPack project : DSPack is a set of Components and class to write Multimedia Applications using MS Direct Show and DirectX technologies. http://code.google.com/p/dspack/ 더보기
아이폰 기본달력과 구글캘린더 연동하기 1, 구글 캘린더 생성 - 이부분은 각자 알아서 하시길. 2, 아이폰에서 구글 계정 설정 - 설정 선택 - Mail, 연락저, 캘린더 선택 - 계정 추가 선택 - Microsoft Exchange 선택 - 이메일(구글계정으로 사용중인 이메일 주소) 입력 - 도메인 입력안함 - 사용자 이름(구글계정으로 사용중인 이메일 주소) 입력 - 암호(구글계정 암호) 입력 - 다음 버튼 선택 - 동기화 할 항목 선택(캘린더 선택) - 기존 일정 및 연락처 놔두고 싶으면 반드시 "내 iPhone에 그대로 유지"를 선택 * 위 단계 진행 시 기본 캘린더만 표시됩니다. 3, 여러 개의 캘린더 사용 설정 - Safari 브라우저 실행 - m.google.com 이동 - 하단의 언어변경 클릭 - English (US) 클릭 -.. 더보기
2GB 이상 파일크기 구하는 함수 function FileSize(const AFileName: string): Int64; var srData: TSearchRec; FileData: DWORD; SizeHigh, SizeLow: Integer; RetVal: array[0..7] of Byte; begin Result := -1; {$IFDEF MSWINDOWS} FileData := FindFirst(AFileName, faReadOnly, srData); if FileData 0 then Exit; SizeHigh := srData.FindData.nFileSizeHigh; SizeLow := srData.FindData.nFileSizeLow; ZeroMemory(@RetVal[0], SizeOf(RetVal)); Move(Si.. 더보기
SQL Server 이중화 종류 회사에서 필요해서 잠깐 조사한 내용입니다. 사내 SQL Server가 간혈적으로 문제가 되어 이중화 방안 조사한 내용 올리네요. 방법 설명 특징 미러링 주 서버와 미러 서버로 구성되며 장애 발생시 자동 장애조치 수행 할 수 있는 모니터 서버 추가 가능 자동 장애조치 수행 가능(장애 시 미러서버가 주서버 역할 대행) SQL Server 2005 Standard, Enterprise 이상 지원 개발 단은 DB Connection string만 변경하면 됨 로그전달 주 서버와 동일한 보조 서버 구성 후 주 서버 트랜젝션 발생 시 주 서버의 트랜젝션 로그를 보조 서버에도 전달되도록 설정하는 방식 비상시 수동으로 장애조치(주 서버 변경) 필요 개발 단에서 장애감지 및 조치 방법 처리 필요 복제 여러 대의 서버로 .. 더보기