본문 바로가기

전체 글

IP Address 와 MAC Address란 IP Address And MAC Address 네트워크 용어에서 서로 다른 네트워크로 접속하기 위해 사용하는 성문 역할을 하는 컴퓨터를 Gateway 라고 합니다. 같은 네트워크 대역의 컴퓨터를 찾을 때는 Gateway가 없어도 잘 되지만 다른 네트워크 대역의 컴퓨터를 찾을 때는 반드시 Gateway를 통해서 외부로 나가도록 설정되어 있어야만 합니다. 컴퓨터 세상에서 사용되는 주소는 IP Address와 MAC Address가 있습니다. 1. IP Address (1) IPv4 와 IPv6 Internet Protocol 의 약자 숫자로 이루어져 있으며 이 주소는 "8비트 . 8비트 . 8비트 . 8비트"로 총 32비트로 구성됨 . ex) 192.168.0.1 이는 IPv4의 경우이고 최근에는 IPv4.. 더보기
[ORACLE] LISTAGG가 오라클 버전 문제로 에러날 때 -> WM_CONCAT 이용하자 회사에서 운영서버에 반영하려는데, 아무생각없이 써놨던 LISTAGG 절들이 하나도 안 통했다. 알아보니 운영서버의 오라클 버전은 10g 였고 내가 작업하던 개발서버의 오라클 버전은 11g 였는데, 10g 에서는 LISTAGG 가 먹지 않는다고 한다. 대체제로 10g 에서는 WM_CONCAT 을 이용한다. DT 컬럼을 WM_CONCAT 으로 뽑아내보자 SELECT WM_CONCAT (DT) FROM TEST_TABLE 만약 DT 컬럼이 CLOB 타입일 정도로 용량이 크다면, DBMS_LOB.SUBSTR( 컬럼명 , 1000 ) 을 이용하자. 1000은 1000자를 뜻하고 더 늘려도 된다. SELECT DBMS_LOB.SUBSTR (WM_CONCAT (DT), 1000) FROM TEST_TABLE 참고로 .. 더보기
Spring Web MVC를 이용하여 웹 서버 구축하기 - (1) 개념 여기서는 웹 서버가 구동되기까지의 과정을 살펴볼 것이다. 프로젝트 구동 시 관여하는 XML은 다음으로 크게 3가지이다. web.xml - Tomcat 구동과 관련된 설정 root-context.xml - Spring과 관련된 설정 servlet-context.xml - Spring과 관련된 설정 프로젝트의 구동은 web.xml에서 시작한다. web.xml의 상단에는 가장 먼저 구동되는 Context Listener가 등록되어 있다. 에는 root-context.xml 의 경로가 설정되어 있고, 에는 스프링의 mvc의 ContextLoaderListener가 등록되어 있는 것을 볼 수 있다. ContextLoaderListner는 해당 웹 어플리케이션 구동 시 같이 동작하므로 해당 프로젝트를 실행하면 다음.. 더보기
문자열 비교가 안되는 경우 해결 방법 (==, equals 이용) == 을 이용했는데도 문자열 비교가 되지 않을 때가 있다. 왜 일까? 다음 예에서 map.get("TYPE")은 분명 "A"를 담고 있는데도 말이다. Map map = new HashMap(); map.put("TYPE","A"); if(map.get("TYPE") == "A") { // 들어오지 않는다. } 기본 타입 변수간의 == 연산자는 단순히 변수의 값이 같은지, 아닌지를 조사하지만 참조 타입 변수들 간의 == 연산은 동일한 객체를 참조하는지, 다른 객체를 참조하는지 알아볼 때 사용된다. 참조 타입 변수의 값은 힙 영역의 객체 주소이므로 결국 주소 값을 비교하는 것이 된다. 동일한 주소 값을 갖고 있다는 것은 동일한 객체를 참조한다는 의미이다. 위의 예에서 map은 Map 타입 변수이므로 참조 타.. 더보기
이클립스 성능개선 및 Validation 최적화 설정 1. 최소,최대 힙 메모리영역 동일하게 맞추기 eclipse.ini 파일을 열어 -Xms는 최소 힙메모리영역으로 -Xms1024m로 설정합니다. -Xmx는 최대 힙메모리영역으로 -Xmx1024m로 설정합니다. -Xms와 -Xmx를 동일하게 설정하여 이클립스에서 메모리를 유동적으로 관리하지 못하도록 설정하여 메모리 누수를 차단합니다. ( -> 속도향상!) 2. 힙 메모리 상태 표시 Window > Preferences > General 에 들어가서 Show heap status 체크 이클립스 오른쪽 하단에 힙 메모리를 확인할 수 있는 영역이 생겼습니다. 이클립스가 버벅거릴 경우 휴지통을 클릭하면 조금 더 향상된 속도가 제공됩니다. 3. Spelling Checking 해제 Window > Preferenc.. 더보기
이클립스 Permgen space 에러 해결하기 java.lang.OutOfMemoryError : PermGen space 에러 해결법 다음과 같이 PermGen space 에러가 나는 경우가 있다. 말 그대로 메모리가 부족해서 나는 에러이다. Window > Preferences > Java > Installed JREs 클릭 Edit을 눌러 Default VM arguments에 -XX:MaxPermSize=512m 을 입력해준다. 이건 최대 Permanent Generation size를 의미하며, Out of Memory 오류 발생 시 size 조절을 해주면 되는 영역이다. 더보기
[iBatis/MyBatis에러] Caused by: org.xml.sax.SAXParseException: Element type "if" must be declared. Caused by: org.xml.sax.SAXParseException: Element type "if" must be declared. 다음과 같은 에러가 난다면, 아래를 고민해보자. 에러가 발생한 xml 파일을 열어보아서 태그가 있는지 확인해보자. 혹은 태그는 MyBatis2까지는 존재하지 않는다. (iBatis도 물론 존재하지 않는다) 는 혹은 로 대체 특정 값이 아닌, null인지 아닌지만 비교하고 싶을 때는 혹은 태그 이용. 는 로 대체해서 사용 에러가 난 코드 USER_NM = #USER_NM# 수정 후 AND USER_NM = #USER_NM# 더보기
MyBatis 에서 #{} 과 ${}의 차이 USER_NM = 홍길동이 담겨있다면, $의 경우 ''(쿼테이션마크) 없이 글자 그대로 들어간다. SELECT * FROM USER WHERE USER_NM IN ($USER_NM$) SELECT * FROM USER WHERE USER_NM IN (홍길동) #의 경우 파라미터가 String 형태로 들어와 자동으로 ''(쿼테이션마크)가 붙는다. 쿼리주입을 예방할 수 있어 보안 측면에서 유리하다. SELECT * FROM USER WHERE USER_NM IN (#USER_NM#) SELECT * FROM USER WHERE USER_NM IN ('홍길동') 더보기