MOSS 2007 개발을 할 때, 가상 디렉토리를 만들어 별도의 ASPX 페이지를 만들어
추가적인 기능을 꾸미려고 할 때가 있다.
그러나 임의대로 만들거나, 기본적으로 생성되는 대로 만들게 되면 MOSS 2007의 기능을
사용할 수 없거나 혹은, 아예 페이지 자체가 뜨지 않는 경우가 있다.
그래서 대부분의 개발자들은 _layouts 에 ASPX 페이지를 저장하는 경우가 많다.
그러나 자신만의 파일들을 별도로 구성해 관리하려면 역시 별도의
가상 디렉토리를 구성하는 것이 좋고, 그를 위한 방법을 정확히 파악하는 것이 좋다.

1. INETMGR - 인터넷 정보 서비스 관리자 실행을 한다.  그리고 난 뒤 가상 디렉토리 생성을 시작한다. 가상 디렉토리 만들려면 만들려는 사이트에서 오른쪽 버튼을 클릭한 뒤, 새로 만들기 -> 가상 디렉토리를 선택한다.
사용자 삽입 이미지


2. 가상 디렉토리 만들기 마법사가 실행되면 다음을 누르면 가상 디렉터리 이름을 넣는다. 이 부분은 사이트 경로 URL을 누를 떄 사용되는 이름이다.
사용자 삽입 이미지


3. 가상 디렉터리 상에서 보여줄 내용이 담긴 HDD상에 있는 경로를 넣는다. 직접 넣어도 되며, 찾아보기를 사용해서 경로를 넣어도 된다.
사용자 삽입 이미지
사용자 삽입 이미지

4. 다음을 클릭하면 디렉토리 액세스 권한을 설정하게 되는데, 여기서 읽기/스크립트 실행/실행 만 체크해주고 다음을 클릭한다.
사용자 삽입 이미지

5. 가상 디렉터리 만들기 마법사의 마지막이 나오고 마침을 클릭하면 가상 디렉터리가 만들어진다.

6. 만들어진 가상 디렉터리를 위에서 오른쪽 버튼을 클릭해서 속성을 클릭한다.
사용자 삽입 이미지


7. 속성 창이 뜨면 제일 먼저 자동으로 생성되어 있는 웹 응용 프로그램을 삭제해준다. 삭제하는 방법은 응용 프로그램 이름 옆에 있는 제거 버튼을 클릭하면 된다. 삭제한 후 적용 -> 확인하면 된다.
사용자 삽입 이미지
 


여기까지는 기본적으로 해주어야 되는 사항들이다.
그 이후에는 2가지 형태로 나뉘어 구성해야 하는데, 그 구분의 기준은 접근 권한이다.
1. 모든 사용자들이 접근 가능한 경우
2. 로그인한 사용자들이 접근 가능한 경우
3. 관리자 권한을 가진 사용자들이 접근 가능한 경우

이런 권한별로 구성하려면 접근 권한 셋팅이 달라지기 때문에, 이에 대한 설명은 다음 부분에서 다루려고 한다.
728x90
외국에서 제공하는 각종 이벤트 핸들러들을 쓰다가, 이래저래 피곤해서, 그냥 만들어보았다
물론 화려한 트리 UI 같은 것은 제공하지 않지만, 내 궁금증과 불편함을 해소해주는 수준의
프로그램이다. 추후 C# Windows APP UI가 익숙해지면 조금씩 개선할 생각도 있지만, 언제가 될지..

사용자 삽입 이미지

이 프로그램은 웹서비스를 이용해서 구성한 프로그램이 아니기 때문에, 실제 이벤트를 추가/삭제/편집할 사이트에서 직접 실행해야 한다.(터미널 서비스를 이용하던지, 콘솔로 직접 들어가든지) 일단 실행하면 위와 같이 나온다.

1. 해당 사이트 연결 및 GAC 로딩
사이트 URL 내에 자신의 사이트 Url을 넣는다.
사용자 삽입 이미지
이 URL을 접근할 때는 로그인한 계정을 기반으로 접근하기때문에, 해당 사이트에 접근 권한이 충분한(최소한 사이트 관리자 급) 계정으로 로그인해서 이 프로그램을 실행할 필요가 있다.
연결 버튼을 클릭하면 약 30초 정도 기다리면 프로그램이 전체적으로 로딩한다.
이 로딩 시간이 긴 이유가 GAC 내의 모든 Assembly를 로딩하는데 걸리는 시간이다.

2. 이벤트를 처리할 사이트 및 리스트 선택
사용자 삽입 이미지
왼편에 있는 웹사이트 및 리스트를 선택한다. 현재 이 이벤트 핸들러 도구는 Web, Field 단위의 기능은 없고, 오로지 List에 대한 설정만 가능하다. 그러므로 Web Site를 선택한 뒤에 List를 선택해준다. 이벤트가 있으면 최하단에 있는 목록도 업데이트 된다.

3. 이벤트 추가/수정/삭제
사용자 삽입 이미지
3.1 새 이벤트 만들기.
생성하려는 리스트를 선택해 주었으면 먼저 자신이 이벤트로 등록할 때 사용될 어셈블리는 선택한다. 이 때, 주의할 점은, 반드시 GAC에 등록되어 있어야 한다. 별도의 DLL을 사용해서 등록한다면, 다른 도구를 활용하는 것이 좋을 듯 싶다.
이벤트 핸들러가 있는 어셈블리를 선택하면, 그 안에 적절한 이벤트 핸들러 클래스가 있는 경우 이벤트 관련 클래스가 자동으로 업데이트 된다. 그 안에 적절한 이벤트 핸들러 클래스를 선택한다.
그리고 이벤트 이름을 넣고, 적절한 순번( 1~50000 사이), 동작 방법을 넣는다.
이벤트 이름은 이 이벤트를 대표하는 이름인데, 이 값을 넣어야 순번이 정상적으로 처리된다.
순번은 이벤트가 실행할 순서를 의미하는데, 1~50000 사이의 값을 넣으면 된다.
액션은 이벤트가 발생되는 조건을 의미하는데, Item Added 나 Item Updating 같은 것을 의미한다.

값이 정상적으로 들어 갔으면 새 이벤트를 클릭하면 위의 설정 대로 이벤트가 추가된다.

3.2 기존 이벤트 수정하기.
사용자 삽입 이미지
이벤트를 수정하려면 최 하단에 위치한 이벤트 목록에서 편집하려는 이벤트를 선택한다.
그리고 자신이 변경하고자 하는 형태의 값으로 변경하고 등록/변경을 클릭한다.
(주의! 절대 이 작업을 통해 어셈블리나 이벤트 핸들러 클래스 및 액션을 변경하면 안된다. 여기서는 동일한 이벤트라고 비교 하는 값이 이벤트 핸들러 클래스와 액션이기 때문이다!)

3.3 이벤트 삭제하기.
삭제하려는 이벤트를 하단의 목록에서 선택한 뒤에, 선택 삭제를 클릭한다.

3.4 이벤트 목록 Save/Load
현재 이벤트 목록을 Save하는 방법은 save 버튼을 클릭한 뒤에, 적절한 장소에, xml이라는 확장자로 저장해주면 된다.
그리고 Load 하고 싶은 적절한 리스트에서 load 버튼을 클릭한 뒤에, 해당 xml 을 읽어 주면 xml 내용대로 복구 된다.
xml 내에 필수적으로 들어가야 되는 속성이 없는 경우 해당 이벤트는 추가되지 않는다.
event class="" assembly="" seq="" type="" name=""
수작업시에 필수 속성 값이 잘못되지 않도록 주의하면서 편집한다.

728x90
지금 MOSS 2007을 이용하여 프로젝트 관리해주는 사이트를 구축 중 입니다.
이를 구축하려다 보니, 회원 관리라는 일종의 관리자 기능이 필요했고,
MOSS 2007 내부를 뜯어 고치자니 왠지 망설여 지는 그런 상황이였습니다.
그래서 별도의 가상 디렉토리를 만들어 이 가상 디렉토리를 접근하기 위한
설정을 하려고 했습니다. 그런데 웃기는건 이 가상디렉토리를 접근하면 로그인 페이지로
가는 것이 아니라 자꾸만 접근할 수 없다는 에러만 뿜더군요.


하지만, Layouts ( 웹상에서는 _layouts) 폴더는 접근하려다가 접근을 못하면 자동적으로
로그인 페이지로 돌아오는데, 그 안의 소스를 아무리 살펴봐도, 권한 관련된 소스 부분은
없더군요. Behind 코드로 작성되었나 의심까지 했습니다.
그래도 굴하지 않고, web.config 나 기본 문서를 default.aspx로 변경해보았습니다.
그러나 마찬가지.....

왜 그럴까 하다가, 뿜는 에러를 보다가 권한을 보고 그 권한 부분을 확인해봤습니다.
두개의 사용자 및 그룹을 나열해서 보니깐, _layouts와 제가 걸어놓은 곳의 값이 조금틀리더군요. 일단, 두개를 맞추기 위해 하나 하나 비교 하는데, 그 때 유독 눈에 끌리는게 Users
였습니다.
일단 그 그룹을 추가했습니다.




이제 권한 부분에서 확인하니까 아무런 문제가 없이 동작하더군요. 권한이 없으므로 자동적으로 로그인되는 아주 매끄러운 동작이 되었습니다.

그런데, 이번에는 Application 관련 오류가 계속 나오더군요.
제가 짠 로직이 틀렸다는 것입니다. 그런데, 이 코드는 _layouts 내에서는 아무런 문제없이
동작했는데, 유독 이 가상 경로만 오면 그 난리를 치더군요.
그래서 찬찬히 코드를 살폈습니다. 혹시나 내가 절대 경로로 무언가 설정한 것은 아닌가 해서.
그러나 아무런 에러가 없었습니다.

MOSS 내에 절대 가상 디렉토리를 열지마라....
라고 했는데, 그게 맞는걸까.. 포기해야 되나... 했습니다.
그러다가, 문득 web.config 생각이 나더군요.
실제로 MOSS 내에 각종 가상 디렉토리들은 모두 Web.Config를 안고 있었습니다.
당연히 제가 만든 가상디렉토리 내에는 그런 것들은 전혀 없었고,
이 점이 차이다 싶어, _layouts 내에 있던 web.config를 낼름 복사했습니다.
깔끔하게 실행되더군요.

MOSS내에 가상디렉토리를 만들때 해야 되는 것을 정리하자면 아래와 같습니다.

1. 새로 만든 가상디렉토리의 사용권한에 Users 라는 그룹을 추가한다.

2. _layouts 내에 있는 web.config를 복사해 온다.


728x90
원본 : http://blogs.msdn.com/fooshen/archive/2007/02/01/installing-moss-without-ad.aspx

여기저기에는 MOSS에 대한 폼인증(게다가 대부분은 SqlMembership Provider를 이용한 ASP.NET 방식)이 산재되어 있어 손쉽게 찾을 수 있다. 최소한 이 부분만 보더라도 SPS 2003보다 훨씬 발전된 형태를 볼 수 있다. 예전 MOSS의 배포를 시도하려는 고객을 도와준 적이 있는데, 폼인증 방식은 아니였지만, AD 도메인 구성원이 아닌 SQL 서버를 SharePoint Farm으로 구성시키려고 했었다.

처음 접했을 때는 이 작업자체가 전혀 불가능해 보였다. - SharePoint 제품 및 기술 구성 마법사로 처음 데이터베이스를 만들려고 할 때, 데이터베이스 서버를 연결 계정 자체를 도메인\계정이름 형식으로 넣도록 되어 있다. 최소한 이 도구를 이용해 설치하게 되면 SQL 인증 방식을 사용할 수 없다는 것을 알 수 있다.


자, 지금 부터는 SharePoint 설치 마법사에서 자동으로  SharePoint 제품 및 기술 구성 마법사로 시작하게 해주는 체크 버튼을 끄고 시작하도록 하자. ( 물론 SharePoint 제품 및 기술 구성 마법사가 실행했었다고 좌절하지 않아도 된다. 실행됬으면 그냥 종료 시키면 된다.)



SQL Management Studio(SQL 2K면 SQL Enterprise)를 먼저 실행시킨다. 먼저 Latin1_General_CI_AS_KS_WS(약어를 풀자면, C = 대/소문자, A=액센트, K=카나, W=길이 I/S=문맥형/단순형) 유형으로 데이터베이스로 만들게 된다. 먼저 MOSS에서 사용할 수 있을 만한 계정을 SQL 로그인에 구성하되 4개의 데이터베이스에 대해 dbo가 될 수 있도록 만들어준다. 그 4개의 데이터베이스란 SharePoint_Config", "SharePoint_AdminContent", "SharedServices_DB" 그리고 "SharedServicesSearch_DB" 이다.
DB 계정을 정상적으로 생성했다면 명령 프롬프트를 띄운다.
그리고 %programfiles%\Common Files\Microsoft Shared\web server extensions\12\BIN 로 이동한다. 그리고 난 뒤에 다음 명령 줄을 입력한다.

PSConfig -cmd -configdb -create -server 데이터베이스이름 -database SharePoint_Config -user 도메인/계정이름 -password 암호
-dbuser 데이터베이스계정 -dbpassword 데이터베이스용계정암호 -admincontentdatabase SharePoint_AdminContent

위의 값들에 대한 설명을 하자면 아래와 같다.
server - SQL 데이터베이스의 인스턴스 이름
database - SharePoint의 설정을 담게될 데이터베이스 이름(보통 SharePoint_Config를 사용)
user - 서버 팜의 관리자로 동작하는 윈도우 계정
dbuser - 데이터베이스를 접속할 때 사용될 SQL 로그인 계정
admincontentdatabase - SharePoint 중앙 관리 사이트에서 사용될 데이터베이스 이름(보통 SharePoint_AdminContent를 사용)

위의 명령을 실행하면 아래와 같이 진행될 것이다.


이제 다시 SharePoint 제품 및 기술 구성 마법사를 실행하도록 한다. (시작 -> 모든 프로그램 -> Microsoft Office Server -> SharePoint 제품 및 기술 구성 마법사 )
실행해보면 앞에서 이미 구성 데이터베이스를 생성했기 때문에, 이 내용을 자동으로 찾아내서 맨 처음 그림과 같은 형태가 아닌 아래와 같은 형태로 뜬다.

연결을 끊지 않고 다음(N)>을 클릭해서 설치를 진행해준다. 이 때 틀만 만들어지는 4개의 데이터베이스에 실제적으로 필요한 사항들을 설치해주게 된다. 이 부분은 일반적인 SharePoint 설치와 동일하게 진행된다.

전부 설치 한 뒤에, SharePoint 중앙 관리를 실행하도록 한다. 팜의 서비스에 대해서 설정할 때, 데이터베이스 관련된 설정이 나오게 되는데, 이 때 윈도우 인증 방식을 쓰지 말고 SQL 인증을 선택하여 명령 줄에 넣었던 계정으로 넣어주면 된다.
이젠 SSP를 설정할 때 DB위치를 잡는 것도 쉽게 되며 SQL 인증 만으로도 충분하게 동작한 것을 확인할 수 있을 것이다.

MOSS 배포할 떄 SQL 로그인을 이용한 SQL 접속이 생각보다 쉽다는 것을 알 수 있다.


728x90
사이트내의 사용자 프로퍼티를 가져오는 방법은 아래와 같다.

SPSite curSite = <현재 SPS 사이트를 SPSSite로 돌려주는 무언가 작성>

Microsoft.Office.Server.ServerContext serverContext =  
    Microsoft.Office.Server.ServerContext.GetContext(curSite);

Microsoft.Office.Server.UserProfiles.UserProfileManager mgr =
    new  Microsoft.Office.Server.UserProfiles.UserProfileManager(serverContext);

Microsoft.Office.Server.UserProfiles.UserProfile profile =
    mgr.GetUserProfile(<로그인 사용자 계정>);

// 프로필 내에 부서("Department") 값을 가져옴
string deptName = (string)profile["Department"].Value;

<현재 SPS 사이트를 SPSSite로 돌려주는 무언가 작성> 같은 경우 다양한 방방법으로 가져올 수 있다.   new SPSite("http://<site url>") 과 같은 방법으로 처리하거나 기타 해당하는 사이트의 값을 가져오는 방법을 통해 가져오면 된다.

<로그인 사용자 계정> 이란, 윈도우 인증을 사용하는 경우 <도메인 이름>\<사용자 ID> 가 될 것이고, Form 인증인 경우 <인증 프로바이더 이름>:<사용자 ID>가 된다.
이것은 인증 방법에 따라 달라지므로 알아서 넣는다.

마지막으로 프로필의 값은 프로필 콜랙션 중 [ ] 를 사용해서 가져오면 되는데, 이 때 가급적 Static 이름을 사용하는 것이 좋다. "Department" 같은 경우 Display Name은 "부서" 인데, "부서"로 하는 경우 종종 프로필 속성값을 변경하면 더 이상 찾지 못하는 경우가 발생할 수 있다.

해당 값은 object 타입이므로 적절한 Type으로 캐스팅 해야 한다.






728x90

MOSS 2007에서 사이트 내 마스터 페이지를 추가/삭제/편집 하는 페이지가 있다.

사용자 삽입 이미지
일반적인 설정으로 모든 권한을 Administrators 그룹에 속한 계정에게 주고,
그 계정으로 로그인 하면 모든 페이지를 접근 할 수 있으며, 지금 말하려는
마스터 페이지 및 페이지 레이아웃 안의 설정 페이지에도 들어갈 수 있다.

그러나 Form 인증과 같은 전혀 다른 Login을 하거나 Administrators 그룹내의 계정이 아니면,
저 안의 페이지에 접근 할 수 없다.
심지어 사이트의 소유자 권한을 가지고 있어도 불가하다.

이 안에 들어가려면, 사이트의 모음(Site Collection)의 관리자에 등록되어 있어야 한다.
여기에 등록하려면, 최소한 SharePoint 3.0 중앙관리에 들어가야 가능하다.
사용자 삽입 이미지

중앙관리에 들어가 응용 프로그램 관리SharePoint 사이트 관리 목록 중 사이트 모음 관리자를 선택하면 된다.























모음 관리자에서 자신이 원하는 계정을 하나 추가하면 된다.
보통 사이트를 처음에 만들때 정한 계정이 들어가 있는데, Form 인증으로 중간에 설정시에는 안들어가 있는 경우가 많다. 그러므로 여기서 추가해주는 것이다.
사용자 삽입 이미지
위의 그림에서 처름 보조 사이트 모음 관리자 같이 윈도우 인증 계정이 아니는 Form 인증과 같은 별도 인증 계정을 저런 식으로 등록해주어야 저 계정으로 완벽한 사이트 관리를 수행할 수 있다.

현재까지 사이트 관리에서 안되는 부분은 이 마스터 페이지 등록/삭제/편집 페이지 뿐인데,
가급적 저런식으로 등록하여 준비해 놓는 것이 좋다.

728x90
사이트 및 작업 영역  제작
공동 작업

- 팀 사이트 : 팀 공유 기능을 기본적으로 탑재된 기능 WSS의 가장 기본적인 형태로 판단된다.
Front에서는 공지사항, 일정, 그림 웹 파트가 붙어있다.
기본 목록에는  공유문서, 일정, 작업, 팀토론 이 있으며, 추가/삭제가 가능.

- 새 사이트 : 완전히 Null로 구성된 사이트 이며 아무것도 없다.
Front 에는 그림 웹파트만 있다.

- 문서 작업 영역 : 팀 사이트와는 다르게 문서들을 저장하기에 적합한 형태로 구성된 것 같다.
Front에는 공지사항, 공유문서, 작업, 구성원, 링크 웹파트가 붙어있다.
목록에는 일정, 팀토론이 있다.

- Wiki 사이트 : Open Source에서 제공하는 Wiki와 유사한 인터페이스를 제공한다.
자유롭게 편집 가능한(물론 권한이 있는 자에 한해서) 페이지를 제공한다. 여기서는 하나의 웹페이지 목록을 갖추고 그 웹페이지를 보여주는 별도의 페이지를 제공하는 것 같다. 특이하게 표시되는 웹페이지에 대한 웹파트는 없다.
[ ] 사이에 링크를 걸수 있으며, [ ] 이름의 웹 문서를 생산해서 링크를 걸어준다.

- 블로그 : Open Source에서 제공하는 블로그와 유사한 인터페이스를 제공한다.
팀 형태로 꾸밀 수 있고, 개인 형태로 꾸밀 수 있다. 역시 Wiki와 유사하게 범주별로 목록을 제공하며 필요에 따라서 변형이 가능한다.
Front 내에 게시 웹파트와 관리 링크 웹파트들을 보여준다.



모임
- 기본 모임 작업 영역 : 좌측에 트리가 없다. 대신 웹파트로 목적, 회의록, 참석자, 문서 라이브러리를 제공한다. 목록으로는 4개가 생성된다.
- 새 모임 작업 영역 : 아무것도 없다. 기본 모임에 담겨있던 기본 웹파트들이 모두 없는 형태
- 결정 사항 모임 작업 영역 : 기본과 동일. 차이가 무엇인지는 더 파악할 필요가 있음
- 사교 모임 작업 영역 : 하위 사이트를 3가지를 갖는다. 여기에는 홈, 토론 사진으로 나뉜다. 동호회적 성격이 강하다. 홈 Front에는 참석자, 모임의 목적, 지참물 목록을 가지고 있다. 토론 사이트에는 토론 게시판만 있다. 사진 사이트에는 그림 라이브러리를 가지고 있다.
- 멀티 페이지 모임 작업 영역 : 기본 모임과 생김새가 동일 차이가 무엇일까?


엔터프라이즈
- 문서 센터 : 공지사항과 예정된 작업, 관련 문서가 있다. 그리고 문서, 공지사항, 작업들을 목록을 가지고 있다.
- 레코드 센터 : 레코드 라우팅이라는 웹파트를 사용한다. 공지사항 같은데 정확한 목적은 모르겠다. 아마도 문서의 문서번호 관리를 위한 도구인듯.
- 개인 설정OfficeSharePoint Server의 게시 인프라 기능이 활성화 되야함. 사이트 모음 기능 부분에서 Office SharePoint Server 게시 인프라 기능을 활성화 시켜야 함. 반드시
이 내용은 사이트 설정 내에 있다. 그리고 이 기능을 활성화 하려면 해당 사이트 모음의 관리자 이상의 권한이  필요.


사이트 삭제후 Return 되는 곳이.. 영....





728x90
지금 부터 동생님을 위해 자그만한 글타래를 펼쳐보려 합니다.
사실 프로그래밍의 프자도 모르는 사람에게, C#이라는 도구를 던져주고
프로그래머 같은 생각을 하며, 프로그래밍을 짜라고 하면 상당히 막막한
입장에 빠집니다.
게다가, 제대로 기능을 활용 못하는 도구를 실행 시켜 맨 도화지 같은 상태에서 프로그래밍을 시작하기란 정말이지 힘든일이 아닐 수 없습니다.
어제 문득 동생님의 프로그래밍을 돕다가 "왜 프로그래밍을 못짤까?" 라는 화두를 나에게 스스로 던져 보았습니다. 물론 프로그래밍을 모른다는 것도 있을 것이며, 제가 잘못 알려준 것도 있으며, 더욱이 제가 C#을 제대로 모르는 것도 있을 수 있습니다.
그러나 그보다 더 근원적인 무언가가 있을 것이라 생각이 되었고, 담배를 입에 물면서 고민을 했습니다.
난 언제 부터 프로그래밍적인 사고를 갖게 된 것일까요? 그래서 지금의 위치에 있는 것일까요? 물론 무척 잘하거나 많이 아는 것은 아니지만, 최소한 이런 저런 기술책을 보면서도 그다지 난해하다고 생각되지 않다고 생각된 내용이 왜 내 동생에게는 난해하다고 생각하는 것 일까요?  내가 나름대로 쉽게 가르친다고 생각도 했고, 나중에 겪을 수 있는 혼란을 미리 예방한다는 생각에 알려주었습니다. 그러나 내 동생은 그렇게 받지 못하고, 도리어 혼란속에 허우적 대고 있다는 것입니다.

결론은 "개구리, 올챙이적 생각을 못한다" 였습니다.

그래서 내 시작이 어떤 것이였는지, 그리고 내가 가진 철학은 무엇인지를 알려주고, 혼란을 최소화 하기 위한 문제/답 스타일의 이야기를 펼쳐 알려줘야 겠다는 생각이 듭니다.

1. 프로그래밍 시작.
내가 프로그래밍을 시작하게된 계기는 무엇일까...라는 생각을 했습니다.
사실 굉장히 개인적인 부분이고, 그 시작이 될 수 있는 부분은 인연과 같은 우연적인 요소가 강하기 때문에, 사실 단언해서 이것이 정답이며 이렇게 걸어야 한다! 라고 말하긴 힘듭니다.

하지만, 제가 만난 사람들과 이야기를 나누면서 프로그래밍을 시작한 계기들을 정리하자면 다음과 같습니다.
  - 개인적인 흥미로 시작했습니다.
  어릴 때, 게임을 보거나, 자신이 만든 프로그램 결과물이 즐겁거나, 아니면 성취감에 대한
  정신적 만족감을 느껴 본 것입니다. 보통은 큰 규모의 프로그래밍 보다는 작은 규모의
  프로그래밍, 특히 정답이라는 형태가 잡혀 있는 문제와 답 형식 간단한 구현을 통해 책을
  통해 다양한 시도를 하면서 독학을 하게 되었을 것입니다.
- 일을 하다가 시작했어요.
  프로그래밍 하는 것을 선배 혹은 사수(자신의 직속 상관)을 통해서 신입사원때 배운 것
  입니다. 위를 통해 전수 받는 것이기 때문에, 그 형태는 다양하게 나오게 되는데, 보통
  많이 갈구는 스타일한테 배운 사람이 많이 늘더군요. 역시 매를 맞아가면서 배워야
  빨리 는다는 아주 원초적인 교육적 원리인 것 같습니다.
- 학원(학교)에서 배웠습니다.
   더 이상 시도해볼 것도 없거나, 자신의 실력이 없거나, 돈을 많이 벌 수 있다는 등의
  다양한 계기로 인해 학원에서 부터 출발할 수 있습니다. 또는 학교에서 정규 과정을 통해
서 출발 할 수 있습니다. 여기서는 대부분은 정규적인 과정이 있으며 그 중간 중간,
  간단한 문제와 답을 함으로써 기초적인 지식을 쌓게 합니다. 물론 Bit 전산원 같이 무척
  까탈시러운 과정을 통해 통과할 수 있습니다.
- 기타.
  그 외에는 다양한 계기들과 다양한 조건들이 있을 것입니다.

어느 부분 부터 시작된 것인지는 알 길은 없지만, 분명 저 중에 한가지 이거나 2~3가지가 복합적일 것입니다. 이것도 저것도 아니라더라도 기타에 다 걸릴 것입니다(笑). 무엇이 중요하고 잘 판단한 것인지는 개개인 마다 틀린 기준이기 때문에, 어디서 부터 출발하는 것이 좋은지는 알 수 없습니다. 단지, 자신이 어디에 처한지 정도 알 수 있겠죠?

2. 프로그래밍을 위한 자세
사실 프로그래밍을 하기 위한 자세란 딱히 없습니다. 대충 대충 짜든, 설계를 해서 짜든 결과만 제대로 나오기만 해도 반은 먹고 들어갑니다. 하지만, 프로그램 = 일 이라는 공식에 빠진 사람들은 대부분 이 4D(4-Danger)업종에서 발전없이 고생만 하다 나오는 것이 대부분의 패턴입니다. 크게 다르진 않죠. 그래도 곰같이 우직하게 일하시는 분들도 있지만...

여기서 제가 말하고 싶은 것은 2가지 입니다. 물론 이 내용들은  프로그래밍뿐 만 아니라 일 자체를 임할때 필요한 자세입니다.
첫번째는, 어느 방법으로 출발을 했던 일단 프로그래밍에 대해 재미있게 그리고 즐기면서 해야 합니다. 든 일은 재미있고 즐겁게 해야 그 결과가 완벽하거나 두세배의 결과치를 얻을 수 있습니다. 일 자체의 결과물 뿐만 아니라, 스스로의 능력도 배가 되는 것을 알 수 있습니다.
두번째는, 목표를 정확히 하는 것입니다. 내가 무엇을 할 것인지, 무엇이 될 것인지를 알아야 합니다. 내가 프로그래밍으로 무엇을 만들 것인지를 알아야 그 내용을 구현할 수 있을 것입니다. 또한 어떻게 배워야 하는지, 무엇을 더 공부해야 할지를 알 수 있을 것입니다. 거기에 내가 어떤 위치에 도달해야 하는지를 명확하게 하면 보다 더 정확한 목표의식을 가지게 됩니다.
이런 목표의식과 즐겁게 일을 할 수 있는 마음을 가질 수 있거나 그와 유사한 형태까지 갔다면 제가 이제 부터 풀어나갈 이야기들을 쉽게 수용하고 빠르게 배울 수 있을 것입니다.
아니라고 해도, 진행이 조금 늦을 뿐 배우기는 할 수 있을 것입니다.

3. 이야기를 하기 위한 Agenda
이 처음하는 프로그래밍을 위한 특별한 교육 순서는 없습니다. 그렇다고 많은 교재들이 택하고 있는 함수는 어쩌내, 클래스는 어쩌내, 상속은 어쩌내 하는 방법을 택하기엔 지겨울 듯 싶구요. 그래서 프로그래밍에 대한 나만이 가진 생각들을 말씀 드리고, 이 후에 문제와 답을 통해 간단한 프로그래밍을 실제로 구현해도록 합니다.
하다가 더 필요하다 싶으면 더 많은 내용을 이야기 할 것입니다.
다음은 이 이야기를 위한 순서 입니다.

  0. 머릿말
  1. 프로그래밍이란?
  2. 문제와 해결방법
  3. C#과 .NET Framework
  4. 고객 관리 프로그램
  5. 그래픽 프로그램.
  6. 정리



 

728x90

+ Recent posts

728x90