반응형

[오라클 덤프 exp / imp]

 

1. DB 서버으로 접속 (ex 리눅스)

 

2. root 권한으로 변경

  - su-

 

3. 오라클 유저로 변경

  - su - oracle

 

4. 오라클 sqlplus 실행 

  - sqlplus "/as sysdba"

5. 해당 유저의 데이터를 export

  - exp 유저명/패스워드 file=파일명.dmp full=y;

 

6. 삭제할 유저가 사용하던 tablespace 확인(같은 테이블스페이스 지정시)

  - select DEFAULT_TABLESPACE from dba_users where username= 삭제할유저명

 

7. 유저 삭제 (기존 유저로 import 할 시 유저가 사용하던 테이블 모두 삭제되었는지 확인)

  - drop user 삭제할유저명 cascade;

 

8. import 받을 유저를 생성

  - CREATE USER 유저명 IDENTIFIED BY 패스워드 DEFAULT TABLESPACE 테이블스페이스명 TEMPORARY TABLESPACE TEMP;

 

9. 생성한 유저에게 권한부여

  - grant connect, resource, dba to 유저명;

 

10. 생성한 유저에게 import

  - imp 유저명/패스워드 file=파일명.dmp full=y;


반응형

'코드자료실 > database' 카테고리의 다른 글

[oracle] spfile 복구방법  (0) 2013.03.13
[oracle] 문자 조작 함수  (0) 2013.02.20
[oracle] delete data 복구  (0) 2013.02.12
[database] varchar2 vs nvarchar2  (0) 2013.01.25
[Oracle] 페이징 쿼리  (0) 2012.12.23
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,

유용한 사이트

Interest 2013. 3. 11. 07:41
반응형

1. 고화질 HDTV를 인터넷에서 무료로 보자!
http://thisr.com/

집에 TV가 없는 분들에게 추천 하는 사이트 .
회원가입 필요 없이 무료로 볼수 있습니다.
KBS,SBS,MBC등 지상파는 물론 스포츠,EBS,게임,라디오 까지 볼 수 있습니다. 
뽐뿌분이 운영하고 있다고 들었습니다.   2. 남성커뮤니티 사이트 http://cafe.naver.com/storymirror   밤문화정보를 한눈에!! 

3.  비소리 듣는 사이트
http://www.rainymood.com/

약간의 천둥소뢰와 함께 빗소리를 끊임 없이 재생해주는 사이트 .
추천음악도 들을 수 있는데 비소리와 함께 들으면 좋습니다. 

4. 재능을 사고 파는 <크몽>
http://www.kmong.com/

5000원에 내가 가진 재능을 팔고 남이 가진 재능을 살 수 있는 사이트.
캐리커쳐,일러스트,번역,연애상담등을 5000원에 할 수 있습니다.
캐리커쳐 해봤는데 재밌네요 

5. 그림 못그리는 사람도 화가로 만들어 주는 사이트 
http://www.zefrank.com/scribbler/scribblertoo/

아무리 그림을 못그리는 사람이라도 있어! 보이는 그림으로 만들어 주는 사이트 입니다.
심심할때 아무거나 그려보기 좋아요

6. <툰툰툰>
http://glas.kr/app/toon/viewToonList?size=10&page=3

다양한 웹툰들을 한자리에서 구독할 수 있는 사이트(링크 형식)
회원가입을 하면 원하는 웹툰만 볼 수 있습니다. 

7. 무료 음악 스트리밍 사이트 
http://grooveshark.com/

로그인 하지 않아도 무제한으로 음악을 들을 수 있는 사이트입니다.
한국노래는 물론 해외의 많은 노래들도 무료로 들을 수 있습니다.

8. 공연,전시 관람료 지원해주는 <사랑티켓>
http://www.sati.or.kr/

공연의 경우 7000원, 전시의 경우 5000원의  관람료를 지원 받을 수 있는 사이트.
연간 총 10장의 사랑티켓이 부여합니다.

9. yoUeFO <유에포>
http://www.youefo.com/film

독립영화를 모아 온라인에서 상영해주는 사이트
<똥파리>양익준 감독, <추격자,황해>,나홍진 감독들의 단편영화를 볼 수 있습니다.

10. 올스타 공모전
http://www.allstarcontest.co.kr/

각종 분야의 공모전 소식들이 있는 곳입니다.
가장많은 공모전 정보가 있다해도 무방한곳.

11. 고화질 배경화면사이트
http://wallbase.cc/home

해상도, 화면비율 별로 배경화면 선택 할 수 있는 사이트
예쁜사진이 많고 최신사진도 많은 사이트.

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

12. 사진,이미지 링크시 쉽세 사용할수 잇는 사이트
http://imgur.com/

회원가입 없이도 사진업로드가능(회원가입도 이메일만요구)
이미지 많이 사용하시거나 커뮤니티 활동시 좋은 사이트

13. 유투브 영상,mp3 파일 다운 받을 수 있는 사이트
http://offliberty.com/

유부트에서 다운로드 받고 싶은 동영상 주소를 넣으면 
mp3 음악만 다운 받을 수 있고, mp4동영상으로 받을 수 있음

14. 원링 스팸번호 검색
http://www.missed-call.com/

사용자가 만들어가는 스팸전화번호 데이터베이스
자신에게 걸려온 것이 단순한 광고인지 사기성전화인지 검색이 가능하고 이미 그 전화를 받아 본 사람들의 경험도 공유

15. <베이코리언즈>
http://baykoreans.net/

TV프로그램,영화 다시보기 사이트로 로그인 필요 없음
끊김 없고 나름 봐줄만한 화질의 동영상시청이 가능
실시간 시청은 안되지만 지난회차들은 볼 수 있음.


16. <뮤직커버리>
http://musicovery.com/

내기분에 맞춰서 음악을 들을 수 있는 사이트.
장르별,감정별,년도별 음악 선택이 가능하며 랜덤으로 해당선택곡이 흐른다. 특정음악이 아닌 그냥음악듣고 싶을때 추천

17. 저작권 걱정 없는 이미지 사이트
http://pixabay.com/

이미지별로 사이즈가 전부다름. 회원가입해야 더 편하게 이용가능
생각보다 괜찮은 이미지가 많음. 검색은 영어로

18. 인기팝송 듣는 사이트 <장고>
http://www.jango.com

원하는 장르를 선택해 무작위로 노래 듣는 사이트.
아티스트를 검색하면 자동으로 비슷한 장르의 아티스트가 부른 노래를 들려준다. 
가입 후 자신만의 플레이리스트를 만들어 들을 수 있다.
모바일어플도 있음.

19. 사진 용량줄여주는 사이트
http://www.jpegmini.com

당신의 사진을 다이어트 시켜드립니다.
대용량의 사진을 화질저하없이 용량을 줄여주는 사이트.
인터넷에 사진 올릴때 용량제한있는 경우 유용하게 사용가능함.

20. 가짜석유 판매 주유소 확인 사이트
http://www.neosvc.com/maps/illegaloil/

2010년 부터 2012까지 가짜석유판매한 주유소를 지도로 볼 수 있음
자신의 집 주위에 있는지 한번 확인해보세요.
지속적으로 업데이트하는것 같네요

21. <성범죄자 알림e> 
http://www.sexoffender.go.kr/
  
성범죄자 조회뿐만 아니라 예방교육자료와 대처방법등의 정보 제공
간단한 본인인증 작업을 거쳐 성범죄자 조회가능.
한번쯤 검색해보시길 추천합니다.

반응형
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,
반응형

HTTP 에러 정리

cgi프로그래밍 후 테스트하거나 웹서핑중 종종 브라우저에 뜻하지 않는 메시지를 접하곤 합니다. 가장 많이 볼 수 있는 것들이 404 Not found나 403 Forbidden 등이 있습니다. 이들은 서버에서 보내는 사용자의 요구에 대한 응답입니다. 이러한 것들은 HTTP/1.0의 STATUS CODE라고 합니다. 즉, 이들 메시지만 잘 해독해도 많은 도움이 됩니다. 아래는 그 메시지의 설명입니다.

code : 200

reason field : OK       

의미 : 클라이언트의 request가 성공적으로 수행됐다. request처리결과로 클라이언트에게 전달되는 정보는 사용된 method에 따라서 달라진다.

reason field : GET

의미 : request가 지정한 자원이 response메세지로 전달 된다. 
                 
reason field : HEAD

의미 : response메세지에는 요청된 자원에 관한 정보를 나타내는 header만이 포함된다. 
                 
reason field : POST

의미 : 지정된 동작의 수행결과를 포함하거나 결과를 설명하는 엔터티가 전달된다. 
                

code : 201

reason field : Created

의미 : request가 처리되었고 그 결과로 새로운 자원이 생성되었다. 생성된 새로운 자원을 나타내는 URI 값이 response메시지로 전달된다. 서버가 이와 같은 status code(상태코드)를 클라이언트에게 전달하기 위해서는 새로운 자원을 먼저 생성시켜야 한다. response메시지를 전달 할때까지 새로운 자원이 생성되지 못하면 status code 202(Accepted)를 보내야 한다. POST method만이 서버에 새로운 자원을 생성시킬 수 있다. 
                 
code : 202

reason field : Accepted

의미 : request가 수락되었으나 response메시지를 전달할 때까지 그 프로세싱이 완료되지 못했으며 또한 언제까지 request의 수행결과를 사용자가 볼 수 있을지를 확실히 판단할 수 없다. 이와 같은 status code는 request가 수락된 것(accepted)만을 나타낼뿐 궁극적으로 그 request가 처리될 것이라는 보장 할 수 없을 때 사용된다. status code 202는 Web  브라우저와 같이 서버의 처리결과를 전달받을 때까지 계속 기다리게 되는 클라이언트를 위한 것은 아니다. WEb브라우저와는 다른 일종의 batch프로세서(하루에 한번정도 실행되는)의 request를 서버가 받아들일 수 있도록 하기위한 것이다. 
                 
code : 204

reason field : No Content

의미 : 서버가 request를 처리했지만 클라이언트에게 전달할 새로운 정보가 없다. 이 status code를 전달받는 Web브라우저는 현재 디스플레이 중인 내용을 변경시키지 않아야 한다. 이 code를 정의한 주된 목적은 현재 디스플레이 중인 문서의 내용을 변경시키지 않으면서 CGI스크립트 등에 입력을 전달할 수 있도록 하기 위해서이다. 
                 
code : 300

reason field : Multiple

의미 : HTTP/1.0을 사용하는 경우에는 이 code가 직접적으로 사용되지는 않는다. 다만, 3xx클래스에 속하는 status code의 디폴트값으로 사용된다. 그 의미는 301, 302, 304만이 HTTP/1.0에 정의되어 있으므로 그 외의 status code값을 전달받는 경우에는 300으로 간주한다는 의미가 되는 것이다. 
                 
code :301

reason field :  Moved

의미 : 요청된 자원의 URI값이 완전히 변경되었으므로 앞으로는 새로운 URI값을 사용하여야 한다. 새로운 URI값은 Location(위치)헤더를 통해서 클라이언트에게 전달된다. 또한 HEAD method를 제외한 모든 경우에 response메시지의 entity(실재) body를 통해서 새로운 URI의 하이퍼링크를 포함 하는 짧은 메시지를 전달해 주어야 한다. Web브라우저는 POST method를 사용한 request의 결과로 301 status code를 전달받는 경우에는 자동으로 새로운 URI에 접속해서는 안된다. 반드시, 사용자의확인을 거쳐야 한다. 
                 
code :302

reason field : Moved

의미 : 요청된 자원의 URI값이 임시로 변경되었다. 따라서 추후  Temporarily(임시폴더)에도 현재의 URI값을 계속 사용하여야 한다. 새로운 URI값은 Location헤더를 통해서 클라이언트에게 전달된다. 또, HEAD method를 제외한 모든 경우에 response메시지의  entity body를 통해서 새로운 URI의 하이퍼링크를 포함하는 짧은 메시지를 전달해 주어야 한다. Web브라우저는 POST method를 사용한 response의 결과로 302 status code를 전달받는 경우에는 자동으로  새로운 URI에 접속을 해서는 안된다. 반드시 사용자의 확인을 거쳐야 한다. 
                  
code : 304

reason field : Not

의미 : conditional GET method가 사용된 경우에 전달된다. Modified  request를 처리한 결과 If-Modified-Since헤더에 지정된 날짜/시간 이래로 지정된 문서가 변경된 사실이 없는 경우 서버는 이 status code로 응답해야 한다. 이때, entity body는 전송되지 않는다. reseponse메시지로 전달되는 헤더들은 주로 cache와 관련된 정보를 포함하게 된다. cache manager(대개의 경우는 Web브라우저 자체에 그 기능이 포함된다)는 304 response에 포함된 헤더의 값을 cache된 entity들에 반영할 수 있도록 하여야 한다. 
                 
code : 400

reason field : Bad Request

의미 : request메시지의 syntax(체계, 배열)가 잘못되어서 서버가 request를 처리할 수 없다. 재접속을 하는 경우에 클라이언트는 반드시 올바른 request메시지를 사용해야 한다. 
                  
code : 401

reason field : Unauthorized 
의미 : request가 user quthentication을 필요로 한다는 것을 클라이언트에게 알려주기 위해서 사용된다. WWW-Authenticate(인증하다, 증명하다)헤더를 통해서 요청된 자원에 적용되는 challenge를 전달한다. 401 response를 받은 클라이언트는 적절한 Authorization credentials(위임장)를 포함하는 Authorization헤더와 함께 다시 request메시지를 전송한다. request메시지에 그와 같은 Authorization credentials이 포함된 경우에 401 status code가 전달되면 user authentication이 실패한 것을 나타낸다. 
                 
code : 403

reason field : Forbidden

의미 : 서버가 request의 처리를 거절하는 것을 나타낸다. 이와 같은 응답을 받은 경우에는

동일한 request를 반복하지 말아야 한다. 왜냐하면 무조건 request가 거절되는 것이기 때문이다. 403 status code는 request를 거절하는 이유를 명시적으로 밝히고 싶지 않거나 적절한 status code가 없을때 사용된다. 
                  
code : 404

reason field : Not Found

의미 : Request-URI에 해당하는 자원을 찾을 수 없을 경우에 사용된다.

그런 상태가 일시적인 것인지 아니면 언제나 그렇게 되는지를 나타내는 어떤 정보도 전달되지 않는다. 이런 상태를 클라이언트에게 알리고 싶지 않은 경우에는 403 code를 대신 사용해도 된다. 
                  
code : 500

reason field : Interna

의미 : 서버프로그램에서 예기치 않은 오류가 발생하여서 request Srever Error  를 처리할 수 없다. 
                  
code : 501

reason field : Not

의미 : request를 처리하기 위해서는 필요한 기능을 서버가 갖추고 Implemented(충족시키다)있지 못하다. 
                  
code : 502

reason field : Bad

의미 : gateway나 proxy로 동작하는 서버가 사용하는 것으로 자신 Gateway의 위쪽에 있는 서버로 부터  잘못된 response메시지를 전송 받았다는 것을 나타낸다. 
                  
code : 503

reason field : Service

의미 : 과부하나 서버 maintenance(유지, 보존) 때문에 서버가 잠시동안 request Unavailable(요청불가능)를 처리해 줄 수 없는 상태에 있다.


반응형

'Reference > 스크랩' 카테고리의 다른 글

[스크랩] L4/L7 스위치 개요 (로드밸런서)  (0) 2014.06.18
ajaxplorer 사용법  (0) 2013.07.07
[스크랩]ajaxplorer  (1) 2013.07.04
루씬 개요  (0) 2013.01.07
[스크랩] 웹표준화 관련 Tip  (0) 2012.11.27
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,
반응형

메이븐 설명

 Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.


메이븐 
기능

  - 빌드
  - 문서화
  - 리포팅
  - 의존관계 관리
  - 소스코드 관리
  - 릴리즈
  - 배포

메이븐 사용시 이점
  - 의존성 관리 (오픈소스 라이브러리 뿐만 아니라 프로젝트 혹은 무듈간의 의존성 또한 관리가 가능함)
    + Java 개발자의 중요한 능력중에 하나는 오픈소스 라이브러리 혹은 프레임워크의 사용능력이라 생각된다. Java를 사용하여 S/W를 개발하는 경우 다양한 오픈소스 라이브러리를 사용하게 되는데... Maven의 의존성 관리를 이용하면 손쉽게 오픈소스 라이브러리들의 의존성을 관리할 수 있다.
  - 잘 정의된 convention에 의해서 일관된 프로젝트 구성을 갖을 수 있다.
  - IDE에 종속적인 부분을 제거할 수 있다. (Eclipse, IntelliJ, NetBeans, JBuilder, JCreator, JDveloper)
  - 이클립스를 사용하는 경우 maven 이클립스 플러그인을 사용하면 의존성을 갖는 오픈소스의 소스 코드를 F3키를 사용하여 아주 쉽게 확인할 수 있다. (다른 IDE는 사용하지 않아서 잘 모름...)

  - Maven을 알면 Java를 이용한 많은 오픈소스 프로젝트들이 Maven 프로젝트로 구성되어 있어 오픈소스를 분석할 때 편리하다.
    + 코딩 스킬을 향상시키기 가장 좋은 방법중에 하나는 좋은 소스코드를 많이 읽오보는 것이다!!!
  - Maven Profile 기능을 사용하면 배포환경에 따른 설정 파일을 관리하고 배포 파일을 생성할 수 있다. 
  - 의존 라이브러리를 pom.xml 파일을 통해서 관리하므로 버전(형상)관리 시스템으로 공유할 파일의 크기가 줄어든다. 



메이븐 단점
  - maven은 현재 3.x.x 버전까지 왔지만 일부의 기능에서 예상외로 동작하는 경우가 있다. (버그인건지 내가 몰라서 그러는건지?? 누가좀 알려줬으면 한다. ㅠ.ㅠ)
    
 + Oracle JDBC Driver 때문에 Local 저장소가 깨진 경우 가 있었는데... 수작업으로 Local저장소를 정리해줘야만 했다. (완전 삽질함...)
  -
 이클립스의 maven 플러그인인 m2e가 가끔 원하는데로 동작을 안한다.

메이븐 설치
  - http://maven.apache.org/download.html에서 메이븐 최신 버전을 다운 받는다. 
  - 다운받은 압축파일을 원하는 경로에 풀어 놓고, 해당 경로를 시스템 환경 변수에 "MAVEN_HOME" 을 추가한다.
  - 시스템 환경 변수 "PATH"에 "MAVEN_HOME/bin"을 추가한다. (mvn 명령을 편하게 사용하기 위함)
 * 참고로 maven의 기본 Local 저장소 위치는 "USER_HOME/.m2" 이며,
   maven 중앙 저장소는 "http://repo1.maven.org/maven2/" 임.

Maven 설정 파일
  - MAVEN_HOME/settings.xml : 모든 사용자에 적용되는 전역적인 메이븐 설정 정보
  - USER_HOME/.m2/setting.xml : 특정 사용자에 적용되는 메이븐 설정 정보
  - pom.xml : 메이븐 프로젝트 설정 파일
    + 메이븐은 프로젝트와 관련된 정보를 Project Object Model (이하 POM)이라는 이름으로 정의하고 있으며, POM의 이름을 따서 기본 설정 파일은"pom.xml" 파일이다. (다른 이름도 사용할 수 있지만... 일반적인 관례를 따르는게 편하고 협업하기도 좋다고 생각함.)

Maven 기본 명령어
 - maven [options] [<goal(s)>] [<phase(s)>] 

메이븐 POM 설정 파일
 - 프로젝트 기본 정보
  + 프로젝트 이름, URL, 개발자, 라이선스 등등
 - 빌드 설정
  + 기본 빌드 설정을 변경하기 위한 카테고리 (소스, 리소스 디렉토리 변경, 플러그인 설정 변경 및 플러그인 추가)
 - 프로젝트 관계 설정
  + 각 프로젝트간의 관계 관리 혹은 모듈간의 의존성 관리
 - 빌드 환경
  + 다양한 환경에 따라 달라지는 설정 정보를 관리 (프로파일 기능)
 - 속성 정보 관리
  + pom/project 속성, settings 속성, 시스템 환경 변수 속성, 자바 시스템 속성등을 정의 또는 사용할 수 있다.
 - 메이븐은 기본적인 프로젝트 디렉토리 구조와 플러그인 정보를 포함하고 있는 POM설정파일을 제공하며 모든 POM 설정 파일은 해당 설정파일을 상속한다. (해당 설정 파일은 메이븐에 포함되어 있는 jar 파일을 통하여 배포된다.)

메이븐 라이프사이클
 - 메이븐은 미리 정의하고 있는 빌드 순서를 라이프사이클 이라고 하며, 라이프사이클의 각 빌드 단계를 페이지라고 한다.
 - 라이프사이클은 여러 단계(페이즈)로 나뉘어져 있으며, 각 페이즈는 의존 관계를 갖는다.
 - 기본 라이프 사이클
  + compile : 소스 코드를 컴파일한다
  + test : 단위 테스트 실행 (기본설정은 단위 테스트가 실패하면 빌드 실패로 간주함)
  + package : 컴파일된 클래스 파일과 리소스 파일들을 war 혹은 jar와 같은 파일로 패키징
  + install : 패키징한 파일을 로컬 저장소에 배포 (USER_HOEM/.m2/)
  + deploy : 패키징한 파일을 원격 저장소에 배포 (nexus 혹은 maven central 저장소)
 - clean 라이프 사이클
  + clean : 메이븐 빌드를 통하여 생성된 모든 산출물을 삭제한다.
 - site 라이프 사이클
  + site : 메이븐 설정파일 정보를 활용하여 프로젝트에 대한 문서 사이트를 생성한다.
  + site-deploy : 생성한 문서 사이트를 설정되어 있는 서버에 배포

메이븐 페이즈와 플러그인
 - 메이븐에서 제공하는 모든 기능은 플러그인 기반으로 동작한다. 메이븐 라이프사이클에 포함되어 있는 페이즈 또한 플러그인을 통하여 실직적인 작업이 실행된다. 
 - <bild>/<plugins>/<plugin> 엘리먼트를 사용하여 사용하고자 하는 플러그인을 추가 및 설정 할 수 있다. 
 - 메이븐 플러그인은 하나의 플러그인에서 여러 작업을 수행할 수 있도록 지원하며, 플러그인에서 실행할 수 있는 각각의 작업을 goal 이라고 정의한다.
 - 플러그인 goal 실행 방법 
  + mvn groupId:artifactId:version:goal 
   * 사용하기 완전 구리다 언제 저런걸 다 외우고 있어!!!
   * 그래서 친절한 메이븐은 플러그인을 좀더 쉽게 사용할 수 있도록 다은과 같은 규칙이 있다.
 - 로컬 저장소에 설치되어 있는 가장 최신 버전의 플러그인을 실행하기 원한다면 version 정보 생략가능
 - artifactId가 'maven-$name-plugin' 과 '$name-maven-plugin' 규칠을 따른다면 groupId:$name:goal 형식으로 실행할 수 있다.
 - 메이븐의 중앙 저장소에 위치한 플러그인을 찾기 위한 groupId 목록을 settings.xml 파일에서 관리하며, 해당 groupId에 속해 있으면, groupId 를 생략할 수 있다. ($name:goal 형태이며, 기본설정만으로 왠만한 플러그인들은 groupId를 생략해서 사용한다.) 
 - 페이즈와 플러그인 관계
  + 각 페이즈의 작업은 메이븐에서 기본으로 포함하고 있는 각 플러그인의 골을 이용해서 수행한다. 
 - 메이븐 플러그인을 검색하고 사용방법을 확인할 수 있는 곳 (아래에도 없다면 구글 검색이 짱!!!)
  + http://maven.apache.org/plugins/index.html
  + http://mojo.codehause.org/plugins.html 

메이븐을 이용한 의존성 관리
 - 메이븐의 핵심 기능중에 하나이며, 개발자들이 제일 좋아하는 기능이지만 문제가 발생한 가능성이 가장 높은 기능이기도 하다. (ㅠ.ㅠ) 따라서 해당 기능을 잘 이해해야 메이븐을 편하게 잘 사용할 수 있다. 그렇지 못하면 메이븐을 열라 욕하게 될 것 이다. (메이븐 구려서가 아니라 내가 메이븐을 잘 못 이해했기 때문!!!)
 - 메이븐 저장소 구성
  + 중앙 저장소 : 오픈소스 라이브러리, 메이븐 플러그인, 메이븐 아키타입을 관리하는 저장소이다. 중앙 저장소는 개발자가 임의로 라이브러리를 뱁포할 수 없다. 
  + 원격 저장소 : 메이븐 중앙 저장소이 외에 각각의 회사 혹은 오픈소스 재단에서 운영 관리하는 저장소 
   ex) http://maven.springframework.org (sprintsource), http://mesir.googlecode.com/svn/trunk/mavenrepo (ojdbc), http://192.168.1.46:5050/nexus (사내 maven 저장소)
  + 로컬 저장소 : 메이븐을 빌드할 때 다운로드하는 라이브러리, 플러그인을 관리하는 개발자 PC의 저장소 (USER_HOME/.m2)
 - 메이븐 저장소 설정 (xml 파일예제..)
 - 메이븐 의존성 관리
  + <dependencies>/<dependency> 엘리먼트를 사용하여 의존성을 관리하며, 의존 라이브러리의 groupId, artifactId, version, scope 정보들을 갖는다.
 - 메이븐 의존성 정보에서 scope 설명
  + compile : 기본 scope, 컴파일 및 배포할 때 같이 제공해야 하는 라이브러리
  + provided : servlet.jar 와 같이 컴파일 시점에는 필요하지만 배포할 때에는 포함되지 말아야 하는 라이브러리
  + runtime: 컴파일 시에는 사용되지 않지만 실행환경에서 사용되어지는 라이브러리
  + test : JUnit과 같이 테스트 시점에만 사용되는 라이브러리
  + system : provided와 비슷하다. 단지 우리가 직접 jar 파일을 제공해야 한다. 따라서 이 scope의 jar 파일은 저장소에서 관리되지 않을 수도 있다.
  + import : 다른 POM설정 파일에 저의되어 있는 의존 관계 설정을 현재 프로젝트로 가져온다.
 - 의존성 전이
  + 오픈소스 프레임워크를 의존성에 추가하며, 해당 프레임워크가 의존하고 있는 오픈소스 라이브러리 또한 의존 관계에 자동으로 포함된다. 
  + 의존성 전이 기능은 프로젝트의 의존성을 편리하게 관리할 수 있도록 도와주기도 하지만 불필요한 라이브러리가 추가되거나 의존성이 꼬이게 만드는 원인이 되기도 한다. 
 - 의존성 전이에 대한 설정 변경기능
  + 의존성 중개 : 버전이 다른 두개의 라이브러리가 의존 관계에 있다면 메이븐은 더 가까운 의존 관계에 있는 pom 설정의 버전과 의존관계를 갖는다. 예를 들어 A 프로젝트가 A -> B -> C -> D2.0 버전, A -> E -> D1.0 버전의 의존 관계가 발생한다면, A 프로젝트는 D1.0 버전과 의존 관계를 갖는다. 만약 D2.0 버전을 사용하고 싶다면 A 프로젝트의 메이븐 설정 파일에 명확하게 의존 관계를 명시해야 한다. (A -> D.20)
  + 의존성 관리 : <dependencyManagement> 엘리먼트를 사용하여 의존 관계에 있는 라이브러리와 버전을 명시적으로 정의한다. 
  + 의존성 예외 : <exclusion> 엘리먼트를 활용하여 의존성 전이를 예외처리한다.
  + 기타 : 의존성 스코프, 선택적 의존성 등의 기능이 있음

Maven 기반의 프로젝트 생성
 1. mvn 명령어를 이용해서 템플릿 프로젝트 생성
 $ mvn archetype:generate -DgroupId=com.uangel -DartifactId=maven -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false  
 $ mvn archetype:generate -DarchetypeCatalog=internal  
  + 일반적으로 groupId는 생성하는 프로젝트의 도메인명을 사용하며, artifactId는 프로젝트 이름을 사용한다.

 2. 이클립스와 m2e 플러그인을 사용하여 maven 프로젝트 생성 (아마도 제일 쉬운 방법) 
  + m2e 플러그인 Update URL : http://download.eclipse.org/technology/m2e/releases/1.0/1.0.100.20110804-1717
  + m2e 플러그인 설치 후 "Window > Perferences > java > Build Path > Classpath Variables" 에 "M2_REPO" 설정 추가 확인
  + 가장 간단한 maven-archetype-quickstart 아키타입 프로젝트 생성 

 3. 수작업 (maven을 잘 이해하고 있다면 그리 어렵지 않게 세팅 가능)
  - pom.xml 파일 생성, pom.xml 파일 설정에 맞게 디렉토리 생성... 

웹서비스 개발을 위한 Maven 프로젝트 구성 및 IDE(이클립스) 통합
 - 이클립스와 m2e 플러그인을 사용하여 프로젝트 생성
  + "File > New > Other... > Maven Project > Next > maven-archetype-webapp 아키타입선택 > ..."
  + "프로젝트 선택 > 우클릭 > Maven > Update Project Configuration..." 선택 (pom.xml 파일 수정시 이클립스 프로젝스 설정에 반영되도록 설정)
 - 웹 리소스 디렉토리 경로 변경 (src/main/webapp --> webapp)
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<warSourceDirectory>webapp</warSourceDirectory>
<warName>maven-test-web</warName>
</configuration>
</plugin> 
 - maven eclipse 플러그인 설정 추가
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.8</version>
<configuration>
<downloadSource>true</downloadSource>
<downloadJavadocs>true</downloadJavadocs>
<wtpversion>2.0</wtpversion>
<wtpContextName>/</wtpContextName>
</configuration>
</plugin>
</plugins> 
- Java 소스 디렉토리 및 리소스 디렉토리 생성
  + src/main/java
  + src/main/resources
  + src/test/java
  + src/test/resources
- 메이븐 eclipse 플러그인 실행 (위에서 추가한 설정 및 디렉토리를 m2e 가 제대로 반영하지 못함!!!)
  + mvn eclipse:clean  eclipse:eclipse 

- 생성되어 있는 Maven Project Import 방법
  + Existing Maven Projects
  + Check out Maven Projects from SCM

메이븐 프로파일 기능
 - 메이븐은 서로 다른 환경에 따라 달라지는 설정을 다르게 관리할 수 있는 프로파일 기능을 제공한다. 
 - 프로파일은 <profiles> -> <profile> 엘리먼트를 사용하여 설정할 수 있으며, <project> 루트 엘리먼터가 가질 수 있는 모든 엘리먼트를 설정할 수 있다.  
 - 프로파일에 따른 설정 예제
 <profiles>
<profile>
<id>local</id>
                <!-- 기본 Profile 설정 --> 
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<environment>local</environment>
</properties>
<dependencies>
<!-- JDBC Driver -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version>
</dependency>
</dependencies>
</profile>

<profile>
<id>development</id>
<properties>
<environment>development</environment>
</properties>
<dependencies>
<!-- JDBC Driver -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>service</id>
<properties>
<environment>service</environment>
</properties>

<dependencies>
<!-- JDBC Driver -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.1.0.7.0</version>
</dependency>
</dependencies>
</profile>
</profiles>

<build>
        <!-- Profile 기능을 이용한 리소스 관리 -->
<resources>
<resource>
<directory>src\main\resources</directory>
</resource>
<resource>
<directory>src\main\resources-${environment}</directory>
</resource>
<resource>
<directory>src\main\java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
</build> 
 - 메이븐 사용시 프로파일 지정
  + mvn -P<profile_id> pahse[s] goal[s]
  ex) mvn -Pdevelopment clean package  // 개발서버에 배포할 패키지 파일 생성
        mvn -Pservice clean package  // 상용 서버에 배포할 패키지 파일 생성
 
메이븐 모듈
 - 메이븐은 하나의 프로젝트에서 여러 모듈을 관리할 수 있는 기능을 지원한다. 
 - 일반적으로 서비스를 개발하게 되면 관리자 페이지 혹은 CMS(Content Management System) 과 고객 혹은 가입자에게 서비스 제공을 위한 Web Module이 분리가 되며, 두개의 모듈이 핵심 비지니스 로직을 공유하게된다. 이런 경우 메이븐의 모듈 기능을 이용하면 유용하다. 
 - 메이븐의 모듈 개념을 이해하고 활용하려면 상속, 집합, 의존 관계 개념을 이해해야 한다.
 - 상속
  + 프로젝트에서 공통으로 사용하는 설정은 공통 POM 파일을 만들어 관리하고 하위 모듈에서 이 POM파일을 상속할 수 있다. 
 * 부모 POM 파일
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>net.javajigi</groupId>
  <artifactId>wikibook</artifactId>
  <packaging>pom</packaging> 
  <version>1.0-SNAPSHOT</version>
  [...]
</project>
 
 * 부모 POM 파일을 상속하는 자식 POM 파일
 <project>
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>net.javajigi</groupId>
    <artifactId>wikibook</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <groupId>net.javajigi</groupId>
  <artifactId>wiki-web-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  [...]
</project>

반응형
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,
반응형

<대문자 조작 함수>

 

 

- LOWER : 대소문자 또는 대문자 문자열을 소문자로 변환합니다.

- UPPER : 대소문자 또는 소문자 문자열을 대문자로 변환합니다.

- INITCAP : 각 단어의 첫 문자를 대문자로, 나머지 문자는 소문자로 변환합니다.

 

 

 

 

<문자 조작 함수>

 

 

 

- CONCAT : 값을 결합합니다. CONCAT에는 파라미터를 두 개만 사용할 수 있습니다.

- SUBSTR : 지정한 길이의 문자열을 추출합니다.

- LENGTH : 문자열의 길이를 숫자 값으로 표시합니다.

- INSTR : 지정한 문자의 위치를 숫자로 표시합니다.

- LPAD : 문자값을 오른쪽으로 정렬하고 빈 곳을 지정한 문자열로 채웁니다. 

- RPAD : 문자값을 왼쪽으로 정렬하고 빈 곳을 지정한 문자열로 채웁니다.

- TRIM : 문자열에서 접두어나 접미어 또는 두 가지 모두를 자릅니다.


반응형

'코드자료실 > database' 카테고리의 다른 글

[oracle] spfile 복구방법  (0) 2013.03.13
[oracle] 리눅스에서 덤프파일 사용  (0) 2013.03.12
[oracle] delete data 복구  (0) 2013.02.12
[database] varchar2 vs nvarchar2  (0) 2013.01.25
[Oracle] 페이징 쿼리  (0) 2012.12.23
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,
반응형

가끔가다 WAS가 뻑났는지, Ant가 맛이 갓는지 컴파일이 안되서 작업이 곤란한 경우가 있다.


아마도 WAS 문제일 확률이 크다.


이럴때는 프로젝트에서 properties > java bulid path > Libraries > WAS를 remove 해주고

다시 Add Library > Server Runtime > WAS 선택 후 추가해주면 된다.


다음부턴 이런 문제가 발생해서 시간끄는일이 없기를..

반응형
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,
반응형


반응형
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,
반응형

- 폴링이란? 

통신에서, "폴링"은 한 프로그램이나 장치에서 다른 프로그램이나 장치들이 어떤 상태에 있는지를 지속적으로 체크하는 전송제어 방식으로서, 대체로 그들이 아직도 접속되어 있는 지와 데이터 전송을 원하는지 등을 확인한다.

쉽게 말해서 Status Bar, Dash Board 등에 쓰이는 실시간처리 방식이다.

환경은 다양할 수 있다. 예를 들면 JSP 에서 response.setIntHeader를 사용하여 Auto Refresh 처리를 해주게 되면 이역시 폴링이다. 하지만 누가 요즘에 Refresh 방식의 폴링을 선호할까.. 아래는 Jquery 의 Ajax 기법을 통한 Polling 예제이다.

Traditional Polling

The setInterval Technique
setInterval(function(){
    $.ajax({ url: "server", success: function(data){
        //Update your dashboard gauge
        salesGauge.setValue(data.value);
    }, dataType: "json"});
}, 30000);

위의 소스는 전통적인 폴링 기법중  setInterval 을 사용한 기법으로 매 30초간 정해놓은 이벤트를 출력한다. 하지만 서버의 응답이 30초 보다도 더 느려질경우엔? 

어찌보면 이 기법은 도박이다. 반응성이나 사양이 좋지않은 서버나 네트워크 전체의 호스트를 고려한다면.. 이러한 할당된 시간에 리턴값이 오지않는 위험은 사전에 예방되어야한다. 최악의 경우 당신은 같은 호출안에서 Ajax 큐의 배열이 다 뻗어버릴 수 있다. Anyway,  별로 좋지않다.


The setTimeout Technique

(function poll(){
   setTimeout(function(){
      $.ajax({ url: "server", success: function(data){
        //Update your dashboard gauge
        salesGauge.setValue(data.value);

        //Setup the next poll recursively
        poll();
      }, dataType: "json"});
  }, 30000);
})();

이 기법은 settimeout을 통한 재귀호출방식인데 좋은점은 시간의 사이마다 무슨일이 일어났는지 파악하기 쉽다는점이다. 음 장단점은 있기 마련인데 Manual을 봐도 이해하기가 힘들다. 아래의 원문으로 읽으면 좋을것같다.

As you can see, jQuery's Ajax call can take as long as it wants to. So, this pattern doesn't guarantee execution on a fixed interval per se. But, it doesn't guarantee that the previous interval has completed before the next interval is called.


두가지 방식다 단점이 있고 감수해야하는 위험이 있다. 그래서 결과적으로 우리가 도입해야하는건 Long Polling 기법. 사실 위의 내용은 그닥 필요없고 이것만 보고 도입하면 된다.

Long Polling - An Efficient Server-Push Technique

(function poll(){
    $.ajax({ url: "server", success: function(data){
        //Update your dashboard gauge
        salesGauge.setValue(data.value);

    }, dataType: "json", complete: poll, timeout: 30000 });
})();

 데이터베이스 처리중 커넥션 풀 기법이 있는데 비슷한 개념이다. 서버와 접속을 열어둔 상태에서 요청이 오면 바로 바로 처리한다. 요청이 없을시에는 리소스를 거의 먹지않는다. 아래의 원문을 보면 이해가 쉬울 것 같다.

Applications built with Long Polling in mind attempt to offer realtime interaction, using a persistent or long-lasting HTTP connection between the server and the client.

The self executing JavaScript poll function combined jQuery Ajax's repeating timeout interval means this is a very efficient server-push technique.


정리를 했지만 쉽지않다. 쉽게 이해하면 일반 커넥션과 커넥션 풀의 차이? 그리고 Jquery Ajax 경우 Long Polling에 최적화되어 있다.


출처 : http://tkjeon.tistory.com/6

반응형

'코드자료실 > javascript' 카테고리의 다른 글

[jquery]onload 시점  (0) 2014.09.29
[jquery] ie7, ie6 json is undefined  (0) 2013.03.13
[jquery] jsonp 사용  (0) 2013.01.24
[jquery] jquery ui tabs  (0) 2013.01.16
[자바스크립트] 문자>수치, 수치>문자 변환  (0) 2012.12.23
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,
반응형

실수로 delete하고 커밋했을시,

오라클의 flash back이라는 기능을 통해 지운 데이터를 조회할 수 있다.


SELECT * FROM T_NAME

AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '10' MINUTE);



1. Flashback Query : 특정시간 이전의 Data 에 대해서 검색할 때

-> UNDO Data 를 기준으로 검색

1) 과거의 데이터 값 조회
     SELECT employee_id, salary FROM employees
      AS OF TIMESTAMP t1
      where emplooyee_id = 200

2) 특정 시험의 값을 이용하여 값을 수정 (서브쿼리 활용)
     UPDATE employees SET salary = 
                  (SELECT salary FROM employees
                  AS OF TIMESTAMP TO_TIMESTAMP
                  ('2005-05-04 11:00:00', 'yyyy-mm-dd hh24:mi:ss')
                  WHERE employee_id = 200)
     WHERE employee_id = 200

3) 기간을 정해서 검색 (VERSIONS BETWEEN)
    SELECT versions_xid, salary FROM employees
    VISIONS BETWEEN TIMESTAMP t1 AND t2
    WHERE employee_id = 200;
         
2. Flashback Transcation Query : UNDO SQL을 조회하는 기능

반응형

'코드자료실 > database' 카테고리의 다른 글

[oracle] 리눅스에서 덤프파일 사용  (0) 2013.03.12
[oracle] 문자 조작 함수  (0) 2013.02.20
[database] varchar2 vs nvarchar2  (0) 2013.01.25
[Oracle] 페이징 쿼리  (0) 2012.12.23
[Oracle] DATE 포맷 변경  (0) 2012.12.23
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,
반응형





반응형

'IT > 공모전 정보' 카테고리의 다른 글

2013 이매진컵 러시아  (0) 2013.01.06
블로그 이미지

cocy

조금은 가볍게! 시작은 새롭게!

,