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

  1. 2014.01.03 [펌] CentOS 파티션 1
  2. 2014.01.03 [펌] sts에서 maven 오류
  3. 2014.01.03 [펌] ArtifactDescriptorException: Failed to read artifact descriptor for xxx
  4. 2014.01.02 [펌] centos iso 파일종류
  5. 2014.01.02 [링크]CentOS 6.3 설치하기
  6. 2014.01.02 [펌] [CentOS 6.4] USB 설치하기
  7. 2013.12.31 [펌] Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (execution: default-testCompile, phase: test-compile)
  8. 2013.12.31 [펌] Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom 1
  9. 2013.12.30 [펌] Sequence Cache 문제점
  10. 2013.12.26 [펌] 구글 크롬 Https:// 보안 경고 창에 대하여~!
  11. 2013.12.24 How to play audio on website without quicktime?
  12. 2013.12.24 HTML - The <object> Element
  13. 2013.12.24 [펌] [jQuery] 제이쿼리(jQuery) 플러그인 목록 모음
  14. 2013.12.24 jquery browser 확인
  15. 2013.12.24 jquery in browser
  16. 2013.12.24 autoplay a wav file on html code
  17. 2013.12.23 HTTP 상태 코드
  18. 2013.12.23 Gecko DOM 레퍼런스
  19. 2013.12.23 [펌] 객체 직렬화란?
  20. 2013.12.03 flex 843 보안정책서버 예제
  21. 2013.11.20 [펌]eclipse 에서 java.lang.OutOfMemoryError 발생 시 조치 방법
  22. 2013.11.18 Eclipse SVN synchronize problem
  23. 2013.11.07 [펌] LAF/J II
  24. 2013.11.07 jqGrid
  25. 2013.11.06 flex 에 jsp 페이지 삽입 iframe
  26. 2013.11.04 [펌] flex에서 font 사용하기 2
  27. 2013.11.01 [펌] Flex 줄바꿈 처리 2
  28. 2013.10.31 flex textarea 개행문자
  29. 2013.10.04 javascript 자식창에 파라미터 전달 및 부모창 호출
  30. 2013.10.01 flex 개행문자 제거
98..Etc/centos2014. 1. 3. 11:09
반응형

1. 디스크 파티션을 설정합니다. 웹서버를 사용할 목적이기에 파티션을 수동으로 잡습니다.

[사용자 레이아웃 만들기] 체크 하고 [다음] 클릭.


2. [만들기] 클릭 하고 [표준 파티션] 체크 하고 [생성]을 클릭합니다.

 

3. 순서는 상관없습니다. 저는 가상메모리로 사용될 "swap" 파티션 부터 잡아줬습니다.

[파일시스템 유형]에서 swap을 선택한후 용량은 자신의 RAM의 1.5 ~ 2배로 잡아줍니다.

저는 1024MB 이기 때문에 2048로 설정하고 [확인] 클릭.

 

4. swap 파티션이 설정되었습니다. [만들기] 클릭.

 

 

5. [/boot]는 부팅 시 부팅가능한 커널 이미지 파일의 공간입니다. 마운트 지점에 [/boot]를

선택하고 용량은 100MB로 설정합니다. 그리고 [첫번째 파티션으로 만듦] 을 체크합니다.

- 부팅 시 필요한 정보들의 공간임으로 많은 용량은 낭비입니다.

그리고 꼭 [첫번재 파티션 만듦] 체크하고 [확인] 클릭.

 

6. boot 파티션이 최상위로 설정 되었습니다. [만들기] 클릭.

 

7. root 파티션 설정입니다. 마운트 시점을 [ / ]선택 후 3072(3GB)로 설정후 [확인] 클릭.

 

8. root 파티션이 설정 되었습니다. [만들기] 클릭.

 

9. [/usr] 파티션 설정입니다. [마운트 지점] 에서 [/usr] 선택합니다.

시스템에 필요한 바이너리 파일, 라이브러리 파일, 커널 등 모여 있는 공간임으로 용량이

많이 필요하게 됩니다. 저는 8192(8GB)로 설정하였습니다.

 

10. usr 파티션이 설정 되었습니다. [만들기] 클릭.

 

11. [/var] 파티션 설정입니다. [마운트 지점]에서 [/var] 선택 합니다.

시스템 Log 들이 들어 있는 공간이고 웹서버의 기본적인 디렉토리 위치 및 메일서버에서

수신된 e-mail이 저장되는 공간입니다. 저는 4096(4GB)로 설정 하였습니다. [확인] 클릭.

 

12. var 파티션이 설정되었습니다. [만들기] 클릭.

 

13. [/tmp] 파티션 설정입니다. [마운트 지점]에서 [/tmp] 설정 합니다.

임시파일이 저장되는 공간입니다. /var 와 같은 크기로 설정합니다. [확인] 클릭.

 

14. [/data] 파티션 설정입니다. [마운트 지점] 에서 [/data] 선택 합니다. 백업하기 위한

파티션입니다. DB 서버로 사용할 경우에는 데이터가 누적되기 때문에 용량이 커야 됩니다.

저는 웹서버 이기때문에 2048(2GB) 설정 후 [확인] 클릭.

- 웹 서버 이용자 : [/data] 파티션 2GB 설정 후 [/home] 파티션에 남은 용량 모두 설정.

- DB서버 이용자 : [/home] 파티션 2GB 설정 후 [/data] 파티션에 남은 용량 모두 설정.

 

15. data 파티션이 설정되었습니다. [만들기] 클릭.

 

16. [/home] 파티션 설정입니다. [마운트 지점] 에서 [/home] 선택 합니다.

[가능한 최대 용량으로 채움]을 선택 한 후 [확인] 클릭.

 

17. 모든 파티션 설정이 끝이 났습니다. 확인 해보시고 확인 후엔 [다음] 클릭.

 

18. 설정한 파티션을 포맷할것인지 질문하는 창입니다. [포맷] 클릭.

 

19. 파티션을 디스크에 기록할 것인지 질문하는 창입니다. [디스크에 변경 사항 기록] 클릭.

 

20. 부트 로더 설정입니다. 부팅 시 CentOS에 로그인하기 전 비밀번호를 설정하는 것입니다.

비밀번호를 까먹으면 모든 데이터가 날아간다고 생각 하시면 되겠습니다.(찾질못하여)

개인적인 용도로 사용할 시에는 설정 할 필요가없습니다.

 

21. 웹서버용으로 시작하였지만 [Desktop]으로 체크한 아직까지 윈도우에 익숙하기 때문에

콘솔창에서 하다가 안되는 부분이 생기면 x 윈도우 모드에서 처리 하기 위해 [Desktop]

으로 선택. [server]와 관련하여 설치를 하게 되면 콘솔에서 밖에 사용이 안됩니다.

 

22. 설치전 설정은 끝났고 설치 중입니다.

 

23. 설치 완료~!


24. CentOS 6.3 Final 글자가 보이는 군요... Login을 하겠습니다.

 

25. 파티션이 잘 나눠졌는지 확인을 해보겠습니다.

[프로그램] -> [시스템도구] -> [디스크 도구] 클릭.

 

26. 설치 할때 설정 하였던 파티션이 제대로 설정 된 것을 확인 할수 있습니다.

Posted by 1010
반응형
이클립스에서 나는 에러메시지들
Failure to transfer org.apache.maven.plugins:maven-jar-plugin:pom:2.3.1 from http://myrepository
was cached in the local repository, resolution will not be reattempted until the 
 update interval of Nexus has elapsed or updates are forced. Original error: Could not transfer artifact 
 org.apache.maven.plugins:maven-jar-plugin:pom:2.3.1 from/to XXX( http://myrepository ): The operation was cancelled.

Description Resource Path Location Type
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-jar-plugin:2.3.1 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-jar-plugin:jar:2.3.1 pom.xml /MyProject  line 1 Maven Build Problem

이런 에러가 나서 구글링 해봤더니 stack overflow에서 아래와 같은 답변들을 찾았다.
http://stackoverflow.com/questions/5074063/maven-problem-failure-to-transfer 
http://stackoverflow.com/questions/4220960/maven-build-failure-failure-to-find-plugins 
http://stackoverflow.com/questions/4856307/when-maven-says-resolution-will-not-be-reattempted-until-the-update-interval-of  

적용해봐도 소용없었다.
에러메시지를 조금 더 자세히보니 무슨 tools.jar 가 없다네?
이거 이클립스에서 사용하는 jre를 바꿔줘야되나?
Preferences->Java->Installed JREs 에서 jdk를 사용하도록 바꿔준다.

그럼 해결! 

 

출처 : http://gladtosee.tistory.com/archive/201203 

 

Posted by 1010
반응형

Maven 프로젝트 체크아웃 시 다음과 같은 에러에 직면할 수 있다.

ArtifactDescriptorException: Failed to read artifact descriptor for org.apache.commons:com.springsource.org.apache.commons.logging:jar:1.1.1: ArtifactResolutionException: Failure to transfer org.apache.commons:com.springsource.org.apache.commons.logging:pom:1.1.1 from http://repository.springsource.com/maven/bundles/release was cached in the local repository, resolution will not be reattempted until the update interval of com.springsource.repository.bundles.release has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.commons:com.springsource.org.apache.commons.logging:pom:1.1.1 from/to com.springsource.repository.bundles.release (http://repository.springsource.com/maven/bundles/release): No route to host to http://repository.springsource.com/maven/bundles/release/org/apache/commons/com.springsource.org.apache.commons.logging/1.1.1/com.springsource.org.apache.commons.logging-1.1.1.pom    pom.xml    /spring.test    line 1    Maven Dependency Problem


이 경우 다음과 같이 한다.

Maven -> Update Dependencies


다음을 체크하고, OK 버튼을 클릭한다.

Force Update of Snapshots/Releases


혹시 왜 이런 문제가 발생하는지 아시는 분이 있다면,

코멘트 부탁드립니다 :-)

출처 : http://devday.tistory.com/2018

Posted by 1010
98..Etc/centos2014. 1. 2. 23:13
반응형

1. http://www.centos.org/ 접속 > Downloads Mirrors > CentOS Public Mirror List

 

2. South American, Asian, Oceania, Middle Eastern, African and Other Regional Mirrors 선택

 

3. Korea 에서 선택 (http://ftp.neowiz.com/centos/)

 

4. 원하는 버전 선택 (6.4)

 

5. isos > i386(32bit) or x86_64(64bit) 선택

 

6. 설치방법에 따라 선택 (아래는 64bit 기준)

 

CentOS-6.4-x86_64-minimal.iso : 서버버전만 들은 미니멀버전

 

CentOS-6.4-x86_64-netinstall.iso : 저용량 버전으로 인터넷을 사용한 설치버전

 

CentOS-6.4-x86_64-bin-DVD1.iso : 일반적인 버전 (이것만 있어도 된다)

 

CentOS-6.4-x86_64-bin-DVD2.iso : 기초버전엔 필요없는듯..

 

CentOS-6.4-x86_64-bin-DVD1to2.torrent : 이왕이면 토렌트로 받자. 그냥 받으면 느리다.

 

설치할 버전을 CD/DVD/usb등에 담는다.

 

 

 

vmware/virtualbox 같은 가상머신을 사용할 거라면 다운받은 iso 파일만 잘 챙겨두면 된다.

 

 

 

 

출처 : http://webdir.tistory.com/113

Posted by 1010
98..Etc/centos2014. 1. 2. 23:02
반응형
Posted by 1010
98..Etc/centos2014. 1. 2. 22:51
반응형

CentOS 6.4 USB 설치하기


워낙 많이 널려있어서 이렇게 포스팅 하긴 뭐하지만 오늘 약 5대의 서버에 설치를 하면서 아무래도 문서로 남겨야 할 것 같아 이렇게 글을 적는다. 무엇보다 4G 메모리 스틱을 하나 날려먹었기 때문에 이를 기리기 위해서라도 꼭 남겨야 한다고 느꼈다.


1. ISO 이미지 다운로드 (CetnOS : http://centos.org/)

가장 먼저 할 일은 ISO 이미지를 다운 받는 것이다. CentOS 공식 홈페이지에서 다운로드가 가능 하며 Mirror 사이트에 한국 서버를 이용하면 빠른 속도로 다운이 가능하다.


ISO 이미지 파일이 여러가지가 있는데 Full Version은 Torrent로 DVD 1to2 를 다운받아야 하고 8G USB 메모리 스틱을 요구하기 때문에 간단하게 설치하고자 한다면 MInimal이 편하다. Full Version이 정말 필요한데 메모리스틱 용량이 적다면 Net Install 이미지를 다운 받아 설치하면 된다.


여기서는 Minimal 로 설치를 진행 할 예정이다. (아무리 생각해도 가장 편한 것 같다.)

 

-> http://ftp.daum.net/centos/6.4/isos/x86_64/

 

2. 가상 이미지 생성 iso2usb (iso2usb : http://iso2usb.sourceforge.net/)

USB를 먼저 PC와 연결시켜야 프로그램에서 인식 된다. 크게 다른 설정을 필요 없고 ISO 이미지만 선택해서 OK 버튼을 선택한다. 빠른 속도로 USB에 이미지가 들어간다.

 

3. USB 부팅

USB로 부팅 될 수 있도록 BIOS 설정을 수정해준다. 

여기까지는 기본 준비 사항이라고 볼 수 있다.

 

4. 설치 화면 

CentOS 설치 화면은 페도라와 큰 차이가 없다. 왜 그런지는 아시리라 믿는다.


[프롬프트 설치 화면]

언어 설정 : English 

키보드 타입 : us

설치 형태 : CD/DVD, HDD, URL, NFS(네트워크 드라이브)


[CD/DVD] 

- 해보지 않았지만 일반 CD/DVD 설치와 동일할 것으로 생각됨  


[Net install IMG 설치 진행]

- URL 선택, IPv6 체크 해제, 동적 IP, 고정 IP 체크

- MIRROR SITE : http://mirror.centos.org/centos/6.4/os/x86_64/

- 설치를 위해 필요한 기본적인 img를 다운 받는다. 다운이 완료 되면 GUI 설치 화면으로 넘어간다.


[Minamal 설치 진행]

- [dev/sda]를 선택, usb2iso 를 통해 이미지를 생성할 때 아무런 셋팅을 하지 않았다면 dev/sda 로 이미지가 생성된다.


[NFS]

- 설치를 진행해보지 않았지만 네트워크 드라이브 주소를 연결하는 부분이 있을 것으로 생각된다.


[GUI 설치 화면]


설치 저장공간 선택

[Basic storage devices] 선택


컴퓨터 이름 설정

localhost.localdomain 을 원하는 형태로 변경한다. 변경하지 않아도 무방하다.


최고관리자 비밀번호 설정

자신이 사용하고자 하는 비번을 설정한다. 약한 비번이라고 경고가 떠도 무시하면 그만. 

(테스트가 아니라면 꼭 강력한 비번 설정이 권장된다.)


시간 설정

[asia/seoul] 선택


네트워크 설정

시간 설정 화면 왼쪽 하단에 configure network 가 있다. 고정 IP가 아니면 설정 할 필요 없다.


파티션 설정

서버 용으로 설치했기 때문에 Use All Space를 선택해 lvm을 사용했다. 


직접 설정을 하고자 한다면 Create Custom Layout을 선택해 아래의 옵션에 맞춰 설정한다.

[swap] : HDD 일부를 RAM 처럼 사용하기 위해 잡는 공간으로 RAM의 2~3배 정도로 잡는다.

[ext4] : 파일 시스템의 일종이다. 

Mount 위치 :  /, /boot, /home 등이 있다. 직접 잡는 경우 /boot 에 500 Mb 를 할당해 부트로더를 설치한다.

자세한 파티션 설정을 다른 블로그를 참조 하도록 한다.


5. 부트로더 설치


[lvm] 그룹화할 HDD를 선택한 후 자신이 부트로더를 설치한 HDD를 선택하면 된다.

[Custom partition] /boot 마운트가 된 HDD에 설치된다.

부트로더는 자신이 원하는 위치로 바꿔서 사용해도 된다.

 

6. CentOS 설치 유형


[Desktop] 부팅시 x-windows 가 구동된다.

[Desktop minimal] 해보지 않았다! 

[Minimal] 운영체제가 돌아갈 수 있는 가장 기본적인 패키지만 설치 되있다.

[Basic Server] 해보지 않았지만 Server의 기본 패키지가 설치 되 있을 것 같다.

[Database Server] 어떤 DB가 설치되있는지는 모르겠다.

[Vhost Server] 잘 모르겠다.

[Web Server] Apache가 설치되있지 않을까?

[Softwear development workstation] 각종 라이브러리가 선물 보따리처럼 설치되어있을 것 같다.


결론은 그냥 Minimal에서 하나씩 올려 쓰는 걸 추천한다.

초기에 너무 많이 깔려있으면 무겁고 나중에 의존성 충돌나고 다시 설치할지도 모른다.

 

7. 설치 종료 후 네트워크 설정

설치가 끝나면 재부팅이 되고 덩그러니 로그인 커서만 깜빡인다.

로그인 root, 비밀번호는 아까 설정한 값을 입력하면 이제 본격적으로 디렉터리 접근이 가능하다.

아까 [시간 설정] 화면에서 Network 설정을 안했다면 일일히 다 입력을 해줘야 한다. 


# > ifconfig 


네트워크 장비가 뭐가 물려있나 본다. eth0 나 eth1 이 없다면 드라이버가 안잡혔거나 서비스로 올라오지 않은 거다.


# > ifconfig -a


전체 장비 목록을 확인 한다. eht 에 대한 정보가 나오면 드라이버는 정상적으로 잡혀 있다.

어떤 이더넷 카드가 물려있는 건지 확인 하려면 일단 이더넷 카드를 서비스에 올린다.


# > ifconfig eth0 up

서비스에 올리는 명령어는 up, 내리는 명령어는 down

up 한 상태에서 랜선을 뽑아 보면 ehternet down이라는 커맨드 라인이 뜬다. 이것으로 확인이 가능.


# > cd /etc/sysconfig/network-scripts/


위 경로에 접근 하면 각종 네트워크 장비들이 눈에 들어온다.


#> vi ifcfg-eth0


편집기로 이더넷 카드 정보를 읽는다.


onboot="no"


라고 되어있으면 "yes" 로 변경해준다.

편집기에서 저장 후 종료 한다.


# > service network restart


네트워크 서비스를 재시작하여 eth0가 정상적으로 올라오는지 확인한다.


# > ping 168.126.63.1

DNS까지 잘 가는지 확인해 본다.


#> yum update -y

잘 되면 yum으로 업데이트를 진행한다.


이것으로 기본적인 CentOS 설치 방법을 마무리 한다.

 

출처 : http://starkapin.tistory.com/496

Posted by 1010
52.Apache Project &.../Maven2013. 12. 31. 15:44
반응형

 


Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin:2.3.2:testCompile (execution: default-testCompile, phase: test-compile)


CoreException: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-compiler-plugin:2.3.2 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-compiler-plugin:jar:2.3.2: ArtifactResolutionException: Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:2.3.2 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-compiler-plugin:pom:2.3.2 from/to central (http://repo.maven.apache.org/maven2): null to http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom


으악...도저히 모르겠다..해결방법을..ㅠ.ㅠ...



찾았다..ㅋㅋㅋ해결방법을~!!!

[결과]

 



참고링크!!
http://stackoverflow.com/questions/8834806/m2eclipse-error


해결방법

접기


Solution:

1.) add dependency to pom.xml

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.3</version>
</dependency>

2.) run mvn install from Eclipse or from command line

3.) refresh the project in eclipse (F5)

4.) run Maven > Update Project Configuration... on project (right click)

JAR file is downloaded to local repository and there are no errors in WS

출처 : http://acet.pe.kr/194

Posted by 1010
52.Apache Project &.../Maven2013. 12. 31. 15:04
반응형

이클립스에서 메이븐 프로젝트를 만들어서 쓰다보면 아래와 같은 에러가 나는 경우가 있다.


Description Resource Path Location Type Could not calculate build plan: Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:2.0.2 from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.plugins:maven-compiler-plugin:pom:2.0.2 from/to central (http://repo1.maven.org/maven2): No response received after 60000 ExampleProject Unknown Maven Problem


메이븐에서 의존성이 있는 라이브러리를 다운로드받는 중에서 실패한 경우, lastUpdated 파일이 있으면 다운로드가 실패하더라도 라이브러리를 새로 업데이트 받지 못하는 문제인 듯 하다.


아래의 명령어를 실행한 후, 이클립스에서 인덱스를 업데이트 하면 해결이 가능하다.


find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;


다른 해결책도 있으며, 아래의 참조를 읽어보라.

http://stackoverflow.com/questions/5074063/maven-error-failure-to-transfer


출처 : http://socurites.com/139

Posted by 1010
02.Oracle/DataBase2013. 12. 30. 11:04
반응형

우리는 오라클 Sequence를

중요한 문서나 회원에 고유번호로 활용하는 경우가 종종 있다.

 

당연히 1부터 빈틈없이 자동으로 증가해줄것이라고 믿는다.

 

하지만 퍼포먼스를 위해 Sequence의 Cache를 사용했다면 그렇지 않을 수 있다.

 

Sequence의 Cache는...

원하는 숫자 만큼 미리 만들어 Shared Pool의 Library Cache에 상주 시키는 기능이다.

 

다시말해,

Cache가 저장된 수 만큼 Disk I/O가 발생하지 않는 장점도 있고

반면에 Library Cache가 날아간다면 Sequence Cache도 날아가게 된는 단점도 있다.

 

 

만약 Cache를 50으로 했다면 1~50까지 읽었가는(Nextval) 동안에는 Library Cache에서 읽어간다.

51번째를 요청할때 다시 50이 증가된 51~100까지 다시 Library Cache에 저장하는 것이다.

Disk I/O가 2번 밖에 발생하지 않았다.^^;;; 좋은 기능임엔 틀림없다.

 

하지만 오류 아닌 오류가 아래와 같이 있으므로 유의해서 사용해야 한다.

  1. DB가 비정상적으로 종료가 되었거나 (PMON이 죽거나, shutdown abort를 사용했을경우)

  2. Library Cache에서 우선순위 경합에 밀려 cache aged out 되는 경우다.
    다시말해, 사용 빈도가 적어 메모리에서 삭제되는 경우를 말한다.^^;

Cache 50에 Current값이 1이라고 할지라도....

위와 같은 현상이 발생한다면 다음 시퀀스는 51이 된다.

(참고: http://kr.forums.oracle.com/forums/thread.jspa?threadID=463133)

 

 

해결 방법은 2가지다.

  1. Cache를 사용하지 않는 것.
  2. dbms_shared_pool package를 이용해 Library Cache에 항상 상주하도록 강제설정하는 방법이다.

무엇보단 근본적인 방법인 1번을 추천하고 싶다. 특별한 경우가 아니면 Cache를 사용하지 말자....^^;;

 

출처 : http://blog.naver.com/PostView.nhn?blogId=xacti&logNo=80109572891&parentCategoryNo=3&viewDate=&currentPage=1&listtype=0

Posted by 1010
98..Etc2013. 12. 26. 14:59
반응형

1. IE
https(보안통신)과 http(비보안 통신)을 혼용으로 사용 하였을 경우 IE에서는 경고 창이 발생 되고 혼용으로 볼 것인지 아니면
보안통신만 볼 것인지를 선택 할 수 있습니다.

123.jpg EXIF Viewer사진 크기536x163

 

보안통신만 사용 할 경우 ("예" 를 클릭하였을 경우) 암호화 통신을 하고 있다는 자물쇠 아이콘이 표시 됩니다.

3.jpg EXIF Viewer사진 크기393x66


비 보안통신과 보안통신을 혼용으로 사용 할 경우("아니오"를 클릭하였을 경우) 암호화 통신을 하고 있다는 자물쇠 아이콘이 표시 되지 않고 URL상 https만 유지 됩니다.

2. Firefox
https(보안통신)과 http(비보안 통신)을 혼용하여 사용 하였을 경우 혼용으로 사용중이라는 것을 안내하는 메시지가 출력됩니다.

12.jpg EXIF Viewer사진 크기539x127


확인을 클릭 할 경우 보안 통신을 하고 있다는 아래와 같은 내용이 출력 되지 않습니다.

5.gif


만약 보안통신만 사용하게 된다면 아래 그림과 같이 파란색 바가 출력됩니다.

2.jpg EXIF Viewer사진 크기585x280


3. Google
안내 메시지 및 경고 창이 발생되지 않고 비보안 통신과 보안 통신으로 혼용으로 사용하고 있다는 것을 표시합니다.

6.gif


보안통신만 사용할 경우 아래와 같이 보안통신만 사용하고 있음을 아이콘으로 표시합니다.

7.gif


위와 같이 혼용 관련 메시지를 뜨지 않게 할 경우 특정 경로 호출 값을 보안통신 또는 상대경로로 변경하시면 됩니다.

예를 들어,
CSS파일을 호출하거나,
js파일을 호출하거나,
플래시에 포하되어 있는 특정 경로에 있는 이미지 또는 파일을 호출하거나,
이미지 또는 파일을 호출하거나,
SSO를 위해 특정 경로로 정보값을 보내거나,
특정 경로의 파일을 include 하거나,

하는 경로를 보안통신(https) 또는 상대경로로 변경해 주시면 됩니다.

 

 

출처 : http://ucert.tistory.com/142

 

Posted by 1010
반응형

if ($.browser.msie) {
    $
(".audio").prepend($("<embed>").attr({
       
'src':'/resources/voices/'+voice+'.wav',
       
'HIDDEN':'true',
       
'AUTOSTART':'true'
   
}));
}else if($.browser.safari){
    $
(".audio").removeAttr("style");
    $
(".audio").prepend($("<object></object>").attr({
       
'type':'audio/x-wav',
       
'data':'/resources/voices/'+voice+'.wav',
       
'width':'0',
       
'height':'0'
   
}));
    $
("object:first").prepend($("<param>").attr({
       
'name':'autoplay',
       
'value':'true'
   
}));
}else{
    $
(".audio").prepend($("<audio></audio>").attr({
       
'src':'/resources/voices/'+voice+'.wav',
       
'volume':0.4,
       
'autoplay':'autoplay'
   
}));
}

Posted by 1010
반응형

The purpose of the <object> element is to support HTML helpers (plug-ins).


HTML Helpers (Plug-ins)

A helper application is a small computer program that extends the standard functionality of the browser. Helper applications are also called plug-ins.

Plug-ins are often used by browsers to play audio and video.

Examples of well-known plug-ins are Adobe Flash Player and QuickTime.

Plug-ins can be added to Web pages through the <object> tag or the <embed> tag. 

Most plug-ins allow manual (or programmed) control over settings for volume, rewind, forward, pause, stop, and play.


What is The Best Way to Play Audio/Video in HTML?

For the best way to embed audio or video in your Web page, please read the next chapters.


QuickTime - Play WAV Audio

Example

<object width="420" height="360"
classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab">
<param name="src" value="liar.wav">
<param name="controller" value="true">
</object>

Try it yourself »


 


QuickTime - Play MP4 Video

Example

<object width="420" height="360"
classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab">
<param name="src" value="movie.mp4">
<param name="controller" value="true">
</object>

Try it yourself »


 


Adobe Flash Player - Play SWF Video

Example

<object width="400" height="40"
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="http://fpdownload.macromedia.com/
pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0">
< param name="SRC" value="bookmark.swf">
< embed src="bookmark.swf" width="400" height="40">
< /embed>
< /object>

Try it yourself »


 


Windows Media Player - Play WMV Movie

The example below shows the suggested code used to display a Windows Media file.

Example

<object width="100%" height="100%"
type="video/x-ms-asf" url="3d.wmv" data="3d.wmv"
classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<param name="url" value="3d.wmv">
<param name="filename" value="3d.wmv">
<param name="autostart" value="1">
<param name="uiMode" value="full">
<param name="autosize" value="1">
<param name="playcount" value="1">
<embed type="application/x-mplayer2" src="3d.wmv" width="100%" height="100%" autostart="true" showcontrols="true" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"></embed>
</object>

Try it yourself »


 


Plug-ins

Plug-ins can be used for many purposes: to display maps, scan for viruses, verify your bank id, and much more. The restrictions are few.

 

출처 : http://www.w3schools.com/html/html_object.asp

Posted by 1010
반응형

[jQuery] 제이쿼리(jQuery) 플러그인 목록 모음입니다.

 

해당 소스는 라이선스 조건을 확인한 다음에 사용해주세요^^ 라이센스 정보 보기

 

-BACKGROUND-

 

[jQuery] 001. 백그라운드 이미지를 활용 할 수 있는 제이쿼리 [다운받기][미리보기]

[jQuery] 002. 백그라운드에 영상을 제어하는 제이쿼리입니다.[다운받기][미리보기]

[jQuery] 003. 스크롤과 버튼을 통한 백그라운드 제어하기 [다운받기][미리보기]

[jQuery] 004. 다양한 옵션에 따라 백그라운드 이미지 조절하기 [다운받기][미리보기]

[jQuery] 005. 페이지의 숨겨진 영역을 보여주는 페이지 슬라이드 [다운받기][미리보기]

[jQuery] 006. 백그라운드 배경을 기본으로 하는 이미지 갤러리 [다운받기][미리보기]

[jQuery] 007. 다양한 효과를 줄 수 있는 백그라운드 갤러리 [다운받기][미리보기]

[jQuery] 008. 화면 크기에 따라 변하는 풀 스크린 이미지 소스 [다운받기][미리보기]

[jQuery] 009. 마우스에 움직임에 따라 움직이는 배경 이미지들 [다운받기][미리보기]

 

 

-GALLERY-

 

[Gallery] 001. 여러가지 이미지를 볼 수 있는 라이크 박스 갤러리 [다운받기][미리보기]

[Gallery] 002. 썸네일 이미지와 디테일 이미지가 나오는 갤러리 [다운받기][미리보기]

[Gallery] 003. 썸네일 이미지와 풀스크린 이미지의 제이쿼리 갤러리 [다운받기][미리보기]

[Gallery] 004. 스폰서의 정보를 보여주는 플립효과의 갤러리 스타일 [다운받기][미리보기]

[Gallery] 005. 사진을 하나씩 보여주는 포토 갤러리 플러그인 제이쿼리 [다운받기][미리보기]

[Gallery] 006. 이미지 갤러리 벽을 형상화한 갤러리 스타일 소스 [다운받기][미리보기]

[Gallery] 007. 박스 갤러리 형태의 이미지 갤러리 제이쿼리 소스 [다운받기][미리보기]

[Gallery] 008. 독특한 장면 효과를 제공하는 COIN SLIDER 갤러리 [다운받기][미리보기]

[Gallery] 009. 반응형, 모바일, CSS3를 지원하는 Slides.js 갤러리 [다운받기][미리보기]

[Gallery] 010. 제이쿼리를 이용한 라이트 박스 갤러리 이미지 [다운받기][미리보기]

 


출처 : http://webstoryboy.tistory.com/1266#.Urka39qIrwc

Posted by 1010
반응형

 

 

jquery.browser.js

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
<script src="http://code.jquery.com/jquery-1.9.0.js"></script>
<script type="text/javascript" src="jquery.browser.js"></script>
<script type="text/javascript">
<!--
 function test(){
  $.browser.msie ? alert('Internet Explorer') : alert('Not Internet Explorer');
 }
//-->
</script>
 </head>

 <body>
  <input type="button" value="test" onclick="test();">
 </body>
</html>

Posted by 1010
반응형

request #16 from bitdeli-chef/master

Add a Bitdeli Badge to README
latest commit 083f5495e6
authored

Octocat-spinner-32 dist Added uglify task to grunt
Octocat-spinner-32 test Casperserver can now be stopped and finishes with no errors
Octocat-spinner-32 .gitignore Added node related stuff to gitignore
Octocat-spinner-32 Gruntfile.js Added test task for grunt
Octocat-spinner-32 MIT-LICENSE.txt Added license file from jQuery MIT LICENSE with acknowledgement for m…
Octocat-spinner-32 README.md Add a Bitdeli badge to README
Octocat-spinner-32 bower.json Bumped version to 0.0.5
Octocat-spinner-32 browser.jquery.json Bumped version to 0.0.5
Octocat-spinner-32 package.json Added test task for grunt

README.md

A jQuery plugin for browser detection. jQuery removed support for browser detection on 1.9.1 so it was abstracted into a jQuery plugin

Installation

Include script after the jQuery library:

<script src="/path/to/jquery.browser.js"></script>

Usage

Returns true if the current useragent is some version of Microsoft's Internet Explorer. Supports all IE versions including IE11

$.browser.msie;

Returns true if the current useragent is some version of a Webkit browser (Safari, Chrome and Opera 15+).

$.browser.webkit;

Returns true if the current useragent is some version of Firefox.

$.browser.mozilla;

Reading the browser verion

$.browser.version

Things not included in the original jQuery $.browser implementation

  • Detect Windows, Mac, Linux, iPad, iPhone, Android and Windows Phone useragents
    $.browser.ipad
    $.browser.iphone
    $.browser["windows phone"]
    $.browser.android
    $.browser.win
    $.browser.mac
    $.browser.linux
  • Detect the browser's major version
    // User Agent for Chrome
    // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36

    $.browser.versionNumber // Returns 32 as a number
  • Support for new useragent on IE11
  • Support for webkit based Opera browsers
  • Added testing using PhantomJS and different browser user agents

Testing

Testing for this plugin is done with Casperjs v1.1 to take advantage of multiple phantomjs browsers with different user agents.

For instructions on how to install Casperjs v1.1 go to http://docs.casperjs.org/en/latest/installation.html

Note: Testing requires Casperjs v1.1

Install the grunt-cli dependency by running npm install -g grunt-cli Run npm install to install all dependencies including grunt and all tasks

Once Casperjs and the grunt-cli npm package is installed you can execute all the tests by using:

grunt test

Development

Attributions

 

$.browser.msie ? alert('Internet Explorer') : alert('Not Internet Explorer');

 

 

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

 

 

1. 브라우저 체크

 

$.browser.msie : 익스플로러인지를 확인. IE라면 true를 반환 아니라면 false를 반환합니다.
$.browser.mozilla : 파이어폭스인지 확인. 반환값은 위와 같습니다.
$.browser.safari : 사파리인지를 확인. 크롬의 경우도 해당합니다. 반환값은 위와 같습니다.
$.browser.opera : 오페라인지를 확인. 반환값은 위와 같습니다.


2. 브라우저 버전 체크

 

$.browser.version : 각각의 브라우저의 버전을 알아옵니다. 브라우저의 종류는 알아오지 않습니다.

 

3. 기본적인 사용 예제

 

$(function(){
  if($.browser.msie==true) {
    alert('인터넷 익스플로러를 사용 중 입니다. 버전은 '+$.browser.version+'입니다.');
  } else {
    alert('인터넷 익스플로러를 사용하고 있지 않습니다.');
  }
});

 

Posted by 1010
반응형

<!DOCTYPE html>
 <html>
 <body>

<object type="audio/x-wav" data="http://www.hydrotoys.com/wavs/Beavis_cornholio.wav" width="320" height="260">
<param name="autostart" value="true" />
<param name="controller" value="false" />
<param name="src" value="http://www.hydrotoys.com/wavs/Beavis_cornholio.wav">
</object>

<audio src="http://www.hydrotoys.com/wavs/Beavis_cornholio.wav" type="audio/x-wav" controls autoplay="autoplay">
<p>Your browser does not support the audio element </p>
<source src="http://www.hydrotoys.com/wavs/Beavis_cornholio.wav"/>
</audio>

</body>
</html>

출처 :http://stackoverflow.com/questions/12973877/autoplay-a-wav-file-on-html-code

 

Posted by 1010
98..Etc2013. 12. 23. 20:43
반응형

HTTP 상태 코드

위키백과, 우리 모두의 백과사전.

아래는 HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드의 목록이다.

IANA가 현재 공식 HTTP 상태 코드 레지스트리를 관리하고 있다.

 

1xx (조건부 응답)[편집]

요청을 받았으며 작업을 계속한다.[1]

  • 100(계속): 요청자는 요청을 계속해야 한다. 서버는 이 코드를 제공하여 요청의 첫 번째 부분을 받았으며 나머지를 기다리고 있음을 나타낸다.
  • 101(프로토콜 전환): 요청자가 서버에 프로토콜 전환을 요청했으며 서버는 이를 승인하는 중이다.
  • 102(처리, RFC 2518)

2xx (성공)[편집]

이 클래스의 상태 코드는 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킨다.

  • 200(성공): 서버가 요청을 제대로 처리했다는 뜻이다. 이는 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰인다.
  • 201(작성됨): 성공적으로 요청되었으며 서버가 새 리소스를 작성했다.
  • 202(허용됨): 서버가 요청을 접수했지만 아직 처리하지 않았다.
  • 203(신뢰할 수 없는 정보): 서버가 요청을 성공적으로 처리했지만 다른 소스에서 수신된 정보를 제공하고 있다.
  • 204(콘텐츠 없음): 서버가 요청을 성공적으로 처리했지만 콘텐츠를 제공하지 않는다.
  • 205(콘텐츠 재설정): 서버가 요청을 성공적으로 처리했지만 콘텐츠를 표시하지 않는다. 204 응답과 달리 이 응답은 요청자가 문서 보기를 재설정할 것을 요구한다(예: 새 입력을 위한 양식 비우기).
  • 206(일부 콘텐츠): 서버가 GET 요청의 일부만 성공적으로 처리했다.
  • 207(다중 상태, RFC 4918)
  • 208(이미 보고됨, RFC 5842)
  • 226 IM Used (RFC 3229)

3xx (리다이렉션 완료)[편집]

클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.[1]

  • 300(여러 선택항목): 서버가 요청에 따라 여러 조치를 선택할 수 있다. 서버가 사용자 에이전트에 따라 수행할 작업을 선택하거나, 요청자가 선택할 수 있는 작업 목록을 제공한다.
  • 301(영구 이동): 요청한 페이지를 새 위치로 영구적으로 이동했다. GET 또는 HEAD 요청에 대한 응답으로 이 응답을 표시하면 요청자가 자동으로 새 위치로 전달된다.
  • 302(임시 이동): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.
  • 303(기타 위치 보기): 요청자가 다른 위치에 별도의 GET 요청을 하여 응답을 검색할 경우 서버는 이 코드를 표시한다. HEAD 요청 이외의 모든 요청을 다른 위치로 자동으로 전달한다.
  • 304(수정되지 않음): 마지막 요청 이후 요청한 페이지는 수정되지 않았다. 서버가 이 응답을 표시하면 페이지의 콘텐츠를 표시하지 않는다. 요청자가 마지막으로 페이지를 요청한 후 페이지가 변경되지 않으면 이 응답(If-Modified-Since HTTP 헤더라고 함)을 표시하도록 서버를 구성해야 한다.
  • 305(프록시 사용): 요청자는 프록시를 사용하여 요청한 페이지만 액세스할 수 있다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 하다.
  • 307(임시 리다이렉션): 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.
  • 308(영구 리다이렉션, RFC에서 실험적으로 승인됨)

4xx (요청 오류)[편집]

4xx 클래스의 상태 코드는 클라이언트에 오류가 있음을 나타낸다.

  • 400(잘못된 요청): 서버가 요청의 구문을 인식하지 못했다.
  • 401(권한 없음): 이 요청은 인증이 필요한다. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있다.
  • 403(금지됨): 서버가 요청을 거부하고 있다.
  • 404(찾을 수 없음): 서버가 요청한 페이지를 찾을 수 없다. 예를 들어 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우 서버는 이 코드를 제공한다.
  • 405(허용되지 않는 방법): 요청에 지정된 방법을 사용할 수 없다.
  • 406(허용되지 않음): 요청한 페이지가 요청한 콘텐츠 특성으로 응답할 수 없다.
  • 407(프록시 인증 필요): 이 상태 코드는 401(권한 없음)과 비슷하지만 요청자가 프록시를 사용하여 인증해야 한다. 서버가 이 응답을 표시하면 요청자가 사용할 프록시를 가리키는 것이기도 한다.
  • 408(요청 시간초과): 서버의 요청 대기가 시간을 초과하였다.
  • 409(충돌): 서버가 요청을 수행하는 중에 충돌이 발생했다. 서버는 응답할 때 충돌에 대한 정보를 포함해야 한다. 서버는 PUT 요청과 충돌하는 PUT 요청에 대한 응답으로 이 코드를 요청 간 차이점 목록과 함께 표시해야 한다.
  • 410(사라짐): 서버는 요청한 리소스가 영구적으로 삭제되었을 때 이 응답을 표시한다. 404(찾을 수 없음) 코드와 비슷하며 이전에 있었지만 더 이상 존재하지 않는 리소스에 대해 404 대신 사용하기도 한다. 리소스가 영구적으로 이동된 경우 301을 사용하여 리소스의 새 위치를 지정해야 한다.
  • 411(길이 필요): 서버는 유효한 콘텐츠 길이 헤더 입력란 없이는 요청을 수락하지 않는다.
  • 412(사전조건 실패): 서버가 요청자가 요청 시 부과한 사전조건을 만족하지 않는다.
  • 413(요청 속성이 너무 큼): 요청이 너무 커서 서버가 처리할 수 없다.
  • 414(요청 URI가 너무 긺): 요청 URI(일반적으로 URL)가 너무 길어 서버가 처리할 수 없다.
  • 415(지원되지 않는 미디어 유형): 요청이 요청한 페이지에서 지원하지 않는 형식으로 되어 있다.
  • 416(처리할 수 없는 요청범위): 요청이 페이지에서 처리할 수 없는 범위에 해당되는 경우 서버는 이 상태 코드를 표시한다.
  • 417(예상 실패): 서버는 Expect 요청 헤더 입력란의 요구사항을 만족할 수 없다.
  • 418(I'm a teapot, RFC 2324)
  • 420(Enhance Your Calm, 트위터)
  • 422(처리할 수 없는 엔티티, WebDAV; RFC 4918)
  • 423(잠김,WebDAV; RFC 4918)
  • 424(실패된 의존성, WebDAV; RFC 4918)
  • 424(메쏘드 실패, WebDAV)
  • 425(정렬되지 않은 컬렉션, 인터넷 초안)
  • 426(업그레이드 필요, RFC 2817)
  • 428(전제조건 필요, RFC 6585)
  • 429(너무 많은 요청, RFC 6585)
  • 431(요청 헤더 필드가 너무 큼, RFC 6585)
  • 444(응답 없음, Nginx)
  • 449(다시 시도, 마이크로소프트)
  • 450(윈도 자녀 보호에 의해 차단됨, 마이크로소프트)
  • 451(법적인 이유로 이용 불가, 인터넷 초안)
  • 451(리다이렉션, 마이크로소프트)
  • 494(요청 헤더가 너무 큼, Nginx)
  • 495(Cert 오류, Nginx)
  • 496(Cert 없음, Nginx)
  • 497(HTTP to HTTPS, Nginx)
  • 499(클라이언트가 요청을 닫음, Nginx)

5xx (서버 오류)[편집]

서버가 유효한 요청을 명백하게 수행하지 못했음을 나타낸다.[1]

  • 500(내부 서버 오류): 서버에 오류가 발생하여 요청을 수행할 수 없다.
  • 501(구현되지 않음): 서버에 요청을 수행할 수 있는 기능이 없다. 예를 들어 서버가 요청 메소드를 인식하지 못할 때 이 코드를 표시한다.
  • 502(불량 게이트웨이): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 잘못된 응답을 받았다.
  • 503(서비스를 사용할 수 없음): 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재 서버를 사용할 수 없다. 이는 대개 일시적인 상태이다.
  • 504(게이트웨이 시간초과): 서버가 게이트웨이나 프록시 역할을 하고 있거나 또는 업스트림 서버에서 제때 요청을 받지 못했다.
  • 505(HTTP 버전이 지원되지 않음): 서버가 요청에 사용된 HTTP 프로토콜 버전을 지원하지 않는다.
  • 506(Variant Also Negotiates, RFC 2295)
  • 507(용량 부족, WebDAV; RFC 4918)
  • 508(루프 감지됨, WebDAV; RFC 5842)
  • 509(대역폭 제한 초과, Apache bw/limited extension)
  • 510(확장되지 않음, RFC 2774)
  • 511(네트워크 인증 필요, RFC 6585)
  • 598(네트워크 읽기 시간초과 오류, 알 수 없음)
  • 599(네트워크 연결 시간초과 오류, 알 수 없음)

출처 : http://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C

Posted by 1010
98..Etc2013. 12. 23. 11:47
반응형

이 문서는 Gecko DOM 참고 자료의 목차입니다.

들면서

개요

DOM 요소 참고 자료

DOM window 참고자료

DOM document 참고자료

DOM event 참고자료

DOM style 참고자료

DOM range 참고자료

DOM selection 참고자료

DOM - 다른 객체

HTML Form 요소 인터페이스

HTML Table 요소 인터페이스

HTML Table Row 요소 인터페이스

DOM 예제

Posted by 1010
01.JAVA/Java2013. 12. 23. 11:43
반응형

객체 직렬화란?

- 직렬화: Heap에 위치한 객체를 출력 가능한 상태로 만드는 작업

- 역직렬화: 직렬화된 객체를 다시 Heap에 넣기 위한 작업

- 직렬화의 대상은 객체의 Attribute의 값. (메소드는 그저 주소값만 필요할뿐)

 

- 객체를 IO하기 위해서는 필터스트림인 ObjectInputStream과 ObjectOutputStream이 필요

- 직렬화는 ObjectOutputStream

- 역직렬화는 ObjectInputStream

- 직렬화 대상객체는 java.io.Serializable를 implements한 클래스 객체여야 한다.

 



 

- 자바의 메모리 구조는 그림과 깉이 되있는데 여기서 보듯이 객체는 Attribute 데이터, 그리고 Method의 주소만 갖고 있을 뿐이다.

따라서 직렬화의 대상은 실체가 없는 Method는 제외하고 Attribute만 직렬화하게 된다.




객체 직렬화 하는 방법

- Serializable Interface를 implements한 class의 객체는 뭐든 직렬화가 가능하다.



ex) 직렬화 대상 클래스

 

import java.io.*; 

public class Member implements Serializable{
    private String name; 
    private transient int age;
    private String address; 
    private transient MyDate birthday;
    ...
}


ex) 객체 직렬화 하기

 

public void writeMemberObject(Member m) throws IOException {
    ObjectOutputStream oos = null; 
    try{ 
        oos = new ObjectOutputStream(new FileOutputStream("mem.obj")); // 연결 + 필터 추가 
        oos.writeObject(m); // 객체를 출력하는 메소드: writeObject(Object obj) 
        // write할 때 Exception이 발생하는데 이 때 close를 안하면 스트림이 안닫혀있는 상태로 방치 
    } finally { 
        if(oos!=null) { 
            oos.close(); // 그래서 close로 닫아줌 
        } 
    } 
}





객체 직렬화 피하기 (또는 피해야 되는 경우)

 

- 객체 Instance 변수 앞에 transient 키워드를 붙이면 직렬화 대상에서 제외된다.

- 그런데 왜 직렬화 대상에서 제외할까? 답은...


1. 보안적인 측면에서 직렬화 할 때 빼고 싶을 때

 보안 문제로 직렬화 하면 안되는 어트리뷰트가 여기에 해당한다.


2. 직렬화 대상이 아닌 객체 type일 경우

 만약 다음과 그림과 같은 A 객체와 B 객체를 직렬화 한다고 해보자.


위와 같은 구조에서 A, B 객체들을 직렬화하고 싶을 때 어떻게 할까?


답은 B 객체의 멤버 인스턴스인 C 객체에 transient 키워드를 붙여준다.

그러면 직렬화 대상에서 제외되므로 소스 코드를 통채로 고치지 않아도 된다.






역직렬화 객체를 복원하는 방법

- 객체를 만든 뒤 readObject() 메소드의 리턴하는 Attribute 대입

- 자바가 역직렬화하는 방식은 JVM이 역직렬화 하고자 하는 객체를 만들어서 리턴한다.



ex)

 

public Member readMemberObject() throws IOException, ClassNotFoundException {
    ObjectInputStream ois = null; 
    Member m = null; 
    try    { 
        ois = new ObjectInputStream(new FileInputStream("mem.obj")); 
        m = (Member)ois.readObject(); 
    } finally { 
        ois.close(); 
        return m; 
    } 
}

 



그런데 여기서 문제가 발생한다.

만약 역직렬화해서 만든 객체(readObject() 메소드로 불러들인 객체)의 클래스가 변경이 되었다면?

그런데도 역직렬화한 객체를 변경된 클래스의 인스턴스에 대입하려고 한다면?


당연히 이 때 JVM은 역직렬화 객체를 대입할 수 없다고 예외를 발생시킨다.

좀 더 자세히 살펴보면 역직렬화한 객체와 새로 변경된 클래스의 serialVersionUID가 일치하지 않아서 발생하는 문제인데

새로 변경된 클래스와 역직렬화하는 객체의 serialVerionUID를 일치시켜주면 된다.


그럼 또 어떻게 serialVerionUID를 일치시켜준단 말인가?

답은...


클래스를 작성할 때 미리 serialVerionUID를 상수로 고정시켜 놓는다. 이렇게 되면 클래스가 새로 변경이 되도 역직렬화하는 객체와 serialVerionUID가 같기 때문에 예외가 더 이상 발생하지 않는다.



ex) 직렬화 대상 클래스 (역직렬화 문제 해결)

 

import java.io.*; 

public class Member implements Serializable{
    // 직렬화, 역직렬화 시 serialVersionUID 상수가 없으면 JVM이 만들어서 넣어준다. 
    // 있으면 만들지 않는다. 
    static final long serialVersionUID = 100L;
    private String name; 
    private transient int age;
    ...
}
Posted by 1010
반응형

import java.io.*;
import java.net.*;

/* 843포트에서 대기하는 서버소켓은 클라이언트가 접속하여 정책파일을 요청하면 정책파일의 내용을
 * 출력스트림으로 전송해 주고, 소켓을 닫는다.
 * 액션스크립트 클라이언트(Flex)에서 서버(채팅서버 등)에 접속하기 위해서는 서버가 실행중인 호스트에
 * 이 정책파일서버가 먼저 실행되고 있어야 한다.
 */
public class PolicyServerServlet {

 public static void main(String[] args) throws Exception {
  ServerSocket ss = new ServerSocket(843);
  Socket client = null;
  PrintWriter toClient = null;
  System.out.println("정책파일서버실행....");
  while (true) {
   client = ss.accept();
   InputStreamReader isr = new InputStreamReader(
     client.getInputStream());
   char[] buf = new char[1024];
   int read = isr.read(buf);
   String request = new String(buf, 0, read);
   if (request.equals("<policy-file-request/>\0")) {
    System.out.println("정책파일요청접수됨");
   } else {
    System.out.println("정책파일요청아님");
    continue;
   }
   // System.out.println("정책파일서버요청문자열:"+request);
   toClient = new PrintWriter(client.getOutputStream());
   String policy = "<?xml version='1.0'?>";
   policy += "<cross-domain-policy>";
   policy += "<site-control permitted-cross-domain-policies='*'/>";
   policy += "<allow-access-from domain='*' to-ports='*' />";
   policy += "</cross-domain-policy>";
   toClient.println(policy);
   toClient.flush();
   client.close();
   System.out.println("정책파일 전송완료");
  }
 }
}

 

Posted by 1010
56. Eclipse Etc.../Eclipse2013. 11. 20. 15:08
반응형

출처 : http://kogun82.tistory.com/82

이클립스에서 프로그램 실행시 힙 메모리 부족 오류가 발생하면 아래와 같은 메시지가 출력된다.

java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: PermGen space

문제 해결을 휘애 대부분이 사용하는 방법은 Run/Debug 설정창에서 vmargs를 설정하는 것이다.
하지만 이렇게 하면 각 각의 Run Conf 설정마다 입력해야 하는 불편함이 있다.

eclipse.ini 파일을 아래와 같이 설정한다.

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120522-1813
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms1024m
-Xmx2048m

그리고 프로젝트 실행 시 자바 Heap, Permanent 메모리를 설정하기 위해 eclipse의 Window -> preferences -> Java -> Installed JRES -> 체크된 jdk / jre를 선택하고 아래의 그림과 같이 설정한다.(-XX:PermSize=2048M -Xms=2048 -Xmx4096m)


만약 프로젝트마다 다른 메모리 설정 값이 필요한 경우  Run config에서 VM args를 각 프로젝트마다 설정 하면된다.

Posted by 1010
카테고리 없음2013. 11. 18. 15:59
반응형

We changed our SVN machine because of a hardware problem. We established the same environment from back-up to another machine.

Now Subversion seems to work properly, I can update, commit and browse from Tortoise Client.

But in Eclipse problem exist for Synchronize command (subclipse plugin). I can browse and commit from Eclipse too.

I tried to change SVN interface (from JavaHL to SVNKit), svn cleanup and upgrade subclipse plugin, but nothing helps.

JavaHL and SVNKit gives different errors.

**Error when use JavaHL**
Problems reported while synchronizing SVNStatusSubscriber. 0 of 1 resources were synchronized.
  An error occurred synchronizing /ChemOrbis: Error getting status for resource P/ChemOrbis org.tigris.subversion.javahl.ClientException: RA layer request failed
svn: REPORT of '/svn/ChemOrbis/!svn/vcc/default': 200 OK (http://svn.treda.net)

    Error getting status for resource P/ChemOrbis org.tigris.subversion.javahl.ClientException: RA layer request failed
svn: REPORT of '/svn/ChemOrbis/!svn/vcc/default': 200 OK (http://svn.treda.net)

      org.tigris.subversion.javahl.ClientException: RA layer request failed
svn: REPORT of '/svn/ChemOrbis/!svn/vcc/default': 200 OK (http://svn.treda.net)

      org.tigris.subversion.javahl.ClientException: RA layer request failed
svn: REPORT of '/svn/ChemOrbis/!svn/vcc/default': 200 OK (http://svn.treda.net)


**Error when use SVNKit**
Problems reported while synchronizing SVNStatusSubscriber. 0 of 1 resources were synchronized.
  An error occurred synchronizing /ChemOrbis: Error getting status for resource P/ChemOrbis org.tigris.subversion.javahl.ClientException: svn: Processing REPORT request response failed: XML document structures must start and end within the same entity. (/svn/ChemOrbis/!svn/vcc/default) 
svn: REPORT request failed on '/svn/ChemOrbis/!svn/vcc/default'
    Error getting status for resource P/ChemOrbis org.tigris.subversion.javahl.ClientException: svn: Processing REPORT request response failed: XML document structures must start and end within the same entity. (/svn/ChemOrbis/!svn/vcc/default) 
svn: REPORT request failed on '/svn/ChemOrbis/!svn/vcc/default'
      org.tigris.subversion.javahl.ClientException: svn: Processing REPORT request response failed: XML document structures must start and end within the same entity. (/svn/ChemOrbis/!svn/vcc/default) 
svn: REPORT request failed on '/svn/ChemOrbis/!svn/vcc/default'
      org.tigris.subversion.javahl.ClientException: svn: Processing REPORT request response failed: XML document structures must start and end within the same entity. (/svn/ChemOrbis/!svn/vcc/default) 
svn: REPORT request failed on '/svn/ChemOrbis/!svn/vcc/default'
 
 

Did samba fix it? Have you tried using different client implementations?

subclipse javahl svnkit

 
 
 
Posted by 1010
98..Etc2013. 11. 7. 10:56
반응형
Posted by 1010
반응형
Posted by 1010
반응형

https://github.com/flex-users/flex-iframe/downloads

 

1. flexiframe.swc를 lib폴더에 삽입 

2. xmlns:code="http://code.google.com/p/flex-iframe/"

3. <code:IFrame source="http://www.naver.com" width="100%" height="100%"/>

 

Posted by 1010
반응형

출처 : http://distress.tistory.com/18

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"
 verticalScrollPolicy="off" horizontalScrollPolicy="off"
 fontSize="12" width="420" height="600">
<mx:Script>
 <![CDATA[
  import mx.collections.ArrayCollection;
  private var fontListAc:ArrayCollection;
  //Flex 에서 적용되는 폰트의 종류를 알아보도록 하자.
  //리스트에 나오는 폰트는 현재 시스템에 설치된 폰트일뿐...모두 사용가능한것은 아니다.
  //바뀌는것도 있고 아닌것도 있고....이걸 구별해서 적용 가능한 폰트만 쓸수있으면 좋겠는데....
  private function init():void{
   var allFonts:Array = Font.enumerateFonts(true);
   var text:String;

   fontListAc = new ArrayCollection();
   
   allFonts.sortOn('fontName', Array.CASEINSENSITIVE);
   for each(var font:Font in allFonts){
    fontListAc.addItem(font.fontName);
    //이 함수가 test_str 이 정상적으로 표시가능한지 아닌지 구별해 준다고는 나와있는데..
    //뭐 해봐도 항상 false 만 뱉어낸다. 사용을 잘못한건지....음....
    //font.hasGlyphs(test_str);
   }
   fontList.dataProvider = fontListAc;
  }
 ]]>
</mx:Script>
 <mx:TextArea id="sampleText" x="10" y="10" width="400" height="320">
  <mx:text>이 문장은 번역기일 뿐입니다.
  This statement is only a translation date.
  該聲明只是一個翻譯日期.
  この文は翻訳機である場合のみです.
  ★☆●◎◆□▲▽→♤♧⊙◈▤☎☜
  </mx:text>
 </mx:TextArea>
 <mx:Text x="339" y="340" text="fontSize:" width="70" textAlign="center" fontSize="13"/>
 <mx:NumericStepper id="fontSize" minimum="5" maximum="100" value="25"
  change="sampleText.setStyle('fontSize', fontSize.value);" creationComplete="sampleText.setStyle('fontSize', fontSize.value);"
  x="339" y="370" width="70" textAlign="center"/>
 <mx:List id="fontList" x="10" y="338" width="321" height="250"
  change="sampleText.setStyle('fontFamily', fontListAc.getItemAt(fontList.selectedIndex))"/>
</mx:Application>

 

Posted by 1010
반응형
줄바꿈을 처리할 때, 캐리지리턴이나 라인피드 문자로 처리하게 되는데,
이는 문자열을 다루는 프로그램마다 각기 방식이 다르다.

캐리지리턴 : \r
라인피드 : \n

일반적으로 \r\n 은 DOS/Windows 에서 줄바꿈을 처리할 때 사용하는 방식이고,
\n 은 Unix, C, Perl 등에서 줄바꿈에 사용하는 개행문자이다.

Flex에서 TextArea는 특이하게도 \r만으로도 개행을 시행하는데, 물론 \n만으로도 개행이 가능하다.
\r\n 은 두 줄을 띄워버린다.

따라서, Dos/Windows 프로그램으로 작성한 글을 받아서 TextArea에 출력할 때, 한 줄 개행이 두 줄로 개행되어 버리는 증상이 발생한다.

이때는 아래와 같이 처리하여 정상적인 출력을 가능하게 할 수 있다.


var rawString:String;
textArea.text = rawString.replace(/\r\n/g, "\r");

replace 첫번째 인자는 정규표현식이다. double qoute를 넣지 말자.
두번째 인자는 바꿀 String이다.

 

Posted by 1010
반응형

TextInput 으로 사용자에게 어떤 입력을 받게 되는 경우가 있습니다.

이때에 보다 많은 내용(예를 들어 사용자의 자기소개 같은 값)을 입력 받아야 하는 경우가 생기는데, 이때 사용하면 좋은 컴포넌트가 TextArea 입니다. TextArea 컴포넌트로 여러줄로 입력을 받게되면 사용자는 필연적으로 엔터키를 눌러 개행(줄바꿈)을 하게 되는데 오늘 이야기해보고자 하는 것은 이 개행에 대한 처리입니다.

문자열에 엔터를 처리하기 위해서 이스케이프 문자인 백슬래시(\)를 사용하여 처리를 하게 되는데, 보통 흔히 알고 있기로는 엔터를 처리하기 위해 \r\n 을 문자열에 포함시키면 된다고 아실 겁니다. 저도 학교에서 C수업을 들을때 그렇게 배웠습니다.

\r   : 캐리지리턴(carriage return) -  커서를 해당 줄의 처음으로 옮김
\n   : 라인피드(linefeed) - 커서를 해당 줄의 다음줄로 옮김


커서를 해당줄의 왼쪽으로 옮겨 다음줄로 내리면 엔터키를 친 것과 동일한 효과가 나오게 됩니다.
하지만 TextArea 에서는 \r 만으로 엔터키 처리를 하고 있습니다.


위와 같이 엔터키를 넣게 되면 실제로 TextArea의 text 속성에서 받는 문자열에는 "텍스트\r입력" 이라고 들어있게 되는 것이죠.

사용자에게 입력받은 해당 데이터를 서버에 저장하고 불러와 다시 TextArea 에 넣어줄때에 아무런 처리를 하지 않아도 상관없습니다. 어짜피 넣어진대로 다시 넣는 것이니까요. 하지만 서로 다른 언어에서 같은 데이터를 사용시에는 문제가 됩니다. 언어들마다 엔터의 처리가 다르기 때문이죠.


위에서 처럼 \r\n 으로 엔터키를 처리하는 경우도 있고, \r 만으로도, \n 만으로도 처리하는 경우가 있습니다. 만약 \r\n으로 엔터를 처리하는 시스템에서 만들어 놓은 문자열을 TextArea 에 대입하면 어떻게 될까요? "텍스트\r\n입력" 이라고 TextArea의 text 속성에 넣으면 아래와 같은 현상이 발생합니다.

위에서 보시는 것 처럼 \r\n 둘다 엔터키로 인식되네요.

참고로 말씀드리자면 MXML 상에서 위의 이스케이스 문자를 인식시키실때는 아래와 같이 하시면 됩니다.

  1. <mx:TextArea text="텍스트\r\n입력" />      <!-- 백슬러시(\)를 문자열로 인식함 -->    
  2. <mx:TextArea text="{'텍스트\r\n입력'}" />      <!-- 백슬러시(\)를 특수문자로 인식함 -->   

 

아무튼, 저는 이와 같은 문제를 자바로 구성된 서버를 이용하면서 겪게 되었습니다. 해당 서버를 이용하는 또다른 쪽이 델파이로 구성되어 있는데, 델파이에서는 \r\n 으로 엔터키를 표현하는데, 플렉스에서 받아오니 엔터가 2번 입력되는 것 처럼 보이는 것은 물론 Flex 쪽에서 생성한 문자열은 델파이에서 엔터키가 없는 상태로 출력되는 것이었습니다.
물론 더 좋은 방법들이 있을꺼라 생각되지만, 저는 플렉스쪽에서 변환해서 쓰고 저장시에도 변환해서 보내기로 결정을 했습니다.
그래서 아래와 같은 코드를 구현하였습니다.

  1.   
  2. public static function getStringForFlex(value:String):String  
  3. {   
  4.     var javaReturnExp:RegExp = /\r\n/g;             // \r\n 으로 된 문자열을 모두 찾는다.   
  5.     return value.replace(javaReturnExp, "\r");      // \r 으로 변경하여 반환한다.   
  6. }   
  7.   
  8. public static function getStringForJava(value:String):String  
  9. {   
  10.     var flexReturnExp:RegExp = /\r/g;               // \r 으로 된 문자열을 모두 찾는다.   
  11.     return value.replace(flexReturnExp, "\r\n");    // \r\n 으로 변경하여 반환한다.   
  12. }  


네이밍이 좀 별로네요.. ;;
엔터키의 처리가 다르다는 것을 알아두시면 좋겠네요. ;)


ps. Flash Player 10 이 공개된 이후 FP10 이 설치된 브라우저에서 이전 포스트의 swf 파일을 로드하지 못하는 경우가 생기네요.
정확하게 이유는 모르겠습니다. 티스토리 포럼에 같은 내용의 버그신고가 이어지고 있는데, 자세히 알아봐야겠습니다.

from http://blog.flashplatform.kr/189

[출처] Flex Textarea 개행문자|작성자

Posted by 1010
반응형

부모

var retValue;
var myObject = new Object();
myObject.tempid = id; // 넘길 값

retValue = window.showModalDialog("팝업페이지", window, "dialogWidth:850px; dialogHeight:500px; center:yes; help:no; resizable:yes; scroll:no; status:no;");

function test(){

}

자식
var oMyObject = window.dialogArguments;// 팝업 실행 하는 페이지에서 값을 받아옴

temp(oMyObject.id); // 값을 넘겨줌..

부모창에 함수호출

oMyObject.test();

Posted by 1010
반응형

var result:String = value.toXMLString();    //String으로 변환  

var pattern:RegExp = /\n */g;   //개행문자를 없앨 정규식  


 result = result.replace(pattern, "");   //개행문자를 없엔다  

Posted by 1010