달력

4

« 2024/4 »

  • 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
지난주부터 사내 영어 회화 강좌를 수강하고 있다.
나이들어서 하는 공부라 만만치는 않고, 오전 7시 20분 부터 진행되는 강의라 왠만한 노력이 아니고서는 참석하기도 어렵다. 하지만, 필요에 의해 자발적으로 참석하는 것이기 때문에 나름 열심이다.

사실, 나는 외국어에는 잼병이다. 프로그램을 짜기 위해 익히는 프로그램 언어와는 너무도 다르다. 그래서 사실 대학을 졸업하고는 담을 쌓았다. 아니 대학을 다닐때도 프로그램이 너무 재미있어, 남들만큼 열심을 내어 학원을 다니거나, 학과에 우선해서 영어에 몰두하는 다른 친구들과는 달리, 내가 관심있도 좋아하는 분야를 위해서 노력하고, 만드는 일에 더 매력을 느끼고 있었기에 영어에 대한 관심을 오직 전공과목을 위해 원서를 읽는 일이 전부였다.

하긴 당시에는 영어로 말하는 사람을 드물었고, 공대생의 경우 토익이 반드시 입사를 결정하는 중요요인도 아니었다.

현재의 회사에 들어온지는 올해가 8년째이다. 입사 후 여러가지 프로젝트를 했었는데, 해외의 다른 업체와 협업을 해야 하는 경우도 있고, 교육과 다양한 형태의 미팅도 있었다. 읽는 것이 아니라 말하고 듣는 부분에는 무척 힘이 부친다는 생각이 들었다. 특히 외국 사람에 대한 거부감이 무척 컸다.

하지만, 요즘은 다르다. 팀내에 외국인들이 많이 있고, 외국인과 이야기한다는 거부감도 없다. 물론 말하고 듣는 것에 대한 부담감은 여전하지만....
작년에 나에게 좋은 기회가 주어졌다. 몇달동안 영어 공부를 할 수 있는 프로그램에 들어가게 된 것이다. 온 종일 영어로만 이야기하고, 한국어는 절대로 사용할 수 없는 것이 프로그램의 룰이었다. 이는 나에게 새로운 전기가 되었다. 그러나 잘 듣고 말하기에는 충분한 시간은 아니었다.(내 생각에는 한 2년 정도 외국에서 생활하면 잘 할것 같은데....)
내가 가지고 있던 외국인에 대한 두려움을 없애고, 영어공부하는 방법에 대해 배울 수 있었다는 점은 그 때 얻은 가장 큰 수학이다.

외국어는 습관과도 같아서 즐기면서, 꾸준하게 하는 것이 제일 좋은 학습법인것 같다. 그리고, 말할 수 있는 기회를 자주 접할 수 있어야 효과도 크다.
그런 면에서, 요즘 초중고교의 영어학습 방법의 변화는 환영할 만하다. (우리 세대는 정말 읽는 것만 영심히 했다.) 물론 비용지불에 대한 것은 우려할 만 하지만, 요즘 신입 사원들은 학교를 휴학하고 외국에 어학 연수를 다녀오늘 것이 당연하다고 말하는 현 시점에서는 막연히 반대할 이유는 없을 것 같다.

매끄럽지 않지만 영어로 외국인과 이야기 하는 것도 즐겁고, 정확하지 않지만, 그들이 이야기하는 것을 들을 수 있어서 즐겁다.
특히, 나와 같이 외국에 있는 누군가와 같은 프로젝트를 하고 있다는 사실은 정말 경이롭다.
내가 10년전에는 전혀 생각하지 못했던 방식으로 내가 일하고 있다는 사실이 정말 놀랍다.

이러한 경이로움을 내 아이에게도 나누어 주고 싶다. 아마도 10년 20년 후는 지금과 다른 형태로 지구상의 누군가와 일하고 있을지도....



 

 

'좋아하는 것' 카테고리의 다른 글

Java 7의 자바 Module System  (0) 2008.04.12
Automatic Properties  (0) 2008.04.05
ASP.NET MVC & Request Flow  (0) 2008.03.29
Visual Basic 2008 hot fix in Visual Studio 2008  (0) 2008.03.29
IIS 7.0 Architecuture  (0) 2008.03.18
:
Posted by 행복상자
2008. 3. 29. 20:31

ASP.NET MVC & Request Flow 좋아하는 것2008. 3. 29. 20:31

MVC(Model-View-Controller) 패턴은 일반적으로 UI가 있는 Application에서 사용되는 패턴이다. Data와 UI를 분리하기 위한 노력들은 코드의 재 사용성을 높이고, 시스템 변경시 유연하게 수정이 가능하게 해 주므로 다양한 방법으로 Application에 적용되어 왔다.

ASP.NET MVC

     - Model
      : 일반적으로 Application의 주 로직을 담당하고나, DB를 이용하여, Application의
        데이타를 관리하거나, Business 로직을 포함하고 있다.  
    - View
    
: 사용자의 Interface와 연관된 부분으로, Model 데이터를 보여주거나 User의
         입력 Data를 가졍온다.
    - Controller
    
: User와 Interaction하고 Model과 View를 통해 원하는 결과를 얻을 수 있도록
       동작을 결정한다. 결과적으로 View를 통해 Model의 내용을 볼수 있도록 도와준다.


ASP.NET의 MVC Framework도 여타의 다른 MVC프레임워크와 대동 소이하다. 단지 Microsoft에서 공식적으로 지원한다는 것이 다를 뿐이다. 이는 분명 실행 코드와 HTML을 분리해 줘서, 코드의 가독성을 높이고, 개발 속도를 올리는데 크게 기여할 것이다.



images/mvc.jpg
- ASP.NET MVC Framework는 TDD를 가능하게 도와 준다. 그리고 MOC 테스트를 위한 클래스와 모듈을 Framework에 기본 탑재함으로써, 좀더 유연하게 개발을 할 수 있도록 도와 준다. 보통 테스트를 위해 새로 만들 모듀을 Http Server에 올리고 내리는 작업은 시간을 죽이는 작업들이다. 이는 Framework이 컴포넌트들 대부분이 Interface기반으로 되어 있어서 가능한 점이다.
- 또한, ASP.NET MVC Framework는 확장 가능하고, Pluggable 하다. 이는 각 모듈들이 다른 부분에 영향없이 상용 모듈을 사용할 수 있도록 도와준다.
- SEO(Searc Engin Optimization)와 REST를 지원한다.
- ViewStat와 Postback를 더 이상 사용할 필요가 없다.

Request Flow
일반적으로 ASP.NET의 wep form Applicaton들은 URLs과 Logical Disk 상의 파일들가 Mapping해서 사용하도록 한다. 그러나 ASP.NET MVC Framwork는 URLs와 Controller를 연계하여 사용한다. 그래서 Application이 시작할 때, Url Route Rule을 등록하고, 이 Routiog Handler는 Controller에 연계되어 요청이 있을시 사용된다.

images/request.jpg




참조 링크: ASP.NET MVC Framework Part 1

:
Posted by 행복상자
2008. 3. 29. 09:11

Spring.Net에 관하여 공부하는 것/Spring Framework2008. 3. 29. 09:11

회사에서 나의 업무는 Java쪽에서 주로 일을 한다. 그런데, 이상스럽게도 요즘 내가 찾아보는 자료는 대부분이 .Net 관련 자료들이고 MS와 관련된 기술들이다.

사실, 일을 할때는 .Net이든 Java Side이건 가리지는 않는다. 양쪽 모두 발전하고 있는 기술들이고, 언제 고객의 요구가 변경될지도 모르기 때문에 항상 주지하고 지켜보고는 있지만, 요즘처럼 틈틈히 .Net쪽의 기술을 검토하고, 분석하지는 않았었다.

최근에 새로 프로젝트를 시작할 일이 있어서, 미국의 연구소와 같이 일을 하고 있는데, 그 쪽에서 .Net과 Java의 장단점에 대해서 나열 할 때도, 현실적으로 기존에 구현된 구현부는 Java이기에 .Net보다는 Java를 지지하기도 했었는데, 이상하게도 .Net 관련 기술에 빠져들고 있다.

아마도 기존의 MS는 폐쇠적익, 자기 기술에 대한 표준화에 대한 강한 의지 때문에 폐쇠적이고 자기 중심적인 면이 강했는데 반해, 요즘의 기술적 트렌드와 MS이외의 휼륭한 기술과 Framework을 받아들이는 적극적이고 긍정적인 면이 보기기 때문인것 같다. 기술적 관점에서 외적인 기술 트랜드에 대해 유연한 모습을 자주 보여주기 때문에 나의 관심도가 증가한 것 같다.

Spring의 DI(Dependoncy Injection)와  IoC(Inversion of Container)는 Java 쪽의 Spring Framework를 접해본 사람들은 흔히 듣는 익숙한 용어들이다. 그리고 Spring Framework의 Core 부분이다.
그런데, ASP.Net 3.5에서는 이에 대해 흔히 언급하고 있다. 그리고 DO와 IoC를 지원하다고 언급하고 있기에 나의 관심이 동했다.

Spring.Net은 스프링을 만든 SpringSource(Interface21에서 사명 변경)에서 지원하고 있다.
간략하게 설명하면, Spring Framework의 .Net 버전으로 생각하면 된다.  
따라서 Spring Framwork의 핵심적인 부분은 모두 반영이 되어있지만, .Net의 언어적인 측면을 따라서 만들어져 있다.

DI와 IoC는 스프링의 코어 부분이다. 이는 당연히 Spring.Core 모듈에 포함되어 있다.
Spring.Aop모듈은 스프링 철학의 핵심이라고 할 수 있는 모듈간의 Dependecy를 줄이기 위한 AOP(Aspect-Oriented Programming)을 지원한다. AOP는 한국에서는 상황 중심 프로그래밍으로 알려져 있는데, 웹 개발자라면 한번쯤은 관심을 가져볼만 하다. 아니 Architect를 꿈꾸는 사람이라고 하면, 반드시 접해보는 것이 바람직할 것 같다.
 
그리고, Database와 Data layer에 Access를 위해서 ADO.Net과 NHibernate를 사용하고 있다. 이부분은 Spring Framework과 많은 차이가 있을 것같다. 왜냐하면 ADO.Net도 나름대로 많은 장점이 있기 때문이다.

Spring.Web 모듈은 MVC를 제공하기 위한 기능들을 지원한다.  ASP.Net 3.5의 Extention 기능으로 MVC를 지원하기로 한것은 이미 잘 알려져 있다. 이는 스프링 MVC와는 많은 부분이 다른다. 마치 Rails와 유사하다.

자세한 내용은 아래에 Spring.Net의 링크를 이용하여 얻을 수 있다.
Spring.Net은 Spring Framework ver 2.5의 모든 기능을 지원하지는 않는다. 예를 들어 Spring Dynamic Module(Spring OSGi)는 아직 지원하지 않는다. 공식적으로 사용 가능한 Spring.Net은 ver 1.1이다.

Spring.Core – Use this module to configure your application using Dependency Injection.   

Spring.Aop – Use this module to perform Aspect-Oriented Programming (AOP).  AOP centralizes common functionality that can then be declaratively applied across your application in a targeted manner.   An aspect library provides predefined easy to use aspects for transactions, logging, performance monitoring, caching, method retry, and exception handling.

Spring.Data – Use this module to achieve greater efficiency and consistency in writing data access functionality in ADO.NET and to perform declarative transaction management.

Spring.Data.NHibernate – Use this module to integrate NHibernate with Spring’s declarative transaction management functionality allowing easy mixing of ADO.NET and NHibernate operations within the same transaction. NHibernate 1.0 users will benefit from ease of use APIs to perform data access operations.

Spring.Web – Use this module to raise the level of abstraction when writing ASP.NET web applications allowing you to effectively address common pain-points in ASP.NET such as data binding, validation, and ASP.NET page/control/module/provider configuration.

Spring.Web.Extensions – Use this module to easily expose a plain .NET object (PONO), that is one that doesn't have any attributes or special base classes, as a web service, configured via dependency injection, 'decorated' by applying AOP, and then exposed to client side java script.

Spring.Services – Use this module to adapt plain .NET objects so they can be used with a specific distributed communication technology, such as .NET Remoting, Enterprise Services, and ASMX Web Services.  These services can be configured via dependency injection and ‘decorated’ by applying AOP.

Spring.Testing.NUnit - Use this module to perform integration testing with NUnit.

Spring.Net 1.1이 나온지도 꽤 된것 같다. Spring Framework ver 2.5의 새로운 Picture가 반영된 버전은 언제 나올지 궁금하다.

마지막으로 Spring.Net에 대한 동영상 자료는 아래 링크를 참조하면 도움이 될것이다.
http://www.infoq.com/presentations/pollack-intro-spring


:
Posted by 행복상자

오늘 아침에 SottGu's Blog에서 Visual Basic 2008의 Hot-Fix를 발견했다.
사실 지난 몇주 동안 Visual Basic 2008을 사용해 왔는데, IDE가 갑자기 늦어지는 문제를 자주 경험했다. 이는 디버깅을 위해, F5키를 눌러서 프로그램이 Loding되고, 실행하는데도 영향을 미쳤다.

아래는 MS에서 Hot-Fix에 대한 증상을 기술한 것인데, 내가 경헙했던 증상 증상과 동일하다.

The IDE takes a long time to build the solution and to rebuild the solution.
You experience a slow response time when you press F5 to start debugging.
You experience a slow response time in the Code Editor.
You experience a slow response time in IntelliSense.


Hot-Fix의 위치는 아래와 같다.
Hotfix Available for VB Performance Issue in VS 2008

:
Posted by 행복상자