본문 바로가기

Programming

디자인패턴 소개 Software를 디자인하고 개발을 하다 보면 내가 직면했던 어떠한 문제에 대해서 이미 다른 개발자들이 나와 같은 경험을 했었고, 이러한 문제에 대해서 적합한 방법으로 풀어놓은 Solution들이 있다는 사실을 알게 된다. 이러한 Solution들은 많은 다른 개발자들에 의해서 검증되고 지속적으로 발전해왔다. 그렇기 때문에, 우리는 굳이 이러한 문제에 대해서 새로 문제 해결방법을 제시 할 필요가 없고, 이 검증된 해결방법을 사용함으로써, 좀더 효율적이고 안정된 소프트웨어를 개발 할 수 있는 기회를 얻을 수 있다. Software Engineering에서의 Design Pattern은 Software Design을 할 때, 흔히 발견되는 문제들에 대한 일반적이고 재사용 가능한 solution을 의미한다. .. 더보기
Scala Days - 스칼라 모임 이번 년도 2013년 6월 10일 부터 12일까지 스칼라 데이즈가 미국의 뉴욕에서 열린다. 미국 뉴욕은 2009년에 다녀온 적이 있는데, 4년정도 지나니까 한 번 더 가고 싶은 생각이 든다. ㅎㅎ이번 Scala Days 에는 역시 메인 Speaker로 마틴 오더스키 (Martin Ordersky) 형님이 나오신다. 그 밖에 Jonas Boner, Viktor Klang 등이 나온다. Jonas Boner 는 마틴 오더스키가 이끄는 Typesafe 의 CTO 로써 오랫동은 Akka 오픈소스 프로젝트를 이끌어 왔다.아마도 이분은 여기서 또 Akka 와 Play framework 를 이용하여 웹 애플리케이션을 효율적으로 만드는 법을 알려주실 거 같다. Jonas Boner 의 홈페이지링크:http://jona.. 더보기
Jolt awards' tool dotTrace, .NET 용 profiler .NET 용 유용한 툴 소개 dotTrace 는 JetBrains 사의 .NET 용 성능/메모리 프로파일러이다. 이 툴은 사용하기 쉽고, Visual Studio 에서 플러그인 형태로 바로 실행이 가능하다. 그리고 .NET 으로 된 어떠한 실행파일, 심지어 원격에 있는 것에서도 실행이 가능하다. 이 툴은 아주 직관적인 UI 를 제공하여 프로그램의 어디가 bottleneck 인지 아닌지 판단할 수 있게 해 주며, 해당 코드들도 살펴볼 수 있게 해 준다. 거기다가 hotspot 이라고 생각되는 부분을 decompile 해서 상세한 코드로 보여주는 기능도 가지고 있다. dotTrace 는 아래 링크에서 자세한 정보를 얻을 수 있다.http://www.jetbrains.com/profiler/ 더보기
Eclipse IDE 에 Python 플러그인 설치하기 Eclipse IDE 에서 python 프로그래밍을 할 수 있다. 간단하게 Market Place 에서 python 을 찾아서 설치하면 된다. 1. Eclipse 에서 Help -> Eclipse Marketplace 를 찾아서 클릭 2. PyDev 플러그인을 찾는다. 3. PyDev 설치에 필요한 파일을 설정 4. License 에 동의하고 설치 시작 더보기
Marshalling vs Serialization (마샬링 과 시리얼라이즈 의 차이) Marshalling 과 Serialization 의 차이에 대해서 알아 보고자 한다. 간혹 이 두가지 용어가 혼용되는 경우가 많은데, 분명히 차이가 존재한다. 정확하게 알고 넘어가자. :) 1. Marshalling 의미 객체의 메모리 구조를 저장이나 전송을 위해서 적당한 자료형태로 변형하는 것을 의미한다.Marshalling 은 보통 서로 다른 컴퓨터 혹은 서로 다른 프로그램 간에 데이터가 이동되어야 할 경우 사용된다.시리얼라이즈와 비슷한 경우는 객체가 원격의 다른 객체와 통신할 때 serialize 된 객체를 사용할 경우이다.Marshalling 을 수행함으로써 복잡한 통신, 사용자 정의/복잡한 구조의 객체들을 사용하는대신, 단순한 primitive 들을 사용할 수 있다. Marshalling 의 .. 더보기
Scala 2.10 new features Scala 2.10 이 release 되었다. 새로운 기능들과 성능 향상을 기대할 수 있다. 개인적으로 Scala 2.10 에서 String Interpolation 과 Value Class 를 이용하여 Type Conversion 을 사용하는 것을 꼽을 수 있겠다. :) 아래 코드들은 아래 링크에서 발췌하였다.http://blog.typesafe.com/announcing-scala-210-a-simpler-way-to-tackle 새로운 기능 1. String Interpolation (문자열 삽입법) 문자열을 삽입하기 위하여 s 다음에 " (double quote)로 둘러쌓은 다음, $ 를 변수 앞에 붙인다.println(s"The word of the day is ‘$wordOfTheDay’.").. 더보기
iOS - Single View Application with Core Data setting in XCode 4.5 Here is I have learned from scratch. 1. Create Single View Application in Xcode project from File -> New -> Project 2. Add Core Data framework. 3. Add below codes to myproject_Prefix.pch#import 4. Add following codes to AppDelegate.h file. @property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext; @property (readonly, strong, nonatomic) NSManagedObjectModel *managedObj.. 더보기
iOS - App file system structure Apple 개발자 글에 링크가 있다. https://developer.apple.com/library/ios/#documentation/FileManagement/Conceptual/FileSystemProgrammingGUide/FileSystemOverview/FileSystemOverview.html#//apple_ref/doc/uid/TP40010672-CH2-SW2 더보기
iOS - 테이블뷰셀 사용자 정의하기 (TableViewCell customize) 테이블뷰셀을 사용자가 정의하여 사용할 수 있다. 아래 링크에 이에 대한 좋은 글이 있다. http://agilewarrior.wordpress.com/2012/05/19/how-to-add-a-custom-uitableviewcell-to-a-xib-file-objective-c/ 더보기
iOS - iPhone 에 있는 파일들의 경로를 읽어 오기 iPhone 에 파일이름은 같은데, 경로가 다른 파일들을 저장할 수 있다. 예를 들면 아래와 같은 경우,dir1/sea.jpgdir2/sea.jpgdir3/dir5/sea.jpg 이럴 경우에 파일의 경로를 얻어오는 방법이 있다. 아래와 같이 파일 이름을 얻어 올때, 디렉토리를 지정하여 얻어오는 방법이 있다.NSBundle *bundle = [NSBundle bundleForClass:[self class]]; NSString *filePath = nil; if (filePath = [bundle pathForResource:@"sea" ofType:@"jpg" inDirectory:@"dir1"]) { theContents = [[NSString alloc] initWithContentsOfFile:fi.. 더보기