'98..Etc/Etc...'에 해당되는 글 124건

  1. 2013.02.18 [펌] 스프링배치 국내 자료 모음
  2. 2013.01.11 [펌] eclipse 빠르게 열기
  3. 2012.10.17 [링크] Domain-Driven Design
  4. 2012.05.15 "Runtime Error"창이 특정 싸이트에서만 "Runtime Error" Program: C:\\program files\\internet explorer\\iexplore.exe abnormal program termination
  5. 2012.05.14 오버라이딩, 오버로딩 그리고 가상함수
  6. 2012.05.11 [이클립스, STS] maven-dependency-plugin (goals "copy-dependencies","unpack") is not supported by m2e
  7. 2012.05.10 인쇄시 res://ieframe.dll/preview.js 오류
  8. 2012.03.15 ERWin 재설치 오류 및 삭제시 오류
  9. 2012.01.17 할일(ToDo) 관리를 효율적으로 - TODOList Resources
  10. 2012.01.17 cvs 메뉴얼
  11. 2011.12.22 여러종류 wiki
  12. 2011.02.07 [유틸리티] Google에서 만든 Javascript 최적화 및 압축도구 Closure Compiler
  13. 2010.09.02 Jetty를 사용하여 Windows Azure에서 JSP 사이트 구축하기
  14. 2010.08.20 Facebook의 실시간 웹 프레임워크 ‘Tornado’
  15. 2010.08.18 네트워크 내 중복 IP를 찾아보자..
  16. 2009.11.23 검색엔진에 검색안되게 하는법 1
  17. 2009.10.16 보안USB의 주요 취약점에 대한 분석
  18. 2009.10.16 windows에서 2개의 랜 카드 사용시 라우팅하는 방법
  19. 2009.09.29 age-bio.ru 1
  20. 2009.09.29 익스플로러 8 (ie8) mshtml.dll 오류 해결 방법
  21. 2009.08.14 Markup Validation Service
  22. 2009.07.31 도메인의 IP를 변경하면 언제쯤 인터넷에 전파되어질까?
  23. 2009.07.31 isp 회사들의 dns 주소들
  24. 2009.07.24 SQL Injection 점검툴
  25. 2009.07.15 [Windows] SSH 터널링으로 메신저, 웹브라우징 하기
  26. 2009.07.15 [Windows] SSH 터널링 - putty의 plink 사용예
  27. 2009.07.09 sc 명령어로 서비스 등록하기. 4
  28. 2009.07.09 배치 파일 윈도우 서비스에 등록하기
  29. 2009.07.09 배치화일 bat 화일 자동처리 1
  30. 2009.06.27 gpedit.msc - 제어판 사용 못하게 하기 또는 사용 하게 하기
98..Etc/Etc...2013. 2. 18. 10:28
반응형

출처 : http://www.ksug.org/94 

정상혁

이미 35개 이상의 Accenture 고객사에 Spring batch가 적용되고 있다

스프링배치 연재(1) 배치처리의 특징

스프링배치 연재(2) 대용량 처리 배치 프로그램을 만들 때 유의할 점

스프링배치 연재(3) 스프링배치 프로젝트와 주요 기능들

스프링배치 연재(4) 스프링배치의 구조와 구성요소들

스프링배치 연재(5) ItemReader와 ItemWriter

스프링배치 연재(6) 플랫파일 읽기와 쓰기

스프링배치 연재(7) XML파일 읽기와 쓰기

스프링배치 연재(8) JDBC를 이용한 Cursor 기반의 DB 조회

스프링배치 연재(9) JobRepository

스프링배치 연재(10) JobLauncher와 Job, Step

스프링배치 연재(11) 재시작과 재시도

스프링배치 연재(12) 이벤트 처리, 유효성 검사, 변환, 기존 클래스 활용

스프링배치 연재(13) 스프링배치의 형제들

스프링배치 연재(14) 드라이빙 쿼리와 iBatis의 활용

스프링배치 연재(15) 하이버네이트 활용과 여러파일 읽기

스프링배치 연재(16) DB to XML 파일 만들기 예제

배치 어플리케이션 실행 스크립트와 빌드

박찬욱님

엘레강스한 배치 추상화 프레임웍 - 스프링 배치

[Beta 1.0]Spring Batch 프레임웍 레퍼런스 한글 편역 버전.

[Beta 2.0] Spring Batch 프레임웍 레퍼런스 한글 편역 버전.

[Beta 3.0] Spring Batch 프레임웍 레퍼런스 한글 편역 버전.

제 1부. 스프링 배치 기본 아키텍처와 잡(Job) 직접 실행해보기

제 2부. FlatFileItemReader와 그 친구들(파트1)

제 2부. FlatFileItemReader와 그 친구들(파트2) (소스 및 PPT)

제 3부. FlatFileItemWriter와 아이템 변환하기 (소스 및 PPT)

제 4부. StAX 기반 아이템 처리 (소스 및 PPT)

제 5부. 데이터베이스에 아이템 쓰고, 읽고~ (소스 및 PPT)

제 6부. 배치 반복 처리하기

Spring Batch 쓰임새 분석 - 단순한 배치 반복하기

Spring Batch 쓰임새 분석 - 자동적인 재시작

Batch Processing Strategies at Spring Batch

스프링 배치's 액터(Actor)

Spring Batch 1.0에서 2.0으로 진화하기- 1. ItemReader/ItemWriter(1)

Spring Batch 1.0에서 2.0으로 진화하기- 1. ItemReader/ItemWriter(2)

Spring Batch 1.0에서 2.0으로 진화하기- 3. JobExecutionLisneter & 4. ItemProcessor

Spring Batch 1.0에서 2.0으로 진화하기- 5. Configuration

백기선님

The Domain Language of Batch - Spring Batch Chapter 2

ItemReader - Spring Batch Chapter 3

경구사님

Spring batch 개발환경 설정

김승권님

차세대배치시스템구축성공전략

- [Spring batch]차세대 배치시스템 구축 성공전략 - JCO컨퍼런스

박재성님

Spring Batch 시작하기

KSUG포럼

SpringBatch에 대한 경험담을 듣고 싶습니다.

Spring Batch ItemReader 구현체에 대한 궁금증

Posted by 1010
98..Etc/Etc...2013. 1. 11. 10:17
반응형

출처 : http://jaures.egloos.com/2290270 

 

Eclipse를 사용하다 보면 이런저런 이유로 속도가 느려지는 경험을 다 한 두번씩은 해봣을 것이다.
SVN repository에서 업데이트를 하는경우 build 작업하는 경우, 서버를 띄워서 작업을 하고 있는데 eclipse가 사용하는 메모리가 과도하게 늘어나서 문제가 생기는 경우 등등...

확실한 해결책은 아니겠지만, 나름대로 쾌적한(?) 환경에서 eclipse를 사용할 수 있도록 도와주는 방법을 몇가지 소개해본다.


1. Close Project

여러개의 project를 동시에 작업하는 경우에는 svn에서 update만 받아도 관련된 모든 project가 다시 빌드 작업을 진행해버려 그동안은 넋놓고 멍하니 기다리거나 작업의 리듬이 깨져버리는 경우가 많았다. 간혹 elcipse를 다시 재시작 해야하는 경우에도 재시작하는 시간이 너무 오래걸려 재시작을 고민해야 하는 경우도 종종 있었다.


이런 경우에는 해당 project를 닫아버리는게 큰도움이 되는데, 이건 아주 간단하게 바로 작업에 사용할 project가 아니라면 Package Explorer에서 해당 프로젝트의 컨텍스트 메뉴에서 "Close Project"를 해버리면 된다. 작업할 때에는 다시 컨텍스트 메뉴에서 "Open Proejct"를 하면 된다.


2. Spelling 검사 끄기

필요한 경우도 있겠지만, 대다수의 경우에는 철자검사를 할필요는 없을것 같다. 철자검사를 해제하면 에디터상에서 철자에 대한 검사를 실행하지 않기 때문에 조금은 더 빠르게 작업을 할수 있다.


Window > Preferences > General > Editors > Text Editors > Spelling 에서 Enable spell checking 체크박스를 해제하면 된다.


3. Startup and Shutdown

Eclipse plug-in을 이것저것 설치해서 사용하다보면 시작시에 불필요한 작업이 많아진다. 꼭 그런것은 아니지만 시작시에 plug-in의 업데이트를 확인한다거나 plug-in의 특정 모듈을 activate 한더거나 등등.

작업에 꼭 필요하지 않다고 생각되는 것들은 시작 항목에서 빼버리게 되면 그만큼 eclipse의 시작 실행속도가 빨라지게 된다. 이 항목에서는 또한 eclipse 종료시에 대한 설정도 할수 있다.


Window > Preferences > General > Startup and Shutdown > Plug-ins activated on startup 에서 사용하지 않을 항목에 대해 체크박스를 해제하면 된다.


4. Eclipse status memory monitor

Eclipse는 JRE 위에서 실행되는 java 프로그램이라서 eclipse를 실행한 후에 일정 기간이 지나게 되면 Gabarge Collection을 하게 된다. 더군다나 eclipse는 많은 메모리를 사용하는 것으로 악명(?)이 높기 때문에 GC가 제때 수행되지 않거나 주기가 길어지는 경우 프로그램을 실행할 메모리 자체가 줄어들어 작업 자체가 힘들어진다.

이럴 경우 Eclipse status memory monitor plug-in을 사용해 메모리가 모자르다 싶으면 바로 GC를 강제로 수행해 메모리를 확보할 수 있다. 또한 현재 Eclipse가 사용하고 있는 메모리의 상태를 직접 확인할 수 있으므로 아무런 이유없이 eclipse가 느려지는 답답함을 해소(?)할 수도 있다.




5. Validation

보통 view 작업을 진행하다 보면, 여러가지 코드가 한 파일에 뒤섞이게 된다. JSP 파일안에 html, css, javascript, java 등의 코드들이 뒤섞에 있다보면 validation이 크게 의미가 없게 되는 경우가 있는데 이럴 경우에는 굳이 validation을 할필요가 없어지게 된다. Validation은 에디터상에서 말그대로 문법에 대한 오류를 실시간으로 검사해 알려주는 것이기 때문에 validation만 해제해도 eclipse 작업속도에 그 만큼의 영향을 미치게 된다.


Window > Preferences > General > Validation > Validator 항목에서 문법검사를 하지 않을 항목에 대해 체크를 해제하면 된다.
Posted by 1010
98..Etc/Etc...2012. 10. 17. 07:18
반응형

카테고리 : Domain-Driven Design

2010/03/31 Domain-Driven Design Essence [21]
2009/10/15 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 11부 [完] [15]
2009/10/13 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 10부
2009/07/29 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 9부
2009/07/13 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 8부 [2]
2009/06/29 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 7부
2009/06/23 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 6부 [2]
2009/06/15 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 5부
2009/03/25 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 4부 [4]
2009/02/27 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 3부
2009/02/23 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 2부
2009/02/15 Domain-Driven Design의 적용-4.ORM과 투명한 영속성 1부
2009/01/18 Domain-Driven Design의 적용-3.Dependency Injection과 Aspect-Oriented Programming 7부 [2]
2009/01/02 Domain-Driven Design의 적용-3.Dependency Injection과 Aspect-Oriented Programming 6부
2008/12/24 Domain-Driven Design의 적용-3.Dependency Injection과 Aspect-Oriented Programming 5부 [2]
2008/12/17 Domain-Driven Design의 적용-3.Dependency Injection과 Aspect-Oriented Programming 4부
2008/12/13 Domain-Driven Design의 적용-3.Dependency Injection과 Aspect-Oriented Programming 3부
2008/12/09 Domain-Driven Design의 적용-3.Dependency Injection과 Aspect-Oriented Programming 2부
2008/12/05 Domain-Driven Design의 적용-3.Dependency Injection과 Aspect-Oriented Programming 1부
2008/11/30 Domain-Driven Design의 적용-2.AGGREGATE와 REPOSITORY 5부
2008/11/27 Domain-Driven Design의 적용-2.AGGREGATE와 REPOSITORY 4부
2008/11/25 Domain-Driven Design의 적용-2.AGGREGATE와 REPOSITORY 3부 [2]
2008/11/23 Domain-Driven Design의 적용-2.AGGREGATE와 REPOSITORY 2부
2008/11/20 Domain-Driven Design의 적용-2.AGGREGATE와 REPOSITORY 1부
2008/11/17 Domain-Driven Design의 적용-1.VALUE OBJECT와 REFERENCE OBJECT 4부 [4]
2008/11/17 Domain-Driven Design의 적용-1.VALUE OBJECT와 REFERENCE OBJECT 3부
2008/11/16 Domain-Driven Design의 적용-1.VALUE OBJECT와 REFERENCE OBJECT 2부 [4]
2008/11/15 Domain-Driven Design의 적용-1.VALUE OBJECT와 REFERENCE OBJECT 1부 [14]

 

Posted by 1010
98..Etc/Etc...2012. 5. 15. 01:36
반응형

실행 

regedit -> windows - currentVission - explore- Browser Helper Objects  하위 폴터 다삭제

Posted by 1010
98..Etc/Etc...2012. 5. 14. 19:36
반응형

 

 

 

author : LogerC

Date : 2009/12/28 22:35:59

 

 

왜...!!? 이 세가지를 구지 구분해야 할까요?

그냥 사용할줄 알면되지.. 구지 구분해서 알아둘 필요가 있을까요?

네.. 제가 드리고 싶은 말은!

구분해서 정확하게 알아두어야 합니다.

저도 3년 전만 해두... 왜 차이점에 대해서 물어보고, 트집잡는것인가 했었죠.

그러나... 이 차이점은 너무나 중요할뿐만 아니라, 이 세가지를 제대로 구분하지 않는다면

프로그래머로서의 한계가 오실꺼라 생각합니다. 코더에서 머무르시겠습니까?

더 높이 올라가시겠습니까?

 

 

오버라이딩 / 오버로딩 / 가상함수

정말 비슷해 보입니다. 차이점을 나열해 보라고 하면

참참참 난감하지요.

이 세가지를 제대로 분리해 낸다면 당신은 충분한 실력가 입니다.

중급의 입장에서 나누어 본 차이점 입니다.

 

고급으로 가실려면... 이 세가지의 차이점을 확실히 알고,

이 세가지 중에서 가상함수의 위대함을 이해 하고,

가상함수를 통한 OOP 설계가 가능 해집니다.

가상함수를 통한 OOP 설계가 가능해 질 쯔음,

오버라이딩과 오버로딩의 재미있는 것들도 함께 겸비 하시면.. 재미가 쏠쏠합니다. :)

 

일단... 초급을 떼기 위한 중급수준의 차이점을 나열해 보도록 하죠..

( 간혹 가다가.. 정말 짖궂게 이 세가지의 차이점을 묻는 윗분들이 계시지요..

근데.. 대부분 두가지의 차이점만 많이 물어봅니다. 오버라이딩/오버로딩... )

[ 설마.. 두가지만 물어본다는건.. 그 분은 가상함수를 모른다는거겠죠?

그분도 OOP를 절반밖에 모르는 군요.. 이런이런..아쉽군용..

당신이 거기에서 가상함수까지 쫘르르르 나열해 설명 해 준다면,

윗분께서~ 감탄사가 절로 나겠죠? ^^ ]

 

여기에는 차이점을 나열한 것이다. 각각의 정보에 대해 세밀한 정보를 원한다면.

Winapi사이트 같은 사이트를 둘러보기를 권한다.

또는 여러 지식인 검색 사이트를 사용하는 것도 현명한 방법이다.

 

오버라이딩#

덮어 씌운다.

 

  • 함수 오버라이딩

 [ 오버라이딩은 컴파일 시점에서 정해집니다. ]

 

상속관계에서 부모의 함수나 변수를 덮고, 새롭게 작성되어 쓰여진다.

over + ride 란 뜻은 위로 올라탄다는 의미입니다.

 

아래와 같이 간단한 예를 보자.

소스#

( compile 안한 코드임.. 이해를돕기 위한 코드)

  1. class parent {
  2. void foo() { printf("p"); }
  3. }
  4. class child : parent {
  5. void foo() { printf("c"); }
  6. }
  7.  
  8. main ()
  9. {
  10. child c;
  11. parent p;
  12.  
  13. c->foo();
  14. p->foo();
  15. }
출력#
  1. c
  2. p

 

 

 

오버로딩#

겹쳐  놓고 사용한다. ( 덮는게 아니라 겹친다. 다양한 사용이 가능하다 )

 

  • 함수오버로딩
  • 연산자오버로딩

 [ 오버로딩은 컴파일 시점에서 정해집니다. ]

 

over + load 란 더 많이 쌓는다는 거죠.

 

저 두가지의 공통점이 무엇인가? 잘모르겠지요...?

반환형 또는 매개변수로 오는 것이 달라집니다.

반환형(return), 매개변수( func(var) ) 에 따라 달라진다는 겁니다.

이제 조금 감이 올려나? ^^ ( 긴가민가 하실겁니다... 둘다 그랬었나? 이런생각하고계시나요? ㅎ )

 

함수 오버로딩이란

int foo(int, int);

double foo(double, int)

와 같이 같은 함수명에 매개변수 또는 반환형에 따라 재정의 되어 달라지는거죠

 

연산자 오버로딩이란

int operator+(int);

double operato+(const double);

과 같이 이미 정의된 연산자를 반환형이나 매개변수에 따라 재정의 되는 것이죠.

 

왜 오버로딩이라고 하는지 이해 하셨나요?

 

간단한 소스 적어보죠.

 

소스#

( compile 안한 코드임.. 이해를돕기 위한 코드)

  1. class Riding {
  2. private :
  3. double num;
  4. public:
  5. Riding() : num(0.0) { }
  6. double sum(const int a, const int b) { return (double)a+b; }
  7. double sum(const double a, const double b) { return a+b; }
  8.  
  9. double operator+(const int rhs) { return this.num += (double)rhs; }
  10. double operator+(const double rhs) { retrn this.num += rhs; }
  11. double operator=() { return num; }
  12. }
  13. int main(void) {
  14. Riding r;
  15.  
  16. cout << "int, int->" << r.foo(1,2) << " double, double->" << r.foo(1.0 + 3.0) << endl;
  17. cout << "int->" << r+1 << " double->" << r+2.0 << endl;
출력#
  1.  int, int-> 3.0 double,double->4.0
  2. int->1.0 double-> 3.0;

 

 

 

가상함수#

 

함수가 재정의 되어 사용합니다.

 

  • 겉에서 볼 때의 특성은 오버라이딩과 매우 흡사합니다.
  • 즉, 덮어 씌어진것처럼 보입니다.
  • 실제로는 오버로딩 되어, 겹쳐진 상태입니다.

    • 그러나 변환형, 매개변수가 달라지면 가상함수가 아닙니다.

[ 가상함수는 실행시간에 정해집니다. ]

 

너무 복잡하죠? 한마디로 한번 더 정리해 드리겠습니다.

  • 성법은 라이딩과 같은 모양새로 작성되지만, 실행과는 오버로딩처럼 보여집니다.

 

처음 접하신 분이라면, 이 내용을 이해 하기에는 큰 어려움이 있을꺼라 생각됩니다.

이상하게 생각하지 마십시오. 이걸 한번 보고 이해했다면, 당신은 프랑켄슈타인입니다.

 

가상함수는 상속관계에서 쓰여지며, 객체지향특성의 핵심중 핵심이라 할수 있습니다.

( 그래서 매우 어려운 것이죠 ... ) .. C에서는 포인터가 핵심이죠? C++이상의 객체지향에서는 가상함수가 핵심이라 해도 과언이 아닙니다.

 

이해를 돕기 위해 C 이야기 잠깐해보죠.

사용하셨었던 포인터 함수를 기억하시나요?

포인터 함수를 이용해서 가상함수를 흉내낼수도 있답니다.

리눅스같은 씨 구조로 된 OS에서 인터페이스로 포인터 함수를 가지고, 간결화시키죠.

객체지향에서는 가상함수를 가지고 인터페이스화 ( 간결하게 ) 시켜서, 거대한 프로젝트를 단순화 시켜줍니다.

( 가상함수 말고도, 다형성(추상화)을 이용해서 단순화를 시키기도 합니다. 이 내용은 주제에 벗어나므로 생략합니다. )

 

이제 다시 주제로 넘어오도록 하죠 ^^..

 

이 부분은 좀 어려우므로 소스를 보면서 이해 하도록하죠.

물론.. 이 소스도 컴파일 시도하지 않은, 이해를 돕기 위한 코드입니다.

 

소스#

( compile 안한 코드임.. 이해를돕기 위한 코드)

  1. class IMove {
  2. int go() = 0;
  3. }
  4. class Walk : IMove
  5. int go() { cout << " 저벅 저벅 " << endl; }
  6. }
  7. class Run : IMove
  8. int go() { cout << " 후다닥 후다닥 " << endl; }
  9. }
  10.  
  11. int main(void)
  12. {
  13. int    oops = 0;
  14. IMove* what_Do_I = NULL;
  15.  
  16. cout << " 걸을거면 1. 뛸꺼면 2.    고르세요! " << endl;
  17. cin >> oops;
  18.  
  19. switch(oops)
  20. {
  21. default:
  22. cout << "똑바로 안 누를래? .. 형이 지금 기분이 쫌 그런다.."
  23. break;
  24. case 1:
  25. what_Do_I = new Walk();
  26. break;
  27. case 2:
  28. what_Do_I = new Run();
  29. break;
  30. }
  31. if( NULL != what_Do_I )
  32. {
  33. what_Do_I.go();
  34. delete what_Do_I;
  35. }
  36.  
  37. return 0;
  38. }
  39.  

 

출력#

( 둘중 하나가 나온다. )

이게 바로.... 실행시간에 결정된다는 것이다.

  1. 저벅 저벅
  2. or
  3. 후다닥 후다닥

 

 

 

가상함수가 먼지 이제 이해 하셧나요?

가상함수는 정말 위대한 것입니다.

현재 당신이 이해 한 내용보다 훨씬 많은 내용을 담고 있습니다.

이제야 수학공부중.. 산수에 속하는.. 1,2,3,4,5,6,7,8,9를 떼셨습니다.

차 후에 좀 더 포스팅 하도록 하죠.

산수에 빗대어서 [ 0 ] 이라는 숫자를 발견했을 때는 어마어마한 발견이었죠.

가상함수를 통해서.. 그 어마어마한 발견을 하실 준비가 되신겁니다.



출처 : http://swstudy.springnote.com/pages/4902047

Posted by 1010
98..Etc/Etc...2012. 5. 11. 00:07
반응형

출처 :  http://knight76.tistory.com/archive/20120112




 

m2 eclipse plugin이 1.0 버전 업하면서 생긴 단순한 설정은 아래와 같이 처리한다.
http://knight76.tistory.com/entry/이클립스-STS-maven-builder-변경


컴파일을 잘 되는데, pom.xml 파일에 maven parent를 사용하는 부분에서 에러가 있다고 나온다. build life cycle에서 무엇인가 이슈가 있다.

 

원인을 찾아보니, 이클립스 싸이트의 m2e 플러그인에 대한 내용이 있다. 간단히 요약해보면 다음과 같다. 빌드시 명시적으로 문제의 소지가 있는 플러그인에 대해서 에러로 처리할테니, 무시하든지 추가하든지 하는 설정을 넣으라는 얘기이다. (m2eclipse 플러그인 개발자도 maven 때문에 고생한다…. )

http://wiki.eclipse.org/M2E_plugin_execution_not_covered

https://issues.sonatype.org/browse/MNGECLIPSE-823에 내용에 있는 것처럼 리소스들과 컴파일이 안되는 문제가 발생되기도 했다. 0.12 버전 이하에서는 이클립스 빌드시 maven을 사용해서 컴파일을 했었다. 사실 이클립스 플러그인 개발입장에서는 그저 maven에 위임하는데, 어떤 “ Plug excution”이 동작하여 예상치 못하게 파일(리소스)가 날아가(missing) 버리거나 JVM, OS 리소스 부족으로 문제를 일으키는 경우가 있었다.

이 문제를 해결해가 위해서 1.0 부터는 빌드 lifecycle에 명확한 방법(explicit instructions)을 제공하였다. 이것을 “project build lifecycle mapping” (lifecycle mapping)이라고  한다. pom.xml 설정에 maven 빌드와 별도로플러그 실행(execution)에 대한 정보를 넣을 수 있게 하였다.

예를 들어 project build lifecycle mapping 정보가 없는 경우에 대해서는 다음과 같이 m2 이클립스 플러그인에서 에러로 처리한다고 한다.

Plugin execution not covered by lifecycle configuration:
org.apache.maven.plugins:maven-antrun-plugin:1.3:run
    (execution: generate-sources-input, phase: generate-sources)
이 문제를 해결하기 위해서 ignore 또는 execute goal을 넣어야 한다. 

 

아래 에러 로그에 있는 내용이 바로 위에 작성한 위키의 내용과 일치한다.

Multiple annotations found at this line: 
    - Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:xml-maven-plugin:1.0:transform 
     (execution: default, phase: process-resources) 
    - Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-antrun-plugin:1.3:run 
     (execution: process-resources, phase: process-resources) 
    - maven-dependency-plugin (goals "copy-dependencies", "unpack") is not supported by m2e. 
    - Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-antrun-plugin:1.3:run 
     (execution: copy-base-resource, phase: generate-sources)

 

이 방식을 이용해서 아래와 같이 pom.xml 파일에 정리하였더니 더 이상 이클립에서 에러라고 처리되지 않는다.

<build> 
        <pluginManagement> 
            <plugins> 
                <!--This plugin's configuration is used to store Eclipse m2e settings 
                    only. It has no influence on the Maven build itself. --> 
                <plugin> 
                    <groupId>org.eclipse.m2e</groupId> 
                    <artifactId>lifecycle-mapping</artifactId> 
                    <version>1.0.0</version> 
                    <configuration> 
                        <lifecycleMappingMetadata> 
                            <pluginExecutions> 
                                <pluginExecution> 
                                    <pluginExecutionFilter> 
                                        <groupId> 
                                            org.apache.maven.plugins 
                                        </groupId> 
                                        <artifactId> 
                                            maven-antrun-plugin 
                                        </artifactId> 
                                        <versionRange> 
                                            [1.3,) 
                                        </versionRange> 
                                        <goals> 
                                            <goal>run</goal> 
                                        </goals> 
                                    </pluginExecutionFilter> 
                                    <action> 
                                        <ignore></ignore> 
                                    </action> 
                                </pluginExecution> 
                                <pluginExecution> 
                                    <pluginExecutionFilter> 
                                        <groupId> 
                                            org.codehaus.mojo 
                                        </groupId> 
                                        <artifactId> 
                                            xml-maven-plugin 
                                        </artifactId> 
                                        <versionRange> 
                                            [1.0,) 
                                        </versionRange> 
                                        <goals> 
                                            <goal>transform</goal> 
                                        </goals> 
                                    </pluginExecutionFilter> 
                                    <action> 
                                        <ignore></ignore> 
                                    </action> 
                                </pluginExecution> 
                                <pluginExecution> 
                                    <pluginExecutionFilter> 
                                        <groupId>org.apache.maven.plugins</groupId> 
                                        <artifactId>maven-dependency-plugin</artifactId> 
                                        <versionRange>[1.0.0,)</versionRange> 
                                        <goals> 
                                            <goal>copy-dependencies</goal> 
                                        </goals> 
                                    </pluginExecutionFilter> 
                                    <action> 
                                        <ignore /> 
                                    </action> 
                                </pluginExecution> 
                            </pluginExecutions> 
                        </lifecycleMappingMetadata> 
                    </configuration> 
                </plugin> 
            </plugins> 
        </pluginManagement> 
    </build>

Posted by 1010
98..Etc/Etc...2012. 5. 10. 21:05
반응형
인쇄시 res://ieframe.dll/preview.js 오류

인쇄시 res://ieframe.dll/preview.js 오류

Windows 7 32bit
IE 9.0.8112.16421

IE에서 인쇄시 아래와 같은 오류가 발생합니다.
---------------------------------------------
이 페이지의 스크립트에서 오류가 발생하였습니다.
줄 : 1527
문자 : 1
오류 : 잘못된 인수입니다.
코드 : 0
URL : res://ieframe.dll/preview.js
---------------------------------------------


조치
1. 프린터 재설치
2. Regsvr32.exe Ole32.dll 등 실행
3. 바이러스 검사 실시
4. IE9 삭제 후 IE8에서도 같은 오류 -> IE9 재설치 이후에도 같은 오류 발생
5. 시작프로그램 및 타사 서비스 해제
6. 툴바 사용안함
7. 레지스트리 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects 등 삭제

모두 다 해봤는데도 여전히 같은 문제가 발생합니다.
심지어 설치 프린터를 모두 삭제한 이후에도 해당 문제가 발생합니다.

기타 브라우저(크롬, firefox) 및 여타 응용 프로그램에서는 정상적으로 프린트가 됩니다.
오직 IE에서만 위 오류가 나면서 인쇄가 되지 않습니다.
    • 아동 착취 또는 학대
    • 희롱 또는 위협
    • 부적절한/성인용 콘텐츠
    • 노출
    • 모독
    • 소프트웨어 불법 복제
    • 스팸/광고
    • 바이러스/스파이웨어/맬웨어 위험
    • 기타 사용 약관 또는 준수 사항 위반
1이 질문을 올린
사람 수

이 게시물이 유용했습니까?

1

투표

답변

안녕하세요.

이와 같은 문제는 Internet Explorer 9 구동에 필요한 관련 모듈이 올바르게 작동하지 못해 발생한 증상 입니다.

아래 스크립트를 이용하여 Internet Explorer 에 사용되는 system libraries (dll) 의 레지스트리 스크립트 손상을 복구해 보시기 바랍니다.

  1. [시작 - 모든 프로그램 - 보조 프로그램 - 메모장]을 열고 아래 스크립트를 모두 복사하여 붙여 넣기 한 후 바탕화면에 " rereg.cmd " 이름으로 파일을 저장 합니다.
  2. 바탕화면에 저장 된 rereg.cmd 파일을 실행 합니다.
  3. 컴퓨터 다시 시작 합니다.

스크립트 시작 ----------- (아래 줄 부터 복사 합니다)

@echo off
echo.
echo IEREREG Version 1.07 for IE8 27.03.2009
echo by Kai Schaetzl http://iefaq.info
echo installs and registers (if suitable) all DLLs known to be used by IE8.
echo should only take a few seconds, but please be patient
echo.
REM ******************************
echo registering IE files
REM IE files (= part of setup)
regsvr32 /s /i browseui.dll
REM regsvr32 /s /i browseui.dll,NI (unnecessary)
regsvr32 /s corpol.dll
regsvr32 /s dxtmsft.dll
regsvr32 /s dxtrans.dll
REM simple HTML Mail API
regsvr32 /s "%ProgramFiles%\internet explorer\hmmapi.dll"
REM group policy snap-in
regsvr32 /s ieaksie.dll
REM smart screen
regsvr32 /s ieapfltr.dll
REM ieak branding
regsvr32 /s iedkcs32.dll
REM dev tools
regsvr32 /s "%ProgramFiles%\internet explorer\iedvtool.dll"
regsvr32 /s iepeers.dll
REM Symptom: IE8 closes immediately on launch, missing from IE7
regsvr32 /s "%ProgramFiles%\internet explorer\ieproxy.dll"
REM no install point anymore
REM regsvr32 /s /i iesetup.dll
REM no reg point anymore
REM regsvr32 /s imgutil.dll
regsvr32 /s /i /n inetcpl.cpl
REM no install point anymore
REM regsvr32 /s /i inseng.dll
regsvr32 /s jscript.dll
REM license manager
regsvr32 /s licmgr10.dll
REM regsvr32 /s msapsspc.dll
REM regsvr32 /s mshta.exe
REM VS debugger
regsvr32 /s msdbg2.dll
REM no install point anymore
REM regsvr32 /s /i mshtml.dll
regsvr32 /s mshtmled.dll
regsvr32 /s msident.dll
REM no reg point anymore
REM regsvr32 /s msrating.dll
REM multimedia timer
regsvr32 /s mstime.dll
REM no install point anymore
REM regsvr32 /s /i occache.dll
REM process debug manager
regsvr32 /s "%ProgramFiles%\internet explorer\pdm.dll"
REM no reg point anymore
REM regsvr32 /s pngfilt.dll
REM regsvr32 /s /i setupwbv.dll (not there anymore!)
regsvr32 /s tdc.ocx
regsvr32 /s /i urlmon.dll
REM regsvr32 /s /i urlmon.dll,NI,HKLM
regsvr32 /s vbscript.dll
REM VML renderer
regsvr32 /s "%CommonProgramFiles%\microsoft shared\vgx\vgx.dll"
REM no install point anymore
REM regsvr32 /s /i webcheck.dll
regsvr32 /s /i /n wininet.dll
REM ******************************
echo registering system files
REM additional system dlls known to be used by IE
REM added 11.05.2006 Symptom: Add-Ons-Manager menu entry is present but nothing happens
regsvr32 /s extmgr.dll
REM added 12.05.2006 Symptom: Javascript links don't work (Robin Walker) .NET hub file
regsvr32 /s mscoree.dll
REM added 23.03.2009 Symptom: Find on this page is blank
regsvr32 /s oleacc.dll
REM added 24.03.2009 Symptom: Printing problems, open in new window
regsvr32 /s ole32.dll
REM mscorier.dll
REM mscories.dll
REM Symptom: open in new tab/window not working
regsvr32 /s actxprxy.dll
regsvr32 /s asctrls.ocx
regsvr32 /s cdfview.dll
regsvr32 /s comcat.dll
regsvr32 /s /i /n comctl32.dll
regsvr32 /s cryptdlg.dll
regsvr32 /s /i /n digest.dll
regsvr32 /s dispex.dll
regsvr32 /s hlink.dll
regsvr32 /s mlang.dll
regsvr32 /s mobsync.dll
regsvr32 /s /i msieftp.dll
REM regsvr32 /s msnsspc.dll #no entry point
regsvr32 /s msr2c.dll
regsvr32 /s msxml.dll
regsvr32 /s oleaut32.dll
REM regsvr32 /s plugin.ocx #no entry point
regsvr32 /s proctexe.ocx
REM plus DllRegisterServerEx ExA ExW ... ?
regsvr32 /s /i scrobj.dll
REM shdocvw.dll hasn't been updated for IE7 and IE8, it still registers itself for the Windows Internet Controls
regsvr32 /s /i shdocvw.dll
regsvr32 /s sendmail.dll
REM ******************************
REM PKI/crypto functionality
REM initpki can take very long to run and is rarely a problem
REM if there are problems with crypto, SSL, certificates
REM remove the three following REMs from the lines
REM echo We are almost done except one crypto file
REM echo but this will take very long, be patient!
REM regsvr32 /s /i:A initpki.dll
REM ******************************
REM tabbed browser, do at the end, why originally with /n ?
regsvr32 /s /i ieframe.dll
REM ******************************
echo correcting bugs in the registry
REM do some corrective work
REM Symptom: new tabs page cannot display content because it cannot access the controls (added 27. 3.2009)
REM This is a result of a bug in shdocvw.dll (see above), probably only on Windows XP
reg add "HKCR\TypeLib\{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}\1.1\0\win32" /ve /t REG_SZ /d %systemroot%\system32\ieframe.dll /f
REM ******************************
echo all tasks have been finished
echo.
pause

스크립트 종료 --------- ( 위에 줄 까지 복사 합니다 )

응답이 문제 해결에 도움이 되었다면, 아래에 있는 답변으로 [표시]버튼을 눌러 주시기 바랍니다. 이는 유사한 증상을 겪는 다른 사용자들에게 도움이 될 수 있습니다.

문제가 계속 지속되거나진행이 어려운 경우마이크로소프트 기술지원 1577-9700(내선 3-1)으로문의하시기 바랍니다.

* 참고: 라이선스 보증기간 등에 의해무상 또는 유상지원이 있습니다

Posted by 1010
98..Etc/Etc...2012. 3. 15. 11:01
반응형

ERwin을 재설치하는 경우 특정파일(mmopn32.exe)에서 에러가 발생하면서 실행이 되지 않는다.
제네시스 사이트에서 확인한 바에 따르면 프로그램의 빌드차이와 같은 이유로 발생한다고 한다.
번거롭더라도 앞서 설치되었던 ERwin에 대한 정보를 모두 제거한 후에 다시 설치하여야 한다.
1. 프로그램을 삭제한다.

[제어판 > 프로그램 추가/제거]

2. 해당 폴더를 삭제한다.
[Program Files > CA]
[Program Files > CA_LIC]
- CA_LIC 폴더가 특정 파일의 공유 및 사용으로 삭제가 되지 않는 경우 해당 파일을 사용하는 프로세스를

종료한다. [작업관리자 > 프로세스 > LogWatNT.exe]
3.관련 파일을 삭제한다.
시스템폴더(Windows)에 있는 Erwin*.*, RTBPreferences.pref, SCAPI.ini
4. 서비스를 종료한다.
제어판 > 관리도구 > 서비스 > CA_LIC*
5. 레지스트리를 정리한다.
검색을 통해서 관련 키워드로 설정된 값을 삭제한다.
Erwin, AllFusion, CA_LIC
6. 리부팅한다.
cf.
ca.com에서 평가판을 직접 다운받았을 경우 하나의 평가판 프로그램을 중복해서 사용할 수 없다.
평가판 자체도 라이센스 키를 가지므로 평가기간 만료후에는 새로운 평가판을 다운로드하여 설치하여야 할 것 같다.(실제로 적용해 보지는 않았다.)


출처: http://skql.tistory.com/492

Posted by 1010
98..Etc/Etc...2012. 1. 17. 15:37
반응형

한글판 :


한글판하고 오리지널 버전 같이 있습니다.


---------------------------------------------

「TODOList Resources」는 할일(ToDo)을 하위 작업으로 구분하여 관리할 수있는 무료 프로그램으로 별도 설치 과정없이 압축을 푼 후 바로 사용가능합니다.

"+"버튼으로 쉽게 작업을 추가할 수 있으며 예정일 별, 중요도 별로 관리가 가능합니다.

세부항목은 하위 트리로 관리 가능하며 '우선 순위, 완료율(%), 예상 시간, 소요 시간'등을 지정하고 항목별 카데고리, 텍스트 색상, 관련 파일 링크등의 다양한 기능들을 제공합니다.

오리지널판은 영문판으로... 사용하기 까다로우니 여기 'ninja님의 블로그'를 방문하시어 한글판을 사용하시기 바랍니다.

또한, 사용법은 '해피포터의 행복한 프로그래밍'에 자세히 나와있으니 참고하세요.


■ ScreenShot



Posted by 1010
98..Etc/Etc...2012. 1. 17. 14:49
반응형


요즘은 워낙에 cvs 관련 툴이나 프로그램이 많아서 직접적으로 cvs 명령을 타이핑 하는 일은 줄어들었지만..
cvs에 대한 기본 개념을 잡기엔 이문서가 도움이 될것 같다.

출처 : http://www.apache-korea.org/zb41/view.php?id=struts&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=5
Posted by 1010
98..Etc/Etc...2011. 12. 22. 18:05
반응형

Wiki Engines

This is the canonical list of WikiEngines. See also TheWikiWay (a book). The engines are listed twice, by language and by name.

Overwhelmed by this long list? Try TopTenWikiEngines, ChoosingaWiki, or WikiChoicetree. See WikiFarms for hosted wiki options.

Further discussion and requests are at the end of this page.


Publicly Available Wiki Software sorted by language of implementation

ActiveServerPages (ASP):
  • AspWiki -- Uses MS-Access for the store.
  • ArtificialMemory (www.artificialmemory.net) -- Uses Semantic Web technology based on SQL-Server.
  • FpWiki -- Uses MS-Access and easy to install with Frontpage, without admin priv.
  • JassWiki -- Based on DolphinWikiWeb. Free source [GPL].
  • LimitedWiki (LIKI) -- MS-Access powered wiki with account access controls.
  • NoodleWiki - Basic wiki using ASP and either Access or file system.
  • OpenWiki -- Based on UseModWiki and MoinMoin, has a unique difference engine. BSD license.
  • WikiAsp -- Uses MS-Access. No GPL. Based on AspWiki engine. RSS and Table support.


AdaLanguage:
  • CasBah -- Collective Authoring System Based on Hypertext


AwkLanguage:
  • AwkiAwki -- tiny and fast wiki, RCS, BSD compatible license
  • YawkWiki -- Tiny customizable wiki. Requires GNU Awk (gawk) and Apache. Free Software [GNU GPL].


Bash:

Cheshire:
  • CheshireWiki -- CheshireTwo? based wiki for any SGML DTD and Z39.50 access


CeeLanguage (C):
  • CVSTrac -- Bug and patch-set tracking tool for CVS that also includes a built-in wiki engine (http://www.cvstrac.org/)
  • EdouardsWiki -- A CGI written in ANSI C (see also my note on WritingMyOwnWiki)
  • Fossil -- Distributed software version control system that includes an integrated distributed wiki and an integrated distributed bug-tracking system. All in a single, easy-to-use, stand-alone executable. Both CGI and built-in http server (http://www.fossil-scm.org/)
  • whiki -- http://whiki.wanderinghorse.net -- A CGI-based wiki back-end, written in C, which serves arbitrary wiki formats in JSON format and leaves rendering to the client. It includes a JavaScript client.
  • WikicWeb -- C language based
  • DidiWiki -- A small and simple C wiki with built in http server


CeePlusPlus (C++):

CsharpLanguage (C#):
  • ConclaveDotNet -- Written in C# using its own TopicMaps datastore.
  • DotNetWiki -- Written in C# for the DotNetNuke portal system.
  • FlexWiki -- Nice C# Wiki for .NET; supports file system and SQL Server; nice namespace support
  • FutureWikis -- C# Wiki for .NET; SQL Server only; User-friendly oriented and one-install-many-wikis engine
  • PerSpective? -- Wiki with WYSIWYG editing, attachments, full searching (including MS Office docs) and security.
  • ScrewTurnWiki? (http://www.screwturn.eu) -- Lightweight and simple wiki, with no need for a database backend
  • SushiWiki -- C# Wiki for .NET. Uses XML files,SQL Server or MSDE.
  • WikiDotNet ( Now Deceased )-- Written in C# for ASP.NET, with a SQL Server 2000 back-end.
  • KInKI (http://profnano.org/) -- Written in C# for ASP.NET and MSAccess, very young.
  • MVCwiki -- Written in C# using asp.net MVC framework
  • ASP.NET Wiki Control (http://wikicontrol.codeplex.com) -- An ASP.NET user control to incorporate wiki into an existing website. Utilises Markdown.

ColdFusion (see AllaireColdFusion):

CommonLisp:

BorlandDelphi:

EasyLanguage:

EmacsLisp:

See also http://www.emacswiki.org/cgi-bin/wiki/WikiModeDiscussion


ErlangLanguage:
  • ErlangWiki -- 'Wikie', a standalone wiki and Web server written in Erlang. Supports partially protected and append only pages.


Haskell:

HtagLanguage:
  • HtagWiki -- A wiki written in the HtagLanguage, started only recently, currently adding basic features.


IBasic:
  • WikiWriter -- Jerry Muelvers standalone wiki for Windows


IoLanguage (Io):
  • IoWiki -- a wiki engine written in IoLanguage, showing off PrototypeBasedProgramming. Simplicity is emphasized over power, although it has most of the basics such as page history. Page templates are editable from within the wiki itself -- I don't know why more wikis don't have this feature. No longer in development, but the code is available at https://github.com/tumble/iowiki.


JavaLanguage (Java): also see JavaWikiEngines


JavaScript:

LuaLanguage:

LotusNotes/Domino:
  • DominoWiki? -- a full-featured native wiki for Domino. Put one file on the server, sign the database, and you're up and running. At http://www.openntf.org/


MlLanguage (ML)
  • MiLki -- a wiki written using ML Server Pages.


newLISP

ObjectiveCaml:
  • CocanWiki -- a fully featured wiki written in Objective CAML (GPL license).
  • GikiWiki -- a minimalist wiki that aims to be simple and fast.


PerlLanguage: Retired or no longer maintained:

PhpLanguage (PHP):

PrologLanguage:

PythonLanguage:

Rc Shell (from PlanNine)


RebolLanguage:

Rexx:

RubyLanguage:

SchemeLanguage:

SmalltalkLanguage:

ToolCommandLanguage (Tcl):
  • WiKit -- Based on Tcl, built-in Metakit database, runs almost everywhere, has a local mode, has web-server mode.
  • ProjectForum -- Very self-contained, easy to setup, lots of advanced features.

The Tcl/Tk wiki has a list of all known Tcl-language wiki ( http://wiki.tcl.tk/3747 ).


SuneidoPlatform:

VisualBasic:
  • VbWiki -- Written in Visual Basic, runs under Win95, NT
  • NoteWiki -- Standalone application Wiki that is editable on the fly
  • DotWiki (VB.NET)
  • SdiDesk -- Another stand-alone Wikilike notebook, with some basic diagramming. (Win9X +)


VisualFoxPro:

Vim Script:
  • VimKi -- Written in Vim's native scripting language, runs under console *nix.
  • VimViki -- A personal wiki for vim


Unknown:
  • IronWiki -- Iron Wiki is an experimental wiki incorporating new ideas about user interfacing and scripting.
  • TcbWorks -- Free to certain organizations
  • WikiDoc -- Macro to make MicrosoftWord wiki-like


Publicly Available Wiki Software sorted by name


By feature:

See http://www.wikimatrix.org/ for a full breakdown of wikis by feature. See also http://www.wikiindex.com/Category:Wiki_Engine for alpha listing and WikiEngineTree?


Comments

I think this list should also be categorized by the requirements. Requirements vary. See ChoosingaWiki and look for your favorite features. Other pages may exist that do some breakdown by features. Make it a SimpleWiki - those very simple with no database required or use only textfile db. Or PortalWiki - those not only a wiki but also integrated other things to setup a web portal, like TikiWiki does.

RandyKramer started this page as a "master list" of all known WikiEngines, WikiFarms, and maybe WikiForums at WikiEngineReviewWikiLists. He copied and merged several lists to make this one.


Hello. I want to write my own Wiki engine basically from scratch. Are there any usable modules out there that I can import? I noticed that "GNU Diffutils for Windows" would be good for managing diffs. I'm planning to use a flatfile organization scheme rather than a database/MySQL scheme. I'm also looking for a good "Wiki text to HTML" converter. I was thinking of "OutPage?", but are there any alternatives?

It pretty much has to be a from-scratch organization, because I want it to be a major overhaul. I'm planning to introduce a Wiki moderation system that will eliminate all edit/revert wars and make spamming the Wiki a waste of time. I figure it's simpler for me to roll-my-own than understand other people's code, but modules that could be used as-is would be very helpful.

By definition, a true wiki allows immediate updates, so it can't have a moderation system.

So then make up a separate name for this program. That still doesn't mean it isn't worth writing. There still would be immediate updates. They just wouldn't be promoted to the "main" version of a page until they were moderated. People could browse the "moderated" version by default or say "show me everything, including spam and rubbish".

Yes, a lot of people believe that it's faster/simpler to roll their own code than to understand other people's code. Permit me to cast some doubt.

Some "Wiki text to HTML" converters: "libtext-wikiformat-perl", "libwiki-toolkit-perl", some of the MoinMoin plugins, parsewiki, python-textile, stx2any, and probably a few others I'm forgetting. I think these are all open-source.

I hear that some versions of MediaWiki have a "patrolled button" that sounds similar. Some pages on MeatBall don't go live until they have had no edits for 3 (?) days, which is assumed to indicate community agreement and consensus.

How can something go live after three days when no one has ever had the chance on seeing any content, lest editing it? --CarstenKlein


Hey there, here is very nice article about the beginning of Wiki-Systems in german language. It's called "Tanz der Gehirne", in english: "Dance of the Brains": http://humanist.de/erik/tdg/


CategoryWikiImplementation

EditText of this page (last edited November 18, 2011) or FindPage with title or text search

Meatball 
Posted by 1010
98..Etc/Etc...2011. 2. 7. 12:39
반응형
야후에서 만든 YUI Compressor도 있죠.
하 지만 구글에서 만든 Closure Compiler는 다양한 방법으로 제공합니다. YUI Compressor같은 경우에는 java로 만든 jar파일을 통해 콘솔로 실행하는 법 밖에 없는 반면에 Closure Compiler는 웹에서 UI형태, API, 애플리케이션(JAR형태) 3가지 방법이 존재합니다.

Google Code프로젝트 Closure Compiler
http://code.google.com/intl/ko-KR/closure/compiler/

UI페이지는 아래와 같습니다.
http://closure-compiler.appspot.com/

URL을 보면 appspot인 것을 보니, 구글앱엔진으로 만들어진 것 같습니다^^ 구글은 구글제품을 활용을 너무 잘하네요^^
이 사이트에 가보면 좌측이 원본소스를 입력하는 곳이 있고, 우측에 컴파일된 파일이 나오는 곳이 있습니다. 사용법은 간단하네요~ 근데 모드를 3가지 중 선택할 수 있는데, 하나는 그냥 공백만 없애고, 하나는 노멀한 심플모드고, 하나가 Advanced모드인데, 이걸로 하니 내부 변수까지 다 바꿔버리네요. 그래서 이걸 사용하고 있는 곳에도 같이 compile을 해버리던가 아님 사용하고 있는 곳에 변수를 바꿔줘야하네요^^
물론 Advanced모드가 훨씬 많이 줄어드네요^^ 변수명도 한자리로 다 바뀌고 ^^

사용자 삽입 이미지

잘 안보이는데-_-
Original Size: 3.56KB (1.07KB gzipped)
Compiled Size: 2.82KB (835 bytes gzipped)
요렇게 줄어들었네요~ 좋네요~

API 방식을 이용해서 다양하게 응용이 가능할 것 같네요.
저희도 개발할 땐 그냥 개발하다가 배포시에는 컴파일해서 배포하도록 스크립트를 짤 수도 있고 뭐 그런식으로 응용이 가능할 듯 합니다^^


출처 : http://mudchobo.tistory.com/?page=4
Posted by 1010
98..Etc/Etc...2010. 9. 2. 13:50
반응형

Windows Azure에서 Java 기반의 응용프로그램을 만들고 호스트할 수 있다는 이야기는 지속적으로 제시되어왔었습니다. 하지만, JSP 서블릿 페이지도 Windows Azure에서 호스트할 수 있을까요? Microsoft Architect로 활동 중인 David Chou가 작성한 블로그 포스트에 답이 있습니다. 오늘 제가 올리는 블로그 포스트는 다음 포스트에 대한 설명을 기초로 중요한 부분을 추출한 것임을 밝힙니다. (http://blogs.msdn.com/b/dachou/archive/2010/03/21/run-java-with-jetty-in-windows-azure.aspx)

Jetty (http://jetty.codehaus.org/) 프로젝트는 자바 기반의 오픈 소스 웹 서버로, HTTP 서버로서의 역할과 서블릿 컨테이너의 기능을 제공합니다. 정적, 동적 컨텐츠를 모두 지원하고, 독립적으로 실행할 수도 있고, 다른 프로세스에 부착되어 실행되는 기능 또한 제공됩니다. 이러한 특성을 바탕으로, Apache Project의 ActiveMQ, Cocoon, Hadoop, Maven Project, BEA Web Logic Event Server, Eucalyptus, FioranoMQ Java Messaging Server, Google AppEngine 및 안드로이드, Eclipse용 웹 툴킷 플러그인, 레드햇 J보스, Sonic MQ, 스프링 프레임워크, 사이베이스 EA서버, 짐브라 데스크톱 등 광범위하게 Jetty가 채택되고 있습니다.

Jetty 프로젝트는 아래와 같은 기능들을 제공합니다.

  • 비동기 HTTP 서버
  • 표준 지향의 서블릿 컨테이너
  • 웹 소켓 서버
  • 비동기 HTTP 클라이언트
  • OSGi, JNDI, JMX, JASPI, AJP 지원

응용프로그램 컨테이너의 관점에서 보면, Jetty는 전통적인 Java 기반의 Web Application Server들 (Tomcat과 같은)을 대치하는 배포 방법으로 사용될 수 있으며, 스프링 프레임워크 및 관련된 모든 파생 프로젝트들, EJB 컨테이너 등 대부분의 일반적인 웹 기반 자바 어플리케이션을 손쉽게 제공할 수 있는 것이 특징입니다.

Windows Azure에서의 Java 기술 지원

PDC'09 이후로 http://code.msdn.microsoft.com/winazuretomcat 웹 사이트를 통하여 Windows Azure 환경 위에서 Tomcat을 이용하여 JSP 기반 웹 응용프로그램의 구동 가능 여부와 샘플 코드를 지속적으로 홍보해왔었습니다. 그리고 이러한 사실을 바탕으로 http://blogs.msdn.com/jonbox/archive/2009/11/17/domino-s-demonstrates-tomcat-site-on-windows-azure.aspx 에서는 도미노 피자의 기존 피자 온라인 주문 웹 서비스를 Windows Azure 환경에서 구동하는 사례도 선보였습니다. 아래는 그동안 언급되거나 발표되어왔던 Windows Azure 환경에서의 Java 구동 방법에 관한 간략한 리스트입니다.

  • http://code.msdn.microsoft.com/winazuretomcat
  • http://www.interoperabilitybridges.com/projects/windows-azure-sdk-for-java.aspx
  • http://microsoftpdc.com/Sessions/SVC50
  • http://blogs.msdn.com/jonbox/archive/2009/11/17/domino-s-demonstrates-tomcat-site-on-windows-azure.aspx
  • 그러나 위에서 언급하는 Tomcat만이 Windows Azure 환경에서 사용할 수 있는 유일한 Web Application Server의 종류는 아닙니다. 사실, 위의 접근 방법들은 모두 Windows Azure Role에 함께 첨부되어 배포되는 Java 실행 환경 (JRE)를 기초로 하는 것이고, 그러므로 어떤 종류의 Java 패키지이든 관계없이 명령줄을 통하여 Classpath를 명시하는 방식으로 실행될 수 있습니다. 대개의 경우, 작업자 역할 (Worker Role) 패키지 위에서 실행되도록 디자인되고, Windows Azure 환경으로 배포될 수 있습니다. 그리고, 당연한 이야기이지만 Java와 Fast CGI를 결합하고, IIS 7.x를 기반으로 Fast CGI를 지원하는 Web Role을 이용할 수도 있습니다. 이 부분은 나중에 좀 더 자세히 소개하도록 하겠습니다.

    Windows Azure 환경에서 Jetty 실행

    아래는 실제 Windows Azure 환경에서 Jetty를 기반으로 실행하는 Windows Azure Worker Role의 구동 예시입니다.

    위와 같이 구현하기 위한 방법을 지금부터 차례대로 따라해보기로 하겠습니다.

    1. Windows Azure Worker Role 프로젝트를 만들고, Worker Role 진입점 메서드인 Run 메서드의 중심부에 다음과 같이 프로그래밍합니다.

    string response = "";
    try
    {
        System.IO.StreamReader sr;
        string port = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["HttpIn"].IPEndpoint.Port.ToString();
        string roleRoot = Environment.GetEnvironmentVariable("RoleRoot");
        string jettyHome = roleRoot + @"\approot\app\jetty7";
        string jreHome = roleRoot + @"\approot\app\jre6";
        Process proc = new Process();
        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.StartInfo.FileName = String.Format("\"{0}\\bin\\java.exe\"", jreHome);
        proc.StartInfo.Arguments = String.Format("-Djetty.port={0} -Djetty.home=\"{1}\" -jar \"{1}\\start.jar\"", port, jettyHome);
        proc.EnableRaisingEvents = false;
        proc.Start();
        sr = proc.StandardOutput;
        response = sr.ReadToEnd();
    }
    catch (Exception ex)
    {
        response = ex.Message;
        Trace.TraceError(response);
    }

    제가 이전에 게시한 글 "[Software Development/Windows Azure] - Windows Azure 들여다보기"에서 언급한 내용들을 참조하여 위의 코드를 보시면 이해하기 쉽습니다. 몇 가지 Windows Azure 환경에서 기본으로 제공되는 환경 변수, 디렉터리 설정 등을 바탕으로 Jetty 프로세스를 Java VM (java.exe)를 통하여 실행하도록 명령어를 구성하고 실행한 다음, 표준 출력의 내용을 Windows Azure Worker Role Process로 가져오도록 만드는 것을 볼 수 있습니다.

    2. Jetty 프로젝트와 Java VM의 최신 버전을 Windows Azure Worker Role 프로젝트에 추가합니다.

    다음 그림과 같이 폴더를 구성하면 되겠습니다. jetty7 폴더와 jre6 폴더 아래에 직접 해당 프레임워크 및 시스템의 실제 디렉터리 구조가 오도록 맞추면 문제 없습니다. 참고로, 확실하게 동작할 수 있도록 만들기 위하여 Java VM의 경우는 특별히 Windows Platform을 기반으로하는 x64 아키텍처 버전을 다운로드하여 아래 그림과 같이 넣어두어야 합니다. (중요)

    3. ServiceDefinition.csdef 파일 수정하기

    1단계에서 사용한 HttpIn이라는 설정을 Worker Role에 추가해야 하므로, ServiceDefinition.csdef 파일을 찾아 "WorkerRole" 요소 아래에 다음과 같이 내용을 추가하고 저장합니다. 참고로 이 설정은 Windows Azure Worker Role이 80번 TCP 포트 통신이 필요함을 Windows Azure 환경 내의 방화벽에게 통지하기 위한 목적으로 사용됩니다.

    <Endpoints>
      <InputEndpoint name="HttpIn" port="80" protocol="tcp" />
    </Endpoints>

    4. Windows Azure에서 사용할 수 있도록 Jetty 환경 설정

    Jetty가 사용되거나 환경 설정을 만드는 방법은 Windows Azure 환경에서 여러 가지가 있을 수 있지만, 특별히 이와 같이 Worker Role 위에서 Standalone Server로 동작하기 위하여 필요한 환경 설정이 있어서 이를 소개합니다. Windows Azure 환경에서는 Jetty가 기본으로 사용하는 NIO ChannelConnector 대신 BIO SocketConnector를 사용하도록 구성해야 합니다. NIO ChannelConnector에서는 내부적으로 루프백 연결을 기초로 하지만 Windows Azure 환경에서는 이것이 가로막혀있기 때문이라는 것이 David Chou의 설명입니다.

    이러한 설정을 수정하기 위해서는 Jetty 패키지 디렉터리 아래의 etc 디렉터리의 jetty.xml 파일을 수정해야 하며, <New> 태그의 class attribute를 org.eclipse.jetty.server.nio.SelectChannelConnector 대신 org.eclipse.jetty.server.bio.SocketConnector로 변경하고, NIO ChannelConnector에만 한정되는 몇 가지 옵션을 제거하는 방법으로 변경이 가능하며 정리하면 다음과 같습니다.

    <Call name="addConnector">
      <Arg>
        <New class="org.eclipse.jetty.server.bio.SocketConnector">
          <Set name="host"><SystemProperty name="jetty.host" /></Set>
          <Set name="port"><SystemProperty name="jetty.port" default="8080" /></Set>
          <Set name="maxIdleTime">300000</Set>
        </New>
      </Arg>
    </Call>

    그리고 좀 더 최적화된 설정을 위하여, Jetty가 자체 로그를 기록하지 않도록, etc 디렉터리의 jetty.xml 파일에서 RequestLog 핸들러 부분을 주석으로 처리하고, 확장자가 war인 패키지의 압축을 풀지 않도록 etc 디렉터리의 jetty.xml 파일에서 addBean "org.eclipse.jetty.deploy.WebAppDeployer"의 "extract" 프로퍼티의 값을 "false"로 지정하고, contexts 디렉터리의 test.xml 파일에서 <Set name="extractWAR"> 부분의 프로퍼티 값을 "false"로 지정하였다는 것이 저자의 설명입니다.

    이러한 설정들이 모두 적용된 실제 샘플은 http://cid-b43074894ffe6264.skydrive.live.com/self.aspx/.Public/Projects/JettyCloudService.zip 에서 다운로드받아보실 수 있습니다. :-)

    마무리

    Windows Azure Platform이 Microsoft의 기술이므로 철저히 .NET Framework 기반의 응용프로그램 개발만을 지원할 것이라는 편견은 종합적으로 "잘못된 것입니다." Windows Server 2008 R2의 기술을 기반으로 하고 있기 때문에, 여러분의 응용프로그램이 Windows Server 2008 R2, 그리고 64비트 환경에서 성공적으로 수행될 수 있는 조건을 갖추고 있다면 Windows Azure Platform은 성공적으로 여러분들의 클라우드 컴퓨팅으로의 계획을 이끌어 줄 수 있을 것입니다.

    만약 좀 더 심층적인 예제나, Tomcat 기반의 Windows Azure 구동 사례를 보기 원하신다면, http://code.msdn.microsoft.com/winazuretomcat 를 방문하셔서 샘플 코드와 문서를 다운로드하시기를 권합니다.

    감사합니다. :-)


    출처 : http://www.rkttu.com/402

    Posted by 1010
    98..Etc/Etc...2010. 8. 20. 15:53
    반응형
    Facebook의 실시간 웹 프레임워크 ‘Tornado’


    실시간 업데이트는 요즘 웹 어플리케이션의 대세가 된지 오래다. 예전 채팅의 진보한 형태라 할 수 있는 실시간 웹 어플리케이션은 채팅과 달리 공개 대화 중심이란 점과 기술적으로 단방향 push 라는 한계가 있지만 이를 극복하기 위한 여러가지 새로운 시도가 진행되고 있다.

    그 중 오늘 Facebook 개발자 블로그에 올라온 글을 보면 최근 Facebook이 실시간(real-time) 업데이트를 위한 여러가지 시도를 하고 있고(real-time news feed 와 같은) 이를 위해 얼마전 인수한 FriendFeed의 기술을 채택할 예정이라고 한다.

    Jim Norris, Paul Buchheit등 구글 출신의 python 구루로 이뤄진 FriendFeed가 개발한 이 기술은 Tornado라고 불리우는 python 웹 서버다. 매우 단순한 구조로 이뤄졌으며 non-blocking HTTP 서버, low-level I/O 모듈을 통해 real-time에 이상적으로 설계했다고 한다.

    그래서 이런 High performance를 낸다는 말이다. 실시간이 대세가 되면서 성능이 주요한 쟁점으로 떠올랐다. Java로 대표되는 “구조”적인 문제는 더 이상 논의 대상이 되지 않는다.

    전통적인 LAMP 방식으로는 더 이상 Facebook이나 FriendFeed와 같은 실시간 어플리케이션을 만들긴 힘들다고 지적한다. 앞으로는 지금 소개한 Tornado와 함께 Cassandra, Hive, memcache, Scribe, Thrift와 같은 새로운 컴포넌트들이 웹의 혁신을 이끌 것이다.

    Facebook은 여러 오픈 소스 프로젝트를 진행하는 것으로도 유명한데, 여기에 FriendFeed의 원군을 얻었으니 날개를 단 격이다. 앞으로 더욱 적극적인 오픈소스 프로젝트 전개가 예상된다.

    FriendFeed의 CEO인 Bret Taylor가 Tornado에 대해 다시 한번 자세히 언급했다.

    1 comment

    Twisted가 있는데 Tornado를 만든 것은 FriendFeed의 멍청한 삽질이라고밖에는 생각되지 않습니다.

    Twisted 개발자의 평입니다.
    http://glyph.twistedmatrix.com/2009/09/what-i-wish-tornado-were.html

    Twisted를 사용하는 FluidDB의 CEO의 평입니다.
    http://blogs.fluidinfo.com/terry/2009/09/12/facebook-release-tornado-and-its-not-based-on-twisted/

    Twisted 사용자 중 한명이 하루만에 Tornado의 low-level IO를 모두 걷어내고 (1300줄 삭제) Twisted로 대체했습니다. 저는 FriendFeed가 이 패치를 받아들이기를 바랍니다.
    http://dustin.github.com/2009/09/12/tornado.html


    출처: http://www.likejazz.com/archives/778

    Posted by 1010
    98..Etc/Etc...2010. 8. 18. 15:07
    반응형

    네트워크 내(동일 서브넷을 사용하는 네트워크)에 많은 피시들이 사용되다 보면 필수불가결적으로
    나오는 문제가 있으니...

    "누가 IP xxx.xxx.xxx.xxx 사용하는거야 쫑났잖아..."

    정말 중요한 업무중이었다면 짜증이 확 밀려오게 된다.
    이럴때는 IP를 변경하고자 하는 사람이나 또는 해당 IP를 사용하는 사람을 색출하기 위해서는
    사무실을 미친년(?)처럼 헤집고 다녀야지만 찾아낼 수 있다.
    (보통은 IP 쫑낸 분들은 자신들이 뭔일을 한건지 잘모른다. 그래서 아무리 자수를 권해도
    나오질 않은것이다.)
    이럴때는 아래와 같은 방법으로 찾아보자.

    1. 도스창을 연다.

    2. 아래 그림과 같이 명령어를 타이핑 한다






    출처 : http://blog.happygom74.com/52사용자 삽입 이미지

    Posted by 1010
    98..Etc/Etc...2009. 11. 23. 10:25
    반응형
    [참고]
    http://www.google.co.kr/support/webmasters/bin/topic.py?topic=8459&hl=ko

    [퍼온글]

    구글의 검색 결과에 있는 내용을 삭제하고 싶으세요?

    구글은 그 검색 결과에 있어서 그 품질을 가장 중요하게 봅니다. 그렇기 때문에 구글은 사용자의 사이트에서 페이지들을 목록화하는 것을, 그 페이지에 대한 책임이 있는 관리자의 요청이 있을 때에만 중지합니다. 이 정책은 어떤 페이지가 구글의 색인에서 부당하게 제거되지 않도록 보호해주기 위해서 필요합니다.

    구글은 구글의 사용자를 위해 완전하고 공평한 검색 결과를 제공하기 위한 의무로, 웹에서 정보를 검열하는 행동에 참여할 수 없습니다.

     삭제 기능

    다음의 삭제 기능들은 구글이 다음 번에 사용자의 사이트 페이지를 색인 할 때 적용됩니다. (보통 6-8주 걸립니다.)

     사용자 웹사이트의 URL 바꾸기

    구글은 페이지의 URL주소와 그의 내용을 밀접히 관련하기 때문에 수동적으로 직접 URL 주소를 변경할 수는 없습니다. 하지만 구글은 인터넷 페이지들을 정기적으로 새롭게 수집하기 때문에 그럴 때마다 변경될 것입니다. 수집하는 것 역시 자동으로 이루어지기 때문에 저희가 수동적으로 일정한 사이트만 더욱 자주 검색할 수는 없습니다.

    만약에 사이트가 변경이 되었으면 URL 등록 페이지 를 사용하셔서 페이지 추가를 하실 수 있고, 페이지 삭제에 대한 정보는 아래에 있습니다. 하지만 페이지 등록은 시간이 걸릴 수 있으니 삭제를 하신 후 다시 추가를 하시려 해도 저희가 새롭게 수집하기 전에는 결과에 뜨지 않을 수 있습니다.

    구글에 직접 주소 변경을 요청하는 대신, 현재 사용자의 사이트에 연결하고있는 다른 사이트의 링크를 먼저 새롭게 고치는 것을 권장합니다. 그리고 야후! 디렉토리나 오픈 디렉토리에 변경이 입력된 것을 확인하시기 바랍니다. 또는, 전 주소가 HTTP 301 (permanent) redirect를 사용해 방향전환 한다면 저희의 자동 검색기가 새로운 주소를 기록합니다. 이렇게 등록된 페이지가 검색 결과에 나타나려면 보통 6-8주 정도 걸립니다.


     사용자의 웹사이트 URL 제거

    사이트 일부, 또는 전체를 구글이 수집 못하게 하시려면 다음의 내용을 지닌 robots.txt파일을 서버 루트(root) 디렉토리에 저장하세요:

    User-Agent: *
    Disallow: /

    이것은 사이트를 검색기에서 제외하는 표준입니다. 다음의 문서를 참조하시면 이 표준에 대한 더 자세한 정보가 있습니다 (영문 문서입니다): http://www.robotstxt.org/wc/norobots.html

    참조: 만약 긴급하게 하는 요청이고, 구글의 자동 검색 로봇을 못 기다리시면 구글의 자동 삭제 시스템을 사용하세요. 먼저 해당하는 페이지의 관리자가 사이트에 robots.txt 파일을 저장해야 결과에서 자동적으로 링크를 지우는 이 기능이 올바르게 작동합니다.

    웹 서버의 루트(root) 디렉토리에 robots.txt 파일이 저장돼 있으면 페이지들은 계속 구글의 검색 결과에서 제외됩니다. 또한, 루트 디렉토리에 사용자 권위가 없으시더라도 robots.txt 파일을 해당하는 폴더에 저장하면 됩니다. 자동 제외 시스템을 같이 사용하시면 임시적인 180일 동안 구글 검색에서 제외됩니다. (하지만, 루트 폴더가 아닌, 다른 곳에 저장한 상태이면 180일마다 또다시 자동 제외 시스템을 사용하셔야 계속 제외됩니다.)



     각각의 페이지 삭제

    모든 검색 로봇을 막으시려면 다음의 메타 테그(meta tag)를 HTML페이지에 포함하세요:

    <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">

    구글 로봇을 제외한 다른 검색 로봇을 허용하시려면 다음의 메타 태그를 사용하세요:

    <META NAME="GOOGLEBOT" CONTENT="NOINDEX, NOFOLLOW">

    이 표준 메타 태그에 대한 더 많은 정보가 필요하시면 다음 페이지를 방문하세요: http://www.robotstxt.org/wc/exclusion.html#meta.

    참조: 만약 긴급하게 하는 요청이고, 구글의 자동 검색 로봇을 못 기다리시면 구글의 자동 제외 시스템을 사용하세요. 먼저 해당하는 페이지의 관리자가 페이지의 HTML 안에 올바른 메타 태그를 입력해야 이 시스템의 기능이 작동합니다.


     사이트 내용의 제거

    구글 검색 결과에는 URL 내용을 보여드립니다. 나타나는 검색어들을 bold체로 보기 쉽게 하고, 문맥으로 내용을 파악하실 수 있게 해드립니다. 이렇게 내용을 미리 볼 수 있게 하여 사용자가 원하는 결과를 더욱 정확하게 찾을 수 있게 해 드립니다.

    구글이 자신의 페이지를 보지 못하도록 하고 싶다면 다음 태그를 사용하세요:

    <META NAME="GOOGLEBOT" CONTENT="NOSNIPPET">

    참고: 삭제할 때에는 저장되어 있던 페이지도 삭제됩니다.

    참조: 만약 긴급하게 하는 요청이고, 구글의 자동 검색 로봇을 못 기다리시면 구글의 자동 제외 시스템을 사용하세요. 먼저 해당하는 페이지의 관리자가 페이지의 HTML 안에 올바른 메타 태그를 입력해야 이 시스템의 기능이 작동합니다.


     저장된 페이지의 제거

    구글은 수집한 모든 문서들을 저장해둡니다. 구글은 저장된 문서를 사용자들을 위해 제공하고, 무슨 이유로 사이트에 접속이 불가능하면 구글의 저장된 페이지를 사용하여 구글이 수집했던 당시의 모습 그대로 볼 수 있습니다. 저장된 페이지는 위 부분에 원본이 아닌 복사된 내용임을 설명하는 메시지가 있습니다.


    만약 로봇이 귀하의 사이트에서 내용을 수집 못하게 하고 싶다면, NOARCHIVE 메타 태그를 사용하세요. 이 태그는 문서의 부분에 다음과 같이 배치 하세요.

    <META NAME="ROBOTS" CONTENT="NOARCHIVE">

    만일 목록을 붙이는 다른 로봇들이 사용자의 페이지에 있는 내용을 수집하는 것을 허락하고, 단지 구글의 로봇들이 페이지를 저장하는 것을 막고 싶으시다면, 다음 태그를 사용하세요.:

    <META NAME="GOOGLEBOT" CONTENT="NOARCHIVE">

    참조: 이 태그는 페이지에서 단지 저장된 페이지만 삭제합니다. 구글은 계속해서 페이지를 색인하고 그 일부 내용을 보여줍니다.

    참조: 만약 긴급하게 하는 요청이고, 구글의 자동 검색 로봇을 못 기다리시면 구글의 자동 제외 시스템을 사용하세요. 먼저 해당하는 페이지의 관리자가 페이지의 HTML 안에 올바른 메타 태그를 입력해야 이 시스템의 기능이 작동합니다.


     오래된 링크(대드 링크) 삭제

    구글은 정기적으로 새롭게 웹 페이지를 수집합니다. 구글은 웹을 색인하며 새로운 페이지를 찾고, 삭제 된 링크는폐기하고, 링크를 자동적으로 업데이트 합니다. 접속과 연결이 안 되는 링크는 색인에서 없어집니다.

    참조: 만약 긴급하게 하는 요청이고, 구글이 다음번에 사용자의 사이트를 색인 할 때까지 기다릴 수 없다면 저희의 자동 URL 삭제 시스템을 사용하세요. 저희는 웹상에 페이지가 더이상 존재하지 않을 때만 사용자의 삭제 요청을 받아들일 수 있습니다.


     구글 이미지 검색에서 이미지 삭제

    만약 사용자가 구글의 이미지 검색에서 결과 내용을 삭제하셔야 한다면, 그 사이트의 웹 마스터의 참여가 있어야 합니다. 페이지의 웹 마스터에게 robots.txt 파일을 서버의 root에 추가하도록 해주세요. (만약 그것을 서버 루트(root)에 넣을 권리가 없다면 그것을 해당하는 디렉토리 부분에 넣을 수 있습니다.)

    예시: 만일 사용자의 사이트가 www.yoursite.com/images/dogs.jpg 이고 구글이 그 사이트에서 수집한 dogs.jpg 이미지를 포함하지 않기를 바라신다면,

    사용자는 www.yoursite.com/robots.txt 라고 불리는 파일을 만들어야 합니다.

    그리고 이 파일 안에는 다음 텍스트 내용이 있어야 합니다.

    User-Agent: Googlebot-Image
    Disallow: /images/dogs.jpg

    저희의 목록에서 사용자의 사이트에 있는 모든 이미지를 삭제하려면 사용자의 서버 root에 다음 robots.txt 파일이 있어야 합니다.

    User-Agent: Googlebot-Image
    Disallow: /

    웹 마스터가 이 파일을 추가한 후에는googlebot@google.com로 그 사실과 그 파일의 위치에 대한 메모를 보내주세요. 저희는 48시간 내에 그 이미지를 삭제해 드릴 것입니다.

    출처 : Tong - anidu012님의 기본통

    Posted by 1010
    98..Etc/Etc...2009. 10. 16. 10:10
    반응형
    보안USB에서 그동안 발견된 주요 취약점 정리

    1. 실행 프로세스 강제 종료 우회 방법
    B사 : 에이전트 보호 기능으로 프로세스 정지 또는 서비스 삭제 방지 기능, 안전모드에서의 매체 제어 정상동작 기능, 윈도우 복구를 통한 에이전트 제거 방지 기능, 안전모드에서의 서비스 삭제 방지 기능을 지원한다.
    C사 : 자체 보호기능, 프로세스 Kill 방지, 복원 기능으로 프로세스 강제 종료를 통한 자료 유출을 원천 방지한다. 자체 보호기능은 레지스트리 조작, 프로그램 조작 방지 기능으로 사용자의 임의 조작을 차단하며, 프로세스 Kill 방지 기능은 중요 프로세스 숨김, Kill 방지로 강제 종료를 할 수 없다. 만일의 경우 프로세스가 종료되어도 자동 재실행이 된다.

    2. 시작프로그램 삭제 우회 방법
    서비스 강제 종료 금지 기능 지원

    3. 안전모드 부팅 우회 방법
    폴더 삭제 또는 변경 금지 기능 지원

    4. PC부팅 시간차 우회 방법
    드라이브 레벨에서 제어하는 솔루션이기 때문에 PC부팅 시간과 관계없이 매체 차단 구현

    5. 안전모드 폴더 삭제 우회 방법
    B사 : 안전모드로 부팅후 일반USB로 저장하려 해도 기본적인 차단으로 매체를 제어한다.
    C사 : 안전모드로 부팅해도 자체 보호 모듈을 포함하여 모든 기능이 정상 동작하므로 프로그램 폴더 삭제 등을 통해 무력화 시킬 수 없다.

    6. 공유폴더 접근 우회 방법
    공유를 하더라도 인증없는 상태에서는 암호화 상태이기 때문에 자료 유출을 할 수 없다.

    7. 도스 창 우회 방법
    도스 명령을 통한 접근 시에도 인증없이는 내용을 볼 수 없다.

    8. 특정 소프트웨어(예: 파이널데이타SW)를 통한 불법접근 우회접근 방법
    애플리케이션 실행 제어 기능으로 사전에 등록해 우회접근을 원천 차단한다.

    9. 패스워드 스니핑 공격 무력화 우회 방법
    고려대에서 암호화 검증을 받은 K라이브러리를 통한 완벽 보안을 하고 있다.

    10. VM웨어 우회 방법
    B사 : 현재까지 납품된 사이트는 VM웨어를 사용하지 않고 있어 이로 인한 문제가 발생한 적이 없으며, 보안 적합성을 받은 모든 제품의 문제로 향후 판매를 대비해 보완 중이다.
    C사 : VM웨어에서 일반 USB를 통한 자료 유출이 가능한 취약점이 발견된 건 사실이나 추가로 보완 모듈을 개발 완료하여 테스트를 진행 중이며, 현재 고객사에 적용 예정이다.

    이밖에도 공인인증서를 저장하는 경우 보안USB 승인을 받지 않아도 되는 점을 악용한 공인인증서 파일확장자로 변경하여 시도되는 자료 유출과 관련 일반USB에 대해서는 파일확장자 예외없이 쓰기(write)를 커널 드라이버 레벨에서 근본적으로 차단하므로 파일 확장자를 변경해 저장하는 게 불가능하다.

    Posted by 1010
    98..Etc/Etc...2009. 10. 16. 09:28
    반응형
    windows

    http://blog.naver.com/congnamu?Redirect=Log&logNo=20051133977



    회사에서 회선을 외부망과 내부망으로 나누어 2개의 망으로 사용하고 있었다. 매번 랜선을 뺐다 끼웠다 하는 불편함 때문에 랜카드를 하나 더 끼워서 각각 외부망 내부망을 연결한 상태이다.

    외부망: 192.168.2.0  게이트웨이 192.168.2.1
    내부망 :192.168.1.0  게이트웨이 192.168.1.1

    외부와 내부망에 맞게 IP세팅을 하고 만일 DHCP서버가 있는 곳이면 자동으로 IP가 할당이 되어 있을 것이다. 이제 내부망으로 통신하는 트래픽. 즉, 192.168.1.0 대역으로 나가는 모든 패킷들에 대해서 게이트웨이 192.168.1.1로 가게 만들고 그 이외의 트래픽은 게이트웨이 192.168.2.1로 보내버리면 끝이난다.

    사용자 삽입 이미지
     

    이 그림은 가상의 네트워크를 맵핑한 것입니다. 네트워크에 맞게 수정해서 설정하세요

    라우팅 테이블에 네트워크 라우팅으로 192.168.1.0은 게이트웨이 192.168.1.1로 집어 넣어 버리고
    192.168.1.0을 제외한 나머지 모든 패킷(0.0.0.0)은 게이트웨이 192.168.2.1로 보내게 세팅을 하자.

    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\Documents and Settings\onurmark>route add -p 192.168.1.0 MASK 255.255.255.0 192.168.1.1
    C:\Documents and Settings\onurmark>route add -p 0.0.0.0 MASK 0.0.0.0 192.168.2.1

    라우팅 테이블은 갱신되는 데이터이므로 컴퓨터를 재시작하면 라우팅이 날아가 버린다. 이를 방지하기 위해 -p 옵션(Persistent Route)을 줘서 항상 유지하도록 한다.



    출처 : http://www.onurmark.co.kr/102

    -----------------
    linux

    랜카드 두개 연결시 Routing되게 하려면


    eth0 192.16.10.1 GW 192.16.10.254

    eth1 192.16.5.1


    1. /proc/sys/net/ipv4/ip_forward에 1을 저장한다.

        #>echo "1" > /proc/sys/net/ipv4/ip_forward

    ------------------------------------------------------------

    IP 라우팅 테이블 이해

    IP 라우팅 테이블 이해

    라우팅 문제를 해결하려면 라우팅 테이블을 이해해야 합니다. TCP/IP를 실행하는 모든 컴퓨터는 IP 라우팅 테이블에 따라 라우팅 경로를 정합니다.

    IP 라우팅 테이블 표시에 대한 자세한 내용은 라우팅 테이블 보기를 참조하십시오.

    다음 그림은 라우팅 테이블의 예를 나타낸 것입니다.

    IP 라우팅 테이블

    IP 라우팅 테이블에는 다음 열의 정보가 포함됩니다.

    • 대상
      대상은 대상 호스트, 서브넷 주소, 네트워크 주소, 기본 경로입니다. 기본 경로의 대상은 0.0.0.0입니다.
    • 네트워크 마스크
      네트워크 마스크는 대상과 함께 사용할 경로를 결정하는 데 사용됩니다. 예를 들어 호스트 경로의 마스크는 255.255.255.255이고 기본 경로의 마스크는 0.0.0.0이며, 서브넷과 네트워크 경로의 마스크는 이 둘 사이의 값을 가집니다.
      마스크가 255.255.255.255이면 정확히 일치하는 대상만 이 경로를 사용합니다. 마스크가 0.0.0.0이면 어느 대상이나 이 경로를 사용할 수 있습니다. 마스크가 2진수로 기록된 경우 1은 유효값으로 일치해야 하며 0은 유효하지 않은 값이라 일치하지 않아도 됩니다.
      예를 들어 목적지가 172.16.8.0이며 네트워크 마스크가 255.255.248.0이라고 가정합니다. 이 네트워크 마스크에서 첫째 두 옥텟은 정확히 일치해야 하며, 셋째 옥텟의 앞쪽 다섯 개 비트는 일치해야 하고(248=11111000) 마지막 옥텟은 문제가 되지 않습니다. 172.16.8.0의 셋째 옥텟, 즉 8은 2진수로 00001000입니다. 굵게 표시된 마스크 오프 부분인 앞쪽 5개 비트를 변경하지 않기 때문에 15 또는 2진수 00001111로 이동할 수 있습니다. 대상이 172.16.8.0이고 마스크가 255.255.248.0인 경로는 172.16.15.255를 통해 172.16.8.0으로 가는 모든 패킷에 적용됩니다.
    • 게이트웨이
      게이트웨이는 패킷이 전송되어야 하는 다음 라우터의 IP 주소입니다. 이더넷이나 토큰 링같은 LAN 연결에서 이 라우터가 Interface 열에 표시된 인터페이스를 사용하여 게이트웨이에 직접 도달할 수 있어야 합니다. LAN 연결에서 게이트웨이와 인터페이스는 라우터가 트래픽을 전달하는 방법을 결정합니다. 필요 시 전화 접속 인터페이스의 경우 게이트웨이 주소는 구성할 수 없습니다. 지점 간 연결에서 인터페이스는 라우터가 트래픽을 전달하는 방법을 결정합니다.
    • 인터페이스
      인터페이스는 다음 라우터에 도달하기 위하여 사용되는 LAN 또는 필요 시 전화 접속 인터페이스를 나타냅니다.
    • 메트릭
      메트릭은 대상에 도달하기 위하여 사용되는 경로의 상대적 비용을 나타냅니다. 일반적인 메트릭은 홉이며 대상에 도달하기 위하여 지나는 라우터의 수입니다. 같은 대상에 대한 경로가 여러 개이면 메트릭이 가장 낮은 경로가 가장 좋은 경로입니다
    • 프로토콜
      프로토콜은 경로를 알게 된 방법을 보여 줍니다. 프로토콜 열에 RIP나 OSPF 또는 로컬이 아닌 다른 것이 표시되어 있으면 라우터가 경로를 받고 있는 것입니다. OSPF(Open Shortest Path First)는 WindowsXP 64비트 Edition(Itanium) 및 64비트 버전의 Windows Server 2003 제품군에서 사용할 수 없습니다.

    2. /proc/sys/net/ipv4/conf/default/rp_filter에 1을 저장한다. 

    Posted by 1010
    98..Etc/Etc...2009. 9. 29. 17:09
    반응형

    사용자 삽입 이미지

    사용자 삽입 이미지

    http://svestnik.ru:8080/index.php
    http://tiqt.ru:8080/index.php
    http://icq-mobila.ru:8080/index.php

    http://tel-icq.ru:8080
    http://age-bio.ru:8080/index.php
    http://medical-static-center.ru:8080/index.php
    http://bio-oib.ru:8080/index.php
    http://yourbio.ru:8080/index.php
    XSS 크로스사이트 스크립트라고합니다. 보안 쪽에서 사용하는 용어죠..
    아이프레임으로 공격을 하는 것을 의미하는데...
    지금 부터 제가 설명하는 말은 추측입니다... 저도 계정을 발급받아서 호스팅을 받는 입장이라서
    루트 권한이 없어서 로그 검색 권한이 없어서 정확하게 어떤 루트로 해킹이 된 것인지 분석을 불가능합니다.
    대충 상황을 보면...
    이 해킹은 해킹 툴에 의한 해킹 같습니다.
    그런데 기존의 XSS 해킹과는 다르게 직접 FTP 계정을 뚫고 들어와서 해커의 IP를 숨겨서
    IP가 랜덤하게 로그에 찍히는 것 같습니다.
    그래서 호스팅 담당자들도 해커를 찾아내기 힘들어 하는 것 같더군여,.
    고가의 웹방화벽을 사용한다면 클릭 몇 번으로 막을 수 있겠지만 대부분 웹나이트나 모듈시큐어리티 같은 공개된 솔루션을 사용하니
    URL 차단으로는 한계가 있죠
    보시다시피 URL이 랜덤하게 아이프레임으로 들어오니까요..
    처음에는 제가 러시아 사이트를 자주 방문해서 그런가 했습니다.
    ru, su 도메인이 러시아 도메인이거든요
    하지만, 검색을 해보니 다른 분들도 러시아 도메인으로 해킹을 당하는 것을 보고는 그런게 아니라고 생각했습니다.
    JPEG 파일로 해킹이 가능하지만
    링크가 아닌 다운로드해서 재 업로드는 해킹이 어렵다고 하네요
    결론적으로 해킹 툴에 의한 실질적은 FTP 계정을 뚫고 들어오는 것 같습니다.
    비밀번호는 6자리 이하는 간단하게 해킹 툴로 뚫기가 쉽습니다.
    저는 기존에 8자리를 사용했는데 뚫렸더군요.
    그래서 이번에 특수문자로 비밀번호를 만들었습니다.
    그런데... 아이러니하게도 보안쪽에서는 특수문자가 해킹에 많이 사용되기에 정말로
    보안을 어느 정도 아는 관리자는 특수문자를 사용 못하게 합니다.
    역시나 제가 호스팅 받는 곳에서도 특수문자로 FTP 비밀번호를 초기에 못 만들게 되어 있더군요
    변경 신청하니 가능은 하지만요.
    특수문자로 DB 해킹이 손쉽게 이루어져서 그런가 봅니다.
    결론적으로 러시아 도메인으로 아이프레임 공격이 계속 들어온다면
    FTP 비밀번호를 어렵게 만드세요
    물론 ssh
    mysql 비밀번호도 변경하시구요
    ssh 비밀번호는 로그인 후
    # passwd 로 간편하게 변경이 가능합니다.
    FTP, mysql 비밀번호는 허접한 호스팅은 변경신청해야할테도 나름 프로그래밍 되어 있는 곳은 바로 수정 신청이 가
    능할 것 입니다.
    해킹당하면 루트의 index.php 하단에 아이프레임이 들어갑니다. 그소스만 삭제하시고 덮어쓰기하세요
    플러그인 폴더의 모든 index.php 파일도 변경이되는데 본인이 직접 검색해서 따로 올린 플로그인은 index.php 하단
    수정하시고 나머지 플러그인은 텍스트큐브.org 에서 다운로드 받아서 덮어쓰기하세요...일일이 변경할려면 힘듭니다.
    스킨디렉토리는 소스변경이 없습니다.주의 하실점은 원본 소스에서 변경하셨다면 원본 소스에 최신 변경된 정보가
    있는게 아니고 customize밑에 1 디렉토리 밑에 있습니다. 이것을 본인이 사용하는 스킨 디렉토리로 복사해서
    백업해두고 일괄 덮어쓰기하면되겠죠. 덮어쓰기 후에 퍼미션(권한)을 707이나 777로 주는 거 잊지 마시구요
    안 주면 스킨 수정할 때 권한 없다고 나옵니다.
    텍스트큐브에서 소스 다운로드 받아서루트의 index.php 그리고 플러그인 폴더와 attach 폴더 빼고 그리고 백업해둔
    스킨 디렉토리 덮어쓰기하면 예전 모습으로 복원됩니다.
    저도 일단 비밀번호 변경하고 추이를 지켜보는 중입니다.
    하루에 2,3,4번 해킹당하던게 없습니다.
    확실히 비밀번호 변경하니 사전파일 돌리는데 시간이 걸리는가 봅니다.
    비밀번호 어렵게 변경하세요


    출처 : http://comzil.com/
    Posted by 1010
    98..Etc/Etc...2009. 9. 29. 16:35
    반응형
    출처 : http://blogdoc.nate.com/269127


    nternet Explorer 8 사용 중 mshtml.dll 오류가 발생하고 브라우저가 비정상적으로 종료되는 경우가 있습니다.
    jscript.dll과 vbscript.dll 파일 버전이 낮아 발생하는 문제일 수 있습니다.
    Internet Explorer 8에서는 Jscript 5.8 버전을 기본으로 사용합니다.
    일부 응용 프로그램 등에서 낮은 버전의 Jscript를 설치할 경우 이러한 문제가 발생할 수 있습니다.
     
    -. 해결 방법
    Internet Explorer 8을 제거 후 다시 설치하여 이 문제를 해결할 수 있습니다.
    1. '시작' -> '설정' -> '제어판'을 차례대로 클릭하세요.
    2. 제어판 화면이 나타나면 '프로그램 추가/제거'를 클릭하세요.
    3. 설치된 목록에서 'Windows Internet Explorer 8'을 찾아 제거를 하세요.
    4. 설치 제거가 끝나면 나타나는 대화 상자에서 '지금 다시 시작'을 클릭하세요.
    5. 컴퓨터가 다시 시작되면 아래 링크를 클릭하여 Internet Explorer 8 다운로드 사이트로 이동하여 다운로드 설치하세요.
    Windows XP용 Windows Internet Explorer 8 다운로드 사이트
    6. 설치 완료 화면이 나타나면 '지금 다시 시작'을 클릭하세요.
    7. 컴퓨터가 다시 시작되면 Internet Explorer 8을 실행하고 문제가 해결되었는지 확인해 보세요.


    ------------------------------------------------


    출처 : http://woongyee.egloos.com/1914653

    제 경우는 ie8과 아래한글 충돌이더군요. ie8을 설치한 후 한글을 설치한 분은 특정 사이트(예: 옥션)에서 다음 그림과 같은 mshtml.dll 오류를 겪을 겁니다. (꼭 한글이 아니라도 ie8을 설치한 다음 ie8의 중요 파일을 바꾸는 프로그램을 설치했을 경우 이런 오류가 납니다.) 여기서 순서가 중요합니다. 한글을 먼저 설치한 다음 ie8을 설치한 분은 상관 없습니다.





    해 결 방법은? ie8을 지우고 다시 설치하세요. 크크, 더 간단한 방법 없나고요? 없습니다. 검색해 보면 정상인 mshtml.dll 파일을 다른 컴에서 복사해서 덮어 쓰는 방법도 있긴 한데 이건 될 때도 있고 안 될 때도 있습니다.

    원인은 뭘까요? 안녕하슈님의 < ie8 정식 오류 >란 글에 현수아비님이 쓴 덧글을 참고하면 다음과 같다고 합니다.

    위 오류의 경우 IE8.0의 Jscript 버전과 한/글(오피스) 제품에 포함된 Jscript 버전이 달라서 발생하는 현상입니다. (참고로 IE 8.0이 나오기 전까지는 Jscript 최신 버전은 한/글(오피스)에서 제공하는 버전입니다.) 우선 IE 8.0에 포함된 Jscript버전을 MS에서 배포하지 않기 때문에 IE 8.0을 재설치하거나, 한/글 제품보다 늦게 설치하여 Jscript버전이 최신 버전으로 유지되도록 해야만 합니다. 가장 좋은 해결 방법은 Jscript을 업데이트해 줘야 하는데, MS에서 배포되기 전까지는 위 방법으로 해결을 하셔야만 합니다.
    Posted by 1010
    98..Etc/Etc...2009. 8. 14. 15:53
    반응형
    웹 문서의 markup(HTML, XHTML, …)을 검사

    http://validator.kldp.org/
    Posted by 1010
    98..Etc/Etc...2009. 7. 31. 09:47
    반응형

    안녕하세요. 누리호스팅입니다.
    
    도메인의 IP를 변경하면 언제쯤 인터넷에 전파되어질까?
    라는 의문점을 고객님께서는 가지고 계실겁니다. 아래의 내용을 보시면 그 해답을 얻을수
    가 있을겁니다.
    
    누리호스팅 네임서버를 고객님 도메인의 1차,2차 네임서버로 등록하여 사용할때 유의사항
    에 대하여 안내를 해 드립니다.
    
    누리호스팅에서는 고객님께서 직접 누리호스팅의 고객지원센터에서 네임서버의 정보관리(고
    객님 도메인의 등록,수정,삭제)를 할수 있게 되어 있습니다. 그런데, 현재 TTL 시간이 1800
    으로 해서 서비스를 하시는 경우가 상당히 많습니다. 이것에 대한 장단점을 기술적인 부분
    에 대한 설명부터 해서 안내하여 드리겠습니다.
    
    TTL(Time To Live)의 개념은 RFC 1035 문서에 다음과 같이 정의되어 있습니다.
    --------------------------------------------------------------------------
    TTL             a 32 bit signed integer that specifies the time interval
                    that the resource record may be cached before the source
                    of the information should again be consulted.
    --------------------------------------------------------------------------
    
    가정1. 누리호스팅 네임서버에 등록한 도메인 : www.abc.com
    가정2. www.abc.com의 TTL : 86,400초 (1일)
    
    위의 내용을 가정해서 설명하겠습니다. 
    
    A라는 사람이 하나로통신 전용선을 이용하고 있습니다. 네임서버는 하나로통신 네임서버를 
    사용합니다. A가 www.abc.com 으로 22시에 처음으로 접속을 하였습니다. 
    그러면 A가 사용하는 네임서버에서 www.abc.com이라는 도메인정보가 없기 때문에 누리호스
    팅 네임서버로 www.abc.com의 IP정보를 쿼리를 합니다. 그러면, 하나로통신 네임서버에는 
    86,400초동안 www.abc.com의 IP정보를 가지고 B,C 기타의 하나로통신 네임서버를 이용하는 
    사람들에게 서비스를 해 줍니다.  86,400초가 지나고 나면 www.abc.com의 도메인 정보는 하
    나로 통신 네임서버에서 삭제됩니다. 다시 누군가가 www.abc.com의 도메인 정보를 쿼리할때
    에 누리호스팅 네임서버에 물어봅니다.
    
    그러면 www.abc.com의 IP정보가 변경이 되는경우는 어떻게 될까요?
    
    오늘 저녁 22 시에 IP정보를 변경을 하였다고 하면, 내일 저녁까지 기존IP와 변경된 IP 두
    가지 정보가 인터넷에 있는 임의의 네임서버에는 섞여서 있을겁니다. 왜냐하면, 21시에 누
    리호스팅 네임서버에서 www.abc.com 의 IP정보를 쿼리해간 네임서버에는 내일 21시까지 
    www.abc.com의 IP정보를 가지고 있을것이기 때문입니다.
    
    따라서, 오늘저녁부터 내일저녁까지 기존의 IP와 변경된 IP 두개의 서버에서 고객님은 서비
    스를 운영을 해야 되겠습니다. 조금 이상하시죠? ^^
    
    서버가 여유있게 남아 있는 경우에는 별 이상이 없겠지만, 일반적인 경우에는 쉽지않은 문
    제가 됩니다. 그리고, 서버가 여유있게 있다고 하더라도 서비스 정보가 두군데 분산되어 저
    장이 되는 문제도 쉽지 않은 문제가 될수 있을듯 합니다.
    
    이런 문제를 아주 쉽게 해결할 수 있는 것이 도메인의 TTL 값을 조정해서 해결하는것입니
    다.~~ ^^
    
    즉, 누리호스팅의 네임서버에서 TTL을 86,400 -> 1800(30분) 으로 변경을 하는것입니다.
    도메인의 정보가 인터넷에 전파되는데 걸리는 시간이 30분이라는 것입니다. 저희가 고객의 
    서비스를 이전해 주는 작업을 가끔 해 주는 경우가 있는데, 30분으로 도메인의 TTL을 설정
    하고 작업하면 서비스 중지 없이 거의 실시간으로 도메인 IP정보 변경을 할수가 있었습니
    다. 뭔가 해결이 된듯 하지 않습니까?~~~ ^^
    
    그러면, 항상 네임서버에 등록된 도메인의 TTL을 1800으로 설정하면 어떻게 되겠습니까?
    이것도 문제가 됩니다. 어떤 문제가 있냐면, A라는 사람이 www.abc.com으로 접속을 자주합
    니다. 그러면, 정확히 30분 간격으로 해서 누리호스팅 네임서버에 쿼리를 합니다. 크게 문
    제되지는 않지만, 누리호스팅 네임서버에 쿼리를 하는 시간만큼 지연이 생깁니다. 브라우져
    에서 홈페이지를 열려고 할때는 대략 1초정도 딜레이 되는 것도 문제가 되겠지요~~?
    
    이런 경우의 사용자가 많다고 생각하면 서버 관리자 입장에서는 사소한 문제로 그런 시간 
    지연이 생긴다는 것이 조금 괴로우실 겁니다. ^^
    
    따라서, TTL의 86,400초와 1,800초의 두가지 옵션을 저희가 누리호스팅 네임서버에서 제공
    하는 이유를 이해하시리라 생각하고, 정상적인 업무 처리를 간단히 정리하면서 정리하겠습
    니다.
    
    ### 네임서버에 TTL 변경 절차 ###
    ================================================================================
    1. 도메인의 IP변경 이벤트 발생
    2. 적어도 변경 시점 TTL 시간 이전에 1,800초로 변경 : 누리호스팅 고객지원센터에서
    3. 누리호스팅 네임서버에서 도메인의 IP변경  : 누리호스팅 고객지원센터에서 
    4. 변경된 IP정보로 이상없이 서비스 되는지 확인 (2-3일정도)
    5. TTL 시간 86,400초로 변경
    ================================================================================
    
    감사합니다. 
    
    Posted by 1010
    98..Etc/Etc...2009. 7. 31. 09:26
    반응형
    likejazz님이 최근 posting한 openDNS에 대한 글을 보다가 아래 comment를 보니 KT DNS 주소를 올려주신 분이 계셨다.

    내가 항상 외우고 있던 데이콤 DNS서버와 비교해보니 KT쪽 ping 응답 속도가 더 빨랐다.(물론 이 값이 절대적이지는 않을 거라고 생각은 하지만 어느 정도 신뢰성이 있지 않을까?)

    맘 먹은김에 찾아보니 잘 정리해 놓은 글이 있었다.

    한국통신(KT)- 주 DNS 주소: 168.126.63.1 - 보조 DNS 주소: 168.126.63.2
    * 두루넷- 주 DNS 주소: 210.117.65.1 - 보조 DNS 주소: 210.117.65.2
    * 신비로- 주 DNS 주소: 202.30.143.11 - 보조 DNS 주소: 203.30.143.11
    * 데이콤- 주 DNS 주소: 164.124.101.2 - 보조 DNS 주소: 203.248.252.2
    * 하나로- 주 DNS 주소: 131.107.1.7 - 보조 DNS 주소: 210.94.0.7
    * 드림라인- 주 DNS 주소: 210.181.4.25 - 보조 DNS 주소: 210.181.1.24

    출처 : http://kofree.net/board/bbs/board.php?bo_table=tbl009&wr_id=1516&page=2
    Posted by 1010
    98..Etc/Etc...2009. 7. 24. 09:17
    반응형
    SQL Injection 점검툴

    Posted by 1010
    98..Etc/Etc...2009. 7. 15. 11:39
    반응형

    출처 : http://simples.kr/bbs/board.php?bo_table=03_2&wr_id=77&page=2

    다른 메신저, 웹브라우저에서도 다음과 같이 Proxy 설정 해 주시면 됩니다.

    기본적으로 외부에 ssh 연결이 가능한 시스템이 있어야 합니다.



    Posted by 1010
    98..Etc/Etc...2009. 7. 15. 11:38
    반응형

    출처 : http://simples.kr/bbs/board.php?bo_table=03_2&wr_id=79

    Contents
    1 이 문서가 필요한 곳
    2 필요한 것
    3 방법
    3.1 ssh -R 에 대해
    3.2 ssh -L 에 대해
    3.3 접속
    4 실제의 예 1 (ssh서비스 이용하기)
    4.1 my_office_pc 에서
    4.2 my_home_adsl_pc 에서
    5 실제의 예 2 (터미널 서비스 이용하기)
    5.1 my_office_pc 에서
    5.2 my_home_adsl_pc 에서
    6 맺는 말
    7 질문과 답변
    8 토론


    작성 : 김원일


    [edit]1 이 문서가 필요한 곳 ¶


    회사나 가정에서 작업하던 환경을 그대로 쓰고 싶지만 vpn 이나 firewall 등의 제한으로 외부에서 접근하기가 쉽지 않은 경우가 있다. proxy 가 있거나 vpn 이라면 별 다른 문제가 없을 수도 있겠으나 firewall 같은 경우 넷웍 관리자에게 요청하지 않는 이상, 또는 요청한다고 해도 그다지 쉽게 허가를 얻지 못할 것이다. vpn 이라고 해도 외부의 누군가에게 잠깐 내부의 자원을 이용하게 하기위해 자신의 vpn 접속 방법을 가르쳐 주는 것도 양심상, 보안상 그다지 권장하고 싶은 일은 아니다. 이 문서는 그러한 경우 외부에서 접근 가능한 ssh계정을 이용해 터널을 만들어 vpn, firewall 외부에서 그 안쪽으로 접근을 가능하게 하는 방법이다.


    [edit]2 필요한 것 ¶


    OpenSSH (ssh protcol 2 이상을 가정)
    vpn 및 firewall 외부에 ssh 로 접속이 가능한 계정
    임은재님이 작성하신 ssh Howto, ssh + mini proxy 등을 미리 읽어 두는 것이 도움이 된다.


    [edit]3 방법 ¶


    [edit]3.1 ssh -R 에 대해 ¶
    ssh -R 은 원격서버의 특정 포트를 자신이 접근 가능한 서버 및 포트 (이문서에서는 vpn 안쪽의 자신의 서버 또는 작업을 하려는 서버)로 포워딩 하는 것이다. ssh -L 의 역이라고 봐도 무방하다 (ssh -L 에 대해서는 ssh mini proxy 문서를 참조하자)


    vpn 또는 firewall 안쪽의 PC 에서


    ssh -R port:host:hostport ssh_user@ssh_server


    와 같은 명령을 사용한다.


    ssh_server서버에 ssh_user라는 계정으로 접속하되 port로 지정한 포트로 들어오는 패킷을 host의 hostport로 포워딩한다는 것이다. 언뜻 알기 어렵지만 차근 차근 이해해 보자.


    port : ssh_server에서 열 포트 번호다. (여기서 ssh_user가 ssh_server의 루트가 아니라면 1024번 이상의 포트번호를 지정해야 한다)
    host : vpn 및 firewall 안쪽에 있는 우리가 바깥에서 사용할 서버의 ip 또는 이름이다. (꼭 안쪽에 있을 필요는 없다. ssh -R ... 명령을 내리는 자신의 컴퓨터에서 접근 가능해야 한다)
    hostport : 위의 host 에서 우리가 이용하려는 서비스가 열려있는 포트 번호다. (역시 접근 가능해야 한다)


    이상과 같이 하면 hostname의 loopback 주소(127.0.0.1)에서 port를 리스닝하게 된다. nestat -nl 로 확인해보라. loopback 주소로만 listening하는 것은 sshd 설정상 기본이다.
    [edit]3.2 ssh -L 에 대해 ¶
    이제 우리가 원하는 우회로의 반은 열린 셈이다. 나머지 반을 열어보자.


    ssh -L localport:localhost:port ssh_user@ssh_server


    이 명령은 vpn 또는 firewall 바깥의 환경에서 쓰이게 된다. 즉 집이나 외부업체의 회의실 또는 외딴 섬마을 학교의 pc실에서 쓰인다는 것이다.


    localport : 현재 작업 중인 컴퓨터에서 열릴 포트이다. (netstat -nl 에서 Listen 중인 것으로 나타날 것이다)
    localhost : 말 그대로 localhost라고 적는 것이다. 127.0.0.1 도 무방하다. 여기서 localhost 는 ssh_server의 루프백 주소를 가리킨다.
    port : ssh -R 에서의 port 와 같다.


    이제 모든 우회로가 열렸다!


    [edit]3.3 접속 ¶


    우회로를 이용하는 건 다음과 같다.


    telnet localhost localport (telnet 서비스를 우회해서 접속할 경우)
    http://localhost:localport/ (http 서비스의 경우)
    ssh -p localport localhost (ssh 서비스의 경우)
    smbclient -p localport localhost (삼바 서비스의 경우)


    즉 모든 접속은 localhost로 ssh -L 에서 지정한 localport를 이용하게 된다.


    [edit]4 실제의 예 1 (ssh서비스 이용하기) ¶
    여기서는 실제로 명령어를 다루는 예를 들겠다. 다음과 같은 컴퓨터들이 등장한다.


    my_office_pc (IP : 224.20.X.22 under Firewall)
    ssh_server (IP : 210.32.X.221)
    my_home_adsl_pc (IP: 61.78.X.226)


    지금 시각은 오후 5:32분, 내일 오전까지 끝내야할 작업이 거의 다 끝나가지만 잔업은 하기 싫다. 집에서 작업하고 싶지만 방화벽 때문에 외부에서는 접속할 수가 없는 처지다.


    [edit]4.1 my_office_pc 에서 ¶


    my_office_pc ~$ ssh -R 22:localhost:22 210.32.X.221
    myaccout@210.32.X.221's password: _ <-- ssh_server 패스워드 입력

    ssh_server ~$ _


    이제 짐을 싸고 정리한 후 퇴근한다!


    [edit]4.2 my_home_adsl_pc 에서 ¶


    my_home_adsl_pc ~$ ssh -L 2222:localhost:22 210.32.X.221
    myaccout@210.32.X.221's password: _ <-- ssh_server 패스워드 입력
    ssh_server ~$ _


    다른 터미널을 열고


    my_home_adsl_pc ~$ ssh -p 2222 localhost
    myaccout@localhost`s password: _ <-- my_office_pc 의 패스워드 입력
    my_office_pc $ _ <--- 사무실에 ssh 로 연결 되었다!!!


    마무리 작업을 하고 맥주 한잔!


    [edit]5 실제의 예 2 (터미널 서비스 이용하기) ¶


    여기서는 실제로 명령어를 다루는 예를 들겠다. 다음과 같은 컴퓨터들이 등장한다.


    my_office_pc (IP : 224.20.X.22 under Firewall,Windows XP)
    ssh_server (IP : 210.32.X.221)
    my_home_adsl_pc (IP: 61.78.X.226)


    지금 시각은 오후 5:45분, 내일 오전까지 끝내야할 작업이 거의 다 끝나가지만 잔업은 진짜!! 하기 싫다. 집에서 작업하고 싶지만 방화벽 때문에 외부에서는 접속할 수가 없는 처지다.


    [edit]5.1 my_office_pc 에서 ¶
    지금의 사무실의 컴퓨터는 윈도우 환경이다. 윈도우에서는 별도의 ssh 프로그램이 필요하다.


    putty (터널링이 가능한 최신 버젼)
    plink (putty 의 자매 프로그램, windows console 에서 사용 가능하다. plink -R 또는 plink -L 로 unix 에서와 유사하게 사용한다.
    ssh (cygwin 환경에서 사용가능)


    plink 를 사용해보기로 하자.


    > plink -R 3389:localhost:3389 210.32.X.221
    myaccout@210.32.X.221's password: _ <-- ssh_server 패스워드 입력

    ssh_server ~$ _


    이제 짐을 싸고 정리한 후 퇴근한다!


    [edit]5.2 my_home_adsl_pc 에서 ¶
    집의 PC는 linux 또는 rdesktop 을 사용해야 한다. 이유는 MS에서 제공하는 windows용 terminal client는 별도로 IP를 확인하기 때문에 인증이 이루어지고도 사용은 불가능하다.


    my_home_adsl_pc ~$ ssh -L 3389:localhost:3389 210.32.X.221
    myaccout@210.32.X.221's password: _ <-- ssh_server 패스워드 입력
    ssh_server ~$ _


    다른 터미널을 열고


    my_home_adsl_pc ~$ rdesktop localhost:3389 (포트번호는 생략가능)
    //rdektop에서 my_office_pc의 윈도우 계정 패스워드 입력
    //rdesktop이 시작된다.


    마무리 작업을 하고 맥주 한잔!


    [edit]6 맺는 말 ¶
    원래는 친구 회사의 PC에서 작업을 하기 위해서 이런 방법을 생각해 보았다(어디까지나 친구 본인의 요청에 의해서). 꽤 귀찮아 보이지만 어쩔 수 없는 상황에서는 유용하리라고 생각한다. 외부에 ssh계정이 있어야 하는 단점이 있긴 하지만 그런 경우에는 각자의 집에 ssh 서비스를 이용하는 방법도 있으므로 큰 문제는 없으리라 생각한다.


    [edit]7 질문과 답변 ¶
    Q: IP 공유기를 사용하고 있습니다. 사설망 IP로도 접근 가능한 방법이 있나요?


    A: 네. 공유기 아래의 사설망으로도 위 방법을 사용하면 가능합니다. 하지만 공유기라면 DMZ 설정이나 port forwarding이 더욱 간단하겠지요. 이 문서는 공유기나 방화벽, vpn 설정을 고칠 수 없는 일반 유저를 위한 내용입니다.


    Q: 잘 사용한 후, 열어둔 터널을 닫고 싶습니다. 어떻게 해야 하나요?


    A: 아~. ssh -R/-L 로 열어둔 터미널에서 나오면 되는군요.


    [edit]8 토론 ¶


    Posted by 1010
    98..Etc/Etc...2009. 7. 9. 13:50
    반응형
    Sc.exe는 Windows XP 및 Windows Server 2003에 포함되어 있으며 Windows 2000 Server 리소스 키트에도 포함되어 있습니다.
    sc create [Program ID방식의 Service name] binpath="서비스로 실행할 파일의 풀 경로 / 만약 매게변수가 있다면 함께" displayname="서비스 관리자 애플릿에 표시할 이름" depend="다른 관련 서비스의 ID" start="시작형태" obj="서비스 시작에 사용한 Windows NT 계정 이름"

    머 이리저리 옵션이 많이 있지만, 서비스 등록을 위해 필요한 것들이나 주의를 길울여 살펴봐야 한다. 여기서 한가지 SC의 명령줄 옵션은 문법이 까다롭다고 한다. 등호 다음에 오는 공백은 SC가 나름의 구문 분석 규칙을 정의해 놓은 것으로 이해하고 따라해야 한다. 즉, SC는 스위치 이름을 binpath, displayname과 같이 인식하기 보다는 binpath=, displayname= 까지 인식한다고 보는것이 정확하다. 즉 binpath= 이후 공백이 하나 존재해야 하는 것이다.

    그럼 sc명령어와 옵션을 하나하나 살펴 보자
    1. sc create 다음에 오는 필수 인자가 [Program ID방식을 Service name]
        : 여기에는 영문만을 사용하는것을 권장하며 윈도우가 그렇듯 영문 대/소문자는 구분하지 않는다.

    2. binpath 옵션
        : 서비스로 실행할 파일의 경로와 해당 파일에 전달되는 인수를 한꺼번에 지정한다. 파일 경로 상에 공백이 포함되면 따옴표로 묶는다는 것은 기본 상식이다. 만약 이렇게 한번 따옴표를 쓰고나면 인수에는 따옴표를 전달할 수 없는게 아니냐는 고민에 빠지기 쉬운데 그런 고민은 할 필요없다. 신경쓰지 말고 필요한 만큼 따옴표를 쓰면 된다. 머 정 쓰기 싫으면 공백없이 경로를 잡고 프로그램을 설치하면 될 것이다.

    3. displayname 옵션
       : 서비스 관리자 애플릿(services.msc)에서 표시할 이름을 의미한다. 서비스 관리자에서 알아볼 수 있는 편리한 이름을 정해서 기입하면 되며 한글을 사용해도 무방하다.

    4. depend 옵션
        : 동록하고자 하는 서비스를 실행하기 위하여 필요한 다른 서비스의 ID를 써주는 곳이다. 여러개의 서비스에 종속되어있다면 "/" 기호를 써서 구분해주면 된다.

    5. start 옵션
        : 등록하고자 하는 서비스를 언제 실행할 것인가에 대한 사항을 적은 곳이다. 보통 auto, demand, boot, system, disabled 중 하나는 선택한다. auto는 시스템 서비스가 모두 시작되었으며 아직 로그인은 하지 않은 상태에서 실행하는 것을 말하며, demand는 어떤 형태로든 시스템에 대한 사용 권한을 얻은 이후에 직접 구동하는 것( 사용자가 아닌 프로그렘에 의한것도 포함 )을 의미힌다. boot와 system은 주로 장치 드라이버와 연관된 서비스나 운영 체제 핵심 서비스에만 한정되는 내용이고 disabled는 거의 쓸 일이 없으며 이름 그대로 "사용하지 않도록 등록"한다는 의미이다.

    출처: 정확한 출처는 모르겠습니다.

    6. obj 옵션
       : 이 서비스를 실행할 사용자 계정을 지정하는 곳이다. 대개 서비스를 등록하는 것은 특정 사용자와는 무관하게 독립적으로 실행되기 위한 것이므로 "NT AUTHORITY\LocalService"를 지정하면 적당하다. 하지만 직접 계정을 지정한다면 password 옵션을 써서 비밀번호를 따로 지정해야 한다.

    그럼 위의 설명에 따라 Agent를 실행시키는 batch파일인 AgentStart.bat를 서비스에 등록하려면 다음과 같이 명령을 내리면 된다.

    sc create RTCAgent
            binpath= "D:\Eclipse_Work\MySingleRTC\agent\Window\AgentStart.bat"  
            displayName= "RTCAgent" start= auto obj= "NT AUTHORITY\LocalService"


    이렇게 등록하고 서비스 관리자에서 시작하면 된다.

    자 그럼 등록을 했으면 삭제하는것도 봐야 되지 않을까?
    서비스 삭제는 sc delete로 간단하게 된다.

    sc delete [Program ID방식의 Service Name]


    어떼 아주 간단하지 않을가?
    여기서 사용되는 [Program ID방식의 Service Name]은 sc create를 이용해 서비스 등록할 때 사용했던 [Service Name]을 사용하면 된다. 몬든 삭제가 그렇듯 서비스 삭제에 있어서도 단 사용되는 [Program ID방식의 Service ID]는 윈도우 핵심 서비스일 수 있으니 삭제할 때는 각별한 유의가 필요하다.

    마지막으로 등록된 서비스를 시작하는 것을 보도록 하자
    서비스 시작 역시 서비스 삭제 만큼이나 간단하게 sc start로 되어있다.

    sc start [Program ID방식의 Service Name]


    이것역시 너무나 간단하지 않을가?
    이쯤 되면 이곳에서 사용되는 [Program ID빙삭의 Service name]이 무엇인지는 굿이 설명하지 않아도 알것이다.

    Posted by 1010
    98..Etc/Etc...2009. 7. 9. 13:38
    반응형
    TOW(Trac on Windows)을 윈도우에 설치해서 사용하다보니 한가지 문제점이 있었다.
    TOW라는 패키지가 단순히 배치 파일을 풀고, 설정만 몇가지 변경하면
    Project 관리에 유용하게 사용할수 있는 svn+trac을 윈도우에 설치할수 있지만,
    실행자체가 배치 파일로 이루어 지기 때문에 서버가 리부팅을 하거나, 문제가 있을시에 항상
    다시 로그인을 해서 실행을 시켜주어야 한다는 문제가 발생된다.

    그래서, 윈도우 서비스에 등록할수 있는 방법을 찾다보니 아래의 경로에 자세히 설명이 되어 있었다.
    http://silencer.tistory.com/30

    TWO 설치 및 기본적인 배치 파일을 서비스에 등록하는 부분은 위 경로를 참고하면 될듯하다.

    그런데, 한가지 문제가 서비스에 등록은 제대로 되는데 실행에 문제가 있었다.
    추가적인 웹서핑을 통해서 살펴보니 레지스트리에 한가지 더 추가해야 될 사항이 있어서 첨부한다.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[서비스명]
    위 위치에 Parameters 키를 추가하고, Application 값을 설정하는데 이것만 가지고는 실행에 문제가 발생될수 있다.
    왜냐하면, 이번에 예에서 보듯이 start-tow.bat 파일은 다른 배치파일들을 내부에서 호출해서 실행이 되기 때문이다.
    만약에 실행 배치 파일이 있는 경로가 환경변수에 등록이 되어 있다면 큰 문제가 아닐수 있으나,
    등록이 되어 있지 않다면, 결국 실행 배치파일에서는 내부에서 호출하는 기타 다른 배치 파일들을 호출할수 없게된다.
    따라서, 레지스트리에 한가지 값을 더 추가해 주어야 한다.
    AppDirectory가 그것이다. 이 값은 배치 파일이 실행되는 작업 디렉토리를 설정하는 부분으로,
    start-tow.bat와 같이 내부에서 다른 배치 파일을 호출할때 절대경로를 적용해서 호출하지 않는경우 반드시 설정을 해줘야 한다.
    이 부분때문에 실행에 문제가 있어 헛고생을 많이 한거 같다.
    혹시나 TOW 이외에도 배치 파일을 서비스에 등록을 해야 한다면 주의해서 살펴볼 부분인듯 하다.
    Posted by 1010
    98..Etc/Etc...2009. 7. 9. 13:14
    반응형

    bat(배치)파일 문법
    일괄처리(Batch) 파일 #1

    1.배치파일(Batch File, 일괄처리용 화일)

    1.1. 배치파일?
    Batch(배치)는 '한 묶음','한벌'의 의미하며, 배치파일은 여러 가지 명령어를 한 파일에 모아 작업하는 파일, 즉 하나의 일을 처리하기 위해 여러번 내리는 명령어를 한 번만에 처리할 수 있도록 만들어 놓은 실행파일이다.

      ① 확장자 이름은 반드시 'BAT'이어야 한다.
      ② 파일명은 도스의 내부명령어 이름을 피하라.
      ③ COM, EXE 파일의 이름을 피하라.

      ④ 명령어 이름이 서로 같아 충돌할 때, DOS는 도스키-->내부명령-->외부명령( *.COM-->*.EXE)-->*.BAT) 순으로 실행한다.

        다만 '파일명.BAT'라고 확장자 이름까지 써서 명령을 내리면 이런 문제는 해결된다.

      ⑤ BAT파일은 표준 ASCII 문장(Text) 파일이어야 한다.


    1.2. BAT파일 만드는 방법.
    일반 도스 명령어와 배치전용 명령어를 사용하여 다음의 3가지 방식을 사용하여 아스키 문장파일 형식으로 만든다.

      ① COPY명령사용 ....  C:\>COPY CON XXXX.BAT
      ② 문서편집기 이용 ... 'EDIT', 'SAN'
      ③ 문서 작성기(WordProcessor) ..  아래한글,훈민정음 등


    작성 예①)  C:\>COPY CON SAMPLE.BAT  <엔터>
    ─────       CLS
                    DIR A:
                    V3 C:
                    ^Z
                    1 File(s) Copied

    <설명1> COPY 명령을 사용하여 텍스트 파일 만드는 방법을 이용한다.
    CON은 장치 파일명으로 여기서는 키보드를 지칭한다.키보드로 입력한 문자를 SAMPLE.BAT라는 파일명으로 복사.출력하라는 뜻이다.

    입력한 배치 내용을 보면
      화면을 깨끗이지우고(CLS), A드라이브의 파일목록을 보이라, 그리고 C 디스크에 바이러스 감염 여부를 점검.치료하라는 명령이다.

    줄을 바꿀 때는 항상 엔터하면 된다. 끝낼 때는 언제나 Ctrl+Z 또는 F6키를 누르고 엔터하면 1개 파일이 복사되었다는 메시지가 나오면서 C루트에 SAMPLE.BAT란 파일이 1개 생긴다.

    <실행> C:\>SAMPLE <엔터>하면 배치파일 내용 순서데로 명령을 실행한다.

    -----

    작성 예②)  C:\>EDIT <엔터>

         도스 편집기 화면이 뜬다.  이때  ESC키를 한번 눌러 메시지 상자를 제거하고 깨끗한 화면에다 첫째 줄부터 입력하되, 줄을 바꿀 때는 엔터한다.

                   CLS
                   DIR A:
                   V3 C:

    끝내려고 저장글쇠(@F,S)를 누르면 파일이름을 써넣으라고 상자자 나온다. SAMPLE.BAT라고 입력하고 <엔터>하여 저장한 후, 에디트를 끝(@F, X)낸다.그러면 C루트 디렉토리에 SAMPLE.BAT 라는 배치파일이 생긴다.

    <실행> C:\>SAMPLE <엔터>하면    C루트에 있는 SAMPLE.BAT 파일이 실행된다.


    ******* 배치파일 내용에 파일스펙 경로명을 쓸 때 주의점.****

    ⓐ 배치파일 내용 중에
      C:\GAME\SUPER\SUPER.EXE 라고 해놓으면

    현재 도스 작업방을 바꾸지 말고 C:\GAME\SUPER\ 방에있는 SUPER.EXE를 실행하라는 뜻이기 때문에 경우에 따라서는 실행이 되지 않는다.

    ⓑ 배치 내용을 아래와 같이 하면 틀림없이 실행하게 된다.
      C:
      CD\GAME\SUPER
      SUPER

    현재 도스작업방이 먼저 C드라이브로 바뀌고,절대경로명 CD\GAME\SUPER
    디렉토리로 이동한 후에 SUPER.EXE 파일을 실행한다            ******


    1.3.배치파일 명령어들

    ① 일반적인 도스명령를 그대로 사용한다.

      CLS  COPY  DEL  DIR  DATE  TIME   PAYH   PROMPT  CHKDSK 등등.

    ② 배치에만 사용하는 전용 명령가 있다.
      ECHO   REM   PAUSE  CALL   GOTO    CHOICE   IF   FOR   SHIFT
    (메아리)(설명) (쉼)  (부름) (가기)   (선택) (조건)(순환) (옮김)


    ⓐ REM
      [베치파일 속에 달고 싶은 설명.주석]....설명이 화면에 나옴.

    ⓑ PAUSE
      배치파일 실행중 일시 멈추게함.
      화면에 'Press any key to continue...'
              (계속하려면 아무키나 누르세요)

      배치실행을 중단하려면 Ctrl+C키를 누른다. 그러면 화면에
               'Terminate batch job (Y/N)?'
              (배치작업을 끝내겠읍니까?)  Yes / No

    ⓒ ECHO 명령
    형식> ECHO 문자열
          에코명령 다음에 오는 문자열을 화면에 나타낸다.

        ECHO ON
          이후부터 '명령어'라인을 화면에 보인다.(도스 초기값)

        ECHO OFF
          이후 실행되는 명령어 라인을 화면에 나타내지 않는다.
          화면이 깨끗하고, 화면출력속도.가독성 증가한다.
          'ECHO OFF'라는 그 자체까지 보이지 않게 하려면 @ 을 앞에 쓴
          다.( @ECHO OFF )

        ECHO
          현재 ECHO ON/OFF 상태를 확인한다.


    <예> C:\>COPY CON EDIT2.bat
      ECHO OFF
                     이후에 실행되는 명령어는 화면에 나타나지 않는다.
                     화면에 ECHO OFF 자체는 나타난다.

      TB
                     태백한글을 메모리에 상주 띄우기.
                     각자 지원되는 다른 한글코드(HANME,HT,DKBY 등)를
                     실행하면 된다.
                     한글도스인 때는 HBIOS.COM을 실행한다.

      PAUSE
                   잠시 중지. 엔터하면 다시 진행한다.

      CLS
                  화면청소

      ECHO 'This is Hangul Edit.'
                                '문자열'을 화면에 출력한다.

      PAUSE
      REM NOW,DOS EDIT IS HANGUL EDITOR.

                    REM 다음에 오는 설명은 화면에 나오지 않는다. 다만
                    사용자가 배치파일 내용을 볼 때 참고할 내용이다.

      ECHO ON
                  이후에 실행되는 명령어는 화면에 나타남

      EDIT
                  도스 에디터 화면이 나오면 한글로 문서를 작성.저장한
                  후 끝낸다.

      @ECHO OFF

                 이후에 실행되는 명령어는 화면에 나타나지 않는다.
                 ECHO OFF자체도 나타나지않음.

      TB/U
                태백한글 메모리서 제거한다.

      CLS
      ^Z
               CTRL+Z 또는 F6를 누른다.

      1 File(s) Copied

      실습을 위하여 일부러 여러가지 명령 종류를 써 보았으며,한글로 설 명을 하느라고 줄이 떨어졌으나 각자 실습할 때는 영문글자 부분만 쓰고 엔터하여 줄울 바꾸고 줄간격을 붙여가며 쓴다.

    <실행 예>  C:\>EDIT2 <엔터> 하면

    위의 내용을 순서데로 실행하고 도스 문서편집기가 화면에 나타난다. 문서작성기를 끝내면 한글프로그램을 메모리에서 제거하고 도스로 나온다.  (계속)


    제14장 배치파일 #2 (계속)

    1.4 배치파일 전용 명령에서
    ? 판단과 분기에 관한 명령  ....  CALL, CHOICE, IF, GOTO

    앞에서 공부한 배치파일의 경우는 입력된 명령어들의 순서데로 실행되었었지만, 판단과 분기의 명령들은 명령어의 실행의 흐름을 사용자가 임의로 변경,지정할 수있어 배치파일의 기능을 보다 강력하게 한다.

    분기 명령..배치파일의 순차적 수행을 필요에 따라 변경할 때 사용하며
              배치파일에 프로그램적 기능을 갖게하는 명령이다.

    조건분기(Conditional Branching).......IF명령

    무조건분기(Unconditional Branching)...GOTO명령

    ① CALL [배치파일 인자]

    배치파일 실행 중 다른 배치파일을 도중에 호출하여 실행시키고 다시
    원래 배치파일로 돌아오게 하는 명령이다.

    <예>  H1.BAT의 내용이 'DIR C:\ > A:MDIRLIST.TXT' ( C루트의 파일목
    록을 A드라이브에 MDIRLIST.TXT 란 파일로 출력하라) 이라고 하자.

      C:\>COPY CON H2.BAT
        CALL H1.BAT
        TYPE A:MDIRLIST
        ^Z

    <실행> C:\>H2 엔터하면 H1.BAT란 배치파일을 불러(CALL) 실행하여 MDIRLIST.TXT 파일을 A드라이브에 만든 후, 다시 H2.BAT 파일로 돌아와서 A드라이브의 'MDIRLIST.TXT' 파일을 화면에 타이프해 보인다.


    ②  IF 조건

    주어진 조건에 따라 명령을 선별적으로 선택.실행케 하는 명령이다.

    IF EXIST [파일이름] [명령]
             찾는 파일이 존재하면 명령을 실행하라

    IF NOT EXIT [파일이름] [명령]
             찾는 파일이 없으면 명령을 실행하라

    <예> IF EXIST *.BAK DEL *.BAK
           BAK라는 백업파일이 있으면 모두 지워버리라.


    IF [NOT] "문자열1" == "문자열2" [명령]
        "문자열1"과 "문자열2"가 서로 일치 [불일치] 하면 명령을 실행하라.                     (양쪽 비교 문자열의 영문 대소문자를 구분한다)
        ==은 EQ로, !=은 같지 않다는 부호인데 NE로 대신할 수 있다.
      문자열은 " " 으로 반드시 구분하고 부호와는 한 칸 띈다.

    <예> C:\>COPY CON TEST1.BAT
        @ECHO OFF
        IF "%1" == "A" ECHO TESTING A
        IF NOT "%1" == "A" ECHO IT IS NOT EQUAL.
        ^z

    <실행> C:\>TEST1 A 엔터하면 화면에 TESTING A 라고 표시한다.
          C:\>TEST1 C 엔터하면 A와 같지 않으므로 IT IS NOT EQUAL 라고 표시한다.

    IF [NOT] ERRORLEVEL [값] [명령]
         IF명령 바로 앞에서 수행되었던 프로그램이 수행을 마치면서 남긴 종료코드(ExitCode)를 검사하여 지정 값보다 크면(작으면) 명령을 실행하라는 뜻이다.

    종료코드를 발생하는 명령어(FORMAT,XCOPY,COPY,BACKUP,RESTORE 등 일
    반 도스명령어들 메뉴얼 참조)들은 0~255 범위에서 종료코드(EXITCODE)
    값을 가지는데
    에를 들면 XCOPY명령에서 성공적 수행일 때는 0, 화일이 없을 때 1, CTRL+C로 중단하면 2, 초기화 오류발생 때는 4, 디스크 에러에는 5를 반환하는 식으로 정해저 있다.

    예>  C:\>COPY CON XY.BAT
            XCOPY %1 A:
            IF NOT ERRORLEEVEL 0 ECHO COPY FAILED !
            IF ERRORLEVEL 0 ECHO SUCCESSFULLY !
            ^Z

    실행> C:\>XY *.* 엔터하면 성공적 수행여부에 따라  'FAILED !' 또는
                             'SUCCESSFULLY !' 라는 메시지가 나온다.

    ③ GOTO [레이블이름]
      레이블 이름이 있는 행으로 실행 순서를 옮긴다.
      '레이블(Label)'은 8자이 내로, 레이블 앞에는 콜론(:)을 사용한다.

    <예> 현재 디렉토리에 *.HWP 파일을 C:\HNCDOC 디렉토리로 옮겨주는
         배치파일을 만들어 보자.

      C:\>COPY CON HWPMV.BAT
          @ECHO OFF
          IF NOT EXIST *.HWP GOTO FIRST
          MOVE /-Y *.HWP C:\HNCDOC
          ECHO HWPFILE MOVE DONE !
          GOTO END
          :FIRST
          ECHO *.HWP FILE NOT FOUND !
          :END
          ^Z

    실행> C:\>HWPMV  엔터하면 C루트 디렉토리에 있는 모든 HWP 파일을 C:\HNCDOC 디렉토리로 옮기고 'HWP 파일을 모두 옮겼다'는 메시지를 화면에 보이고 END(끝) 레이블로 와서 도스상태로 빠저나 온다. 옮길 HWP 파일이 없으면 ' HWP 파일을 찾지 못했다'는 메시지가 나오고 끝(END) 낸다.

         GOTO 문에서는 항상 END 레이블로 배치를 끝낸다.

      배치 안에서 COPY,XCOPY,MOVE 명령은 /-Y 스위치를 써야 만이 목적지에 같은 이름의 파일이 있을 경우 덮어 쓸지여부를 확인하는 메시지를 출력한다.

    ④ 의사변수(Dummy Variables 가상의 변수)

    바꿔 쓸 수 있는 인자(Replaceable Parameter)를 의사변수라 하며,
      %0 ~ %9(10개)으로 표시한다.

    형식> C:\>명령어 파일1 파일2   "    "   "   "   "   " 파일9
               %0    %1    %2    %3   %4  %5  %6  %7  %8  %9

    작성예1> C:\>COPY CON DIRALL.BAT
               DIR %1
               pause
               DIR %2
               pause
               type %0
               ^Z

    실행예> C:\>DIRALL A: B: (엔터)

    설명> 위 '실행 예'에서 명령어 DIRALL(.BAT)은 %0, A:은 %1, B:은 %2 에 해당하므로 '작성예1'의 내용 중 %1,%2,%0에 대입하여 명령을 수행한 결과가 화면에 나오게 된다. 즉 화면에는 'DIR A:'과, 'DIR B:'이 차례로 출력되고 멈췄다가 'DIRALL.BAT' 파일 내용이 출력된다.


    작성예2> C:\>COPY CON EDIT2.BAT
                 @ECHO OFF
                 CLS
                 TB          .....tb라는 프로그램을 메모리에 설치
                 EDIT %1     ......%1은 '지정 파일'로 대체된다.
                 TB/U        .......태백 한글을 메모리에서 제거
                 ^Z

    실행예> C:\>EDIT2 SAMPLE.TXT (엔터)
                 %0    %1

    설명> 위 '실행예'에서 명령어(EDIT2.BAT)는 %0, 파일1(SAMPLE.TXT)은 %1 에 해당하므로, '작성예2'의 배치파일 내용중 %1 대신에 SAMPLE.TXT라는 텍스트 파일이 대입된다.

    화면은 한글을 읽고 쓸 수 있도록 태백한글을 메모리에 상주시킨다. 편집기는 SAMPLE.TXT 라는 파일을 읽어 화면에 띄워 수정.삽입 등 편집하고 저장할 수 있다. 편집을 끝내면 한글코드가 메모리에서 제거된다.


    ⑤ SHIFT

    쉬프트는 옮김,변위를 의미하는 데 10개 이상의 대체 인자(Replaceable
    Paramete)도 사용 가능하다. 대체인자를 한 자리씩 왼쪽으로 이동한다.

    작성예> 지정한 문장(text) 파일들을 차례로 TYPE시키는 배치파일 예.

    A:\>COPY CON TELLME.BAT
        @ECHO OFF
        :BEGIN
        IF NOT EXIST %1 GOTO END
        TYPE %1
        SHIFT
        GOTO BEGIN
        :END
        ECHO 더이상 파일이 없습니다.
        ^Z

    실행예> A:\>TELLME AAA.TXT BBB.TXT CCC.TXT .........   엔터
               %0     %1       %2      %3     ........%15

    설명> 위 '실행예'의 텍스트 파일명은 특정해야 하며 Wildcard문자(*,?)는 사용할 수 없다. 지정된 여러 파일들에 %1 변수가 차례로 SHIFT(변위)되면서 파일을 대입시켜 내용을 출력한다.
    즉 AAA.TXT가 먼저 %1이 되고, 다음 BBB.TXT, 또 CCC.TXT, .....등이 %1에 대입된다. 계속 10개 이상의 변수도 지정할 수 있다.

    지정된 파일이 모두 옮겨 대입되고 나면 배치파일이 끝나게 된다. 배치파일 내용 중 GOTO 명령에서 BEGIN 레이블로 가서 다시 시작하게하는 것을 LOOP(고리)라고 한다.


    ⑥ FOR
    FOR 명령은 지정된 횟수 만큼 배치파일이 같은 명령을 계속 반복하게하는 명령, 즉 반복수행 (Looping) 명령이다.

    형식)  FOR %%변수 IN (셋트 파라미터) DO [명령어] %%변수

         '(셋트 파라미터)'는 일련의 많은 갯수의 파일들을 말하고, '%%변수'는 SET에 명시된 각 파일에 순차적으로 설정되어 명령을 실행하는 대입변수이다.

         셋트 파라미터에 와일드카드문자(*,?)를  사용할 수 있다.

    작성예> 확장명이 BAT,DOC,TXT,CAP인 문장 파일 모두를 차례로 화면에 출력(TYPE)되게 배치파일을 만들어 보자.

      C:\> COPY CON TYPEALL.BAT
           FOR %%Z IN (*.BAT *.DOC *.TXT *.CAP) DO TYPE %%Z
           ^Z

    <실행>  C:\>TYPEALL C:\MDIR\*.BAT 엔터

      (*.BAT,  *.DOC,  *.TXT,  *.CAP 중에서 한 종류 파일만 지정한다.)

    위 TYPEALL.BAT 파일을 실행할 때는 파일스펙(경로특정)이 있어야 한다.


    2. 자동형 배치파일 (Aautoexec.bat)

    일반배치파일 만들기와 동일하며 다만 이름만 AUTOEXEC.BAT로 한다.

    컴퓨터를 구입할 때 이미 작성되어 있으므로 그 내용만 자기 필요에 따라 변경하면 될 것이다. 만약을 위해 원본 파일을 다른 곳에 백업해 놓고 필요시 다시 복사하면 좋을 것이다.

    <작성예>  C:\>COPY CON AUTOEXEC.BAT
             @ECHO OFF
             CLS
             SMARTDRV
             LH V3RES
             PROMPT $P$G
             PATH=C:\;C:\DOS;C:\MDIR;C:\V&P
             LH DOSKEY
             M
             ^Z
             1 FIle(s) Copied

    ①  컴퓨터가 부팅할 때 DOS 시스템 프로그램을 메모리에 상주시킨 후
      곧 바로 자동실행 배치파일의 내용의 명령들을 실행한다.


    아래 링크 출처 --  http://naver.com/mokomoji

    배치화일로 파일 내에 문자쓰기
    http://blog.naver.com/mokomoji/130001367333

    배치파일로 폴더 내의 여러 파일을 각각 압축하기
    http://blog.naver.com/mokomoji/130001367394

    배치화일 수동 초이스 만들기 
    http://blog.naver.com/mokomoji/130001367431

    html 배치화일 특수문자 해결
    http://blog.naver.com/mokomoji/130001367445

    배치화일 명령어
    http://blog.naver.com/mokomoji/130001367473

    [본문스크랩] 네트워크 드라이브 자동 연결하기
    http://blog.naver.com/mokomoji/130003167299

    [본문스크랩] IP 자동 변경 스크립트
    http://blog.naver.com/mokomoji/130003167289

    [본문스크랩] 반복적인 ip 변경은 Bat 파일을 이용하여 간단하게
    http://blog.naver.com/mokomoji/130003167083

    [펌] 윈도우 콘솔 명령어들
    http://blog.naver.com/mokomoji/130001368352

    배치파일로 폴더 내의 여러 파일을 각각 압축하기
    http://blog.naver.com/mokomoji/130001367394

    폴더 분기
    http://blog.naver.com/mokomoji/120019472999

    [펌] 날짜 및 시간 얻어오기 배치파일
    http://blog.naver.com/mokomoji/120016354197

    배치화일 오늘날짜 폴더 생성
    http://blog.naver.com/mokomoji/120014798527

    배치화일 bat 화일 자동처리 1
    http://blog.naver.com/mokomoji/120014798176

    Posted by 1010
    98..Etc/Etc...2009. 6. 27. 01:37
    반응형

    PC방 아르바이트 해 보신분은 공감할만한 이야기이지만, 일부 손님중에는 PC를 이용하고 난 이후에 "Programs Files" 폴더를 전부 삭제해버리거나 제어판에 들어가서 PC Setting을 엉망으로 해놓고 가는 경우가 있다.

    나 같은경우에도 1999~2000년도에 잠깐 PC방을 운영해본적이 있었는데, 그당시에도 그런 손님이 간혹 있었던듯 하다. 그래서일까? 요즘 PC방에서는 "작업 관리자"나 "제어판"을 사용하지 못하게 막아놓는 곳이 있다.

    사용자들의 못된(?) 행태를 막기 위한 방법이라고는 하지만, 그로 인해 제어판의 키보드 설정 항목이라던가 일부 항목을 사용해야 하는 사용자의 경우에는 아쉬운감이 있을 수 있다.

    뭐 요즘에는 하드디스크 프로텍션 (맞는 용어이려나? -_-;)이라는 툴을 이용해서 컴퓨터를 Cold Booting하면 처음 셋팅한 상태로 되돌려주는 Tool이 있어서 이런 경우는 많이 줄었다고 볼 수 있다.

    자 그럼 이제 본론으로 들어가서.... 제어판을 사용 못하게 해놓았을때 제어판 사용을 하려면 어떻게 해야하는가?
    그 부분에 대해서 알아보도록 하자.

    1. 시작 -> 실행 -> gpedit.msc -> 확인



    2. 사용자 구성 -> 관리 템플릿 -> 제어판 -> 제어판의 액세스 금지 -> 더블 클릭


    3. 사용 -> 확인


    위와 같이 설정하게 되면 윈도우즈의 시작 메뉴에 있는 제어판 메뉴가 사라져 제어판에 접근할 수 없게 된다.

    사용자 삽입 이미지

    설정 전 : 제어판 메뉴가 보인다.

    사용자 삽입 이미지

    설정 후 : 제어판 메뉴가 사라졌다.


    Posted by 1010