2017년 8월 30일 수요일
2017년 8월 25일 금요일
Srping AOP와 proxy 관련 내용
Aop : aspect oriented programming
-비니지스 로직은 아니지만 반드시 해야하는 작업(로그,트랜잭션처리)
-개발의 핵심적인 비지니스 로직에만 집중하고 나머지 부가기능은 설정을 통해서 조정해라
Aspect: 공통관심사(로깅, 보안, 트랜잭션)
Advice: 실제로 기능을 구현한 객체
Join points: 공통관심사를 적용할 대상. Spring AOP에서는 각 객체의 메소드가 이에 해당
(작성된 Advice가 들어갈 수 있는 메소드)
Pointcuts : 여러 메소드 중 실제 Advice가 적용될 대상 메소드
(이것을 통해 Advice가 적용된 형태로 동작)
target : 대상 메소드를 가지는 객체
Aop에서의 proxy : Advice가 적용되었을때 만들어지는 객체]
Introduction: target에는 없는 새로운 메소드나 인스턴스 변수를 추가하는 기능
Weaving : advice와 target이 결합되어서 프록시 객체를 만드는 과정
proxy: 대리인, 바깥쪽 객체, 웹 클라이언트의 요청 URL를 해당 서버가 아닌 프록시 서버로 요청
- se.naver.com에 request 를 하면 내 IP를 가지고 그 웹서버에 바로 접속되는 것이 아니라
'프록시 서버'로 요청을 전송하고 서버는 대리인을 데리고 웹서버에 가서 데이터를 주고 받고
다시 '프록시 서버'를 통해 내 브라우져로 데이터를 가져옴
clinet < - > proxy server < - > naver.com
-비니지스 로직은 아니지만 반드시 해야하는 작업(로그,트랜잭션처리)
-개발의 핵심적인 비지니스 로직에만 집중하고 나머지 부가기능은 설정을 통해서 조정해라
Aspect: 공통관심사(로깅, 보안, 트랜잭션)
Advice: 실제로 기능을 구현한 객체
Join points: 공통관심사를 적용할 대상. Spring AOP에서는 각 객체의 메소드가 이에 해당
(작성된 Advice가 들어갈 수 있는 메소드)
Pointcuts : 여러 메소드 중 실제 Advice가 적용될 대상 메소드
(이것을 통해 Advice가 적용된 형태로 동작)
target : 대상 메소드를 가지는 객체
Aop에서의 proxy : Advice가 적용되었을때 만들어지는 객체]
Introduction: target에는 없는 새로운 메소드나 인스턴스 변수를 추가하는 기능
Weaving : advice와 target이 결합되어서 프록시 객체를 만드는 과정
proxy: 대리인, 바깥쪽 객체, 웹 클라이언트의 요청 URL를 해당 서버가 아닌 프록시 서버로 요청
- se.naver.com에 request 를 하면 내 IP를 가지고 그 웹서버에 바로 접속되는 것이 아니라
'프록시 서버'로 요청을 전송하고 서버는 대리인을 데리고 웹서버에 가서 데이터를 주고 받고
다시 '프록시 서버'를 통해 내 브라우져로 데이터를 가져옴
clinet < - > proxy server < - > naver.com
Linux Unix 차이점
Linux
-Unix를 개인 컴퓨터에서 사용할 수 있도록 한것이 리눅스임
- ex) Cent OS
Unix
- 안전성으로 포털이나 대기업같은 사이트에서 서버로 사용
- ex) AIX
window
- 낮은 보안성
- 대량의 네트워크를 담당하지 못함
- 비싼 가격
shell
- 사용자와 OS 간의 중계 역할을 하는 명령어 해석기
-Unix를 개인 컴퓨터에서 사용할 수 있도록 한것이 리눅스임
- ex) Cent OS
Unix
- 안전성으로 포털이나 대기업같은 사이트에서 서버로 사용
- ex) AIX
window
- 낮은 보안성
- 대량의 네트워크를 담당하지 못함
- 비싼 가격
shell
- 사용자와 OS 간의 중계 역할을 하는 명령어 해석기
2017년 8월 24일 목요일
linux ls, permission, group, rm
1. 리눅스 ls -altr
-a : --all숨겨진 파일까지 보여줌
-l : --formant=long, 파일에 대한 자세한 정보를 보여줌
-t : --수정된 날짜순으로 보여줌
-r : --역순으로 보여줌
2. 리눅스 permission
d rwx r-x r-x 2
파일타입 소유자 소유그룹 공개 링크수(바로가기 수)
root root 4096 Apr 22 16:59 conory
소유자 소유그룹 용량 생성날짜 파일 이름
파일타입: 맨앞글자 d->디렉토리, l ->링크파일, - -> 일반파일
permission: r(읽기,4) w(쓰기,2) x(실행,1)
rwx -> 4+2+1=7
r-x -> 4+1 =5
r-x -> 4+1 =5
permission 파일변경 -> chmod 755 conory.txt
디렉토리변경->chmod -R 777 conory (conory디렉토리 하위모두변경)
3. 리눅스 그룹 확인
-그룹확인 tail -f /etc/group
cat /etc/group | grep 그룹명(그룹번호)
-id <user_name>
uid=203(weblo), gid=202(was) groups=1(staff)
uid: 고유한 아이디(학번)
gid: 속한 그룹 아이디 학과
4. 리눅스 그룹 삭제
-삭제
rm 파일명
rm -r 디렉토리명(디렉토리가 비어있지 않으면 -r 명령어 필수)
delete file, directory
-a : --all숨겨진 파일까지 보여줌
-l : --formant=long, 파일에 대한 자세한 정보를 보여줌
-t : --수정된 날짜순으로 보여줌
-r : --역순으로 보여줌
2. 리눅스 permission
d rwx r-x r-x 2
파일타입 소유자 소유그룹 공개 링크수(바로가기 수)
root root 4096 Apr 22 16:59 conory
소유자 소유그룹 용량 생성날짜 파일 이름
파일타입: 맨앞글자 d->디렉토리, l ->링크파일, - -> 일반파일
permission: r(읽기,4) w(쓰기,2) x(실행,1)
rwx -> 4+2+1=7
r-x -> 4+1 =5
r-x -> 4+1 =5
permission 파일변경 -> chmod 755 conory.txt
디렉토리변경->chmod -R 777 conory (conory디렉토리 하위모두변경)
3. 리눅스 그룹 확인
-그룹확인 tail -f /etc/group
cat /etc/group | grep 그룹명(그룹번호)
-id <user_name>
uid=203(weblo), gid=202(was) groups=1(staff)
uid: 고유한 아이디(학번)
gid: 속한 그룹 아이디 학과
4. 리눅스 그룹 삭제
-삭제
rm 파일명
rm -r 디렉토리명(디렉토리가 비어있지 않으면 -r 명령어 필수)
delete file, directory
네트워크 용어
게이트웨이: 출입구, 랜카드마다 고유번호가 적혀있다
허브: 같은 IP 대역의 호스트를 하나의 네트워크로 연결
백본: 네트워크 장비의 척추. 허브들이 백본장비와 연결되어 데이터가 모아진다. 이 데이터가 라우터를 통해 나간다.
라우터: IP주소를 찾아 최단 경로로 보낸다
프락시서버: 웹페이지의 정보를 열어둘지 말지를 정하며 열어본 페이지를 캐쉬에 저장하며 다시 접근하면 보여줌
방화벽: 외부망과 내부방을 나눈다
로딩바 간단히 추가하기
간단하게 로딩바 이미지 넣는법
1. css 추가
#loading {
width: 100%;
height: 100%;
top: 0px;
left: 0px;
position: fixed;
display: block;
opacity: 0.7;
background-color: #fff;
z-index: 99;
text-align: center; }
#loading-image {
position: absolute;
top: 50%;
left: 50%;
z-index: 100; }
2. jsp에 추가
<div id="loading" style="display:none;" ><img id="loading-image" src="/asset/images/loadingbar/ajax-loader.gif" alt="Loading..." /></div>
1. css 추가
#loading {
width: 100%;
height: 100%;
top: 0px;
left: 0px;
position: fixed;
display: block;
opacity: 0.7;
background-color: #fff;
z-index: 99;
text-align: center; }
#loading-image {
position: absolute;
top: 50%;
left: 50%;
z-index: 100; }
2. jsp에 추가
<div id="loading" style="display:none;" ><img id="loading-image" src="/asset/images/loadingbar/ajax-loader.gif" alt="Loading..." /></div>
2017년 8월 23일 수요일
2017년 8월 20일 일요일
ksh(aix) 명령어 관련
참조 블로그: http://egloos.zum.com/kunlaboranto/v/466836
command line 자동완성 기능
보통 bash 을 많이 사용하는 이유는 <TAB> 으로 수행하는 명령어나 대상 directory, file 들을 자동 완성해 주는
기능이 막강해서죠.
bash 은 아시다시피 <TAB> 으로 합니다.
csh 은 set filec 를 세팅하면 <ESC><ESC> 로 사용 가능합니다.
ksh 은 좀 일반화 되지 않은 듯 하여..
1. set –o vi 로 command line을 vi 모드로 변경.
2. ls a <ESC> + = 를 하면
a1
a2
같은 선택의 범위가 보이고..
3. ls a <ESC> + \ 를 하면 해당되는 곳까지 자동 완성합니다.
기존명령어 반복
esc키 누르고 k 키를 누르면 된다. 그 다음 이전 명령을 사용하려면 다시 반복하면 된다.
기존명령어 반복
esc키 누르고 k 키를 누르면 된다. 그 다음 이전 명령을 사용하려면 다시 반복하면 된다.
2017년 8월 18일 금요일
javascript onclick 이벤트에서 referenceError 발생한 경우
page_html += "<a href='#' onclick='javascript:load_page("+first_page+","+keyword_data+")'>";
이부분을
page_html += "<a href='#' onclick='javascript:load_page(#{first_page},#{keyword_data})'>";
이렇게 정규식을 사용해서 치환해야지 정상 호출된다 하지만 스크립트 버그로 함수 변수에 공백이 들어가는 경우도 있어서 잘 확인해야함page_html =
page_html.replace(/#{first_page}/gi, '"' + first_page + '"').replace(/#{keyword_data}/gi, '"' + key
2017년 8월 2일 수요일
피드 구독하기:
글 (Atom)