Passion 456

[Java] Class<T>

Class class나 interface를 표현하는 인스턴스 -Ref: http://download.oracle.com/javase/6/docs/api/java/lang/Class.html public class MyClass { private String field; public static void main(String[] args) { Class clazz = MyClass.class; // 인스턴스의 클래스 정보를 알고 싶을 때 // MyClass inst = new MyClass(); //Class clazz = inst.getClass(); System.out.println(“This class name : “ + clazz.getName()); } } [root@vm-cs-mgmt tes..

Passion/Java 2011.07.15

Matrix를 Key, Value 쌍으로 저장하는 방법

Matrix는 테이블 형식의 데이터를 저장하는 효율적인 방법이다. 하지만 과 같은 sparse matrix를 N*N 테이블에 넣으면 메모리 손실이 너무 많다. n1 n2 n3 ... n100,000 n1 1 1 n2 n3 1 1 ... n100,000 1 대용량 sparse matrix 이를 관계형 데이터베이스로 구성하면 T_ROW n1 n2 n3 ... n100,000 T_Column n1 n2 1 n1 n1000,000 1 n3 n1 1 n3 n2 1 n1000,000 n3 1 이렇게 구성하면 되나 데이터가 너무 큰 경우 db table로는 관리하기 힘들다. (주로 외래키 관리가 어려움) Bigtable과 같은 Key, value 쌍으로 표현하면 n1 n2:1 n100,000:1 n2 n3 n1:1 ..

Passion/Algorithm 2011.07.14

Java vs. Python 에 대한 생각

대학원에서 프로그래밍 언어를 전공했고 Python 매니아지만, Python에 매니아에 대한 비판을 해보고자 한다. Python은 정말 훌륭한 프로그래밍 언어로 개인이 생각한 알고리즘을 단 몇 분만에 구현할 수 있다. 그럼 Python 으로 모든 것을 해결할 수 있을까? 정답은 왠 만한 건 다 해결할 수 있다 이다. 하지만 당신이 IT에 종사하며 자신의 연봉을 높이고 싶으면 Python 뿐만 아니라 Java 에 대해서도 공부해야 한다. Java는 전면전에서 사용하는 총과 대포와 같다면 Python은 백병전에서 급할 때 쓸 수 있는 단검과 같다. 주변을 돌아보라! 실제적인 엔터프라이즈급 어플리케이션은 자바로 구현되어 있다. Python으로 구현 못해서 자바로 했을까? 아니다. 자바는 너무나 많은 사람들이 사..

Passion/My Idea 2011.07.14

cloud.com 와서 배운 점

3달 간의 Cloud.com 과의 공동개발 과제를 정리할 시기가 왔다. 회사의 지원으로 미국 생활을 하면서 업무적인 배움과 개인적인 배움을 머리 속에 각인하자. CloudStack을 개발하는 인원은 대략 20명 가량이 된다. 회사 규모는 벤처지만 20명 가량의 인원이 하나의 프로젝트를 진행하고 있으니 실제적인 프로젝트의 규모는 상당히 큰 편이라고 볼 수 있다. (우리가 5억짜리 프로젝트 하면 대략 4명이 하니까) 그러면 이러한 사람들이 어떻게 과제를 잘 진행할 수 있을까? 1) Main Architecter 의 존재 - CTO와 Top Architecter 가 한다. - 이 사람이 가장 중요한 인재로, 전체 abstract 설계를 잘 해야 한다. - 분명 혼자 설계하기 보다는 각 분야의 전문가와 상의를 ..

Passion/My Idea 2011.07.14

[Java] HashMap 예제

1.1 HashMap vs. Hashtable o Key , Value를 저장하는 방법 ¡ HashMap은 key, value 에 Null을 허용, Hashtable은 그렇지 않음 ¡ HashMap은 thread safe 하지 않음, Hashtable은 thread safe ¡ HashMap은 bucket에 element들을 흩어 뿌리기 때문에 get/put 과 같은 기본 동작들이 constant-time performance를 가짐 import java.util.HashMap; public class ExHashMap { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub HashM..

Passion/Java 2011.07.08

[JAVA 문법] enum

1.1 java enum o 클래스처럼 보이게 하는 상수 ¡ 예를 들어 Config 라는 클래스를 만들고 맴버로 KVM,XenServer를 두고 싶음 - 기존의 클래스로 구현하는 방식 (Config.java) public class Config { public static final int KVM = 1; public static final int XenServer = 2; } - 위와 같이 클래스로 구현한다. - 여기에서의 문제점은 1,2 값이 KVM, XenServer 만을 가르키지 않는다 - 또한 3,4 와 같은 숫자가 들어 올 수도 있다 ¡ 이러한 문제점을 해결하기 위해서 JAVA 1.5 에서 enum 이 추가 되었다. public enum Config { KVM,XenServer } ¡ 출력 p..

Passion/Java 2011.06.25

모든 일에 의미를 부여하자

"열심히 공부해라"라는 말은 단순한 Fact를 전달하는 말로 이 말을 들은 사람은 아무도 공부하지 않을 것이다. 즉 Fact의 전달로는 사람들에게 실천을 하게 할 수 없다. 무엇을 하던 그것이 가지고 있는 메시지를 끄집어 낼 수 있어야 한다. 내가 전달하는 내용이 당신에게 어떤 메시지를 줄 수 있는지를 느끼게 해야 한다. 많은 내용을 전달할 때 이것의 가치를 한 줄로 줄여줘야 한다. 예를 들어 스타벅스의 의미는 "커피 문화를 체험하는 곳", "커피 문화를 체험해 보실래요?" vs. "커피 한잔 마실까요?" 얼마나 차이가 크게 느껴지는가? 스타벅스 커피를 마시는 순간 당신은 커피 문화인이 되는 것이다.

Passion/My Idea 2011.06.24

최악의 듣기 태도 13가지

대화는 "상대방에게 혀를 내미는게 아니라 귀를 가까이 가져가는 것이다" 이러닝 중에 나온 최악의 듣기 태도 13가지가 있다. 이걸 보고 있으니 내 자신의 듣기 태도에 대해서 고쳐야 할 점이 많은거 같다. 1) 회의적인 표정을 짓는다. 2) 다른 사람이 말하고 있을 때 자기가 할 말을 머릿속에서 미리 다듬는다. 3) 시계를 자주 본다 4) 이야기 도중 전화를 받는다. 5) 상대방을 불안하게 만든다. 6) 상대방이 말하는데 자꾸 끼어 든다 7) 마음대로 화제를 바꾼다. 8) 계속 자신에 대해서만 이야기 한다. 9) 불필요한 충고를 한다. 10) 시선을 피한다. 11) 공격적이거나 불성실한 태도를 보이고 불쾌한 시선을 보낸다. 12) 이야기 도중 자리를 뜬다. 13) 상대방이 이야기를 하는 도중 꾸벅꾸벅 존다..

Passion/My Idea 2011.06.21

What is fervor?

2011년 달라스와 히트의 NBA final 6차전을 보고 있는데 선수보다 더 눈길이 가는 사람이 있었다. 과연 그 사람이 누구길래 그렇게 active하게 소리를 지르며 스포트라이트를 받을까? 52살의 Mark Cuban 이다. 그는 억만장자 중의 한 명인 달라스 메버릭의 구단주였다. 가난한 농부의 아들에서 IT 기업 MicroSolutions와 Broadcast.com 을 설립하고 팔아서 억만장자 대열에 들었다고 한다. Cuban의 재산이 부러운게 아니라 TV 속의 거의 열정이 그가 성공할 수 밖에 없는 사람이란 것이 부럽다. 가장 중요한 것은 자신에 대한 열정이다. 나이는 중요하지 않다.

Passion/My Idea 2011.06.13

프로그램 개발 방법론(operation vs. process)

프로그램을 개발하다 보면 operation 과 process 가 중복되어 스파게티 코드가 되기 싶다. 이는 개발 컨셉의 부족인거 같다. (즉 어떻게든 동작만 하면 된다 ㅜㅜ) 나의 프로그램 철학 operation 클래스 - operation은 모든 parameter 들이 정확하게 입력 되었다고 가정하고, 자신이 해야 할 동작만 한다 - 즉, parameter checking을 하지 않는다. - 이는 코드 readability를 높여 준다. process - 프로세스는 사용자의 요구에 의해서 operation 들의 조합이다 - 즉 프로세스는 비지니스 로직에만 집중한다. - 이 때는 항상 operation의 parameter와 결과를 확인한다. 이렇게 해야 좀더 깔끔한 코드가 되는거 같다.

Passion/My Idea 2011.06.10
728x90