본문 바로가기

Programming

소스코드 버전 관리 법 - Semantic Versioning 아래 글은 Semantic version 사이트인 http://semver.org/ 에서 퍼왔음을 밝힙니다. Below article is from http://semver.org Semantic VersioningIn the world of software management there exists a dread place called "dependency hell." The bigger your system grows and the more packages you integrate into your software, the more likely you are to find yourself, one day, in this pit of despair.In systems with many dependenc.. 더보기
프로그래밍 폰트 추천 최근에 프로그래밍 하는데, 사용하는 폰트는 네이버 나눔 고딕 코딩 폰트이다.이 폰트는 기본적으로 코딩하는데 꽤 편한 모습으로 글자를 표현해주고, 무엇보다 한글을 표현하는데 있어서 기타 다른 폰트보다 좋기 때문이다.이 폰트는 윈도우, 리눅스에 설치가 가능하고, Mac OS X 에서도 약간의 설정을 하면 사용가능 할 것이다. 보통 나는 프로그래밍 폰트로 아래와 같은 것들을 사용해 왔다.개인적으로 제일 좋아하는 폰트는 Dina 폰트이다. 이 폰트는 말이 필요 없다. 보고만 있어도 코딩 하고 싶어지는 폰트이다.기본적으로 Windows 에 사용 가능하지만, 리눅스에서도 사용 가능하도록 어떤 고마운 분이 작업을 해 놓은 것이 있다. 1. Dina 폰트 이 폰트는 일단 C/C++ 프로그램을 작성할 때 가장 좋아 보인.. 더보기
Refactoring tip 이번 글은 간단하게 Refactoring의 정의와 필요한 이유에 대해서 알아 볼까 한다. Refactoring의 정의 1. Refactoring(명사) - 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조를 변경하는 것. 2. Refactor(동사) - 일련의 리팩토링을 적용하여 겉으로 보이는 동작의변화 없이 소프트웨어의 구조를 바꾸다. Refactoring 을 해야 하는 이유 1. Refactoring은 소프트웨어의 디자인을 개선시킨다. - Refactoring은 코드를 정돈 하는 것이다. 그래서 코드의 중복된 부분을 제거 한다. 이렇게 함으로나중에 코드를 수정하더라도, 필요한 부분만 수정할 수 있을 뿐만 아니라, 각각의 작업데 대한 코.. 더보기
Ruby - 정규표현식으로 email 형식 체크 다음과 같은 메소드를 만들고 체크하면 될 거 같네요~ def check_email @email_format = Regexp.new(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/) @email.match(params[:email].to_s.strip)end 더보기
Ruby - File 의 sha1sum, md5sum 구하기 아래의 코드는 Linux 명령어 중에서 sha1sum, md5sum 명령어와 같은 기능을 하는 코드입니다. # Simple Hash Code Calculator# Returns SHA1 and MD5 hash sum for any given file require 'digest/md5'require 'digest/sha1' # buffer size 4 kbytesBUFFER_SIZE = 4096 class Hasher# method = "sha1" or "md5"# filepath = Full filepathdef initialize(method, filepath)if (method.upcase == "-SHA1")@hashfunc = Digest::SHA1.new@hashname = "SHA1"else.. 더보기
Python TCP/IP 관련 에러메시지 대응 일단 오류가 어떤 형식으로 나오는 지 살펴 보겠습니다. Exception happened during processing of request from ('xxx.xxx.xxx.xxx', 43933)Traceback (most recent call last): File "C:\Python25\lib\SocketServer.py", line 222, in handle_request self.process_request(request, client_address) File "C:\Python25\lib\SocketServer.py", line 241, in process_request self.finish_request(request, client_address) File "C:\Python25\lib\Soc.. 더보기
Java byte code 살펴보기 이 포스팅의 일부는 IBM Developerworks의 Java bytecode 기사의 일부를 발췌하여 작성하였다. Java compiler는 Java source code를 Java byte code로 해석을 한다.Java byte code는 C/C++ 프로그램의 중간 표현식이라고 할 수 있는 assembler 에 해당한다.유능한 C/C++ 프로그래머는 Debugging과 성능, 메모리 사용을 tuning하기 위해서 assembler instruction 정보를 사용한다. 이는 Java Programmer가 Java bytecode의 instruction의 의미를 이해하는 것과 같은 맥락이다.그러므로, 좀더 고급 Java 프로그래머가 되기 위해서는 Java byte code에 대한 이해가 필요한다. J.. 더보기
iOS - UIWebView 에 back button 기능 구현 UIWebView 를 View Controller 에 추가하게 되면, 우리가 사용하는 모바일 Safari 브라우저처럼 back button 이 제공되지 않는다. 이를 stack 을 이용하여 실제로 구현하려고 하면 머리가 아픈데, 이미 이런 기능이 있지 않을까 라고 생각 했는데, 이미 있었다. :) UIWebView Class Reference 를 살펴보면 아래와 같은 Instance method 를 발견 할 수 있다. goBack Loads the previous location in the back-forward list. - (void)goBack Availability Available in iOS 2.0 and later. 실제로 back button 을 이용하여 back 기능을 구현하려면 UIW.. 더보기
iOS - Core Data relation tutorial iOS 의 Core Data 에서 relation 의 개념을 명쾌하게 설명한 글을 발견하였다. :) Core Data on iOS 5 Tutorial: How To Work with Relations and Predicateshttp://www.raywenderlich.com/14742/core-data-on-ios-5-tutorial-how-to-work-with-relations-and-predicates 더보기
iOS - Core Data Tutorial 추천 iOS 에서 Core Data 참고자료가 필요하여 여러 글들을 읽어 본 결과 아래의 사이트에서 제공하는 tutorial 이 꽤 괜찮은 거 같아서 링크를 남긴다. Core Data on iOS 5 Tutorial: Getting Startedhttp://www.raywenderlich.com/934/core-data-on-ios-5-tutorial-getting-started 더보기