분류 전체보기(685)
-
[Android Apps.] Translate for Animals – Google’s animal translator
실제로 다운로드를 받아서 한번 실험을 해보았다. Animal Translator 라는 이름으로 마켓에 올라가 있는 이 앱은 몇몇 동물들의 울음소리를 음성으로 받아서 영어로 번역을 해주는 앱이다.. 뭐.. 검증할 방법은 없지만 정말 신기한 녀석이라고 생각했고... 그래서!!! 집에 가서 검증을 해보기로 했다. 금동이를 기억하는가? 우리집에 있는 치즈태비 고양이.. 뭐 외부에서는 금동이로 불리우고 있지만 집안에서는 공식적으로 내 아들로 불리고 있다.. (어머니는 할머니가 되는건가..) 여튼 이녀석한테 테스트를 해봐야겠다고 생각했다. 평소에 엄청 말(울음소리)이 많은 녀석이라 실험 대상으로 충분했다. 매번 집에 가면 베란다 너머로 나를 보고 야옹거리니까.. 그때 ..
2010.06.07 -
[C#] 3.0 의 새로운 기능들
w4wawwwaaC# 에는 자바와는 다른 기능들이 많이 있다. 좀더 융통성있고 개발자 편의적인 부분이 있다. 그중에서 코드의 생산성을 높이고 조금 더 개발을 수월하게 해주는 C# 3.0의 새로운 기능들을 소개 하려고 한다. 1. 암묵적인 타입 : var var test = 1234; // test = "Hello"; // 자바스크립트와는 달리 최초 선언된 형태의 변수로 쭉 간다. 다른 형태로 변경이 불가능하다. // 암묵적 타입을 헷깔리게 왜쓰나여? ---> LINQ에서 꼭 필요하기 때문이랍니다. Console.WriteLine("암묵적 타입 사용 : {0}", test); Javascript 의 var 와는 다르게 초기에 선언해준 인스턴스의 유형을 그대로 가져간다. 때문에 다른 타입의 인스턴스도 올 수..
2010.06.07 -
[C#] 의 고급 문법 : Generic
자바에서 Generic 이라는 것을 처음 접하면서 C++에 있는 Template 라는 것과 많이 비교되며 배운 기억이 있다. Generic 이라는 것이 Template 랑 유사할 것이지 같은 의미로 사용되지 않는다는 점을 꼭 기억했으면 한다. 실제로 자바 뿐만아니라 C#에서 사용되는 Generic 이라는 문법 역시 C++의 그것과는 많이 다르게 단순하며 그만큼 또 유연하지 못하고 기능도 적은 편이라고 한다. Generic을 사용하는 것은 코드의 재사용성을 높여서 타입에 대한 안전성을 극대화시키는 장점이 있지만 반면에 코드의 크기가 커지고 가독성이 떨어지는 불리함이 있다. 코드의 크기가 커지는 것에 대해서는 문제삼기보다는 가독성에 대해서 문제 삼을 점이 많다. 가독성이 떨어진다는 것은 그만큼 소스코드를 이..
2010.06.07 -
[C#] 인터페이스를 사용하는 이유가 뭘까?
인터페이스는 내가 배운 개념중에서 가장 이해가 안가고 왜 있어야되는지를 아직도 잘 모르겠는 것 중에 하나다. 사실 인터페이스에 대한 내용을 싣기에는 부족한 내공이지만 배우고 안 만큼만 블로그를 통해서 적어보려고 한다. 인터페이스라는 녀석은 아주 간단한 형태를 띠고 있다. class 라는 선언문 대신에 interface 라고 선언을 하고.. 그 안에는 접근제어자(Access Modifier : public protected private) 가 없는 메소드만이 존재할 수 있게 된다. interface INoodle { void cookPasta(); void cookRamen(); } 아주 심플한 모습인데.. 왜 이런 뼈다귀 같은 구조를 짜놓으며 왜 이런 구조의 인터페이스가 필요한 걸까? 메소드를 선언하는 ..
2010.05.27 -
[C#] 왜 추상클래스를 사용하게 될까?
왜 추상클래스를 사용해야할까요? 어떤 기술의 사용이라는게 좋은 취지에서 사용이 되었더라도 다른 부분에서의 예기치 못한 불협화음을 만들어 낼 수 있다. 클래스의 상속이 그러할지도 모르겠다. 상속을 설명하며 Animal 이라는 클래스와 Cat, Dog 라는 클래스는 IS 의 관계를 만드는 관계를 맺고 있다. 그러면서 생기는 논리적인 문제는 구체적이지 않은 Animal 이라는 클래스의 인스턴스를 만들 수 있다는 점이다. Animal ani1 = new Animal(); Animal ani2 = new Dog(); Animal ani3 = new Cat(); 그럼 Animal 이라는 클래스로부터 Dog, Cat 이라는 클래스가 공유해야할 것들은 공유하되 직접적인 Animal 클래스의 인스턴스의 생성을 막으려면 ..
2010.05.27 -
[C#] 클래스 상속에 관해서..
객체지향 프로그래밍에서 가장 빠지지 말아야 할 것들중에 하나가 이 상속이라는 개념이다. 상속을 처음 배울때 이런 질문을 받았다. 세상에서 가장 빨리 부자가 되는 법이 무엇이냐? 그 당시에는 몰랐지만 답은 상속이었다. 부모가 가진 그대로를 물려 받으면 가장 쉽게 부자가 되고.. 반면에 가장 쉽게 채무자가 되기도 하지만.. 어쨌거나.. 객체지향에서의 상속은 아주 강력한 기능을 수행하기도 하고 문제를 발생시키기도 한다. 더욱이 재미있는 것은 재사용성을 극대화가기 위해서 재사용성이 떨어지는 행동을 만들기도 하고 또 그렇기 때문에 보완을 위한 다른 것들이 있기도 하고.. 여튼 상속은 아주 강력한 기능을 가지고 있는데 상속을 통해서 기대할 수 있는 결과는 다음과 같다. - 코드의 손쉬운 재사용 - 다형성 활용 - ..
2010.05.26