• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

'분류 전체보기'에 해당되는 글 1246건

  • 2009.06.03 하인도의 미투데이 - 2009년 6월 2일
  • 2009.06.03 SQL 2005 쿼리문 버전 관리 방법 및 나름대로의 규칙
  • 2009.06.02 SQL 2005 에서 ClearQuest 7.0.1 사용하기.
  • 2009.06.01 Outlook 연락처 개체 일괄 변경
  • 2009.05.23 ▶◀[謹弔] 전 노무현 대통령.
  • 2009.05.21 Windows 7, Fujitsu T2010 FingerPrint(지문인식) 오류해결 방법 4
  • 2009.05.13 .NET 2.0(C#) 에서 Active X 컨트롤 만들기. 14
  • 2009.04.28 DEP(Data Execution Prevention) 기능 비활성화 시키기 7

하인도의 미투데이 - 2009년 6월 2일

잡글/MeToday 2009. 6. 3. 14:52
  • M2PocketUploaer 라는 프로그램 좋군요… 근데, 사진 꼭 있어야 되는건가요? 계속 포스팅 실패가 떠서리.. 뭔가 했답니다…(테스트 pocketuploader me2photo)2009-06-01 17:39:38

    me2photo

  • M480질렀습니다. 스마트폰의 또다른 명작이라하여 끌리는 마음 참지 못하고 질렀습니다. 그려.(M480,지름신,스마트폰)2009-06-01 17:46:01
  • .NET으로 만들어야 될것 같군요. M2PocketUploader는 다 좋은데, 편의성이 부족한 느낌입니다.2009-06-02 09:20:28
  • URL에 대한 글자수 재계산이 필요할 것 같고, 서버에 등록된 이미지도 받아야 될 것 같고, 하위에서 올리는 것도 만들어야 될것 같고… UI 재끼고 함 만들어봐야 겠습니다. 그려.2009-06-02 09:21:24

이 글은 하인도님의 2009년 6월 1일에서 2009년 6월 2일까지의 미투데이 내용입니다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

SQL 2005 쿼리문 버전 관리 방법 및 나름대로의 규칙

기술자료/개발도구 2009. 6. 3. 14:48

SQL 2005 에 있는 SQL Server Management Studio(이하 SSMS)라는 프로그램으로 DB관리를 하면 이런저런 다양한 작업을 할 수 있다.  예전에 분리되어 있던 DB관리도구와 Query 분석기가 하나로 합쳐진데다, Visual Studio 와 유사한 I/F 덕에 많은 이득이 보고 있다.

그런데, 무수히 많이 생기는 Query들의 관리가 어려울때가 있다.
특히 DB관련해서 작업을 할때, 팀 별로 관리하거나, 별도 Query를 저장하려고 하면, 그 불편함은 가중된다.

예를 들자면, DB 내 저장 프로시저가 생겼을 때, 개발 서버에서 생긴 저장 프로시저를 다시 운영서버로 옮길려고 하면, 쿼리를 다시 생성해 올려야 한다. 그리고 해당 생성/변경 쿼리는 또 다시 저장하지 않고 날렸다가, 맨 나중에 산출물 만들려고 하다가 보면, 처음 부터 끝까지 쿼리 내용을 끄집어 내곤 한다.
또, 몇가지 관리 차원에서 특정 데이터가 존재하는지 여부를 하기위한 테스트 쿼리를 짜놓고는 까먹다가, 다시 쓸려고 하면, 사라져 없어져 이후에 더 이상 작업이 불가능하거나 다시 쿼리를 작성하는 경우도 발생한다.

그래서 고민해본 결과 버전 관리도구가 이 SSMS 와 연결되면 될 것 같다는 생각이 들었고, 어느정도는 맞아 들었다. 이에 연결 방법을 소개하도록 한다.

(참고 사이트 : http://www.kevingao.net/sourcesafe/integrating-sourcesafe-vss-with-sql-server-2005.html )

1. 구성 방법

  1. Visual Source Safe 혹은 Team Explorer 설치하기.   
    일단 Visual Source Safe는 2005 이상 버전이면 큰 문제 없이 연결된다. Visual Source Safe 2005를 설치방법은 그냥 Next 연발이기 때문에, 그리 어렵지 않다.
    그에 반해 Team Explorer는 조금 다르다. Team Explorer를 받아서 설치해도 SSMS에는 적용되지 않는다. 이에 MS 다운로드 사이트에서 별도로 더 받아와야 한다. 다운로드를 위한 해당 링크는 아래와 같다.
    http://www.microsoft.com/downloads/en/results.aspx?freetext=MSSCCI&displaylang=en&stype=s_basic
    ( 만일 위의 링크가 깨졌다면 MSSCCI 라는 검색어로 http://download.microsoft.com 에서 검색하면 나온다. ) Team Explorer 2008가 설치되어 있다면 Visual Studio Team System 2008 Team Foundation Server MSSCCI Provider를 2005가 설치되있다면, Visual Studio Team Foundation Server MSSCCI Provider를 다운 받아 설치하도록 한다.

    일단 설치가 정상적으로 되었으면 다음 단계로 넘어가도록 한다.

  2. 버전 컨트롤러 선택.
    이제 Visual Source Safe 2005를 설치하던 MSSSCCI를 설치하던 버전 관리도 도구와 연결할 수 있는 클라이언트가 설치되었다면 모든 준비는 된 것이다. 이제 SSMS를 실행하도록 한다. 일단 해당 DBMS와 연결하도록 한다.

    일단 정상적으로 DBMS와의 연결이 되었다면 이제 메뉴에 있는 도구(T) –> 옵션(O)에 들어가도록 한다.
     
    옵션 창이 떴으면 왼편에 있는 트리 중에, 소스 제어를 선택한 뒤, 오른편에 있는 선택 상자에서 자신이 설치한 소스제어 도구를 연결하도록 한다.
    일단 확인을 클릭하면, 설정한 버전 관리도구에 따라 로그인 창이나 설정 창이 다르게 뜰 것이다. 해당하는 도구에 맞게 정보를 넣어주면 된다.  (로그인 및 설정 방법등은 각 버전관리 도구의 도움말을 참고하면 된다.)
  3. 솔루션 적용
    연결이 성공적으로 되었으면 이번엔 솔루션 탑색기를 열도록 한다. 여는 방법은 메뉴에서 보기(V) –> 솔루션 탐색기(P) 를 선택하면 우측에 솔루션 탐색기를 볼 수 있을 것이다. 버전 관리를 하기 위한 소스는 Query 같은 내용인데, 이를 묶는 역할을 하는 부분으로 반드시 있어야 한다.
     

    이제 파일(F) –> 새로 만들기를 선택한 뒤, 프로젝트를 선택한다.

    그러면 프로젝트 종류를 선택하도록 요청 받는데, 그 중 SQL Server 스크립트를 선택하도록 한다.
    또한 아래 쪽의 내용을 보고, 솔루션 이름이나, 솔루션이 저장될 위치들을 적절하게 설정하도록 한다.

    솔루션이 만들어지면 오른편(혹은 왼편)에 솔루션 탐색기 영역에 새로 만들어진 솔루션이 뜰 것이다. 이제 솔루션위치에서 소스제어에 솔루션 추가를 선택하여 해당 소스제어 서버에 소스를 등록하도록 한다. (필요에 따라서는 솔루련이 아닌 프로젝트만 추가할 수도 있다)


2. Hind 만의 SQL 버젼관리 방법

이 SSMS에서의 버전관리는 애석하게도 DB에 대한 스키마를 관리하지는 않는다. 단지 각종 Query나 연결정정보에 대해서만 관리하게 된다. 간단해서 좋기는 하지만, 역시 세밀한 작업을 수행하기에는 문제가 있다. 혹시나 DB를 직접 버전관리를 하지 않을까 상상하신 분들은 이 버전관리 방법과는 맞지 않다. !!! 주의해주셔야 할 부분이다. 여튼 쿼리만이라도 버전 관리를 하겠다면 계속 진행하면 좋을 것 같다.

일단, 괸리를 할 때 나름대로 사용해 본 결과 제한 요건들이 많이 보인다. ( 2008용에서는 개선되지 않았을 까 조심스럽게 짐작해 본다. ) 그래서 그 제한 요건을 고려하면서 생각해본 결과 아래와 같은 방법을 정리할 수 있었따.

  1. 쿼리 동작 형태에 따라 프로젝트를 만들어 구성한다.
    쿼리를 만들다보면 보통 CRUD, 즉 Create Read Update Delete 와 같은 Action 별로 쿼리가 생긴다. 그런데 Visual Stdio와는 다르게 프로젝트 내에 새로운 Folder 추가가 되지 않느다. 무조건, 연결, 쿼리, 기타 이렇게 3가지의 폴더 안에 모든 파일을 때려 박게 될 것이다. 간단한 DB 업무야 그냥 그냥 쭉 넣는다고 하지만, 규모가 있다보면 Create 쿼리만으로 트리를 가득 매꾸게 된다.  이런 경우를 대비해 각 동작별로, 혹은 별도의 분류 규칙에 따라 새로운 프로젝트를 생성하도록 한다.
    즉 생성용 프로젝트, 업데이트용 프로젝트, 테스트 쿼리용 프로젝트 등등을 만들어 구성하는 것이다. 최소한 이처럼 구성하면 작업하는데 훨씬 수월 할 것이다.
  2. 네이밍 룰을 맞추어 구성한다.
    분류별로 프로젝트로 구성한다고 해도, 결국 많은 수의 쿼리들이 한줄로 나래비를 펼칠 것이다. 최소한 이런 형태가 계속 지속될 수밖에 없기 때문에, 분류하게 좋은 형태의 묹열 나열이 필요로 한다.
    가급적 Action 별로 네이밍을 구성하여 나중에 해당 쿼리를 찾아보기 쉽게 구성하는 것이 좋다.
  3. ALTER 문장이 정상적으로 동작하는지 미리 테스트를 한다.
    사실 여러 팀작업을 하게 되면 결국 테이블 구조나 DB 구조를 변경하게 된다. 이 때 사용되는 명령이 ALTER인데, 이 ALTER는 다양한 상황에 따라 동작 여부가 갈린다. 그런 경우 이전에 어떤 DB가 들어 있는지에 따라 ALTER의 형태가 바뀔 수 밖에 없을 것이다. 만일 ALTER가 전혀 안될 것 같은 경우 이전 버전의 DB에서 비정상적으로 동작할 수 있다. 반드시 체크한 뒤 배포하도록 한다.

이상이 현재 DB 에서 사용하는 버전 관리인 것 같다. 물론 제한적이며 기능적으로 한계가 많고, DB를 직접하는 것이 아닌 거의 쿼리만을 처리하는 것이기 때문에, 원하지 않을  수 았을 것이다  하지만, 최소한 버전관리도구를 써서 협업을 하고 있다면 도전 해보는 것이 어떨 까 싶다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

SQL 2005 에서 ClearQuest 7.0.1 사용하기.

기술자료/개발도구 2009. 6. 2. 11:10

이에 대한 문서는 방대하니 많고, 많은 커뮤니티에서는 오르락 내리락 하던 문건이기 때문에 다시 언급하기는 그렇지만, 일단, 까먹기 전에 기록해두는게 좋을 것 같아 언급한다.

IBM의 참고 사이트는 아래의 링크를 참고한다.
http://www.ibm.com/developerworks/wikis/display/rationalcccq/Creating+logins+for+SQL+Server+2005 

1. SQL 2005 내에 DB 생성.

맨 처음 SQL 2005용 DB를 생성하려면, Microsoft SQL Server Management Studio를 띄우도록 한다. 그리고 난 뒤, 왼편에 “개체 탐색기”에 있는 트리에서 “데이터베이스”를 선택한 뒤, 오른쪽 버튼 클릭(컨텍스트 메뉴 띄우기)하면 메뉴가 뜨는데, 그 중 “새 데이터베이스(N)”을 클릭한다.

2. 새 DB 옵션 설정.

“새 데이터베이스(N)”을 클릭하면 새로 생성될 DB에 대한 각종 옵션을 넣게 된다.  총 3가지 분류가 있는데, 각 부분을 나누어 설명한다.

  1. 일반 옵션
    일단 “데이터베이스 이름”에 데이터베이스 이름을 넣는다. 여기서는 Test를 위한 Schema로 cqschemaTest로 만들었다. 그리고 DB에 대한 성능 보장이 필요하다면 “데이터베이스 파일(F)” 항목에서 처음 크기와 증분 크기를 결정해서 적용해주는 것이 좋다.
    나머지 옵션들은 기본 값으로 구성하면 된다.
  2. 옵션
    특별히 설정하는 것은 없지만, 그래도 신경을 써주는 것이 좋다.
    ”데이터 정렬”에서는 “Korean_90_CS_AI_KS_WS” 를 선택해 준다. 원래 다른 곳에서는 이 부분의 값을 기본값으로 하라고 했는데, 왠지 잘 안된 느낌이다. _CS_ 부분이 바로 Case Sensitive 라고 해서 대소문자 구분을 확실하게 해주는 옵션이다. 일단 이래야 CQ에서 949가 제대로 뜨는 것 같다.
    “복구모델”은 안정성에 따라 구성하는것이 좋다. 안전하게 다룰라면 역시 “전체”를 선택하고, 단순히 복구 로그의 중요도가 무척 낮은 단순 테스트용도라면  “단순”으로 선택해주면 된다.
    그리고 “호환성 수준”을 “SQL Server 2000(80)”으로 해준다. 이게 반드시 필요한지는 모르겠지만, 그대로 불안한 마음에 설정했는데, 나쁜것 같지는 않다. – 아직 SQL 2005의 자세한 기능은 모르지만, 보안상의 이유로 틀어 막은 부분을 풀지 않을까라는 생각이다. -  나머지 항목은, 알면 상관 없지만, 잘 모른다면 안 건드리는 것이 좋을 것 같다.
  3. 2.3 파일 그룹.
    DB파일을 다중으로 구성할 때 사용되는 옵션인데, 여기서는 그 부분에 대한 고려 사항은 없으므로 생략한다.

3. 사용자 생성.

이제 CQ에서 접속할 때 사용될 계정을 생성한다. 이미 만들어진 sa를 쓰면 되지 않나… 라고 생각하시는 분도 있지만, 그런 행동은 보안 상으로 최악의 시나리오를 만드는 것이고 CQ 관련 Installation 가이드에서도 절대 하지 말라는 이야기 뿐이다. 가급적 별도 계정을 만들어 구성한다.
또한 이 구성을 하려면, “서버 인증” 이 “Window 인증 모드”이면 안된다 반드시 “혼합모드(SQL Server 및 Windows 인증 모드)”이여야 한다. 인증 변경에 대한 자세한 설명은 아래의 링크를 참고하세요.
http://godori12.tistory.com/tag/MS%20SQL2005....

  1. 계정 생성.
    DB 생성만큼 쉽다. 먼저 Microsoft SQL Server Management Studio를 실행한다. 그리고 좌측의 “개체 탐색기”를 따라 들어가 “보안 –> 로그인” 폴더 위에서 오른쪽 버튼을 클릭해서 나오는 컨텍스트 메뉴 내용 중 “새 로그인(N)..” 을 선택한다.
  2. 신규 - 일반
    “새 로그인(N)…”을 클릭하면 “로그인 – 신규” 창이 뜨는데, 맨 처음 나오는 항목이 “일반” 항목이다.
    먼저 로그인 이름에는 사용할 ID 이름을 넣는다. 여기서는 cqroot라고 했다.
    인증 유형 두가지를 선택하게 끔 되어있는데, 그 중 “SQL Server 인증(S)”을 선택한다. 그리고 해당 ID에서 사용할 새로운 암호를 넣는다.
    반드시 “암호 정책 강제 적용(F)”는 반드시 끄도록 한다. 나머지는 기본값으로 두고 다음 항목으로 넘어간다.
    0 
  3. 신규 – 서버 역할.
    여기는 절대 아무것도 체크하면 안된다, CQ에서 접속할 때 DB 접근 관련 권한에 오류가 발생할 수 있기 때문이다. 그대로 모든 체크를 비우도록 한다. 혹여 체크되어 있다면 반드시 체크를 끄도록 한다.
  4. 신규 – 사용자 매핑.
    여기가 제일 중요한 부분이다.
    사용할 DB 앞에 반드시 “매핑” 열에 매핑해준 뒤,  “사용자”와 “기본 스키마”안에 새로 만들 계정의 ID를 똑같이 넣도록 한다.  이 부분은 반드시 지켜줘야 하는데 안그러면 CQ에서 빈 스키마 생성시 오류가 발생한다. 주의하고 넣도록 한다. 
    그리고 해당 DB 항목을 체크하면 아래 쪽에 “데이터베이스 역할 멤버 자격(R)” 내용 중 db_owner 도 체크해 준다.
     
  5. 신규 – 보안 개체 및 상태.
    별 다른 설정 내용은 없다 기본값 그대로 해서 두면 된다.

4. CQ 스키마 생성.
이제는 CQ 스키마를 생성한다. 여기서 부터는 예전에 해왔던 CQ 생성방법과 동일하다.

  1. ClearQuest Maintenance Tool을 실행한다.
  2. 아이콘 중 Create 아이콘을 클릭한다.
  3. 우측에 있는 “Vender:”에서 “SQL_SERVER”를 선택한다.
    선택하면 아래의 텍스트 박스가 몇개 더 붙는다.
  4. “Physical Database Name:” 에는 아까 만든 데이터베이스 이름을 넣는다. 여기서는 cqschemaTest 이므로 cqschemaTest 라고 넣어주면 된다.
  5. “Database server name:" 에는 현재 DB서버가 동작하고 있는 서버의 서버 이름을 넣느다.
  6. “Administrator name”에는 앞서 만든 계정을 넣는다. 여기서는 "cqroot” 이다.
  7. “Administrator Password”에는 해당 계정의 암호를 넣는다.
  8. 나머지는 그대로 두고 “다음(N)>”을 클릭한다.
  9. ClearQuest Data Code Page에서 949(Korean Unified Hangeul Code ))를 선택한다.
  10. Create sample database의 체크를 끈다. (나중에 필요할 때 즈음에 만들어도 되므로 당장 만들필요는 없다. ) 그리고 “마침”을 클릭하면 된다.
  11. 정상적으로 완료 되면 아래쪽 버튼 중 “Done”이 생기는데 클릭하면 된다.

여기까지 무사히 도착했다면 작업이 완료된 것이다.

하지만, 사용자 환경은 무척이나 다양하기 때문에, 다양한 상황에 따른 다양한 에러가 발생할 수 있다.
가급적이면 Google 같은 곳에서 해당 문제점을 검색해 보면 어느정도 해결은 가능한다. 일단 필자가 지금까지 겪었던 오류들이 이것 저것 많았지만, 추수려 보면 크게 3가지 정도 발생한 것 같다. 각 에러와 그 대처 방법은 아래와 같다.

  1. 1. Database에 로그인을 할 수 없습니다.
    이 경우에는 대부분이 DB 서버가 죽었거나, 오류가 발생했을 때, 혹은 도메인\사용자 ID 스타일의 계정 – Windows 인증 계정을 사용할 때 발생된다. 앞에서 설명에서 언급했듯이 Windows 계정으로 하지 말고 반드시 Server 인증 방식으로 변경해서 처리해 줘야 한다.
  2. “select from master…” 뭐시기 하는 오류가 보일 때.
    대부분은 앞에 사용자 계정 설정 할 때 “사용자 매핑” 처리가 잘못된 경우이다. 반드시 “사용자”와 “기본 스키마” 항목에 사용자 ID 넣어 준다.
  3. 949 언어를 지원하지 않는다.
    앞서 설정한 내용 중 데이터베이스 생성할 때, “Korean_90_CS_AI_KS_WS” 를 선택해주라고 했는데, 일단 이걸로 선택하면 큰 문제없이 동작한다. 혹시 언어 코드가 잘못되거나 이상하게 동작한다면 반드시 체크 해보록 한다.

각 옵션은 만들고 난 뒤 “속성”에 들어가 수정할 수 있으므로 찬찬히 확인하도록 한다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

Outlook 연락처 개체 일괄 변경

기술자료/ETC 2009. 6. 1. 14:50

Outlook 데이터 중, 메일 다음으로 중요한 데이터가 바로 연락처가 아닐까 생각한다.
물론 메일관련된 업무 진행의 경험이 전무하거나, Outlook을 잘 사용해본적이 없다면 – 특히 웹메일만 지금까지 써보신 분들 – 의미 없겠지만, 만일 지금 Outlook을 사용하고 있다면, 약간이나마 공감이 갈지도…

이번에 마련한 SPH-M480 스마트 폰이 있는데, 여기의 연락처가 Outlook의 데이터와 동기화 된다.
다 좋은데, 전화번호 내에 “-“ 나 “(“, “)” 같은 특수 문자가 있으면 오류가 발생한다.
그렇다고 수많은 연락처의 내용을 일일히 열어서 수정하기는 무리가 있고…

그래서 생각한 방법이 Outlook의 매크로라는 방법을 쓰기로 했다.

지금 테스트해본 곳은 Outlook 2003 으로, Outlook 2003의 메뉴에서  도구 –> 매크로 –> Visual Base Editor 로 들어가서 실행했다.
위의 경로 대로 정상적으로 실행하면 아래 화면과 같은 화면이 뜰 것이다.
saveattachmentsvbeditor_small

저 도구 안의 넓은 코드 넣는 창안에 아래의 코드를 넣는다.

Sub ChangePhoneRule() 
	Dim myolApp As Outlook.Application 
	Dim myNamespace As Outlook.NameSpace 
	Dim contactFolder  As Outlook.MAPIFolder 
	Dim expContacts As Outlook.Explorer
	Dim allItems As Outlook.Items 
	Dim curItem As Object 
	Dim curContact As Outlook.contactItem 
	Dim curPhoneNum As String 
	Set myolApp = CreateObject("Outlook.Application") 
	Set myNamespace = myolApp.GetNamespace("MAPI") 
	Set contactFolder = myNamespace.GetDefaultFolder(olFolderContacts) 
	Set allItems = contactFolder.Items 
	For Each curItem In allItems 
		If (curItem.Class = olContact) Then 
			Set curContact = curItem 
			curPhoneNum = curContact.MobileTelephoneNumber 
			curPhoneNum = Replace(curPhoneNum, "+82", "") 
			curPhoneNum = Replace(curPhoneNum, "(02)", "") 
			curPhoneNum = Replace(curPhoneNum, " ", "") 
			curPhoneNum = Trim(curPhoneNum) 
			curContact.MobileTelephoneNumber = curPhoneNum 
			curContact.Save 
		End If 
	Next 
End Sub

저 안의 내용 중 보면 curContact.MobileTelephoneNumber 라는 줄을 볼 수 있다. 즉 저기서 핸드폰 번호를 가져오고 있다. 그리고 VB 함수 중 문자열 변경하는 Replace 함수를 이용해 변경한 뒤, 다시 해당 속성 값에 값을 넣고 맨 나중에 Save를 불러 주면 된다.

위의 로직은 바로 연락처 폴더 내에 있는 모든 연락처의 내용을 수정하는 작업이다.

각 Property들은 다음 사이트에서 참고하면 된다.
http://msdn.microsoft.com/en-us/library/aa210907(office.11).aspx

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

▶◀[謹弔] 전 노무현 대통령.

잡글 2009. 5. 23. 10:20
실족이 였든, 자살이였든, 누군가의 사주였든...
참 힘든 여정을 걷다가, 결국 서거의 길로 갔습니다.

사실 전두환 대통령 부터 시작된 대통령의 길은, 언제나 부패와 흑막의 연속이였죠.
엄청난 돈이나, 상당한 사람 죽이기를 끝으로 끝을 보아왔습니다.

사실 정치적으로 큰 문제를 안고 있었던, 전두환, 노태우를 제외하고,
IMF 재앙이라는 특이한 경국을 불러왔던 김영삼까지.....
그러다 김대중 대통령 때  부터 다시 부흥은 오기 시작했던 것 같군요.

물론 노무현 전 대통령이 참 잘했어요는 아니였습니다,
무언가 계속 망설이는 듯 하여 정치는 그닥 잘 하는 편은 아니였죠.
하지만, 사실 국회의원들이나 안달이 났었지, 국민들 입장에서는 그닥 문제될 것 없었던 것 같습니다.
강제 진압을 하지도 않고, 자신을 비판하고 까더라도 노골적으로 후비지도 않았습니다.
단지, 국회의원들만 그런 대통령이 마음이 안드는지 "탄핵" 이라는 것을
국민들에게 알게 만들어줬다는 정도 겠죠....

사실 이번에 너무 황당한 짓을 했습니다.
노무현 전 대통령이 해쳐먹은게 얼마나 될것 같나요?
물론 털어서 먼지 날리가 없지만, 그 얼마 안되는 과실 가지고 그 사람을 사법기관에 불러오는게
맞나 싶네요. 제가 봤을 땐 제정신이 아닌 것 같습니다.


단 한가지.... 과연.... 지금 대통령 하는 이명박 대통령이 어디로 튈 것인지가
관건입니다. 미국일까요? 일본일까요?
그는 털면 더 심각할 것 같은데요.....

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

Windows 7, Fujitsu T2010 FingerPrint(지문인식) 오류해결 방법

기술자료/OS 2009. 5. 21. 23:40

지금 Windows 7을 사용하고 있다.
이번에 RC 버전이 나와 설치해 보았는데, 기존 beta 버전에 비해 자동 인식하는 드라이버 수나, 안정성이 매우 우수했다. (일부 사용자들은 예전 Beta 버전 보다 무거워 졌다는 말도 있지만, Beta 버전을 제대로 사용해 보지 못해 모르겠다. )

그런데, 지금 Windows 7을 설치한 노트북이 Fujitsu의 T2010 인데, 지문 인식 센서가 AuthenTec 이라는 업체에서 만든 장치가 달려 있다. 이번 Windows 7에서는 이런 지문인식 로그인 응용 프로그램도 Windows Update를 통해 제공했다. 그래서 기대되는 마음으로 지문 설정을 하는데, 이게 왠걸… 오류가 발생한다.

[ 지문 인식 실행 방법 : 시작 –> Control Panel –> User Account and Family Safety –> User Account –> ( 왼쪽 링크 목록 중 맨 아래에 있는) Manage your fingerprint data을 클릭.

오류가 나는 시점은 손가락을 선택한 후, 현재 계정의 암호를 넣고 다음을 누르면 발생한다.


이래저래 못 쓰고 있다가, 예전 회사 BDD 담당자가 해당 드라이버를 다운받아서 직접 인스톨 한다는 말에 우연히 찾은 링크의 도움을 받아 간신히 성공했다.
( 참고 블로그 : AuthenTec Fingerprint Sensor Driver (32-bit and 64-bit) for Windows 7 )

지금 설치한 Windows 7 버전은 RC로 Build번호 7100이다. 그리고 X64 즉 64비트 버전으로 설치되어 있다. 그래서 64 bit 드라이버를 다운로드 받았다. (다운로드 : w7wbf64.exe )

일단 위의 응용 프로그램을 다운로드 받고 설치를 한다. 만일 필자처럼 지문 인식 프로그램이 설치되어 있는 경우 위의 프로그램을 동작시키면 자동으로 지문인식 프로그램(TrueSuite 2.0)을 언 인스톨을 해버린다.
맨 처음에는 그 사실을 몰라 저 다운로드 받은 것을 실행하면 안되는 줄 알았다. (만일 Windows Update를 통해 지문인식 솔루션을 다운로드/설치하지 않았다면 상관 없다. )

일단, 다운 받은 프로그램을 설치를 한다. 모두 설치가 되었다면, 다시 한번 지문 인식 프로그램을 실행시켜 보자.

양키말이라, 별로 보고 싶지는 않겠지만, 이렇게 표시될 것이다.

"The Selected fingerprint reader has no management application installed"
- 선택된 지문인식 센서에 관련된 관리 프로그램이 설치되어 있지 않습니다.

즉 아까 언급한 프로그램을 실행한 경우 언인스톨을 해서 발생된 문제로 생각하면 된다. 즉 이 프로그램만 다시 설치해주면 된다. 그렇다고 다운 받은 프로그램을 다시 실행시키는 뭐하고, 지문 인식 관련 관리 프로그램만 다시 설치할 수 있는 방법이 있다.

C:\Program Files (x86)\AuthenTec, Inc\Authentec WBDI Driver Package

위치의 폴더를 열어보면 WIN7TS64.EXE 라는 파일(아마도 x86인 경우 C:\Program Files\AuthenTec, Inc\Authentec WBDI Driver PackageWIN7TS32.EXE 일 것으로 예상됨)을 다시 실행해주면 된다.

이 때 하는 작업이 바로 그 지문 인식 관련 관리 프로그램을 설치하는 작업인 것이다.
제대로 설치되었다면 C:\Program Files\WIN7TS 라는 폴더가 생기고, 그 안에 파일이 정상적으로 설치되어 있을 것이다.

이제 남은 것은 Reboot 후 지문 등록하는 일이다.


UPDATE :
위의 문제는 초기 드라이버 불안정 스러웠을때 발생되었는데, 요즘은 해결 되어서
더 이상 신경 안쓴 문제였습니다. 댓글을 통한 질문으로 위의 파일에 대한 파일 문의였는데,
요즘은 거의 벤더 사에서 직접 다운로드 받아서 하고 있습니다.

http://www.pc-ap.fujitsu.com/support/drv_lb_win7_T2010_W732.html

그리고, X86과 X64의 구분이 없습니다.
드라이버도 동일하게 사용되는 것 같더라구요.
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

.NET 2.0(C#) 에서 Active X 컨트롤 만들기.

기술자료/OS 2009. 5. 13. 18:12

ActiveXTest.zip
옛날 자료들, .NET 1.0 시절에서 부터 내려온 자료들을 근간으로 하나씩 하나씩 체크하면서 진행했습니다. 그런데 생각보다 의외의 요소들이 너무 많아 헷갈려 포기 할 즈음 간신히 성공했습니다.

성공했던 내용을 기반으로 지금까지 제가 판단했던 각종 정보들을 정리해보도록 하겠습니다.
현재 이 작업은 .NET 2.0 기반으로 Visual Studio 2005를 기준으로 작성하고 테스트 되었습니다.
(아직 Visual Studio 2008에서는 해보지는 않았지만… 잘 되리라 그냥 막연히 짐작합니다. 2003 버전은,
외국에 많은 사례들이 있으므로 한번 찬찬히 보시면 금방 하실 수 있을 것입니다. )
그리고 구현 언어는 C# 입니다.

1. 프로젝트 생성

먼저 프로젝트 생성입니다. 사실 대부분의 다른 사이트들의 예제를 보게 되면 Class Library 기반으로 시작하게 끔 유도하곤 합니다. 그런데, 생각보다 설정하거나 구성해야 되는 부분이 너무 많아 무언가 노가다 하는 기분이 들더군요. 그러다가 찾은 프로젝트 형식이 바로 “Windows Control Library”  였습니다.

이 프로젝트를 생성하려면 File –> New –> Project 라는 메뉴에 들어가시면 아래와 같은 화면이 뜨는데 그 중, Windows Control Library를 선택하시면 됩니다.

2. 클래스 설정.

ActiveX로 보여줄 컨트롤에 해당하는 클래스를 열도록 합니다. 보통 기본적으로 UserControl1 이라는 이름의 클래스가 만들어지는데, 바로 이 부분을 수정하게 될 것입니다. 더블 클릭하면 디자인 모드로 넘어가므로, 코드 보기로 들어가 주시기 바랍니다.

 

2.1 using 추가하기

맨처음 해주셔야 할 작업은 using을 걸어주시는 작업이 됩니다. Active X 설정을 위해 약간의 Assembly 및 COM 처리를 해야 하는 부분이 있기 때문입니다. using 해야 할 항목은 다음과 같습니다.

using System.Runtime.InteropServices; // 동적으로 컴파일러 관련 옵션을 업데이트하는 값을 넣기 위한 부분
using System.Reflection; // 현재 어셈블리 정보를 동적으로 가져오기 위한 부분
using Microsoft.Win32; // Registry에 정보를 업데이트 하기 위한 부분

일단 위의 3가지만 들어가면 지금 부터 업데이트 하는 부분은 큰 문제 없이 들어갈 것입니다.

2.2 ActiveX로 노출될 컨트롤 Class 옵션 적용

다음은 Class에 옵션을 설정하는 작업입니다.

먼저 제일 처음에 보이는 클래스 위쪽에 다음 3가지를 추가하여 주시기 바랍니다. 물론 프로젝트의 속성 값을 수정하여 대입되는 값들도 있기는 하지만, 혹시나 모르니 그냥 넣어주시면 좋을 듯 싶습니다.

[Guid("20F0F02D-044C-4013-AFAE-F2241D95FDA3")]
[ComVisible(true)]
[ProgId("HindNo1.TestAX")]
[ClassInterface(ClassInterfaceType.AutoDual)]
public partial class UserControl1 : UserControl
{
      ………

대충 보시면 아시겠지만, [ ] 안에 들어가는 값이 바로 코드에 직접 박아서 명시적으로 설정하는 작업입니다.

맨 먼저 Guid 부분은 이 컨트롤의 고유한 ID 입니다. CLSID 같은 것으로 Active X 마다 각자 고유한 ID를 갖는데, 바로 그 ID를 의미합니다. 프로젝트 옵션에 있는 Assembly 옵션에도 이 비스무리한 값이 있는 것 같지만, 일단 저렇게 명시적으로 해주세요.( 전 VS 잘 몰라서, 장담드리기가 힘들어 가급적 그냥 제가 말씀 드린 방법대로 해보세요. )

두 번째에 있는 ComVisible 부분은 이 Control을 COM으로 노출 시키는 작업을 할 것인지 말 것인지를 결정하는 부분입니다. ActiveX도 어찌보면 COM의 일종이기 때문에, 반드시 COM 노출이 되어줘야 합니다. 이 역시 Project 속성의 Assembly 옵션에서 변경할 수 있긴 합니다.

세 번째 ProId 부분은 보통 VB 스크립트에서 쓰는 CreateObject(“xxxx.xxx”)의 xxxx.xxx 부분을 의미합니다. 일단 알기 쉽게 쓰는 것도 중요하지만, 가급적 특이하게 적어주시는 것이 좋습니다. Guid야 겹칠 일이 거의 전무하지만, 이 이름은 혹여나 겹칠 수 있으니깐, 조심조심 쓰시기 바랍니다. 문장이 길다 싶으면 “.” 으로 구분하여 표시해주시면 됩니다.

네 번째 ClassInterface(….) 부분은, COM(즉 ActiveX)가 외부에 노출되는 각종 Interface의 유형을 결정하는 부분입니다. 자세한 원리는 저도 잘 모르겠구요, COM에 대한 기초적인 지식이 필요할 것 같습니다. 일단 AutoDual로 하면 대부분의 인터페이스를 커버한다고 하더군요. 뭐 보안이나 성능상의 문제로 제한적으로 설정할 수 있는데, 이 역시 천천히 자습하시거나 내용을 찾아 설정해주시면 좋겠습니다.

2.3 컨트롤 등록 시 자동으로 실행되어야 할 사항

일단 위의 설명을 쭉 읽어보시고 만일 전혀 이해가 안되거나 도리어 헷갈린다 싶으면 위의 내용을 그대로 쓰세요. 그리고 난뒤에, Guid 와 ProgId 안의 값만 적절하게 변경해주시면 됩니다. (Guid는 Guid를 새로 생성해서 새롭게 넣으시고, ProgId는 겹치지 않게 적당한 문자열을 나열해주시면 됩니다. – 영어, 숫자, 마침표로만 – )

이제 이 Control이 등록될 때 몇 가지 Registry에 등록해야 되는데, 이 작업을 수행하기 위한 함수 두 개를 추가해 주시기 바랍니다.

///    <summary>
///    Register the class as a    control    and    set    it's CodeBase entry
///    </summary>
///    <param name="key">The registry key of the control</param>
[ComRegisterFunction()]
public static void RegisterClass(string key)
{
    // Strip off HKEY_CLASSES_ROOT\ from the passed key as I don't need it
    StringBuilder sb = new StringBuilder(key);
    sb.Replace(@"HKEY_CLASSES_ROOT\", "");

    // Open the CLSID\{guid} key for write access
    RegistryKey k = Registry.ClassesRoot.OpenSubKey(sb.ToString(), true);

    // And create    the    'Control' key -    this allows    it to show up in
    // the ActiveX control container
    RegistryKey ctrl = k.CreateSubKey("Control");
    ctrl.Close();

    // Next create the CodeBase entry    - needed if    not    string named and GACced.
    RegistryKey inprocServer32 = k.OpenSubKey("InprocServer32", true);
    inprocServer32.SetValue("CodeBase", Assembly.GetExecutingAssembly().CodeBase);
    inprocServer32.Close();

    // Finally close the main    key
    k.Close();
    MessageBox.Show(key + " 's registered");
}

///    <summary>
///    Called to unregister the control
///    </summary>
///    <param name="key">Tke registry key</param>
[ComUnregisterFunction()]
public static void UnregisterClass(string key)
{
    StringBuilder sb = new StringBuilder(key);
    sb.Replace(@"HKEY_CLASSES_ROOT\", "");

    // Open    HKCR\CLSID\{guid} for write    access
    RegistryKey k = Registry.ClassesRoot.OpenSubKey(sb.ToString(), true);

    // Delete the 'Control'    key, but don't throw an    exception if it    does not exist
    k.DeleteSubKey("Control", false);

    // Next    open up    InprocServer32
    RegistryKey inprocServer32 = k.OpenSubKey("InprocServer32", true);

    // And delete the CodeBase key,    again not throwing if missing
    k.DeleteSubKey("CodeBase", false);

    // Finally close the main key
    k.Close();
}

각 함수는 이 컨트롤을 해당 PC내에 등록할 때 자동으로 불려지는 함수입니다. RegisterClass(..) 함수는 등록될 때, UnregisterClass(..) 함수는 등록을 해제 될 때 자동으로 불리며, 각 함수의 내용은 마치 Active X처럼 필수적인 정보들을 Registry에 적어 추가하게 됩니다.

2.4 프로젝트 설정

자 마지막으로 설정해야 하는 부분은 프로젝트 설정 부분입니다.

솔루션 탐색기에서 해당 프로젝트에서 오른쪽 클릭을 하셔서 Context Menu를 띄우세요. 그리고 “속성”에 들어가시기 바랍니다.

속성 창에 들어가서 제일 먼저 응용 프로그램 탭을 선택한 뒤에 “어셈블리 정보를 클릭합니다.”

 

어셈블리 정보 창이 떴으면 맨 아래쪽에 있는 어셈블리를 COM에 노출을 선택해주시기 바랍니다.
그리고 어셈블리 버전 안에 "*" 표시가 있으면 반드시 지워주시기 바랍니다!!!!! - ( 가장 중요. 만일 * 가 들어가 있으면 계속 버전이 자동 갱신 되기 때문에, 알 수 없는 오류를 계속 뱉어 낼 수 있습니다. )

Update ( for pjyoung 님 ) - 2010.09.13.

현재 포스트 내용만으로는 regasm 으로 이 Active X 에 등록하려는데 문제가 있더군요.
만일 위의 내용만으로 등록하려고 하면 아래의 메시지가 뜹니다.

D:\MyData\Documents\Visual Studio 2010\Projects\ActiveXTest\ActiveXTest\bin\Debu
g>C:\windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe /codebase ActiveXTest
.dll
Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.4927
Copyright (C) Microsoft Corporation 1998-2004.  All rights reserved.

RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can ca
use your assembly to interfere with other applications that may be installed on
the same computer. The /codebase switch is intended to be used only with signed
assemblies. Please give your assembly a strong name and re-register it.
RegAsm : error RA0000 : An error occurred while writing the registration informa
tion to the registry. You must have administrative credentials to perform this t
ask.  Contact your system administrator for assistance

만일 한글판이면 한글판 나름 메시지가 뜨겟는데요.. 일단, 위의 내용을 간단히 언급하자면, 2가지 오류가 있는 것입니다. 하나는 일종의 경고로써, (warning RA0000). 만든 ActiveX 내에 강력한 이름의 서명이 없다는 것입니다. 이게 없다면 뭐 다른 컴퓨터에서 안된다는 의미 같은데.. 경고라고 할지라도, 일단 해결해야 겠죠. 두번째는 Windows Vista, 7 에서만 발생하는 오류인데.. 도스 창을 띄울때 관리자 권한으로 해서 넣으라는 의미입니다.
아래의 내용은 그 부분을 해결하기 위한 내용을 정리햇습니다.

  1. codebase로 등록하려면, 최소한 dll 내에 인증서가 들어가야 된다는 것입니다. 물론 파는 제품이라면, 상업용 인증서가 들어가야 겠지만, 테스트용도라면, 개인 인증서를 직접 만들어 넣을 수 있습니다.
    인증서를 넣는 방법은 아래와 같습니다.
    1. 프로젝트를 솔루션에서 연 뒤, 프로젝트 속성에 들어갑니다.
    2. 프로젝트 속성이 열리면, 왼편에 나열된 탭들 중 Signing (한글로는 아마 '서명' 정도 일거입니다.) 탭을 클릭하시고, 열리는 내용 중 Sign the assembly( 한글로는 아마 '어셈블리 내에 서명' 이겠죠)를 체크합니다.
    3. 다음은 안에 열린 Choose a strong name key file: 에서 아래의 콤보 박스 내용 중,  New… 를 선택합니다.
    4. 그러면 새로운 다이얼로그가 뜨는데, 이 창이 바로 새로운 개인 인증서 하나 멋대로 만드는 것입니다.
      (외부에서 쓰기에는 좀 많이 부족하지만, 프로그램 돌리는 인증서로는 적당합니다.)
      Key file name 에다가 적당한 이름을 넣고.. 암호 부분은 넣어도 되고 안넣어도 됩니다.
      (넣으면 코드도 보호를 하는 것 같습니다만.. 뭐.. 귀찮으면 안넣어도 됩니다. 전 그냥 버릇처럼 넣습니다.). 다 넣었으면 OK를 클릭해서 닫습니다.
    5. 그러면 Assembly 내에 String name key로 위에서 넣은 이름대로 들어갔음을 확인합니다.
      그리고 컴파일을 다시 해주세요.
  2. 두번째 등장한 오류는 관리자 권한 문제입니다. 제 PC 가 Windows 7 이므로 Windows 7 중심으로 갑니다.
    Windows XP 라면 아주 특이하게 사용하시는 분(관리자 권한이 아닌 사용자 권한으로 동작시키는 분들)이 아닌 이상 발생되는 오류는 아닐 겁니다.
    1. 시작 을 클릭하고 검색창에 cmd 입력한 뒤, cmd에서 오른쪽 버튼을 눌러 관리자 권한으로 실행을 합니다.
    2. 그리고 열린 도스창에서 작업을 시작합니다. ( 3. 컴파일 그리고 배포 부분 )

3. 컴파일 그리고 배포.

네 이제 컴파일을 해주시기 바랍니다. 오탈자의 문제가 없다면 큰 문제 없이 컴파일이 될 것입니다. 컴파일이 완료되면, 이제 명령창(cmd) 창을 띄우세요.(시작 –> 실행 –> cmd 입력 )

그리고 다음 명령을 넣어주시기 바랍니다.

C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm /codebase “어셈블리파일”

“어셈블리파일” 이라는 부분은 지금 컴파일 된 DLL 파일의 전체 경로를 의미합니다.

예를 들자면…

"E:\Prj\ExposingDotNetControls_src\Home\Prisoner\bin\Debug\Prisoner.dll"

과 같은 스타일로 하시면 됩니다.

예전 C++이나 VB로 만든 ActiveX는 보통 regsvr32로 등록하고 해제했지만, 이제 .NET 기반으로 만든 ActiveX 는 이 regasm 이라는 도구로 하셔야 합니다. .NET Framework 2.0 을 설치하셨다면 위의 경로와 같은 위치에 regasm이 있을 것입니다.

정상적으로 등록되면 등록한 GUID 값과 함께 해서 조그만한 다이얼로그가 뜨게 됩니다.

4. 테스트

뭐 Object 태그로 Html 소스 안에 직접 박아서 테스트를 할 줄 아시는 분은 Html 소스를 만들어 하실 수 있을 것이고, 아니면 Visual Studio의 C++ 관련도구를 설치하신 분은 tstcon32.exe 라는 프로그램을 실행해서 테스트 해보실 수 있을 것입니다.

HTML 코드를 아래와 같이 넣어보아서 IE를 띄워봅니다.

<HTML><BODY>
<OBJECT id="myX"  CLASSID="CLSID:20F0F02D-044C-4013-AFAE-F2241D95FDA3" width="560" height="480"> 
</OBJECT>
</BODY></HTML>

당연히 뜨는 노란색 바가 보이는데, 그것을 클릭해서 진행해주시면… 아래 처럼 만든 모양 대로 뜹니다.



5. 정리.

사실 VC++로 만드는 Active X 보다는 배포하기가 조금은 까탈스럽습니다. 이 Active X를 돌릴 클라이언트 PC내에 .NET Framework가 설치되어 있어야 겠죠. 게다가 개발 편의로 따지만 SmartClient가 훨 좋습니다 ^^;  하지만 .NET의 개발 편의성과 당장 ActiveX가 필요한 상황에서는 좋을 해결점이 될 수 있으리라 생각됩니다.

pjyoung 님의 질의 내용을 근간으로 다시 프로젝트를 생성하면서 일부 업데이트를 했습니다.
최종 된 상태에서 정리하다 보니, 일부 내용을 Skip 해서 오해의 소지가 다분 있었으리라 생각이 듭니다.
(최소한 진행을 재점검해서 실행은 했습니다.)

PS. 첨부한 파일은 이 글을 재 테스트하기 위해서 만든 프로젝트를 압축한 내용입니다.
애석하게도 Visual Studio 2010 용으로 되어 있어, 예전 Visual Studio로는 솔루션과 프로젝트 파일을 제대로 활용할 수 없을 것입니다. 새로 프로젝트를 만들어서 파일만 가져다가 재 생성해야 할지도 모르겠네요.
그래도 모르니 일단 업로드를 해봅니다.

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

DEP(Data Execution Prevention) 기능 비활성화 시키기

기술자료/OS 2009. 4. 28. 10:08
XP/2003의 경우 boot.ini 파일을 편집하여 활성화, 혹은 비활성화 처리할 수 있다.
(http://support.microsoft.com/kb/875352)
그런데 Vista에서는 boot 처리하는 로직을 별도로 구축하여 만들어서, 
bcdedit.exe 라는 특수 프로그램을 통해 해당 기능을 구현할 수 있다.

만일 비활성화 시켜야 한다면,
 
   bcdedit.exe /set {current} nx AlwaysOff

라고 입력하면된다.

활성화 시키고 싶은 경우라면, 

   bcdedit.exe /set {current} nx AlwaysOn

라고 입력하면 된다.

(참고 사이트 : http://www.mydigitallife.info/2007/01/15/disable-and-turn-off-or-enable-or-turn-on-data-execution-prevention-dep-in-windows-vista/ )

728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

  • «
  • 1
  • ···
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • ···
  • 156
  • »
250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
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

windows me2sms 좀 Tutorial moss 2010 인터파크 개발환경 Buscuit me2photo 협업 친구 지름신 twi2me 수 e-book Azure 것 MOSS 2007 Visual Studio 비스킷 Google Apps Engine SharePoint 블로그 오류 불만 WSS java me2dayzm 매뉴얼

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바