NOTICE 




  

JavaScript에서 객체를 생성하는 방법은 몇가지 있다고 하는데 가장 일반적인 방법인 함수를 이용하는 방법이다.



function Abc(a, b, c) {

this.a = a;

this.b = b;

this.c = c;


this.Sum = function() {

alert("a+b+c = " + (a+b+c));

};

}


객체를 만들기 위해서 함수를 사용하는 이유는 사실 함수를 객체이기 때문이다.

일반적인 함수와 다른점은 객체 자신을 나타내는 this키워드를 사용해서 속성이나 메서드를 선언한다는 점이다. 

(변수 선언에는 var키워드를 사용한다)


위의 예에서는 Abc객체의 a,b,c 속성과 Sum메서드를 정의하였다.


객체를 생성하고 사용하는 방법은 아래와 같다.


var abc = new Abc(1,2,3);

alert(abc.a);

abc.Sum();


new키워드를 사용해서 객체를 생성하고 나서 속성이나 메서드를 사용한다.

위의 예에서는 a속성을 참조하고, Sum메서드를 호출하고 있다.




















'Software Development > Web일반' 카테고리의 다른 글

Modernizr 사용하기  (0) 2015.07.20
jQuery로 radio의 체크된 아이템 값 가져오기, 값 세팅하기  (0) 2014.07.10
node.js  (0) 2014.05.02
  
트랙백   |  댓글   |




  

ssh로 Ubuntu 리눅스 서버에 접속해서 사용중인데 이게 얼마동안 놔두면 접속이 끊어져 버렸다.

정말 짜증나서 찾아보니 ssh의 접속을 유지하는 방법이 있었다.



Server쪽에서 설정을 변경하는 방법


(1) ssh 데몬의 설정파일을 수정해서 접속 유지 시간을 늘려주는 방법


/etc/ssh/sshd_config 파일를 에디터로 열고 아래와 같이 수정한다.


TCPKeepAlive yes

ClientAliveInterval 60


클라이언트로 부터 60초간 입력이 없으면 ssh 데몬이 null 패킷을 클라이언트로 전송해서 연결을 유지시킨다.

디폴트는 0으로 클라이언트로 패킷을 보내지 않는다.

설정후 ssh를 재시작해 주어야 한다.




Client쪽에서 설정을 변경하는 방법


아무래도 서버의 설정을 변경하는 것보다는 클라이언트의 설정을 변경하는 것이 훨씬 안전하다.

그리고 서버쪽 설정을 맘대로 바꿀 수 없는 경우도 있기 때문에 클라이언트 설정을 바꾸는 방법이 좋다.


(1) 클라이언트의 ssh 설정파일을 변경하는 방법


ssh의 설정파일(/etc/ssh/sshd_config or /etc/sshd_config)에 null 패킷을 서버로 전송하도록 추가한다.


ServerAliveInterval 60


위와 같이 하면 60초 간격으로 null 패킷을 클라이언트가 서버로 전송한다. 이로 인해 연결이 유지된다.

 


(2) (1)번 대신 자신의 홈디렉토리의 ssh설정파일(~/.ssh/config)을 수정해서(없으면 만들어서) 아래와 같은 내용을 추가해도 된다.


Host *

Protocol 2

ServerAliveInterval 60



(3) 만약 putty와 같은 클라이언트 프로그램을 사용한다면 접속 유지 시간을 설정할 수 있는 메뉴를 제공한다.


PuTTY configuration -> Connection -> Enable TCP keepalives를 체크

Seconds between keepalives에 시간 설정


이러한 메뉴에서 연결을 유지하도록 설정하면 된다.



  
트랙백   |  댓글   |




  

우분투(Ubuntu 12.04.4 LTS (GNU/Linux 3.5.0-30-generic x86_64)에 Play Framework 2.2.2를 설치하다 삽질한 내용을 정리했다.


Play Framework는 Java 7, Scala 버전이 낮은 경우 실행중 여러가지 에러를 발생시켰다. 처음엔 발생한 에러가 버전과 관련이 있을꺼란 생각을 못해서 무척이나 헤멨다.



Java 7

(JVM 7이 설치되어 있으면 이 단계 패스)


일단, JVM 7을 설치하기 위해서는 add-apt-repository커멘드가 필요한데 없다면 아래와 같이 설치한다.


sudo apt-get install python-softwore-properties



이제 java 7을 설치하자.


sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java7-installer



정상적으로 설치되었는지 버전을 확인해 보자.


java -version





Scala

(신버전 Scala가 설치되어 있으면 이 단계 패스)


이미 설치되어 있는지, 버전은 어떻게 되는지 체크한다.


which scala

scala -version



기존에 구버전이 설치되어 있는 경우 아래와 같이 제거한다.


sudo apt-get remove scala-library scala



웹에서 deb 설치패키지를 다운로드한다.(여기서는 2.10.3 버전을 설치)


wget www.scala-lang.org/files/archive/scala-2.10.3.deb



패키지를 설치한다.


sudo dpkg -i scala-2.10.3.deb

sudo apt-get update

sudo apt-get install scala





Play Framework


Play Framwork를 다운로드한다.


wget http://downloads.typesafe.com/play/2.2.2/play-2.2.2.zip



압축을 풀면 된다. upzip이 없으면 받아서 설치(sudo apt-get install zip unzip)한 후 압축을 푼다.


unzip play-2.2.2.zip



사용하기 편하도록 .profile파일에 Play Framework 패스를 추가한다.

PATH=$PATH:/설치경로/play-2.x.x



콘솔에 다시 로그인하면 위에서 지정한 패스가 적용될테니 콘솔에서 play라고 치면 아래와 같은 화면을 볼 수 있다.

이제 Play Framework를 즐기면 된다~!!!






  
트랙백   |  댓글   |




  

오늘 cafe24에서 제공하는 우분투 리눅스 가상서버 호스팅 서비스에 가입했다.


가상서버로 선택한 OS는 Ubuntu 12.04이다.  하지만 기본적으로 웹서버 운영을 위한 패키지가 설치되어 있지 않다.


우선 웹서비스를 운영하기 위한 가장 기본적이 APM(Apache, php, MySQL) 패키지를 설치했다.


주의!

apt-get의 버전이 낮을 경우 설치가 실패할 수 있다.

이럴경우 아래의 커멘드를 실행한다.

sudo apt-get update

sudo apt-get upgrade


(1) .git 분산 형상 관리툴 설치

sudo apt-get install git-core


(2) zip 압축툴 설치

sudo apt-get install zip unzip


(3) vsftpd FTP서버 설치

sudo apt-get install vsftpd

설치후 설정

설정파일 위치 : /etc/vsftpd.conf

  아래의 항목을 세팅

anonymous_enable=NO

local_enable=YES

write_enable=YES

설정후 재시작 : service vsftpd restart



PHP 웹 애플리케이션 개발을 위한 준비


(Ubuntu 12.04.4에 Play Framework 2.2.2를 설치한 좀 더 자세한 포스팅이 이곳이니 참조할 것)


(1)Apache 웹서버 설치

sudo apt-get install apache2

아래의 항목을 세팅하였음.

/etc/apache2/apache2.conf

서버 이름을 지정하지 않으면 아파치 시작할 때마다 경고를 출력하므로 도메인명을 설정했다.

ServerName "xxxxx.co.kr"

/etc/apache2/conf.d/charset

UTF-8을 기본 문자셋으로 설정

AddDefaultCharset UTF-8

/etc/apache2/sites-available/default

파일리스트가 출력되지 않도록 Indexes를 제거하였다.

<Directory /var/www/>

Options Indexes FollowSymLinks MultiViews

도큐먼트 루트를 /var/www 이외의 경로로 지정하고 싶은 경우

DocumentRoot /var/www

bold된 부분을 원하는 경로로 변경하면 된다.


만약 접근을 원하지 않는 디렉토리가 있다면 해당 디렉토리에 대해 아래와 같이 설정을 추가한다.

<Directory "접근을 원하지 않는 경로">

AllowOverride None

Order deny,allow

Deny from all

</Directory>


일단 이렇게만 설정했다.

설정을 적용하려면 아파치 재시작 필요(service apache2 restart)



(2)MySQL 데이터베이스 설치

sudo apt-get install mysql-server mysql-client

설치중 데이터베이스 관리자 암호 설정


(3)PHP설치

sudo apt-get install php5 php5-common

설치후 php동작 확인

웹루트경로(/var/www)에 아래와 같은 내용의 phpinfo.php파일을 생성

<?

phpinfo();

?>

웹브라우저에서 http://xxxxx.co.kr/phpinfo.php을 열어서 php정보가 제대로 보이면 OK.


(4)phpmyadmin 웹기반 MySQL툴 설치

sudo apt-get install phpmyadmin

웹서버 선택할 때 apache선택

phpmyadmin의 데이터베이스를 dbconfig-common로 설정함.

phpmyadmin관리자 계정 비밀번호 등록

설치후 아파치의 설정파일(/etc/apache2/apache2.conf)에 아래와 같이 phpmyadmin설정을 추가해야 함

    Include /etc/phpmyadmin/apache.conf

추가한 후에 아파치 웹서버 재기동 필요(service apache2 restart)


보안상 문제가 될 수 있으므로 phpmyadmin의 기본 경로 변경한다.

기본적으로 phpmyadmin은 아래의 경로가 된다.

http://xxxxx.co.kr/phpmyadmin

하지만 이 경로는 해커들의 공격대상이 되기 쉬우므로 변경하는 것이 좋다.

/etc/phpmyadmin/apache.conf파일을 열어 아래의 라인을 수정해 준다.

Alias /phpmyadmin /usr/share/phpmyadmin

bold된 부분을 원하는 이름으로 변경하면 된다.



Play Framework 웹 애플리케이션을 위한 준비


(1)JVM설치

sudo apt-get install default-jre


(2)scala 설치

sudo apt-get install scala


(3)Play Framework 다운로드

wget http://downloads.typesafe.com/play/2.2.2/play-2.2.2.zip

다운로드후 압축해제(unzip play-2.2.2.zip)


(4)패스 설정 추가

.profile파일에 Play Framework의 패스를 추가한다.

예)

PATH=$PATH:/설치경로/play-2.x.x




  
트랙백   |  댓글   |




  


라즈베리 파이에 패키지 설치하기


apt-get(Advanced Packaging Tool)을 이용해서 소프트웨어 패키지들을 설치하면 라즈베리파이의 활용도가 증가한다.



아파치 웹서버 설치

sudo apt-get install apache2

웹서버루트 : /var/www

설정파일위치 : /etc/apache2/apache2.conf


mysql 설치

sudo apt-get install mysql-server mysql-client

설정파일위치 : /etc/mysql/my.cnf

php 설치

sudo apt-get install php5-common php5 libapache2-mod-php5

설정파일위치 : /etc/php5/apache2/php.ini


phpmyadmin 웹기반 mysql 

sudo apt-get install phpmyadmin

설치중 phpmyadmin의 계정을 만들어 주어야 함.

설치후 아파치설정파일의 맨 끝에 아래와 같은 phpmyadmin설정을 인클루드해 주어야 한다.

Include /etc/phpmyadmin/apache.conf

설치후 아파치 재기동해야 적용됨(sudo /etc/init.d/apache2 restart)


.git 분산 형상 관리 툴 설치

sudo apt-get install git-core


vim 텍스트 에디터 설치

sudo apt-get install vim


ftp server(vsftpd) 설치

sudo apt-get install vsftpd

설정파일위치 : /etc/vsftpd.conf

설정 변경후 재기동 필요(sudo /etc/init.d/vsftpd restart)


samba 설치

sudo apt-get install samba samba-common-bin


zip 설치

sudo apt-get install zip unzip



만약 설치가 실패한다면 라즈베리파이의 버전이 낮아서 발생한 문제일 수 있다.

이 경우 아래의 커멘드를 실행해서 최신상태로 업데이트하고 재시도 하면 된다.

sudo apt-get update

sudo apt-get upgrade



  
트랙백   |  댓글   |




  

난 맥 매버릭(OS X 10.9.1)을 사용하고 php 5.3버전을 설치해서 사용하고 있는데, 

php의 시간함수로 출력한 시간이 현재 시각보다 8시간 느리게 나와서 아래와 같이 한국시간으로 타임존을 설정했다.


<php.ini>


date.timezone = Asia/Seoul



이렇게 설정해주고 아파치를 재시작하면 타임존이 적용되어 제대로 한국 시간이 출력될 줄 알았는데 결과는 그렇지 않았다!!!


수많은 삽질과 검색으로 알게 된 것은....


php의 설정파일은 php.ini하나만이 아니라 여러개가 있고, 다른 설정파일에 의해서 php.ini의 타임존 설정이 덮어씌어졌다는 것이었다.


각 설정파일들이 어디에 있는지는 phpinfo()로 알 수 있다.





위의 그림처럼 php.ini와 추가 설정 파일들이 다수 존재한다.

추가 설정파일은 환경에 따라 다르다.


조사 결과 php.ini의 타임존이 덮어쳐진 이유는 

/usr/local/php5/php.d/99-liip-developer.ini

파일에서 타임존을 다시 설정하고 있기 때문이었다.


99-liip-developer.ini 파일을 열면 아래와 같이 타임존을 "쥬리히"로 세팅하고 있는 것을 알 수 있다.


...



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; adjust those settings as required

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


[liip]

memory_limit = 256M


; Liip Zurich

date.timezone = Europe/Zurich

date.default_latitude  = 47.38

date.default_longitude =  8.5244



...



위의 빨간 글씨의 3줄을 ";"로 코멘트아웃하고 아파치를 재시작하니 시간이 한국시간으로 출력되었다.


지금까지 한 삽질을 생각하면 눈물이... T-T 



  
트랙백   |  댓글   |




  

C/C++로 윈도우즈 쪽 개발을 하다 리눅스 쪽으로 오면 적응 안되는 것이 몇가지 있는데 그 중 하나가 fork()함수다. 윈도우즈 쪽에서는 주로 CreateProcess(), CreateTherad() beginthreadex()같은 함수를 사용해서 쓰레드나 프로세스를 다루었는데 유닉스나 리눅스 쪽으로 넘어오니 주로fork()를 이용해서 프로세스를 만들어 사용하고 있었다.

처음에는 사용하는 방법과 개념을 이해하질 못해서 헤맸던 기억이 난다.


fork()는 실행 중인 프로세스의 복사본 프로세스를 생성하는 함수이다. 

주로 실행 중에 별도의 독립된 작업이 필요한 경우 fork()로 복사된 프로세스가 수행하도록 하는 것이 일반적인 사용이다. 


간단한 사용예


#include <stdio.h> // printf, fprintf

#include <unistd.h> // fork


int main()

{

        int pid;


        if((pid = fork()) < 0 ) {

                fprintf(stderr, "folk error\n");

                return -1;

        }


        if(pid==0) {

                printf("I'm child PID=%d\n", getpid());

                printf("My parent is %d\n", getppid());

        }

        else {

                printf("I'm parent PID=%d\n", getpid());

                printf("My child is %d\n", pid);

        }


        return 0;

}



출력 결과


I'm child PID=23793

My parent is 23792

I'm parent PID=23792

My child is 23793



부모 프로세스는 fork()로 자식 프로세스를 생성한 후에 자신의 프로세스ID와 생성한 자식의 프로세스ID를 출력하고 종료한다.

자식 프로세스는 자신의 프로세스ID와 자신을 생성한 부모 프로세스ID를 출력하고 종료한다.


자신이 부모 프로세스인지 자식 프로세스인지를 알려면 fork()의 리턴값을 확인해보면 된다. 

fork()의 리턴값이 0보다 큰 경우(자식 프로세스의 프로세스ID임)에는 자신이 부모프로세스인 경우이고, 0인 경우에는 자신이 자식 프로세스인 경우이다. fork()가 실패한 경우 리턴값은 0보다 작은 값이다.



  
트랙백   |  댓글   |




  


첫번째 안드로이드앱 [빌린돈 빌려준돈]이 출시된 후 약 3주만에 두번째 안드로이드 앱[주소 매니저]를 출시했습니다.

제 닥달에도 불만 한마디 없이 작업해 준 팀원 여러분 정말 감사합니다.


아래는 [주소 매니저]에 대한 소개입니다.




[구글 플래이 스토어]



‘주소 매니저’ 는 주소에 관한 편리함을 드립니다.

우리집 우편번호가 어떻게 되더라? 
택배를 보내야 하는데 주소가 어떻게 되더라? 
거래처 찾아가는데 주소가 도로명으로 되어있네. 어디지? 
해외물품구매, 우리집 영문주소는?

이모두를 ‘주소 매니저’ 가 해결해 드립니다.

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

▶ 알고계세요?◀
2014년부터는 현재의 지번 주소와 도로명주소의 병행 사용에서 도로명 주소만 사용하도록 주소체계가 완전 변경됩니다.

▶ 도로명주소란?◀
큰 도로를 중심으로 인접한 도로에 따라 건물번호를 부여하는 방식으로 국제 표준입니다. 
또한 길을 따라 주소가 변화하기 때문에 주소를 확인하기도 편리합니다.

▶ 불편해요◀
도로명 주소가 아무리 편리하다고 해도 하지만 아직까지는 지번 주소가 더 익숙한 것이 사실입니다.

▶ 해결책◀
‘주소 매니저’ 는 이렇게 어렵게 느껴지는 도로명 주소를 쉽게 사용할 수 있도록 도와줍니다. 
이제 주소가 알고 싶을 땐 ‘주소 매니저’ 를 이용해 보세요.

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


■ ‘주소 매니저’ 의 기능은 다음과 같습니다.■

1. 기본기 검색기능 : ‘주소검색’
- 도로명 / 지번 / 건물명 으로 도로명 주소와 지번 주소, 그리고 영어주소 까지 함께 검색할 수 있습니다.
- 검색한 주소를 복사할 수 있어 이메일 / SMS / 카톡 등으로 보낼 때도 편리합니다.
- 우편번호를 확인 하고 싶을때도 사용해 보세요.

2. 연락처 일괄 변경 : ‘주소변환’
- 연락처에 저장된 지번 주소들. 연락처를 일일이 손으로 주소를 변경하기는 너무 힘들죠? 
연락처에 기록된 모든 지번 주소를 한번에 도로명 주소로 쉽게 변경 시켜 줍니다.
- ‘주소 매니저’ 만의 HOT한 기능인 ‘주소변환’. 꼭, 사용해 보세요.

3. 매번 검색은 너무 귀찮아 : ‘즐겨찾기’
- 검색한 주소를 즐겨찾기에 등록해 놓으면 다시 검색하지 않아도 바로 확인 할 수 있습니다.
- 자택이나 회사, 자주 확인해야 하는 곳의 주소를 등록해 놓으세요.

4. 주소로 찾아가자 : ‘지도로 보기’
- 검색하거나 즐겨찾기한 주소는 언제든지 지도로 확인 할 수 있습니다.

5. 스타일대로 5가지 글씨크기
- 한 화면에 많은 주소를 보고 싶으면 글자를 작게 해 보세요.
- 너무 작은 글자에 고생하셨다면 글자를 크게 해 보세요.

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








  
트랙백   |  댓글   |




  

반스앤노블스의 NOOK HD+를 배대지로 구매하고 CM10.1을 깔았다.

기본OS 상태에서 플레이스토어를 사용할 수 있었지만 역시나 설치할 수 있는 앱의 제한이 많았다.

깔고 나니 이제야 쫌 안드로이드 머신같다. ^^





암튼 CM10으로 올린 다음에 NOOK에서 스크린샷을 뜨려고 인터넷을 찾아보니

볼룸하단 버튼과 전원 버튼을 동시에 누르면 된다고 한다.


잘 되는듯...



  
트랙백   |  댓글   |




  

빌린 돈 빌려준 돈을 관리하는 안드로이드 앱 [빌린돈 빌려준돈]입니다.

 

6월 11일 구글 Play Store에 릴리스하였습니다.

 

구글 플레이

https://play.google.com/store/apps/details?id=kr.coreassist.borrowedmoney&feature=search_result#?t=W251bGwsMSwyLDEsImtyLmNvcmVhc3Npc3QuYm9ycm93ZWRtb25leSJd

 

 

TStore

http://www.tstore.co.kr/userpoc/game/viewProduct.omp?t_top=DP000504&dpCatNo=DP04008&insDpCatNo=DP04008&insProdId=0000395998&prodGrdCd=PD004401&stPrePageNm=DP04008&stActionPositionNm=06&stDisplayOrder=1

 

 

삼성 앱스

http://apps.samsung.com/mercury/topApps/topAppsDetail.as?productId=000000622690&listYN=Y

 

 

이하는 앱의 설명입니다.

 

 


[빌린돈 빌려준돈]은 일상생활에서 편하게 빌리고 빌려준 돈을 관리하기 위한 앱입니다.

우리는 일상생활에서 많은 돈거래를 하게 됩니다. 친구나 직장동료 또는 다른 대상과 돈을 빌리거나 빌려주게 됩니다. 그런데 일상생활에서 돈을 빌리거나 빌려줬을 때 제때 갚지 않거나 잊어버리게 되면 서로 얼굴을 붉히거나 손해를 보게 되는 경우가 종종 발생하곤 합니다. 특히 소액같은 경우는 쉽게 잊어버리는 경우가 빈번하게 생겨서 돈관리를 제대로 못한다는 이미지로 보여지게 되기도 합니다.

이 앱은 입력만으로 빌리거나 빌려준 돈을 잊어버리지 않게 도움을 줌으로써 깔끔한 돈관리가 가능하게 도와주는 앱입니다. 또한 블랙리스트나 히스토리 기능을 제공함으로써 돈거래에 도움을 줍니다.

[주요기능]

※비밀번호 기능
비밀번호를 설정 하면 자신외에는 사용할 수 없도록 하는 기능입니다.

※ 앞으로의 상환 내용 한눈에 보기 기능
어플 기동시 오늘로부터 앞으로 일주일간 빌리거나 빌려준돈의 상환내용을 바로 보여주는 기능을 제공합니다.

※거래대상 히스토리기능
거래대상에 대해 현재까지의 거래내용을 보여줌으로써 거래대상에 대해 한눈에 파악이 가능합니다.

※블랙리스트기능
거래가 불량인 거래대상에 대해 한눈에 알아보기 쉽게 사진에 블랙리스트를 표시합니다.

※즐겨찾기 기능
자주 거래하는 거래대상에 대해 즐겨찾기등록을 함으로써 빠르고 간편한 입력이 가능합니다.

※알람기능 (다음 버젼 추가 예정)
알림기능이 있어서 지정한 날짜에 상환할내용을 보여주는 기능을 합니다.

 

 

 

 

 

 

 

 

 

 

  
트랙백   |  댓글   |
 이전  12345···19   다음 

최근댓글
최근트랙백
fotowall :: ncloud RSS Feeds today :    yesterday :
total :