관리 메뉴

새로운 시작, GuyV's lIfe sTyle.

내가 닷넷 공부했던 방법 본문

ⓟrogramming/.net

내가 닷넷 공부했던 방법

가이브 2010. 10. 7. 18:53

2002년 당시, ASP공부를 했었지만 실제 만들어낸 별 결과물은 없었다. 당시 ASP에 DB연동을 이해한 후, 맘만 먹으면 뭐든지 만들어 질 것 같은 느낌이 들었을 뿐.

닷넷책 한권 들고 인터넷 환경 없이 오직 헤딩했다.(군 현역시절이라) 
MSDN과 함께. ASP.NET(웹) 부터 접근했다.

나에게 만만한 녀석인 ASP와 비슷한 공부방법으로 접근.
 

- GET,POST로 값을 받아본다.
(당시)
프로그래밍의 기본은 "입력"->(가공)->"결과물"이다.
ASP와 다르게 괄호가 중괄호로 바뀌어 있다. 출력해보니 잘 된다. 대소문자 구분하네. 조금 귀찮으며, 형 지정도 귀찮다. 그래도 어쩔 수 없지.

<... runat="server">는 무엇인가? 외우지 않는다. 질릴까봐. 닥치고 친다. 지금은 없지만, QuickStart 에 있는 컨트롤들을 실행해보고 코드를 보며, 직접 만들어본다. <ASP:TextBox id="txt1" runat="server" /> 실행해보고 에러나면 고쳐내어서 결과물을 본다. 꼭 "소스 보기"로 어떻게 변했는지 확인한다.

(뒤돌아보면..)
저 때는 컬렉션이 뭔지, 객체가 뭔지, 전혀 모르는 상태였다.
Request 가 클래스인지도 몰랐던 거였지. 그냥 값 받으려면 Request["userid"] 하면 잘 받았다. Request.Form, Request.QueryString 이런 녀석, 안써도 잘 된다.  아주 단순한 자료형 변환도 잘 안된다. 늘 안될 때면 책을 뒤진다. 외우지 않는다. 오류나도 별 생각없었다. "내가 모르는 상태에서 하는건데 안되는게 당연하지."
쓰다 보면 알게된다. 처음 시작시에는 결과물이 중요하다. 재미부터 봐야된다는 말이다.

- <form></form>
(당시)
어떤 컨트롤은 <form runat="server"></form>안에 넣어야되고, 어떤건 예외가 있다.
<ASP:xxxx ... > 이건 뭔가? 텍스트박스 만드는데 왜 저렇게 해야되지? 이벤트? 아.. 어쨌든 Click="btn_click" 같이 넣어주면 연결되는 거구만.. ASP할때는 write.asp 에서 쓰고 write_done.asp 에다가 보내서 저장했는데, 파일 한큐에 되는구만. 굿.
근데.. 왜 클릭해서 submit 이 되었는데, <form>태그 컨트롤들 값들이 남아있지? 신기하다. 이벤트 위주로 처리하다 보니까, 이건 웹인지 어플인지 분간이 안간다. 꼭 어플 개발하는 것처럼 코딩이 되는군.

(뒤돌아보면..)
실제로, MSDN이나 책에서 소개되는건, HtmlControl 이 아니라, WebControl 이다. 닷넷의 주된 기능을 소개하는 쪽으로. ASP 공부하던 버릇처럼, 실행 결과를 늘 소스보기로 렌더링 결과를 유심히 봤고, 컨트롤들의 공통적인 습성을 찾았다. 결국, 컨트롤들도 조금만 생각하며 코딩하면 특징이 보이고, 다 안해봐도 대충 감이 오게 되어있다. 그러다가, 나중엔 코드에서 컨트롤을 만들어서 화면에 뿌려보면 대략 끝.

- 다음은 파일처리
(당시)
프로그래밍이라는 녀석의 꽃, 파일처리. 보조기억장치에 저장을 해야 다음에 또 열어서 쓴다. 게임에서 Save 구현이 참 신기했지. ASP도 파일처리가 가장 골치아팠지. 이건 뭐 무슨말인지. 무조건 따라해본다.

   클래스명 [맘대로이름] = new 클래스명();
   [맘대로이름].메소드명();
   [맘대로이름].메소드명(인수1, 인수2); -자료형 지킬것!
   [맘대로이름].속성명 = "hahaha";
   string A = [맘대로이름].속성명;

이렇게 하면 되네. 파일관련 네임스페이스가 System.IO 이니까, 클래스 목록을 보면 별게 다 있다. 그런데.. 어떤건 저렇게 해야되고 어떤건 저렇게 하면 안되고.. 왜 저런거야. 클래스 개념은 대충 알겠는데.. public 은 뭐고 private 는 뭐냐. 에라 모르겠다. 그냥 막 쳐보자.

(뒤돌아보면..)
되는 것도 있고, 안되는 것도 있다. MSDN만 3개월 정도 보니 흰건 배경이고 검은색은 설명이며, 파란건 클래스,메소드,프로퍼티 링크다. MSDN은 해당 클래스의 메소드는 예제 코드가 붙어있다. 당시 귀찮지만 자주 키보드로 쳐봐서 개념을 이해했다. 결국.. 어찌저찌 하다가 MSDN을 보는 방법을 삽질 후 터득하고, 후에는 이것저것 참조(using System.xxx.yyy) 선언해서 신나게 갔다 써본다. 소켓.. 소켓.. 소켓어딨냐. ASP에선 소켓이 없었다. 닷넷은 있다길래 "아.. 나도 드디어 소켓쓰는 개발자구나.." 하며 좋아헀었다.

가장 큰 전환점이 MSDN을 보고 메소드 호출을 하고, 프로퍼티 사용이 가능할 때다.
지금 생각해보면 당연한 말이다.. 그 땐 그렇게 되는게 신기했을 수가 없지.

이 후에 게시판에 바로 도전했다.
ADO.NET? 그런건 모르겠고, ASP처럼 연결-쿼리-결과만 처리하면 되니까. 다행히 코드도 거의 비슷해서 감잡고 코딩해도 될 정도.

당시 결과물의 소스 형태는 VS.NET 툴을 쓰지 않은 덕으로, 수많은 ASPX파일들에 모든 메소드는 ASPX에 다 붙여져 있다. 데이터 컨트롤? 그런거 몰라서 웹폼의 Table로 동적으로 게시판 리스트 만들었다. 자바스크립트 처리하기가 좀 껄끄러웠지.


한줄로 요약하면,

- 결과를 중시하자
- 무조건 쳐본다.
- 오류 메시지를 유심히 읽어보자.
- 실행되면 소스보기를 해서 코드의 결과를 본다 .
- 안되는게 당연한거다. 안되면 더 기뻐하라. (노란배경의 오류 보기를 금같이 하라)
- 키보드로 치고 있는 행위에 대해 생각을 하고 관심을 가지자. 자동 반응처럼..

시간이 가면 갈수록 어렵거나 귀찮아서 제껴놨던 이론들은 다시 보게 되어있고, 끄덕이며 이해할 것이다. 어줍잖지만 혼자, 처음 공부하는 방법은 위와 같이 해보면 도움이 될 것이다.

반응형
Comments