전각 문자(全角文字)와 반각 문자(半角文字)는 주로 한중일의 인쇄 문화에서 사용하는 용어로, 문자의 폭이 일반적인 영문자의 고정 폭의 두 배 정도의 폭을 가지는 문자를 전각 문자라고 하고 이에 대응하여 전각 문자 폭의 절반을 폭으로 하는 문자를 반각 문자라고 한다. 서양의 인쇄술에서는 엠(em)이란 용어가 전각이란 개념과 다소 유사하다. 주로 한글과 한자가 전각 문자에 들어가고 영문자등이 반각 문자 범주에 들어간다. 이 밖에도 아스키 코드에 있는 문자들도 전각 문자를 가지고 있다.
컴퓨터에서는 전통적으로 구현상의 편리를 위해 반각 문자를 1바이트로 전각 문자를 2바이트로 인코딩하는 경우가 많았으나 전각·반각의 기준이 문자를 표현하는 바이트의 길이는 아니다. 유니코드를 비롯한 다양한 환경에서는 반각 문자와 전각 문자 모두 가변 바이트나 다중 바이트 인코딩을 사용하기도 한다.
고정폭 활자나 글꼴에서는 전각 문자는 반각 문자의 두 배의 폭을 가지지만 가변폭 문자 환경에서는 정확히 두 배가 되지 않을 수도 있다.
한 문자가 전각 꼴과 반각 꼴 모두를 가지는 경우도 있다.
유니코드 전각 반각 정의
유니코드는 기존 한중일 문자 인코딩과 호환을 위해 전각/반각 모양(Halfwidth and Fullwidth Forms)이라는 별도의 영역에 전각/반각 문자를 할당하고 있다. 또한 각 문자가 전각인가 아닌가를 구별하기 위해 각 문자마다 ‘동아시아 넓이(East Asian Width)’라는 속성을 지원한다. 동아시아 넓이 속성은 크게 다음과 같은 여섯 가지로 나눌 수 있다.
전각 문자(F): 원래는 전각으로 사용되지 않지만 호환을 위해 지원되는 전각 문자. 전각 로마자 등이 속한다.
반각 문자(H): 원래는 반각으로 사용되지 않지만 호환을 위해 지원되는 반각 문자. 전각/반각 모양의 반각 한글 자모가 여기에 속한다.
넓은 문자(W): 항상 전각으로 표시되는 문자. 한글이나 한자 등이 속한다.
좁은 문자(Na): 기존 한중일 환경에서 항상 반각으로 표시되는 문자. 일반 로마자들은 여기에 속한다.
모호(A): 상황에 따라서 전각으로도 쓰이고 반각으로도 쓰이는 문자.
중립(N): 위의 다섯 가지에 속하지 않는 문자로, 한중일 인쇄에서 표준적으로 사용되지 않는 문자들이다.
일반적으로 전각 문자라 부르는 문자들은 이 속성이 W, F, A이고, 반각 문자는 N, Na, H, A이다. 이러한 사항과 권고는 유니코드 기술 문서(UAX #11)에 명시되어 있다.
2.원하는 디렉터리에 압축을 풀기 및 설정파일 변경
설치된 Maven의 경로로 이동하여 conf 폴더 아래 settiongs.xml 파일을 열고,
아래 localRepository 경로를 새롭게 지정합니다
예)<localRepository>C:\maven\repository</localRepository>
3. 환경변수 등록
MAVEN_HOME=C:\maven\apache-maven-3.0.3
path=%MAVEN_HOME%\bin
- Method Area : 메소드와 클래스 변수를 저장하기 위한 공간, 모든 프로그램에 의해 공유.
- Heap Area : 사용자가 생성하는 Java Object들이 저장되는 공간, 동적으로 할당하여 사용되어짐.
- Stack Area : 메소드 호출시 해당 메소드의 매개변수, 지역변수, 임시변수 등을 저장하기 위한 Stack 구조의 메모리.
- Native Heap Area : Java Object가 아닌 Native Object들이 거주하는 공간. OS 차원에서 결정.
- Permanent Space : Class에 대한 Meta 정보를 저장하는 공간. (Permanent Space는 Java Heap의 하위 영역)
* Java 실행 Option
1. -X Option(모든 VM에서 동작하지 않을 수 있는 비표준 option이며, 버젼별로 언급없이 변경되어질 수 있음)
-Xms : 초기 Heap size 설정
-Xmx : 최대 Heap size 설정
-Xss : 각 Thread에 할당되는 Stack size 설정
-Xmn : New 영역을 위한 Heap size 설정
2. -XX Option (올바른 동작을 위해 특정한 시스템 요구사항들이 있으며, 시스템 설정 파라미터에 대한 접근 권한이 요구됨)
-XX:PermSize : 초기 Permanent size 설정
-XX:MaxPermSize : 최대 Permanent size 설정
1. Heap Area Exception in thread "main": java.lang.OutOfMemoryError: Java heap space
Exception in thread main: java.lang.OutOfMemoryError: Requested array size exceeds VM limit
원인 : Heap size의 부족으로 Java Object를 생성하지 못하여 발생
해결 : 1. -Xmx Option을 이용하여 최대 Heap size의 크기를 늘려줌
2. Application 로직이 잘못되었거나 JDK나 WAS의 Bug로 인한 Memory 누수가 있는지 확인하여 수정
3. finalize method에 의해 즉각적인 GC가 이루어지지 않으므로 로직 수정을 통해 해결
2. Permanent Space Exception in thread "main": java.lang.OutOfMemoryError: Perm Gen space'
원인 : Permanent 저장 공간이 부족하여 발생.
JSP -> Servlet 변환, Reflection을 사용하여 동적으로 로딩되는 Class가 많은 경우에 발생할 수 있으며,
WAS의 Class Reloading 기능이 자주 실행 될 경우에도 발생할 수 있음.
해결 : -XX:PermSize, -XX:MaxPermSize Option을 이용하여 크기를 늘려줌
※ Class Loading Monitoring
java 실행시 -verbose:gc을 사용하여 Class가 Loading 되는 것을 Monitoring
3. Native Heap Area java.lang.OutOfMemoryError: request bytes for . Out of swap space?
java.lang.OutOfMemoryError: (Native method)'
java.lang.OutOfMemoryError: unable to create new native thread
원인 : Native Heap memory가 부족하여 발생
해결 : 1. Physical memory를 초과할 경우 Virtual Memory를 요청하여 필요한 메모리를 확보하게 되는데,
이 과정에서 오류가 발생할 경우 OS가 제공하는 툴을 통해 이를 모니터링 하고
이 공간 자체가 부족할 경우 크기를 늘려줌
2. -Xmx Option을 이용하여 Heap Area 공간을 줄이고 Native Heap Area 공간을 늘림
3. Thread Stack Space가 부족한 경우 Thread의 수를 줄이거나,
-Xss Option을 통해 Thread별 Stack Size를 줄여줌
(단, Thread별 Stack Size를 과도하게 줄였을 경우 Stack Overflow Error가 발생할 수 있음)
"jakarta-taglibs\standard\lib"폴더안에 있는 'jstl.jar', 'standard.jar'파일을
"C:\tomcat\common\lib" 폴더로 복사합니다.
▩ Core Tag
기능 태그명 기능설명 --------------------------------------------------------------------------- 변수 지원 set jsp에서 사용될 변수를 설정합니다. remove 설정한 변수를 제거합니다. --------------------------------------------------------------------------- 흐름 제어 if 조건에 따라 내부 코드를 수행합니다. choose 다중 조건을 처리할 때 사용됩니다. forEach Collection의 각 항목을 처리할 때 사용합니다. forTokens 구분자로 분리된 각각의 토큰을 처리할 때 사용합니다. --------------------------------------------------------------------------- URL 처리 import URL을 사용하여 다른 자원의 결과를 삽입합니다. redirect 지정한 경로로 이동합니다. url URL을 재 작성합니다. --------------------------------------------------------------------------- 기타 태그 catch 예외 처리에 사용합니다. out jspWriter에 내용을 알맞게 처리한 후 출력합니다. ---------------------------------------------------------------------------