쿼리를 짜다가 보면 속도가 느렸는데 빨라져있는 경우가 있다.

그건 옵티마이저 케시에서 쿼리가 돌아서 그러한것이다. 그래서 케시에 돌지 않은 상태를 확인하기 위해 쿼리를 튜닝할 때

다음과 같은 명령으로 케시를 지우고 작업할 수 있다.

 

아마도 10g 이하는 안되는걸로 알고있다.

 

 

1. ALTER SYSTEM FLUSH SHARED_POOL;

2. ALTER SYSTEM FLUSH BUFFER_CACHE;

 

보통 플러그인을 이용하거나해서 한동안 잊고 살았던 엔터값 처리

찾으러다니기 귀찮아서 한벅 적어본다.. 

 

replace(description, chr(13)||chr(10), '\n')

 

 

1. 명사를 나열하여 리스트업 한다.

2. 테이블을 생성시에는 PK는 적을수록 좋다

 

3. 중복되는 컬럼은 다른테이블로 빼서 관리한다 (마스터 / 디테일 처럼)

 

4. 오라클은 테이블당 컬럼 갯수가 255개 까지 가능하지만 컬럼의 갯수는 적을수록 좋다.

 

5. 기본적으로 컬럼에 null 값이 들어가지 않는 형태로 설계한다.

 

6. 테이블 명 / 컬럼명 / 펑션명등은 최대 30자 까지만 가능하다.

 

※ 행안부 사이트에 행정데이터 관리시스템 www.adams.go.kr 에 가면 행정용어사전, Data type 표준안 등등의 자료를 구할 수 있다.

해당 사이트가 사라져서 혼란을 막기위해 해당 링크는 제거합니다.

 

내장객체 상속되는 클래스 혹은 인터페이스
  request   javax.servlet.http.HttpServletRequest
  response   javax.servlet.http.HttpServletResponse
  session   javax.servlet.http.HttpSession
  page   javax.servlet.jsp.HttpJspPage
  pageContext   javax.servlet.jsp.PageContext
  out   javax.servlet.jsp.JspWriter
  application   javax.servlet.ServletContext
  config   javax.servlet.ServeletConfig
  exception   java.lang.Throwable


■ request
클라이언트로부터의 요청을 처리하는 객체
메소드 설 명 비 고
getParameterName() 모든 요청 매개변수의 이름을 리턴합니다. 요청 매개변수를
액세스하기 위한
메소드
getParameter(name) name에 해당하는 매개변수의 값을 리턴합니다.
getParameterValues(name) name에 해당하는 매개변수의 모든 값을 리턴합니다.
getHeaderNames() 요청에 대한 헤더의 이름을 리턴합니다. 요청 헤더를

읽어내는 메소드
getHeader(name) name에 대한 헤더 값을 String형으로 리턴합니다.
getHeaders(name) name에 대한 모든 헤더 값을 리턴합니다.
getIntHeader(name) name에 대한 헤더 값을 int형으로 리턴합니다.
getDateHeader(name) name에 대한 헤더의 날짜값을 리턴합니다.
getCookies() 요청에 대한 모든 쿠키를 리턴합니다.
getMethod() 요청에 대한 HTTP(GET,POST) 메소드를 리턴합니다.
getRequestURL() 요청 URL을 리턴합니다. (질의 문자열은 안 한다.)
getQueryString() 요청 URL을 리턴합니다. (질의 문자열 포함)
getSession(flag) 들어온 요청의 세션데이터를 리턴합니다.
getRequestDispatcher(path) Path에 지정된 로컬URL에 대한 요청 전달자를 리턴합니다.
getRemoteHost() 요청을 보낸 호스트의 이름을 리턴합니다.
getRemoteAddr() 요청을 보낸 호스트의 IP를 리턴합니다.
getRemoteUser() 요청을 보낸 사용자의 이름을 리턴합니다.


■ response
서버가 클라이언트에게 처리결과를 응답하는 객체
메소드 설 명 비 고
setContentType() 응답되는 컨텐츠의 MIME타입을 설정합니다. 컨텐츠 설정에
필요한 메소드
setCharacterEncodeing() 응답되는 컨텐츠의 문자 인코딩 스타일을 리턴합니다.
AddCookie(cookie) 쿠키를 추가합니다. 응답헤더 세팅을

위한 메소드
AddHeader(name,value) 해당이름의 헤더에 값(String)을 추가합니다.
AddIntHeader(name,value) 해당이름의 헤더에 값(int)을 추가합니다.
AddDateHeader(name,date) 해당이름의 헤더에 날자값을 추가합니다.
ContainsHeader(name) 해당이름의 헤더가 포함 되어 있는지 체크합니다.
SetHeader(name,value) 해당이름의 헤더에 값(String)을 넣습니다.
SetIntHeader(name,value) 해당이름의 헤더에 값(int)을 넣습니다.
SetDateHeader(name,value) 해당이름의 헤더에 날짜값을 넣습니다.
setStatus(code) 응답 상태코드를 설정합니다.
sendError(status,msg) 응답코드와 에러 메세지를 설정합니다.
sendRedirect(url) 다른 URL로 이동합니다.
EncodeRedirectURL(url) SendRedirect() 메소드에 넣을 url을 인코딩합니다.
EncodeURL(name) 링크에 넣을 url을 인코딩합니다.


■ session
사용자 개개인의 정보를 처리하는 객체로 사용자가 웹 서버에 접근하면 생성되어 종료 할 때까지 따라다니져..
메소드 설 명
getId() session의 ID를 리턴합니다.
getCreationTime() session이 생성된 시간을 long형으로 리턴합니다.
getLastAccessedTime() session이 마지막으로 액세스된 시간을 리턴합니다.
getMaxInactiveInterval() session이 유지되는 최대시간을 초단위로 리턴합니다.
getMaxInactiveInterval(time) session이 유지되는 최대시간을 초단위로 설정합니다.
isNew() session 값이 없으면 true를 리턴합니다.
invalidate() session 객체를 소멸시킵니다.
session에 저장되어 있던 정보는 모두 삭제됩니다.
getAttribute(name) 세션변수(name)에 설정된 값을 리턴합니다.
setAttribute(name,value) 세션변수(name)에 값(value)을 설정합니다.


■ page
현재 JSP페이지를 나타내는 객체

■ pageContext
JSP 실행에 대한 context 정보를 담고 있는 객체
메소드 설 명 비 고
getException() exception 객체를 리턴합니다. 객체 내부 속성을

알 수 있는

메소드
getOut() out 내부객체를 리턴합니다.
getsession() session 내부객체를 리턴합니다.
getServletConfig() config 내부객체를 리턴합니다.
getServletContext() application 객체를 리턴합니다.
getPage() page 내부객체를 리턴합니다.
getRequest() request 내부객체를 리턴합니다.
getReponse() reponse 내부객체를 리턴합니다.
forward(path) 다른 path에 해당하는 URL로 전달합니다. 요청 전달 메소드
include(path) 다른 path의 페이지를 현제 페이지에 포함합니다.
setAttribute(key,value,scope) Scope의 시간동안 key의 값(value)를 저장합니다. scope속성을

제어 할 수 있는

메소드
getAttributeNamesInScope(scope) 특정 scope의 모든 속성을 리턴합니다.
getAttribute(key,scope) Key에 대한 scope를 리턴합니다.
removeAttribute(key,scope) Key에 대한 scope를 제거합니다.
findAttribute(name) Name에 지정된 속성의 scope를 찾습니다.
getAttributeScope(name) Name에 해당하는 scope를 리턴합니다.


■ out
클라이언트에게 응답하기 위한 output 스트림을 처리하는 객체입니다.
메소드 설 명
print() 내용이 줄바꿈 없이 이어서 출력됩니다.
println() 내용이 줄단위로 출력됩니다.
getBufferSize() 출력버퍼의 크기를 Byte로 리턴합니다.
getRemaining() 출력버퍼의 빈부분 크기를 Byte로 리턴합니다.
clearBuffer() 출력 버퍼를 비웁니다.
clear() 출력 버퍼를 비웁니다. (만약 전에 flush되어 있으면 에러를 발생합니다.)
flush() 출력버퍼를 flush시킵니다.
close() 출력스트림을 닫습니다.


■ application
웹서버의 애플리케이션이 실행되는 실행환경에 대한 정보를 처리하는 객체입니다..
메소드 설 명 비 고
getServerInfo() 컨테이너의 이름과 버전을 리턴합니다. 컨테이너 버전을

알 수 있는 메소드
getMajorVersion() 컨테이너의 주버전을 리턴합니다.
getMinorVersion() 컨테이너의 부버전을 리턴합니다.
getContext(path) Path에 대한 외부환경 정보를 리턴합니다. 서버측의 경로를

알 수 있는 메소드
getRealPath(path) path에 대한 절대경로를 리턴합니다.
getResource(path) path에 지정된 URL을 액세스 객체로 바꾸어줍니다.
getResourceAsStream(path) path에 URL을 읽을 수 있는 입력 스트림으로 바꾸어줍니다.
GetMimeType(filename) filename에 해당하는 파일의 MIME타입을 리턴합니다.
log(msg) msg를 로그파일에 기록합니다. 로그파일 관련 메소드
log(msg,exception) msg와 exception(예외상황)을 로그파일에 기록합니다.


■ config
JSP페이지가 컨테이너에 의해 컴파일되어 서블릿 클래스가 될 때 서블릿의 구성데이터로 초기값과 변수를 저장하는 객체입니다.
메소드 설 명
getInitParameterNames() 변수의 이름을 리턴합니다.
getInitParameter(name) 변수의 이름을 넣을 경우에는 값을 리턴합니다.


■ exception
프로그램에서 예외상황이 발생했을 때 이를 처리하는 객체
exception객체를 다루려면 page지시자의 isErrorPage 속성을 true로 해놓아야 합니다.
<%@ page isErrorPage="true" %>
메소드 설 명
GetMessage() 에러 메세지를 리턴합니다.
ToString() 에러메세지를 String형으로 리턴합니다.
PrintStackTrace(out) 에러발생시 출력스트림을 통하여 출력합니다.

 

@SuppressWarnings


Java 코드를 작성하다 보면 간혹 노란색으로 경고가 나오는 경우가 있습니다 .

마우스 커서를 가져다 놓으면 @SuppressWarnings 을 권유해주곤 합니다 .


컴파일러가 일반적으로 경고하는 내용 중 " 이것은 사용하지 않으면 좋겠다 " 하고 경고를 해주는것입니다 .


그중에도 여러 카테고리가 있습니다 .



1
@SuppressWarnings({ "rawtypes", "unchecked" })

 

 

 

 

all : 모든 경고

cast : 캐스트 연산자 관련 경고

dep-ann : 사용하지 말아야 할 주석 관련 경고

deprecation : 사용하지 말아야 할 메서드 관련 경고

fallthrough : switch문에서 break 누락 관련 경고

finally : 반환하지 않는 finally 블럭 관련 경고

null : null 분석 관련 경고

rawtypes : 제너릭을 사용하는 클래스 매개 변수가 불특정일 때의 경고

unchecked : 검증되지 않은 연산자 관련 경고

unused : 사용하지 않는 코드 관련 경고


 

 

'Development > Java' 카테고리의 다른 글

CustomTypeHandler를 이용한 Mybatis ResultType 설정  (0) 2014.06.16
JSP의 내장객체  (0) 2014.06.04
[펌] jenkins로 서버에 자동 배포하기  (0) 2014.05.22
spring-framework Download  (0) 2014.05.22
Java Mail 구현  (0) 2014.05.21

일단 프리마커 전용 에디터를 사용하게되면...

html 코드 어시스트 기능이 안된다. 프리마커 코드 어시스트는 되지만....

 

그래서 둘중 하나를 선택해야되는데 이래저래 생각해보면 Html 코드 어시스트가 더 떙긴다

 

그러한 이유로 작성된 게시물 입니다...

 

 

1. 그림과같이 Windows > Preferences로 들어갑니다.

 

2. General > File Associations로 이동

 

 

3. 아래 그림과 같이 *.ftl을 추가한다.

 

 

4. 방금 추가한 *.ftl을 클릭하고 아래처럼 Add 하여 Jsp Editor을 설정해준다.

     이렇게 해줘야 ftl 파일 더블클릭할 경우 jsp 에디터가 열린다.

 

 

5. 자 다음은 jsp에디터가 열렸지만 코드 어시스트를 사용하기 위해서 하는 설정이다.

    역시 마찬가지로 *.ftl을 추가해준다 (그림에는 빈칸인데.. 실수로 스크린샷을 잘못찍었다 근데 귀찮아서....)

    그리고 우리는 Default Encoding으로 UTF-8 을 많이쓰니까... 인코딩도 설정..  이떄 반다스 Update를 눌러줘야한다 안그러면

    적.용.이.안.된.다.

 

1. Subversion 설치

# yum install subversion

 

2. Repository 생성

# mkdir /home/svn                 

# cd /home/svn

# svnadmin create --fs-type fsfs [저장소 이름]

   ex) svnadmin create --fs-type fsfs sampleRepo

# chmod –R g+w [저장소 이름]  or  # chmod 664 [저장소 이름]

   (그룹권한에 쓰기권하을 부여하겠다는 뜻)

3. Subversion 설정

# cd /home/svn/[저장소 이름]/conf

    ex) cd /home/svn/sampleRepo/conf

# vi svnserve.conf

    다음과같이 설정

 

[general]

anon-access = none (true : 누구나 읽기 가능, none : 안됨)

auth-access = write (인증된 사용자만 쓰기)

password-db = passwd (사용자 계정 정보 DB로 passwd 파일을 사용하겠다는 뜻)

authz-db = authz (사용자 계정 권한 정보 DB로 authz 파일을 사용하겠다는 뜻)

realm = sampleRepo (SVN 설명 또는 타이틀로 생각하면 됨)

 

[sasl] (SASL 암호화시 사용)

# use-sasl = true 

# min-encryption = 0
# max-encryption = 256

 

 

 

 

 

 (※ 각 설정값에 공백이 존재하면안됨, 즉, realm을 작성할경우 realm앞에 스페이스가 들어가면 오류남)

 

4. Subversion 사용자 계정 생성 

# vi passwd

아이디 = 비번

[user]

user01 = qwer1234

user02 = qwer1234

user03 = qwer1234

user04 = qwer1234

...

..

 

 

 

 

5. Subversion 사용자 권한설정

# vi authz

사용자별로 권한을 지정할 경우

[sampleRepo:/]

user01 = rw  

user02 = rw

...

 

 

모든사용자에 대한 공통권한 지정

[sampleRepo:/]

* = rw

 

5. Subversion 서버 시작 

# svnserve -d -r /home/svn

기본포트 3690이 아닌 다른 포트를 사용하면

# svnserve -d -r /home/svn --listen-port [포트번호]

 

6. 에디터 설정

subversion에서 사용할 기본적인 에디터 지정
지정하지 않으면 커밋등을 할수 없게 된다.
.bash_profile등에 추가
SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR  

 

 

7.디렉토리 만들기 (안만들고 나중에 거북이 툴(TortoiseSVN)을 이용해서 생성해도 된다.)

     # svn mkdir svn://{Server domain or IP}/[저장소 이름]/trunk

# svn mkdir svn://{Server domain or IP}/[저장소 이름]/branches

# svn mkdir svn://{Server domain or IP}/[저장소 이름]/tags

ex) # svn mkdir svn://125.7.203.253/sample/trunk
vi가 실행되면 :q!로 빠져나간다.

 

Log message unchanged or not specified
a)bort, c)ontinue, e)dit, C를 누르고 엔터를 누르면

Committed revision 1. 메세지가 나온다.

      메시지가 나오지 않으면 계정관리및 디렉토리 권한 설정을 다시 확인한다

 

위 SVN 명령어 사용시에 svn 권한을 가진 리눅스 계정의 비밀번호를 물어볼수도 있습니다.

(저의 경우에는 root 계정으로 실행중이라 root 비밀번호를 물어봅니다.)

그리고 커밋을 위해 svn 사용자/비번을 입력하면됩니다.

예시

 

 [root@holictou svn]# svn mkdir svn://svn.matoker.com/test/trunk
svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LANG is ko
svn: warning: please check that your locale name is correct
Authentication realm: <svn://svn.matoker.com:3690> test
Password for 'root':
Authentication realm: <svn://svn.matoker.com:3690> test
Username: matoker
Password for 'matoker':

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <svn://svn.matokeri.com:3690> test

can only be stored to disk unencrypted!  You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible.  See the documentation for details.

You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes

Committed revision 1.

 

 

기타

 

레파지토리의 설정된 폴더의 내용

# svn list svn://{Server domain or IP}/[저장소 이름]

branches/

tags/

trunk/

 

10. SVN 서버 시작

 

# svnserve -d -r /home/svn

 

기본포트 3690이 아닌 다른 포트를 사용하면

# svnserve -d -r /home/svn --listen-port [포트번호]

 


11. svn 서버 확인 기본 포트는 3690

 

# netstat -ant | grep 3690 

 


12.  svn 서버 강제종료

 

# ps -ef | grep svnserve

# kill -9 {PID}

 

또는

 

# killall svnserve (svnserve 키워드가 들어간 프로세스 모두 강제 종료)

 

 

 

13. 거북이툴로 붙거나 이클립스로 붙어서 작업을 하려고하는것 이 최종 목표일것이다.

그떄 접속 Url은  svn://123.233.112.121/레파지토리명/ 으로 접속하면된다.

 

 


# 일부내용은 http://matoker.com/30180737519 (마토커)님의 블로그를 참고하여 작성되었습니다.

 

 

 

 

 

 


1. 다운받을 경로만들기 및 이동
    # mkdir /usr/local/java
    # cd /usr/local/java

2. JDK 다운로드
    되도록이면 다운받아서 원하는 버전을 FTP로 올려서 쓰자

jdk-7u4-linux-x64.tar.gz 파일을 다운받았다는 가정하에 작성되었다.

3. 압축해제
    # gzip -d jdk-7u4-linux-x64.tar.gz
    # tar xvf jdk-7u4-linux-x64.tar

4. 링크만들기
    # ln -s jdk1.7.0_04 java

5. 환경변수설정
    # vi /etc/profile

아래의 내용을 입력한 후 저장
#JAVA JDK7
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
(vi 사용법 shift+i는 입력모드, 내용 입력 후 shift + : + wq(소문자) 입력 후 탈출)

6. 적용
    # source /etc/profile

7. 버젼 적용하기
    # alternatives --install /usr/bin/java java /usr/local/java/java/bin/java 2
    # update-alternatives --config java
    원하는 번호 선택 후 엔터

8. 확인
    # java -version

9. 톰캣 설치
    http://tomcat.apache.org 가서 다운로드
    다운로드 받은 폴더에서 압축해제
    # gzip -d apache-tomcat-7.0.27.tar.gz
    # tar xvf apache-tomcat-7.0.27.tar

10. 파일 이동
    # mv ./apache-tomcat-7.0.27 /usr/local/tomcat7

11. 환경변수 설정
    # vi /etc/profile

아래의 내용을 입력한 후 저장
#TOMCAT7
export CATALINA_HOME=/usr/local/tomcat7
export PATH=$PATH:$CATALINA_HOME/bin

12. 적용
    # source /etc/profile

13. 톰캣 시작
    # startup.sh 

    # shutdown.sh  (내릴때)


14. 호랭이 확인

http://ip:8080

로그 파일은 tomcat 폴더에 logs에 catalina.out에 적제된다.

tail -f catalina.out 하면된다.


Create Security Credentials(Access Key,Secret Key 생성)


AWS를 사용하려면 콘솔에 접속하는 계정과는 별도로 인증을 위한 Key가 존재한다.


이 Key는 S3, RDS, EC2등을 이용할때 아이디와 패스워드 처럼 사용된다. 이 키를 생성하는 법을 알아보도록 하겠다.



1. Manager Console에 접속한다.  접속후 우측상단에 보면 본인 계정 명이 써있는 곳에 클릭을하면 아래와 같은 레이어가 열리는걸 확인 할 수 있다. 예상한대로 빨간색 표시된 부분 클릭




2. 다음의 그림과 같은 팝업창이 당신을 반길것이다. 역시나 빨간색 부분 클릭




3. 그림대로 한다



4. Access Keys를 펼치면  아래 그림과 같이 나온다 키를 생성한 적이 없다면 아무것도 없을 것이다. 

    아래의 Create New Access Key를 눌러서 키를 생성한다. 

    키를 잘못 만들었다면 Actions 항목에서 Delete를 하면 아래의 그림처럼 삭제됨이라고 표시가되고 이력이 남는다.


※주의 아래의 Create New Access Key 버튼을 누르는 순간 키가 생성된다. 



5. Show Access Key를 눌러서 본인이 생성한 키를 볼수 있다. 

    Download Key File을 눌러서 다운로드해서 보관하는게 좋다. 

    이유는 Secret Key는 한번밖에 볼수가 없다. 

     즉 생성할떄 한번 보고나면 저장을 하지 않을경우 따로 다시 확인할 수 없는것이다.




6. 보안에 주의하여 잘 사용하도록 한다. 저장시 CSV 파일로 저장해 준다. 






AWS CLI(Amazon Command-Line) 환경설정


이 메뉴얼은 Windows를 기준으로 작성되었음을 알립니다.


그지같은 AWS를 사용하다보면 Management Console로만으로는 부족한 기능이 많다.

그래서 AWS를 보다 세밀하게 사용하기 위해 CLI를 통해서 작업해야하는 상황이 발생하게 되어있다.


1.준비물 : JAVA, AWS CLI(AWSCLI32.msi)

- java는 오라클 사이트 가서 알아서 받는다.

http://aws.amazon.com/ko/cli/에 가면 아래의 붉은색 표시된곳에서 각자의 환경에 맞게 설치한다.




2. 해당 파일을 다 설치한 후 Cmd 명령창에서 AWS를 입력할 경우 

    『응용프로그램의 Side by Side 구성이 잘못되어 응용프로그램을 시작하지 못했습니다.』 를 만날경우가 있다. 

    이 경우 다음의 링크를 따라가서 해결하고 다시 여기로 온다. (http://cheezred.tistory.com/24)



3. 자 2번의 상태가 아니라면 또는 2번을 해결하고 난 뒤라면  Cmd 명령창에서 AWS를 입력할 경우 다음과 같은 메세지를 볼수 있다면 설치는 성공한 것이다.



4. 이제 본격적인(본격적이랄것도 없다) 환경설정을 한다.

- 아래 그림과 같이 aws configure 라고 입력할 경우  아래와 같은 메세지를 만날 수 있는데 빨간색 줄에 각 항목의 값을 입력해준다.

- Access Key, Secret Key, region, output format을 본인의 환경에 맞게 설정해준다.

Access Key, Secret Key는 Manager Console에서 생성 할 수 있다.




5. 기본적인 사용을 윙한 설정이 끝났다.


+ Recent posts