2017년 2월 1일 수요일

[spring] @Scheduled 로 이번달의 마지막 일자에 실행하기가 안될때

Spring 에서 @Scheduled 어노테이션 사용시 해당월의 마지막에 실행하려고
'L' 문자를 사용하려고 하면 에러가 발생한다.

그래서 매일 실행 하면서 java에서 마지막 날을 확인해서 실행 하는 방식으로 처리 하였다.

@Scheduled(cron="1 0 0 * * *")
private void SchedulerEndDayOfMonth() {
  
    Calendar cal = Calendar.getInstance();
    // 오늘이 월의 마지막 일인지 확인
    boolean isLastDay = cal.get(Calendar.DATE) == cal.getActualMaximum(Calendar.DATE);
 
    if(isLastDay) {
        // 실행 내용 
    }
}

2017년 1월 20일 금요일

[jsRender] jsRender 사용 되는 기본 표현식 및 기본 개념 정리

스크립트와 html 코드를 분리할 방법을 찾다가  jsRender를 사용하게 되었습니다.
단순한 작업은 그냥 봐도 사용하는데 문제가 없는데 점점 케이스가 다양해지면서 역시 기본이 개념에 대한 이해가 필요해 지더군요.
그래서 jsRender를 사용하다 기본적으로 참고할 만한 사항을 정리 하였습니다.

1. 탬플릿 태그

1) {{: ...}}
 데이터의 경로나 표현식을 넣으면 데이터나 표현식의 결과를 출력한다.

[data]
var person = {
    name : "joe",
    age : 30,
    tag : "very good man"
}

[example]
{{: name}} => joe
{{:"Hi! " +name}} => Hi! joe
{{:age + 10}} => 40
{{:: name == 'peter'}} => false

2) {{> ...}}
    {{: ...}} 와 동일하나 HTML-encoded 형태로 출력한다. (HTML 태그를 그대로 출력한다.)

[example]
{{:tag}} => very good man
{{>tag}} => very <b>good</b> man

2. view 와 data

view는 일종의 jsRender에서 사용하는 블럭 단위라고 생각하면 됩니다. 
각 view에는 data라는 property 가 있어서 전달받은 객체가 data에 담기게 됩니다. 
만약 사용자가 person객체를 넘기면 하나의 view가 생기면서 data = person 이 됩니다. 
이 view가 블럭 태그(에를 들면 for 같은, 단 if는 제외)를 만나면 하위 view 생기고 하위 view에 data 생성 됩니다.

루프 블럭을 예로 들자면 처리중 for 구문을 만나게 되면 arrayView가 생성되고 해당 data = array 가 됩니다. 그리고 루프를 돌게 되면 해당 array의 각 하나의 요소를 가진 itemView가 생기게 됩니다. 
이렇게 되면 array[index]가 itemView의 data가 되게 됩니다.

패스를 사용할때 현재 view의 data는 생략해도 됩니다 하지만 상위 view의 데이터를 접근할때는 꼭 써줘야만 접근이 가능합니다.


3. 패스(Path)
    객체에 접근하는 방식으로 객체의 타입에 따라서 접근하는 방식에 차이가 있습니다.

1) Data paths - {{ ... }} 
    일반적으로 사용하는 데이터에 접근 하는 표현 방식입니다. 별도로 붙이는게 없이 그냥 사용하면 됩니다.
    현재 view에 있는 data 요소에 접근하는 방식으로 data를 생략하고 사용하면 됩니다.
    예를 들면 person 이라는 객체를 받은 경우 data.name 또는 name 으로 접근 하면 됩니다.
    dataProperty.bb.cc

3) View Paths - {{ #...}}
    view의 요소에 접근 하는 표현 방식 입니다. # 을 붙여서 사용 합니다.
    #view 는 현재의 view 블럭을 가르키고  #view.data 는 #data 로 표현이 가능합니다.
    #viewProperty.bb.cc

    view에는 다른 view에 접근 하거나 기본적용 요소들이 있습니다.
    이 표현으로 유용한 요소는  상위 view를 표현하는 #parent 나 loop 블록에서 사용되는 #index  요소가 있습니다.
    상위  view 에 있는 team 이라는 객체에 접근하고 싶은 경우 다음과 같이 표현하면 됩니다.
    #parent.data.team

4) Helper paths - {{~...}}
    helper 패스는 사용자가 생성해서 설정한 함수, 객체 등을 사용할때 사용하는 표현 방식으로 jsRender에 함수 같은것을 넘겨서 사용할때 사용하게 됩니다.
    그리고 contextual 파라메터를 접근할때도 사용하게 됩니다. (~root)
    ~myHealper.bb.cc


* 참조
  - https://www.jsviews.com/#paths
  - https://www.jsviews.com/#helpers
  - https://www.jsviews.com/#contextualparams
  - https://www.jsviews.com/#views
  - https://www.jsviews.com/#views@datacontext

2017년 1월 12일 목요일

[git] gitlab 설치 하기

gitlab 설치 방법

git 서버 구축을 위해서  gitlab을 설치 하는 방법 입니다.

설치 OS : CentOS 7

1.  기본 환경 설정 및 의존도 있는 어플리케이션 설치
- 필요 프로그램 사전 설치
sudo yum install curl policycoreutils openssh-server openssh-clients

- sshD 기동
sudo systemctl enable sshd
sudo systemctl start sshd

- 메일 서버 설치 및 기동
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

- 방화벽 설정 및 재시작
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

* 이미 설치되어 있는경우 설치 하지 않아도 됩니다.

2. gitlab 패키지 설치
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce

3. gitlab 설정 및 기동
sudo gitlab-ctl reconfigure

4. 접속(웹브라우저)
http://[gitserverIP]

* 관리자 계정은 root 이고 기본 패스워드는  5iveL!fe 으로 되어 있지만 초기 접속하면 바로 패스워드 변경 화면으로 이동하게 됩니다.

5. 기동 / 중지 / 재시작
sudo gitlab-ctl start
sudo gitlab-ctl stop
sudo gitlab-ctl restart

6. 기타 정보
 - 설치는 /opt/gitlab 에 됩니다. 
 - 설정 변경시 /etc/gitlab/gitlab.rb 를 수정해 주고 
   sudo gitlab-ctl reconfigure 해 주시면 됩니다.


** 주의 사항
계정을 만들어 실행 시키는 경우 sudo 가 실행이 안되고 아래 에러가 나는 경우가 있습니다.
[user] is not in the sudoers file.  This incident will be reported.

root 계정으로 sudouser 에 추가해 줍니다.
visudo -f /etc/sudoers

root ALL=(ALL) ALL
아래에 계정을 추가해 줍니다.

[아이디] ALL=(ALL) ALL

** 주의 사항
- 설치 시에  git 이라는 유저가 이미 있으면 설정 및 실행시 실패 합니다.(있으면 지워야 합니다.)

* 참고 사항 : https://about.gitlab.com/ 의  download  항목에서 OS를 선택하면 친절 하게 설치 절차를 보여 줍니다.

[git] git 설치 하기

git 설치 단계를 정리 하였습니다.


1. git 컴파일  설치

1) 설치된 git 확인
yum list git

2) 기존 git 삭제
yum -y remove git

3) git 버젼 확인
https://www.kernel.org/pub/software/scm/git

4) git 가져 오기
cd /usr/src
wget https://www.kernel.org/pub/software/scm/git/git-2.11.0.tar.gz

5) 필요 어플리케이션 설치
yum -y install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel
yum -y install gcc

6) git 설치
tar xvf git-2.11.0.tar.gz
cd git-2.11.0
make configure
./configure --prefix=/usr/local
make install

** 주의 사항
- autoconf 관련 에러가 발생하면 설치 하면 됩니다.
yum -y install autoconf


2. git yum  설치

1) git 설치 확인
yum list git

2) git 설치
yum install git

3) git version 확인
git version

4) 설치한 경로 확인
rpm -ql git


3. git 설정

1) git 사용자 설정
git config --global user.name "[Name]"
git config --global user.email "[e-mail]"

2) git 설정 확인
git config -l

3) git 스토리지로 설정
mkdir gittest
cd gittest
git init


** 주의 사항
  - 서버로 사용하기위해서는 gitlab 같은 패키지를 설치 해야합니다.