기본 콘텐츠로 건너뛰기

1월, 2020의 게시물 표시

개발 공부 - javascript에서 XMLHttpRequest 객체 사용 (간단 정리)

목차 1) 객체 구해오기 2) 웹 서버로 요청 전송 3) 웹 서버에서 응답 받은 뒤 화면 반영 4) 추가 사항 1) http request 만들기 (객체 구해오기) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var  httpRequest  =   null ; if  (  window .XMLHttpRequest ) {   httpRequest  =   new  XMLHttpRequest();  //신규 버전 (IE 제외) }  else   if  (  window .ActiveXObject ){  //IE일 경우에는 XMLHttpRequest 객체 구하는 방식이 다름    try  {     httpRequest  =   new  ActiveXObject( "Msxml2.XMLHTTP" );  // 신버전 IE   }  catch (e) {     httpRequest  =   new  ActiveXObject( "Microsoft.XMLHTTP" );  //구버전 IE (IE 6 이하)     } } Colored by Color Scripter cs 2) 웹 서버로 요청 전송 (1) open( 1 , ...

개발 공부 - Eclipse를 사용한 Node.js 와 Java Bridge 방법

[목차] 1. 제약사항 2. 설치 프로그램 3. java 예제 1. 제약사항 - express 엔진 미사용 상태로 node.js 사용 - Node-java-bridge 나 NWJS 와 같은 Framework 나 Module 을 사용하지 않고 java 에서 제공하는 JNI API 만 사용 - 간단한 java 호출 결과만 사용하기 위해 웹 화면 없이 node 로만 호출하는 예제 사용 2. 설치 프로그램 1) Windows에서 실행 시 필요한 프로그램 - Node.js - Python (2.7 이상) - Visual Studio 관련 Resource (Build Tools가 포함된 installer) - 요청하는 것보다 높거나 같은 버전의 Visual Studio - Visual Studio 관련 부재시 console에 관련 사항이 표시됨. - Eclipse 내 MarketPlace에서 Nodeclipse를 설치 - Node.js Express Project와 Node.js Project를 사용 가능 설명:  노 드에서 모듈 활용시 c++, c나 python 코드를 불러와서 실행을 시킨 후 결과값을 반환할 수 있다.  그러나 eclipse 사용시 python을 설치해야 실행 가능하므로 python 설치를 전제 조건으로 한다. 2)  Eclipse 내 NPM Install 방법 Eclipse 내 프로젝트에서 오른쪽 클릭 후    StartExplorer -> Start Shell Here 을 실행한 뒤    나온 Console 내에서 npm 명령어를 실행한다. npm install express --save npm install java --save Permission 에러 시 명령어 뒤에 --allow -root를 입력한다. ...

리눅스 관련 작업 내역

고객사: O*저*은* 참여기간: 2016년 9월 26일 부터 2016년 9월 30일까지 협력사원: 소**** 2명 작업내용: 전체 리부팅 super user 권한 설정 및 비밀번호 재설정 사용하는 계정들 root 권한 부여 필요한 폴더 chown 리눅스 부팅시 자동으로 Tomcat Listner와 DB(Oracle 11g)를 시작하게 설정 스크립트를 통해 서비스 등록 (으로 변경) /etc/rc.local에 등록을 해서 바로 실행하는 법 전체 동작 확인 및 jsp 파일 수정 개발환경: OS:    redhat 6.4 Server: Tomcat6/7 테스트환경: VMWare 12 OS: redhat 7.2 (RHEL, RHSL) ubuntu oracle linux centOS (GNOME) Scientifil linux Asianux Wow Linux 위 OS들에 Oracle, Tomcat 및 JDK 설치 후 autostart 여부 확인 DB: Oracle Express Edition 11g Server: Tomcat 7/8 근무회사: 현재 퇴직 사족: 이 뒤로는 외근 나가도 블로그에 안 썼음 (자주 외근 갔기 때문입니다.)

개발 공부 - 자바스크립트로 운영체제, 브라우저 구별하기 (navigator.userAgent 사용)

 Navigator 객체는 브라우저 종류, 버전 등에 대한 정보를 제공한다. Netscape Navigator 브라우저로부터 온 객체 이름이며, IE에서는 커스텀화 된 함수도 제공하지만 이걸 쓰는 목적이 크로스 브라우징을 위한 것이므로 생략한다. navigator 프로퍼티 정보 중 userAgent는 브라우저가 User-Agent Http 헤더에 넣어 전송하는 문자열이다. 이는 appName과 appVersion 등의 모든 정보를 포함하며, 더 자세한 정보는 추가적으로 담고 있다. 이 정보는 표준화된 서식이 없어서 브라우저 특성에 따라 파싱해줘야 한다. 이 정보 중 Mozilla/version의 뜻은 Netscape 브라우저 버전과 호환 가능하다는 의미로 넣은 것이라고 한다. 리눅스에서는 세부 OS 정보가 Firefox(우분투에서는 기본 브라우저)에서만 식별 가능하다. 크롬이나 오페라 같은 경우에는 나오지 않는다고 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 var  userAgent = navigator .userAgent.toLowerCase(); var  browser; if (userAgent. indexOf ( 'edge' ) > - 1 ){     browser = 'EDGE' ; } else   if (userAgent. indexOf ( 'whale' ) > - 1 ){     browser = 'NAVER Whale' ; } else   if (userAgent. indexOf ( 'chrome' ) > - 1 ){     browser = 'CHrome' ; } else   if (userAgent...

개발 공부 - 자바스크립트 숫자 boolean 형변환

 자바스크립트에서 !을 not으로 사용하지 않고 오브젝트를 boolean으로 형변환할 때 사용하는 연산자(Operator)로 쓴다. !!는 not을 두번 써서 true로 사용할 때 사용한다. true나 false 값을 숫자나 문자 형태로 사용하지 않고 boolean으로 사용시에 javascript에서 쓴다. 1 2 3 4 5 6 7 8 9 10 ! 0   =   true ! 1   =   false ! ! "1" ;  //true (문자) ! ! "0" ;  //true (문자) ! ! 1 ;  //true ! ! 0 ;  //false ! ! parseInt ( "0" , 10 );  // false (문자 0 -> 숫자 0(false) -> !! (true(false)) -> false) cs 자료 출처 (2020-01-13 참조) : https://stackoverflow.com/questions/11550681/what-does-1-and-0-mean-in-javascript https://stackoverflow.com/questions/784929/what-is-the-not-not-operator-in-javascript?rq=1

개발 공부 - 자바스크립트 URL 정보 (window.location, location 정보)

자바스크립트의 location 객체를 이용해서 현재 URL 정보를 볼 수 있다. window를 생략해도 사용 가능하고, 대부분 브라우저에서 지원한다. 서버 설정이랑은 상관없이 자바스크립트 내 window.location에는 url 정보를 볼 수 있는 변수들이 있는데, 1 https: //search.naver.com/search.naver?sm=top_hty&fbm=0&ie=utf8&query=%EA%B2%80%EC%83%89 cs 이라는 주소를 실행했을 때 반환되는 정보를 가지고 사용한다. 내가 평소 쓰는 스타일은 1 2 3 4 location .protocol : https: location .host : search.naver.com location .pathname : search.naver location .search : ?sm = top_hty & fbm = 0 & ie = utf8 & query = %EA%B2% 80 %EC% 83 % 89 cs 이런 식으로 사용한다. window 붙여서 사용시에는 1 2 3 4 5 6 7 window . location .href : https: //search.naver.com/search.naver?sm=top_hty&fbm=0&ie=utf8&query=%EA%B2%80%EC%83%89 window . location .port : 포트 정보는 기재되지 않음 window . location .protocol : https: window . location .host : search.naver.com window . location .h...

개발 공부 - 브라우저 인증서 (HTML5 지원 인증서)

브라우저 인증서(HTML5 지원 인증서)는 브라우저에 종속된 인증서이다. 인증서 저장 기능도 제공하고 전자서명 기능도 제공하고 그냥 인증서랑 동일하게 사용할 수 있는데 지저분한 프로그램 안 깔고 쓰자는 목적에서 만든 것이라고 한다. 인증서가 브라우저 내에 종속이 되기 때문에 사용하는 브라우저별로 인증서를 등록해서 사용해야 한다. 그리고 Local Storage 내에 저장되는 (개발자 도구의 Local Storage에서 조회 가능) 도메인 -포트 기반 인증서라서  캐시를 지우거나 데이터 삭제 조건을 걸어놓고 쓰면 매번 다시 등록을 해 줘야 사용 가능하다. 예제는 국세청 홈택스에 들어가 보면 [브라우저 인증서 로그인] 기능을 제공하는 걸 예시로 사용해 보면 된다. (근데 홈택스 들어가려면 보안 솔루션 많이 깔아야 여기까지 들어와서 쓸 수 있으므로...)

개발 공부 - 자바 스크립트 삼항연산자 (이중 삼항 연산자)

javascript 난독화 적용된 소스 해석 시 삼항 연산자의 사용이 난무한 것을 발견했다. 적어 뒀다가 나중에 보려 한다. 일단 삼항연산자는 A ? B : C 와 같은 구조를 가진 것인데, A 는 조건절이 들어간다. A의 결과가 TRUE인 경우 - B를 실행하고, A의 결과가 FALSE인 경우 - C를 실행한다. x > 3 ? y =1 : y = 2 와 같은 삼항연산자가 있다면, var x = 2 인 경우에는 false이므로 y 값은 2가 되지만, var x = 4 인 경우에는 true 값이므로 y 값이 1이 된다. 이중 삼항 연산자는 아래와 같은 소스 코드에서 볼 수 있다. return aaaaa ? (alert(bbbbb),!0) : ccccc < 1 ? (alert(ddddd),!1) : (b="http://"+aaaaa+":"+a.port+"/"+bbbb); 이런 식으로 return 처리 하는 경우가 있는데 A ? B : C 랑 똑같은 식으로 구현 된 것이다. A ? B : C ? D : E 는 A ? B : ( C ? D : E ) 랑 같은 것인데 삼항 연산자를 이중 처리한 것이랑 동일하다. A가 TRUE 면 B A가 FALSE면 C가 TRUE 면 D C가 FALSE면 E FALSE - FALSE 검증 후에 정상 동작 처리 되는 구조이다. A ? (B ? C : D ) : E 와 같은 구조로 되어 있는 예제를 구글에서 많이 볼 수 있는데, 순서만 바꿔 두었는데도 http url 구조로 되어 있어서 혼란스러워 했던 코드였다.