얼마 전에 Ruby 와 Python 어떤 Script Language 를

공부해볼까 고민하면서 이것저것 고민해보다가

여러 좋은 자료들을 발견해서 블로그에 정리해본다 :D







조금 오래된 자료이지만 도식화 되있어서 보기 편리하다는 장점ㅎㅎ

개인적으로는 PHP 가 가장 경험많고, Python 은 진짜 맛 보기만 해봤고 Ruby 는 전혀..경험이 없다.


Ruby 를 웹에서 간단하게 해볼 수 있는 유용한 사이트가 있다. 

사이트 디자인도 제법 귀여운 요소가 많아서 좀 의외.(좀 일본느낌나지만)


http://tryruby.org/levels/1/challenges/1  : Script 언어 처음이신 분은 조금 신세계 일지도.




Ruby 와 Python 을 비교해놓은 오래된 포스팅도 발견.

일단 링크는 적어놓지만.. 마지막 포스팅이 2009 년이라 언제 없어질지 모르는 자료라서 여기에 옮겨놓는다.(죄송ㅠㅠ)

http://nextcontext.tistory.com/17 : 아래 접어놓은 글 중에 링크들은 안 긁혀져서 여기 링크를 통해야 된다.





Ruby 의 경우 개발자들을 위해 만든 언어라서 그런지 생각보다 한번 빠지신 분들은 깊은 충성도(?)를 자랑하는 듯 했다.

Python 은 Google 의 3대 개발 언어 중 하나이고, 지금은 어떤지 모르나 위의 Performance 표를 비교해 보면

확실히 눈에 띌 정도로 High Performance 를 자랑한다. 안정되면서도 뛰어난 성능을 자랑하니

개인적으로 선호하는 건 Ruby 이지만.. Python 을 더 공부하는 게 나을 것 같은.. 애매한 생각이 든다.




by kelicia 2013. 12. 19. 16:01


인턴하면서 WPF 프로그래밍을 접해봤고, MVVM 패턴이라는

디자인 패턴을 처음 접해보았다. 


학교에서 배운 디자인 패턴들도 있었으나 그 패턴들을

직접 코딩해보면서 알아가지 않아 확실히 느낀 바가 없어서 

배워도 그게 뭐였더라 하면서 애매했었는데 이번 기회에 정리해보려고 한다 :D





그림이 쬐끔해서 엄청 마음에 안듦



위 그림들을 서술형으로 정리해보자면



MVC (Model - View - Controller)

- Controller 에 직접 Input

- View 와 Controller : Many to One 관계

- View 는 Controller 를 참조하지 않음

- Model 은 View 를 간접적으로 참조함


- > Controller 에 입력이 들어오면 Controller 는 Model 에 있는 Data 를 조작하고, View 는 Model 에서 조작된 data 를

참조하여 View 를 수정한다. 이 때 View 가 Model 을 참조하거나 Model 이 View 를 참조하거나 하는 방식으로

변화에 대한 업데이트를 할텐데 결국 View 와 Model 이 참조를 할 수 밖에 없다는 이야기.



MVP (Model - View - Presenter)

- View 에 직접 Input

- View 와 Presenter : One to One 관계

- View 는 자신의 Presenter 를 참조하고 Presenter 역시 View 를 알고 있음

- View 는 Model 를 참조하지 않아 Presenter 를 통해 Model 을 업데이트함


-> View 에 입력이 들어오면 Presenter 에 data 를 요청하고, Presenter 는 자신이 참조하는 Model 에 업데이트를

요청하는 방식으로 동작한다. 이 경우 View와 Model 은 완벽히 분리되지만 View 와 Code 가 완벽히 분리됐다고

보기는 어렵다.



MVVM (Model - View - ViewModel)

- View 에 직접 Input

- View 와 ViewModel : Many to One 관계

- ViewModel 은 View 를 참조하지 않음

- View 는 Model 를 참조하지 않아 ViewModel 를 통해 Model 을 업데이트함


-> View 에 입력이 들어오면 View 가 참조하고 있는 ViewModel 에서 Binding 된 객체를 찾아 업데이트를 한다.

MVP 패턴에서는 Presenter 는 전적으로 View 의 형태에 따라 달라지지만,

MVVM 패턴에서는 ViewModel 이 View 를 참조하지 않으므로 Model 의 형태를 따른다고 할 수 있다.

View 는 Model 과 완벽히 분리되며 ViewModel 과도 Binding 을 통해 자동 업데이트 되므로 data 와도 완벽히 분리된다.


ex )

- .xaml (xaml의 .cs 파일에서 DataContext 프로퍼티를 참조할 ViewModel 로 Set)

<TextBlock Text={Binding TestText} />


- ViewModel.cs

private string _testText = "";

public string TestText

{

get { return _testText; }

set { _testText = value; OnPropertyChanged("TestText"); }

}




- 참고 자료

1. 선배님 발표자료 'WPF / MVVM 소개'

2. http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx




by kelicia 2013. 12. 19. 15:27

수재들 쩔쩔...구글 입사 문제 보니

이재구 국제과학전문기자 jklee@zdnet.co.kr 2012.11.16 / PM 03:22 


"스쿨버스에는 얼마나 많은 골프공이 들어갈까요?"

"약 25만개입니다."
  
과연 회사 입사 지원자들 가운데 몇사람이 인터뷰 자리에서 이런 질문을 받자마자 머릿속에서 계산, 적절한(?) 
시간내에 정확히 답할 수 있을까?

실리콘밸리 최고기업에 오른 구글에 입사하려면 이런 문제를 입사 인터뷰 자리에서 풀고 답해야 한다. 
아이비리그나 매사추세츠공대(MIT), 스탠포드대를 졸업한 수재들조차 순간 멍해진다고 한다.

비즈니스인사이더는 15일(현지시간) 게일 라크먼 맥도웰 전 구글SW담당 기술자이자 구글입사원서(Google Resume) 저자가 미국의 수재들조차도 머리를 쥐어짜던 구글 면접관의 입사인터뷰 문제는 이제 금지됐다고 
전하면서 이같은 문제를 소개했다고 보도했다.  

비즈니스 인사이더가 소개한 악명높은 입사 인터뷰 시험문제는 구글에 입사시험을 본 적이 있는 사람으로부터 
확보한 140개 문제 가운데 일부다. 
 
수재들도 머리를 쥐어짜던 문제, 즉 브레인티저(Brain-teaser)는 일반인들에게 "과연 어떤 문제였길래?" 하는 
관심을 끌기에 충분하다. 구글이 금지시킨 이 '어리석은 질문'은 과연 얼마나 나쁜 것일까? 문제는 정말 아주
나쁜 것이었다. 


소개된 문제의 일부는 다음과 같다. 

▲ 스쿨버스에는 골프공이 몇 개나 들어가나?

▲ 시애틀시에 있는 모든 건물의 유리창을 닦아주면 얼마를 받아야 하나?

▲ 사람들이 오직 아들만 원하는 나라에서 모든 가족들이 아들을 낳을 때까지 계속 아이를 낳는다. 만일 그들이 
딸을 갖는다면 그들은 또 다른 아이를 가지게 된다. 만일 그들이 아들을 낳는다면 더 이상 아이를 갖지 않는다. 
이 나라에서 아들과 딸의 성비는?

▲ 전세계에는 얼마나 많은 피아노조율사가 있나?(시카고에는 얼마나 많은 피아노조율사가 있나?) 

▲ 샌프란시스코 재난시 재난대피 계획을 설계하라.

▲ 왜 맨홀 구멍 뚜껑은 둥근가? 

▲ 하루에 시계의 분침과 시침은 몇 번 겹치는가? 

▲ 데드비프(DEADBEEF)의 중요성에 대해 설명하라(SW설계부문 응시자) 

▲ 당신은 해적선장이고, 부하들이 어떻게 황금을 나눌지를 투표로 결정한다. 부하 절반이상의 동의를 얻어야 
황금을 당신의 뜻대로 나눌 수 있다. 그렇지 않으면 당신은 죽어야 한다. 황금을 가장 적당하게 나눠주도록 
하려면 부하들을 어떻게 구워삶는 말을 해야 하는가?

▲ 당신은 8개의 공을 가지고 있다. 이 중 7개의 무게는 같고 한 개는 약간 더 무겁다. 어떻게 하면 균형의 원리를 
이용해 딱 2번만 공 무게를 재서 더 무거운 공을 찾아 낼 수 있나?

▲ 8살짜리 조카에게 단 3줄의 문장으로 데이터베이스가 무엇인지 설명하라. 

▲ 당신이 5센트짜리 동전으로 줄어들고 부피가 이에 비례해 작아지면서 원래의 밀도를 유지한 채 믹서기에 
던져진다. 칼날이 60초동안 움직인다면 당신은 무엇을 해야 하는가? 

게리 라크만은 구글내에서 “만일 회사의 브레인티저 문제 금지 정책에도 불구하고 면접관이 입사지원들에게 
이런 문제를 질문하는 사람이 있다면 고용위원회는 이 인터뷰 결과를 신뢰하지 않을 것이며 면접관에게 그런
 어리석은 질문을 하지 말 것이라고 회신해 보낼 것”이라고 말했다. 
  
그렇다면 입사자들을 고문하던 이 머리 아픈 질문의 답은? 비즈니스인사이더가 공개한 답은 질문 순서대로 
다음과 같다.   

▲ 25만개의 골프공 

▲ 유리창 당 10달러 

▲ 50대 50 

▲ 조율수요에 따라 다르다 (12만5천명) 

▲ 둥글어야 빠지지 않는다 

▲ 어떤 종류의 재난을 말하는가? 

▲ 22번(AM 12:00 1:05 2:11 3:16 4:22 5:27 6:33 7:38 8:44 9:49 10:55 PM 12:00 1:05 2:11 3:16 4:22 5:27 6:33 
7:38 8:44 9:49 10:55) 

▲ 데드비프는 16진법값으로서 메인프레임시대의 디버깅에 사용됐으며 헥스덤프페이지에서 특별한 메모리를 
표시하고 찾기 쉽게 해준다. (대부분 컴퓨터공학과 졸업생은 적어도 어셈블리어수업시간에 이를 배운다. 
“쇠고기는 항상 죽어있다”는 답은 오답이다.)

▲ 51%의 최고 선원에게 공평하게 보물을 나눠준다 

▲ 먼저 8개의 공 가운데 6개를 골라 이중 3개를 한쪽 저울에 올린다. 만일 무거운 공이 6개 가운데 없으면 
나머지 2개 가운데 하나가 무거운 공인 것이 분명한 만큼 이를 저울에 다시 재서 확인하면 되고, 
만일 무거운 공이 좌우 2그룹으로 나뉜 6개의 공 가운데 있다면 무거운 3개의 공가운데 두 개를 재서 
확인하면 그것으로 끝이다

 ▲ ‘데이터베이스는 많은 것에 대한 많은 정보를 기억하는 기계란다. 사람들은 기억을 돕기 위해 
이를 사용한단다. 나가 놀아라.’

▲ 전기모터를 부수게 될 것이다.
  
MS도 과거에 이같은 악명높은 입사지원자 대상의 구두인터뷰 시험문제를 본 적이 있다. 

예를 들면 전성기 때 MS는 "후지산을 어떻게 옮길까?"라는 질문을 비롯해 이번에 소개된 구글 인터뷰
질문과 비슷한 질문을 입사자에게 물어 이들을 테스트 했었다. 

[저작권자ⓒ메가뉴스 & ZDNet & CNET. 무단전재 및 재배포 금지]


by kelicia 2013. 1. 27. 17:11