달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'프로그램밍언어'에 해당되는 글 27

  1. 2008.10.07 Cocoa Programming을 시작하며...
  2. 2008.10.05 MAC 프로그램을 시작하면서...
  3. 2008.10.03 ASP.NET, ASP.NET MVC, ASP.NET Dynamic Data
  4. 2008.06.30 Spring Configuration 사용법
2008. 10. 7. 23:44

Cocoa Programming을 시작하며... 공부하는 것2008. 10. 7. 23:44

드디어, 어제 신청했던 책이 오늘 도착하였다. 사실 회사에서 어제 원서를 빌려서 잠시 읽었는데, 원서는 쉬운 영어로 정확한 표현들, 쉬운 표현들을 사용하여여 읽기에 큰 무리가 없을 것 같다.

요즘 회사에서 내가 하고 있는 프로젝트는 OSGi와 Spring DM을 이용하여 Framework를 만드는 것이다. 하지만, 사람들이 바라보는 것은 Common 모듈을 만든다고만 생각을 한다. 그리고, 지원 할 수 없는 기능은 구현이 불가능하다고 단정하는 사람들도 가끔 보인다.

사실 보이지 않는 것은, 사람들은 느끼지도 믿으려하지 않는다. 그래서 가끔은 닥쳐야 일을 하기도 한다. 어떠 어떠한 프레임워크가 좋다라고 하지만, 실제로 사용하지 않으면, 그 두꺼운 레퍼런스는 그 효용성이 떨어질거다. 이는 개발자에게는 무용지물이라는 생각을 들게 만들지도 모른다.

오늘 도착한 책의 역자 서문을 읽다보니 이러한 글이 있어서, 잠시 내가 하고 있는 일과 프로젝트를 되돌아 보았다.

코코아 프레임워크 전체를 책에서 하나 하나 설명한다면 그 책은 단순히 프레임워크 레퍼런스가 되고 말것입니다.

단순하지만, 저자가 책을 쓴 목적이 명확히 들어나 있다. 그리고 책은 예제와 많은 그림들이 들어 있다. 원서에는 믿고 따라오라는 저자의 강력한 메시지가 있었는데, 기억은 나지 않는다. 암튼 새로 오늘 받은 책이 마음에 든다.

같이 공부하는 다른 사람들과 조만간 Workshop도 한번 계획해 보아야 겠다.
:
Posted by 행복상자
2008. 10. 5. 00:50

MAC 프로그램을 시작하면서... 공부하는 것2008. 10. 5. 00:50

우연치 않게 맥 프로그래밍을 시작해야 할 것 같다. 물론 여지것 여러 환경을 접하고 새로운 언어와 기술을 익히는 것이 여지것 해 왔던 일이기도 하지만, 한 편으로는 많을 시간을 들였던 것들을 제대로 사용하지 못하고 버리기도 해왔던 경험도 많기 때문이다.

회사에 친하게 지내던 지인들이 있다. 지난중 금요일 점심을 같이 하고, 차를 마시는중 갑자기 누군가(구라파 닷컴 운영자)가 iPhone용 어플을 개발하고 싶다는 것이었는데, 분위기가 갑자기 찬성으로 돌아서면서, 모임명이 가칭 "제로사체"가 될것 같다.

다들 바로 일터로 돌아가서 인터넷으로 책을 구매해서 영수증을 캡쳐해서 보내주었다. 다들

너무나 발빠른 사람들이다.  사실 아래 "Cocoa  Programming for MAC OS X"라는 책은 국에서 번역된 책인데, 나른 잘 되어 있다는 평을 받고 있는것 같다. 다는 이책을 추천해 주고 있으니 말이다.


내가 오늘 이책을 구매하면 이번주 화여일나 도착할 것 같다. 사실 그동안 아무러 계기가 없어서 맥쪽 프로그래밍은 전혀 생각해보지도 않았다. 아니 전혀 다른 분야라는 생각을 가지고 있었기에 눈을 두려고도 생각하지 않았다. 지금하고 있는 서버 사이드의 기술을 하루 하루 발전하고 있기에 다른 쪽으로 외도 하고픈 생각이 전혀없었지만, 집에서 사용하고 있는 맥북의 새로운 용도를 발견해서 정말 기쁘다.

그리고 더블어 몇개의 개발 관련 사이트를 찾았다.

- 코코아랩: http://www.cocoalab.com/
  이 사이트는 코코아 관련 자료들이 있는데, 이중 XCode에 대한 자료는 한번 봄 직하다. 여러 나라 말로 작성되어 있는데, 아쉽게도 한글로 되어 있는 것을 없다. 다음을 참조하면 다운 받아 볼수 있다. (http://www.cocoalab.com/BecomeAnXcoder.pdf)

- 맥포지: http://www.macforge.net/
   여기는 맥 관련 개발 소스코드들이 올라와 있을 것 같다.(아직 직접 돌아보지 않아서, 정확히는 모르지만, 쉽게 유추가 가능하다.) 오늘 맥쪽에서 개발자와의 NDA를 폐지한다는 기사를 잡시 보았다. 앞으로 맥 관련 소스코드들을 쉽게 접할 수 있을 것 같다.






:
Posted by 행복상자
2008. 10. 3. 09:42

ASP.NET, ASP.NET MVC, ASP.NET Dynamic Data 공부하는 것2008. 10. 3. 09:42


스컷 구슬리의 Blog를 가보니 그는 정기적으로 자신의 웹 사이트 북마크들을 공개하고 있는 것 같다. ASP.NET, ASP.NET MVC, ASP.NET Dynamic Data에 대한 북마크인데 참고를 하면 기술흐름과 추이들을 손쉽게 이해할 수 있을 것 같다.

[ASP.NET]

 Bulk Inserting Data with the ListView Control: Matt Berseth continues his awesome posts with one that shows how to handle bulk-editing of data using the ASP.NET ListView control in .NET 3.5

Amazon의 Cloud Computing을 위해서 MS의 서버 제품군들을 이용하고 있는데, Amazon의 Open webservice제고 하기 위한 EC2 서버스 구축과 관련된 내용을 볼수 있다.

Using ASP.NET WebForms, MVC and Dynamic Data in a Single Application: Scott Hanselman has a nice post that demonstrates how you can have a single ASP.NET application that uses ASP.NET WebForms, MVC, WebServices and Dynamic Data.  You have the flexibility to mix and match them however you want, which allows you to always use the right tool depending on the specific job.

 ASP.NET WebForms, MVC, WebServices and Dynamic Data를 이용하여 Application을 작성하는 것에 대하여 설명하고 있다. Microsoft는 개발자가 WebForm과 MVC를 이용하여 개발 할 수 있도록 환경을 만들어 주는데, 이 두가지를 어떻게 적절히 사용할 수 있는지에 대하여 설명해 주고 있다.

 Modifying Data with the ListView's EditItemTemplate: Matt Berseth has a great post that talks about how to use the ASP.NET 3.5 ListView control to enable in-place editing scenarios - with total html markup control.

List View를 어떻게 수정해서 사용할수 있을지에 대한 샘플 코드를 통해서 설며앻주고 있다. 이는 서버 사이드에서 실행되는 코드로 요즘에 많이 알려져 있는 Javascript Framework에서 제공하는 것과는 다르다.

4 New Grouping Grid Skins: Vista, Bold, Win2k3 and Soft: Matt Berseth has another nice post that demonstrates how to skin the ASP.NET ListView control to enable some sweet data grouping scenarios.

새로운 4개의 그리드 Skin에 대한 이미지와 컨트롤의 사용에 대해서 설명해 준다.

 Unlocking and Approving User Accounts: Scott Mitchell posts another in his great series of articles on ASP.NET security (click here for all the articles in the series).  This article talks about how you can setup administration pages that allow admins to lock out and approve user accounts using the ASP.NET Membership system.

Admin 관리자가 사용자 계정을 사용유무를 관리하기 위한 페이지에 대해 이야기 하고 있다.
 Adding OpenID to you website in conjunction to ASP.NET Membership: Dan Hounshell has a nice article that discusses how to add OpenID authentication support to your web-site, and use it in conjunction to ASP.NET's built-in membership system.

Open ID 계정의 사용에 대한 설명과 소스 코드가 있다.

[ASP.NET MVC]
 MVC Membership with Preview 5: Troy Goode posts an update of his popular MVC Membership template that works with ASP.NET MVC Preview 5.  It provides a set of administration pages you can use for user/role management, as well as adds support for OpenID and Windows LiveID.
 MVC Flickr Xplorer: Mehfuz Hossain has a cool ASP.NET MVC sample application posted that enables a nice picture explorer for FlickR photos.

.NET MVC를 이용한 Sample 코드를 소개하고 있는데, Flicker의 사진 이미지를 볼수 있는 프로그램을 .NET MVE Preview3를 이용해서 만들었다.

[ASP.NET Dynamic Data]
 Simple 5 Table Northwind Example: Matt Berseth kicks off his ASP.NET Dynamic Data tutorial series with a nice post that shows how to build a simple 5 table application using ASP.NET Dynamic Data with .NET 3.5 SP1

Northwind 테이블을 이용하여 Dynanic Data 사용을 위한 예제들을 담고 있다.
 Dynamic Data And Custom Metadata Providers: Matt continues the series and covers the MetadataType attribute, and how you can use it to annotate your entities with additional metadata.
 Dynamic Menu for your Dynamic Data: Matt continues and covers how to add a data-driven menu to the site

2단 메뉴를 구성시 Dynamic Data를  어떻게 이용할 것인가에 대해 설명해 주고 있다.
 Customizing the Delete Confirmation Dialog: Matt continues and demonstrates how to build a nice UI experience when deleting records in a dynamic data application
 Experimenting with YUI's DataTable and DataSource Controls: Matt experiments with how to use client-side AJAX components together with dynamic data.

YUI의 테이블과 Dynamic Data를 같이 사용하는 방법에 대한 예제와 설명을 담고 있다.








:
Posted by 행복상자
그냥 며칠동안 테스트 코드를 작성하면서, 발견한 사실들에 대해서 겸허히 쓴다.
일민이(Toby)는 나보고 또 Spring Framework Developer Reference를 읽어보라고, 아프게 충고를 했다.

먼저, Test코드를 작성하다 보니,
BeanFactory 의 사용법과 ApplicationContext 의 사용법이 다르다는 사실을 발견했다.
사실 ApplicationContext는 BeanFactory의 인터페이스를 상속받아 만들어진 인터페이스이다. 따라서, ApplicationContext는 BeanFactory의 모든 동작을 포함하고 있고, 비슷하게 동자을 하도록 도와준다. 둘 모두 getBean() 메소드를 사용해서 Configuration을 위해 작성한 XML파일에서 정의한 Bean을 얻을 수 있다. 아까도 이야기 했지만, ApplicationContext Interface는 BeanFactory Interface의 확장이다.

ApplicationContext와 BeanFactory Interface간의 차이점은 Singleton 빈의 로딩하는 방법에 있다. BeanFatory는 getBean() 메소드가 호출될 때까지 Bean의 생성을 미룬다. 반면에 ApplicationContext는 Singleton 빈을 미리 로딩함으로 그 빈이 즉시 사용이 가능하도록 보장해 준다.

일반적인 테스트 코드를 작성할때는 두개의 차이가 거의 없을것이다. BeanFactory는 테스트 코드를 작성하기에 매우 유용하지만, 두 Interface의 차이를 알지 못하면, 이상하게 여길수도 있다. 최근에 Scheduler를 작성하게 되면서, 테스트 코드를 작성한 적이 있는데, Quertz의 Thread가 생성이 되어서 동작을 해야 하는데, 동작을 하지 않다가 getBean("scheduler")를 실행시켜줘야만 동작을 한는 것이었다. (BeanFactory 사용시)
그러나, ApplicationContext의 사용시는 ApplicatiionContext의 인스턴트가 생성되면, Quartz의 Thread가 실행되어 정해진 시간마다 Job을 실행하는 로그를 찍었다. 이유는 위에서 설명한 이유때문이다. (테스트시 ApplicationContext를 사용할 이유가 하나 늘었다.)

그리고 또하나 발견한 것은 getBean("beanId")을 통해 Bean의 reference를 얻어 올수 있다. 하지만, 가져온 Bean의 형이 내가 생각했던 것과는 다를 수도() 이는 Bean의 원 클래스에서 반환하는 오프젝트가 반환되기 때문이다.

[AbstractApplicationContext 코드 중에서]
public Object getBean(String name) throws BeansException {
  return getBeanFactory().getBean(name);

 }


만약, Factory 자체를 반환하기를 원한다면, "&"를 "beanId"앞에 붙여서 사용하면 된다.
이렇게 말이다. ==> getBean("&beanId)
이를 가르쳐 주면서 reference guide 를 잘 살 펴보라고 한다. 그래서 살펴보았더니. 딱 2줄에 걸쳐서 설명이 되어져 있다. Spring In Action에는 설명이 아예 안 되어 있다.

[BeanFactoryUtils코드 중에서]

public static boolean isFactoryDereference(String name) {
  return (name != null && name.startsWith(BeanFactory.FACTORY_BEAN_PREFIX));
 }


이 코드은 사실 AbstractBeanFactory 클래스에서 사용되는 메소드이다. 그리고
BeanFactory.FACTORY_BEAN_PREFIX 는 "&"로 정의되어 있다. 
:
Posted by 행복상자