yjhyjh5369의 등록된 링크

 yjhyjh5369로 등록된 네이버 블로그 포스트 수는 965건입니다.

Spring Boot에서 SQL 문을 log에 기록하는 방법 [내부링크]

application.properties 파일에 아래의 옵션을 사용합니다. logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

고혈압에 좋은 음식: 하수오의 효능, 부작용 및 백하수오 vs 적하수오의 차이 [내부링크]

고혈압은 전 세계적으로 많은 사람들에게 영향을 미치는 만성 질환입니다. 음식 선택은 고혈압을 관리하는 데 중요한 역할을 합니다. 이 중 하수오는 많은 사람들에게 알려진 고혈압에 도움을 줄 수 있는 식품 중 하나입니다. 이 블로그 글에서는 하수오의 효능과 부작용, 그리고 백하수오와 적하수오의 차이에 대해 자세히 알아보겠습니다. 하수오(Hawthorn) 하수오는 식이 보충제나 차 형태로 사용되는 식물입니다. 이 식물은 오랜 기간 동안 심장 건강을 개선하는 데 사용되어 왔습니다. 하수오의 효능 혈압 조절 하수오는 혈관을 확장시켜 혈압을 낮출 수 있습니다. 심장 건강 촉진 하수오에는 항산화 물질이 풍부하며, 이는 심장 건강을 개선하는 데 도움을 줍니다. 혈류 개선 하수오는 혈액 순환을 개선하여 심장과 혈관에 영양분을 공급하는 데 도움을 줍니다. 스트레스 완화 하수오는 스트레스를 완화하고 심신 안정을 취할 수 있도록 돕는 효과가 있습니다. 하수오의 부작용 하수오는 일반적으로 안전한 식물입니다

엑셀 팁: 신속하게 데이터 정렬하기 [내부링크]

안녕하세요! 엑셀은 데이터 처리와 분석에 있어서 귀하의 업무를 크게 향상시킬 수 있는 강력한 도구입니다. 이번 글에서는 "신속하게 데이터 정렬하기"에 대해 알려드리겠습니다. 데이터 정렬은 대용량의 데이터를 처리하고 정리하는데 매우 유용한 기능입니다. 그러니까 준비하시고 따라와 주세요! 엑셀 파일 열기 및 데이터 선택하기 먼저 엑셀 파일을 열고 정렬을 원하는 데이터를 선택합니다. 정렬할 데이터는 한 열 또는 여러 열에 포함될 수 있습니다. "정렬 및 필터" 아이콘 클릭 홈 탭의 "정렬 및 필터" 아이콘을 찾아 클릭합니다. 이 아이콘은 정렬 및 필터링 관련 기능에 액세스할 수 있도록 합니다. 정렬 대상 선택 "정렬 및 필터" 드롭다운 메뉴에서 "정렬"을 선택합니다. 이로써 데이터 정렬 설정 창이 열립니다. 정렬 기준 선택 "정렬 기준" 드롭다운 메뉴에서 정렬을 원하는 열을 선택합니다. 여러 열을 동시에 정렬하려면 "추가 정렬 기준"을 사용할 수 있습니다. 정렬 방법 선택 "정렬 기준"

레오나르도 다빈치, 갈릴레오보다 100년 먼저 중력 연구! [내부링크]

1. 갈릴레오 갈릴레이가 최초로 피사의 사탑에서 중력 실험을 진행. 2. 뉴턴 '만류인력의 법칙' 발표 우리는 일반적으로 위와 같이 알고 있습니다. 하지만 실제로는 아래와 같습니다. 시몬 스테빈이 1586년 최초의 중력 실험 진행(탑에서 구슬 낙하) 갈릴레오 갈릴레이가 얼마 후 다양한 재질의 포탄과 총알을 경사로에서 굴리는 실험 진행 뉴턴 1687년 '만류인력의 법칙' 발표 그런데, 지금까지 알려진 최초의 중력 실험보다 무려 100년이나 앞서 레오나르도 다빈치가 중력실험을 진행했다고 발표되었습니다. 연구팀 논문 내용을 보면, 코덱스 아룬델’은 다빈치가 1478년~1518년 남긴 과학 관련 저작에 해당합니다. https://www.yna.co.kr/view/AKR20230218007700072 "다빈치,갈릴레오보다 100년 먼저 중력 연구"…스케치 해독 성공 | 연합뉴스 (뉴욕=연합뉴스) 고일환 특파원 = 이탈리아 르네상스 시대의 천재 레오나르도 다빈치가 인류 최초로 지구 중력을 수학

구글 네스트 허브 2세대 후기 [내부링크]

통신사에서 제공된 AI 스피커가 수명이 다했는지 요즘 말을 못 알아 들어서 "구글 네스트 허브 2세대"를 구입했어요. 이 제품을 구입하게 된 가장 큰 이유는 다른 AI 스피커와 다르게 디스플레이가 있다는 점이었어요. 인터넷에 검색해 보니 국내 정발은 너무 비싸서 해외 직구로 일본판을 약 6만 원 정도로 구매했어요. 포장을 뜯으면 이렇게 생각보다 귀엽게 생긴 기기가 들어있어요. 구글 네스트 허브 설치 해외 직구이기 때문에 돼지코를 추가로 구매하여 전원을 연결했어요. 전원을 연결하면 이렇게 일본어로 표시가 돼요. 네스트 허브를 사용하기 위해서는 아래와 같은 절차대로 진행합니다. 1. Play 스토어에서 "Google Home"을 설치 2. 기기 찾기 기능으로 Nest Hub 찾아서 연결 이렇게 연동이 끝나면 아래와 같이 자동으로 한글로 변경됩니다. 구글 네스트 사용 후기 스피커 만약 유튜브 프리미엄을 사용하고 있다면 "오케이 구글. 최신 음악 틀어줘"라고 하면 유튜브 뮤직으로 최신 음악

이번에 겪은 어린이집 맘충 이야기 [내부링크]

갑자기 어린이집 원장 선생님으로부터 장문의 메시지가 왔다. 요점은 "작년에 교사에 의해 낮잠 시간에 발생된 영아의 사고가 있었는데 그것에 대해 설명을 드리고자 한다." 어린이집에 갔더니 원장 선생님께서 무릎을 꿇으시고 고개를 숙이며 떨리는 목소리로 말씀을 하셨다. 이야기는 이랬다. 낮잠 시간에 아이가 소변을 보고 싶다고 함 선생님이 "너 쉬한지 얼마 안 됐으니까 그냥 자보자"라고 하며 아이 손목을 잡고 당김 선생님의 손톱에 아이 손목에 상처 발생 아이 엄마가 아이에게 상처가 난 이유를 듣고 어린이집에 항의 선생님 책임지고 퇴사 1년 후 이 이야기를 어디서 들은 어떤 엄마가 왜 이런 일이 있었다고 알려주지 않았냐며 원장 선생님께 전화로 항의 개인적으로는 선생님이 아이의 나쁜 버릇을 없애고자 한 것이라고 생각한다. 물론, 아이가 소변을 보고 싶다는데 왜 소변을 못 보게 하냐는 사람도 있을 수 있다. 말은 양쪽 말을 다 들어봐야 한다는데 원장 선생님의 말밖에 듣지 않았고, 정확히 어떤 일

면역력을 높이는 음식 10가지 [내부링크]

생강 생강은 항산화물질인 징글레본과 시오닌, 적극적인 면역 반응을 촉진하는 성분인 파라다이머, 생강올레오레진 등이 풍부하게 함유돼 있습니다. 이러한 생강 성분들은 감기 및 기관지염 등 호흡기 질환 예방에 효과적이며, 면역세포 활성에도 큰 도움을 줍니다. 마늘 마늘에는 항산화물질인 알리신, 당뇨 예방에 효과적인 알리시나아제, 면역 증진에 필요한 비타민 C, 셀레늄, 아연 등의 영양소가 풍부합니다. 특히 알리신은 백혈구를 증가시켜 면역력을 높여주며, 항균 작용으로 감기 및 기타 감염성 질환 예방에도 도움을 줍니다. 브로콜리 브로콜리는 비타민 C, 카로티노이드, 셀레늄 등의 항산화물질과 함께 면역세포의 활성을 촉진하는 화합물인 그루코시놀레이트가 풍부합니다. 또한 항암 작용도 있는 이종플라볼노이드와 호흡기질환 예방에 효과적인 신나플린도 함유돼 있어 면역력 증진에 효과적입니다. 녹차 녹차에는 카테킨과 플라보노이드 같은 항산화물질과 면역세포 증가와 면역 기능을 촉진하는 아미노산인 L-테아닌 등

당신의 눈 건강을 지키는 7가지 음식: 녹내장 예방을 위한 식습관 [내부링크]

녹내장은 시각을 담당하는 망막을 둘러싸고 있는 눈액이 증가하여 눈안압이 높아지는 질환입니다. 이 질환은 노화, 약물 부작용, 선천적인 이유, 외상 등 다양한 원인으로 발생할 수 있습니다. 녹내장은 초기 증상이 없기 때문에 대부분이 무심코 지나치게 됩니다. 하지만, 진행되면 시력을 점차 상실하게 됩니다. 따라서 녹내장은 조기 발견하여 적절한 치료를 시행하는 것이 중요합니다. 녹내장의 원인 녹내장은 눈의 눈액의 움직임에 문제가 생겨서 눈안압이 증가함으로써 발생합니다. 눈에 있는 눈액은 일정한 압력을 유지하면서 눈안을 지탱해 주는 역할을 합니다. 그러나 눈안압이 지나치게 증가하게 되면 시신경이 손상을 입고 시력의 감퇴가 발생합니다. 녹내장의 증상 녹내장의 초기 증상은 거의 없습니다. 질병이 진행되면서 눈안압이 계속 증가하면, 시력 감소, 시야의 한쪽이 흐리게 보이는 것, 빛에 대한 민감도가 증가하는 것 등이 나타납니다. 만약 이러한 증상이 나타난다면 녹내장의 의심이 있으므로, 즉시 안과

엑셀 작업 속도 UP! 필수 단축키 30가지 [내부링크]

엑셀 작업을 할 때 단축키를 익혀두면, 엑셀 작업을 더욱 효율적으로 처리할 수 있습니다. 이 중에 몇 가지는 외워서 자주 사용하시는 것이 좋고, 나머지는 필요할 때마다 참고하시면 됩니다. 앞으로 엑셀 작업을 하실 때 이 블로그 글이 도움이 되길 바랍니다. 1) 셀 선택: Ctrl + 화살표 Ctrl 키를 누른 상태에서 화살표 키를 누르면 셀을 선택할 수 있습니다. 2) 특정 범위 지정: Shift + F8 Shift 키를 누른 상태에서 F8을 누르면 특정 범위를 지정할 수 있습니다. 3) 셀 복사: Ctrl + C Ctrl 키를 누른 상태에서 C를 누르면 셀을 복사할 수 있습니다. 4) 셀 붙여넣기: Ctrl + V Ctrl 키를 누른 상태에서 V를 누르면 셀을 붙여넣을 수 있습니다. 5) 셀 삭제: Ctrl + - Ctrl 키를 누른 상태에서 -를 누르면 셀을 삭제할 수 있습니다. 6) 셀 삽입: Ctrl + Shift + + Ctrl와 Shift 키를 누른 상태에서 +를 누르면

시흥 이루다 제면소 방문 후기 [내부링크]

안녕하세요! 이번에는 #시흥 #물왕저수지 근처 #이루다제면소 에 다녀왔어요 이루다 제면소 방문하실 때 제일 먼저 주의하실 점은 "이루다제면소"의 정식 명칭은 #이루다자가제면소 이고, 정식 이미지는 아래 이미지처럼 생겼어요 이루다 제면소 그래서 네비는 도착했다고 뜨는데, 간판은 #자가제면소 라고 나와서 정말 당황했어요. 또 중요한 주차장! 주차장은 손님 수 대비 공간이 부족했어요. 저는 조금 늦은 시간에 가서 대기가 없었는데 주차장 마지막 남은 자리에 주차를 했어요. 이루다제면소 가게 내부는 흔하게 볼 수 있는 일식 가게같이 목조 인테리어로 되어있어요. 이루다 제면소 주문은 자리에서 바로 할 수 있게 태블릿 같은 것이 모든 자리에 배치되어 있는데, 신기한 점은 보통 음식점은 주문만 가능한데, 이루다제면소는 카드 결제까지 가능하다는 점이에요 이루다제면소 저는 우동을 별로 좋아하지 않아서 돈가스와 소바, 그리고 치킨 가라아게를 주문했어요. 이루다제면소 소바는 흔히 먹을 수 있는 그 소바

[java] base64 encoding/decoding [내부링크]

1. java 6 / java 7 java6에는 javax.xml.bind.DatatypeConverter가 추가되었습니다. 이것은 jre의 일부이면 별도의 라이브러리가 필요하지 않습니다. import javax.xml.bind.DatatypeConverter; import java.nio.charset.StandardCharsets; public class Test { public static void main(String[] args) { byte[] message = "hello world".getBytes(StandardCharsets.UTF_8); String encoded = DatatypeConverter.printBase64Binary(message); System.out.println(encoded); // encoding result: aGVsbG8gd29ybGQ= byte [] decoded = DatatypeConverter.parseBase64Binary(en

JAVA에서 cmd 실행해서 wkhtmltopdf 실행방법 [내부링크]

프로그램 : Runtime.getRuntime().exec("cmd /C wkhtmltopdf " + str + "/html/111.htm?" + param + " d:/1111.pdf"); 번역 : Runtime.getRuntime().exec("cmd /C wkhtmltopdf http://192.168.10.53:/8080/WebChart2/html/111.htm?company=abcd d:/1111.pdf"); 1) Runtime은 java.lang에 포함되어 있기 때문에 따로 import를 할 필요 없다. 2) cmd 뒤의 /C는 해당 명령을 수행하고 바로 종료하라는 의미로 '반드시' 대문자 이어야 한다. 3) 프로젝트에서 서블릿으로 컨트롤러를 html에 매핑시켜 놓았기 때문에 html문서를 부르면 해당문서를 찾을수 없다고 나온다. 그렇기 때문에 htm문서를 이용하였다.

CentOS 계정추가 [내부링크]

1. 계정 추가 #] adduser 계정명 #] passwd 계정명 (비밀번호 생성) 2. 계정접속 #]su 계정명 3. 루트로 복귀 #] su -

VNC Install [내부링크]

1. vnc install - #]yum –y install vnc-server - #]cd /etc/sysconfig - #]vi vncservers - 맨 아랫 부분에 VNCSERVERS=”1:root 2:사용자계정”를 저장 - (192.168.10.242의 경우 3:root 2:dev로 지정) - #]SERVICE VNCSERVER START (서비스 시작) 1:root에서 1은 스크린 번호를 의미하며, 포트번호는 5900 + 스크린번호가 된다. 2. vnc x-xindow 2.1 방법 1 - #]ls –l /root/.vnc/ - #]mv /root/.vnc/xstartup /root/.vnc/xstartup.bak - #]cp /etc/X11/xinit/xinitrc /root/.vnc/xstartup - #]ls –l /root/.vnc/ - #]/etc/init.d/vncserver restart 2.2 방법 2 (방법 1이 안될 경우)

CentOS에 JDK 설치 [내부링크]

1. 설치 1.1 #] yum –y install java-1.6.0-openjdk.i386 을 이용하여 설치하는 방법이 있고 1.2 직접 다운로드 받아 설치하는 방법이 있다. 1.3 #] java 를 통해 자바 설치 확인 2. 환경변수 설정 2.1 #]vi /etc/profile 을 입력하여 아래 코드 추가 *) 또는 계정접속 후 vi .bash_profile export JAVA_HOME=/usr/local/java export PATH=&PATH:$JAVA_HOME/bin export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar 2.2 #]source /etc/profile *)또는 source .bash_profile

CentOS에 Tomcat 설치 [내부링크]

1. TOMCAT 설치 - http://tomcat.apache.org에서 tomcat 다운로드<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> - tar zxvf apache* - mv apache-tomcat-버전(기존 폴더이름) /usr/local/tomcat - vi /etc/profile - export TOMCAT_HOME='/usr/local/tomcat' - export PATH=$PATH:$TOMCAT_HOME/bin - export CLASSPATH=$CLASSPATH:$TOMCAT_HOME/common/lib/jsp-api.jar:$TOMCAT_HOME/common/lib/servlet-api.jar - (생략해도 관계 없음) - startup.sh - http://localhost:8080 으로 접속해본다. (고양이 그림이 나오면 성공) 2. TOMCAT 플러그인 설치 - h

CentOS에서 Eclipse 한글 적용 [내부링크]

- #] vi .bash_profile (사용자 계정 profile) export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=scim export QT_IM_MODULE=scim - #] source .bash_profile - Ctrl + space가 한글 변환키 - 최초에는 영어 / 유럽어상태이기 때문에 오른쪽 하단에서 유럽어를 한글로 바꿔준다.

Tomcat에서 DBCP 사용 [내부링크]

- Context.xml의 <Context> 태그 안에 아래 내용 추가 <Resource name=”jdbc/postgres” auth=”Container” //postgres는 임의의 이름 type=”javax.sql.DataSource”<?xml:namespace prefix = o /> username=”test” password=”test” factory=”org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory” driverClassName=”org.postgresql.Driver” url=”jdbc:postgresql://192.168.10.241:5432/postgres” //postgres는 임의의 이름 maxActive=”8” maxIdle=”4” //숫자는 상황에 맞게 removeAbandoned=”true”/> - Web.xml의 <web-app>안에 아래 내용 추가 <resource-ref> <description>postgre

Eclipse에서 DBCP사용 [내부링크]

- Eclipse Servers 프로젝트의 context.xml에 아래 내용 추가 <?xml version=”1.0” encoding=”UTF-8” ?><?xml:namespace prefix = o /> <Context docBase=”test” path=”WEB-INF/프로젝트명” reloadable-“true”> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Resource name=”jdbc/postgres” auth=”Container” type=”javax.sql.DataSource” username=”test” password=”test” factory=”org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory” driverClassName=”org.postgresql.Driver” url=”jdbc:postgresql://192.168.10.241[서버IP]:5432[포트번호]/postgr

Spring의 특장점 [내부링크]

- Inversion of Control - 개념 : 객체 간의 의존관계를 객체 내부에 선언 또는 정의하지 않고, 외부의 조립기를 이용하여 의존 관계를 설명<?xml:namespace prefix = o /> - 장점 : 테스트와 코드 수정이 용이하다. Ex] public class WriteArticleServiceImpl { private ArticleDao articleDao; public WriteArticleServiceImpl(ArticleDao articleDao) { this.articleDao = articleDao; } ... } 외부 설정 파일 (applicationContext.xml) <bean name="writeArticleService" class="com.sec.service.WriteArticleServiceImpl"> <constructor-arg><ref-bean="articleDao" /></constructor-arg> </bean> - AOP

Eclipse에 Spring Framework 설치 [내부링크]

- Help –> install new software 메뉴 선택 - Work with 항목에 URL주소 입력 n http://springide.org/updatesite n http://download.eclipse.org/technology/subversive/0.7/update-site/ n http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/ - 이후 나타나는 항목에서 한번에 다 설치하면 진행이 되지 않으므로 적당한 수의 Plug-in을 나누어 설치한다. UTF-8 기반으로 설정<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><?xml:namespace prefix = o /> Eclipse를 실행 후, Window -> Preference… 에 들어간다. General -> Content Ty

저작권 [내부링크]

1 License<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 1.1 GPL(General Public License) 1.1.1 의무사항 - 소스코드 배포 시 : 저작권, 보증책임이 없음, GPL로 배포된다라는 것을 표시 - 실행파일 배포 시 : 위의 의무사항을 표시, 소스코드 공개 - 수정파일 배포 시 : 위의 의무사항을 표시, 수정된 소스를 공개, 누가, 언제, 무엇을 수정 했다라는 것을 표시 1.1.2 소스코드 제공범위 - 공개 : 원본 GPL 프로그램, Work based on the Program (수정된 프로그램, Linking 관계의 프로그램) - 비공개 : Independent and Seperate Works, Mere Aggregation, 저작권자의 예외규정, GPL-Only Symbols을 access하지 않는 Loadable Kernel Module 1.1.3 소스코드

발생하기 쉬운 프로그래밍 오류 001 [내부링크]

1. 주석의 구분자 중에 하나를 누락시키면 구문 오류가 발생한다. 2. 자바는 대문자와 소문자를 구별한다. 따라서 식별자에 대/소문자를 정확하게 사용하지 않으면 컴파일 오류가 생긴다. 3. public 클래스는 파일에 반드시 포함되어야 하며 포함된 파일명이 클래스 이름의 스펠링 또는 대소문자가 다르거나 .java 파일 확장자로 끝나지 않으면 오류가 발생한다.

좋은 프로그래밍 습관 001 [내부링크]

1. 모든 프로그램의 시작 부분에는 프로그램의 목적, 작성자, 날짜, 시간을 설명하는 주석을 넣는 것이 바람직하다. 2. 빈 줄과 스페이스를 활용하면 프로그램의 가독성을 증가시킬 수 있다. 3. 관습상 클래스명은 항상 대문자로 시작하고, 이어지는 각 단어의 첫 글자도 대문자로 시작한다.

1. 변수편(변수의 정의, 작성법칙) [내부링크]

1. 변수의 정의 변수란 변하는 수라는 뜻이다. int a = 10; 위의 선언은 어떤 뜻일까? 위의 선언을 풀어 쓴다면 (1) 메모리 공간을 int 자료형만큼 할당한다. (2) 할당된 메모리 공간에 a라는 이름을 부여하겠다. (3) 그 공간에 10이라는 값을 할당하겠다 라는 의미이다. 이것을 그림으로 표현한다면 메모리 주소 : 12345(임의의 주소값) 할당된 메모리의 이름 : a 10 로 표현이 가능하다. 2. 변수명의 작성 법칙 (1) 의미를 잘 설명할 수 있는 이름을 주는 것이 좋다. (예를들어 합계의 경우 sum, 이름의 경우 name) (2) 변수명의 길이는 적당해야 한다. 여기서 적당해야 한다는 의미는 개인차가 있지만 자신에게 적당한 길이를 찾아야 한다. (3) 변수명은 영어단어를 사용하는 것이 좋다. 예를들어 합계의 경우 hap 이라는 변수를 줄수도 있겠지만 나중을 위해 영어 단어를 쓰는 버릇을 들이도록 하라.

open source reporting tool & chart tool [내부링크]

TCPDF - 인기있는 PHP 기반의 Free open source이다.(09년 기준 약18만개의 프로젝트) - 암호화 지원 - 페이지 머리글 및 바닥글을 관리하기 위한 메소드 포함 - 여러가지 예제 지원 - License : LGPL <?xml:namespace prefix = o /> PDF Split and Merge - 여러 개의 PDF을 합치거나 기존의 PDF에서 일부를 분리해서 독립된 파일로 저장 가능 - License : GPL FreeReportBuilder - FreeQueryBuilder를 포함 - JFreeChart를 포함 - Xml 형식으로 저장하고 불러올 수 있다. - Drag&Drop 구성요소 - 머릿글, 바닥글 가능 - 중첩 보고서 가능 - License : GPL JFreeChart - Area Charts (면적도표), Bar Charts (막대그래프), Bar Charts Stacked (누적막대그래프), Combined Axis Charts, Fin

2. scanf [내부링크]

C언어에서 기본 출력함수가 printf()가 있다면 입력함수는 scanf()가 있다. 본격적인 설명에 앞서 입력의 원리를 이야기 하겠다. 우리가 입력하는 것들은 프로그램에 바로 입력된다고 생각하지만 사실은 입력버퍼에 저장이 되었다가 입력이 종료되면 버퍼에서 데이터를 꺼내 변수에 다시 저장이 된다. 이 사실을 알아두고 아래 설명을 보기를 바란다. ------------------------------------------------------------------------------------------------------------------- scanf("서식문자열", &변수 [,&변수, ...]); 위의 내용은 scanf() 함수의 기본 양식이다. printf()와는 달리 서식 문자열에는 오직 서식만 들어갈 수 있다. 예1) int input; printf("숫자를 입력하세요 : "); scanf("%d", &input); 위 예제 1번의 scanf() 함수를 보자. scan

Spring Framework 핵심개념 [1. Injection of Control] [내부링크]

1. 개념 객체 간의 의존 관계를 객체 내부에 선언 또는 정의하지 않고, 외부의 조립기를 이용하여 의존관계를 설명한다는 것 IoC(Inversion of Control)이라고도 함. 2. 예제 1) 직접 선언하는 방법 public class WriteArticleServiceImpl { private ArticleDao articleDao = new MysqlArticleDao(); ... } 이 방법은 손쉬운 방법이긴 하지만 단위테스트를 어렵게 만드는 단점이 있다. articleDao 멤버 필드에 mock 객체를 할당할 수 없기 때문에, WriteArticleServiceImpl 클래스를 테스트하기 위해서는 반드시 올바르게 동작하는 MysqlArticleDao 클래스가 존재해야 한다. 또 다른 단점으로는 의존하는 클래스가 변경되는 경우 코드를 변경해야 하는 문제가 있다. 예를들어 의존하는 클래스를 Mysql에서 Oracle로 변경해야 하는 경우 코드를 변경한 뒤 다시 컴파일 해야

Spring 설정 파일을 이용한 의존 관계 설정 [내부링크]

1. bean 생성과 의존관계 설정 <bean name="writeArticleService" class="실제경로"> <constructor-arg> <ref bean="articleDao"/> </constructor-arg> </bean> <bean name="articleDao" class="실제경로"/> 스프링은 각 객체를 bean으로 관리한다. <bean> 태그는 스프링이 관리할 하나의 객체를 설정하는데 사용된다. <bean> 태그의 name속성이 bean의 이름을 의미하고, class속성이 생성될 객체의 클래스 타입이다. <constructor-arg>태그는 "writeArticleService" bean 객체를 생성할 때, 생성자에 전달할 파라미터를 명시하기 위해 사용된다. 위 코드의 경우 생성자에 "articleDao" bean 객체를 전달한다고 명시하였다. 이는 코드로는 아래와 같은 의미를 갖는다. MysqlArticleDao articleDao = new Mysq

"엑세스가 거부되었습니다." 라고 컴퓨터가 시비걸떄 [내부링크]

권한문제의 가능성이 크기까 모든 권한을 허용으로 바꿔준다.

pdf문서를 다른 사람에게 웹상에서 보여주는 방법 [내부링크]

아크로벳 리더를 사용하는 것이 좋다고 판단하여 방법을 찾아보았다. 아크로벳 리더의 클래스 아이디 : clsid:CA8A9780-280D-11CF-A24D-444553540000 다음은 간단한 샘플 소스이다. <html> <OBJECT CLASSID="clsid:CA8A9780-280D-11CF-A24D-444553540000" ID="PDFViewer" width="100%" style="width:500;height:400" border=1> <param name="src" value="http://localhost/573293889462d9c106b30c.pdf"> </OBJECT> </html> 이미 깔려진 아크로뱃 리더를 호출하는거라 별도의 대상 파일의 지정은 필요가 없다. src파라메터로 대상 pdf 파일의 경로를 지정하면 되는데 절대 경로도 지원이 되고 웹 상대경로도 지정이 된다. 페이지 넘김과 프린트 등의 메소드도 제공을 하고 있다. [출처] HTML 페이지에 PDF V

eclipse - auto refresh [내부링크]

Preferences -> General -> Workspace에서Refresh automatically 선택 : 이클립스 밖에서 워크스페이스 파일 수정한 경우 자동으로 이클립스에서도 인식하게 함 킁... 이 방법은 auto refresh가 파일 생성 속도를 못따라온다. 따라서 학교 과제 수준의 프로젝트나 파일을 생성할 필요가 없는 프로젝트에서 적합할것 같다.

wkhtmltopdf [내부링크]

wkhtmltopdf를 사용하여 html을 pdf로 변환하려고 했는데 한글은 html의 폰트와 관계없이 동일안 글꼴로 변경되었고 영어는 한글폰트 사용시에는 한글과 마찬가지로 동일한 폰트가 되었으나 영문폰트 사용시에는 html과 같은 폰트로 변경이 되었다. 하지만 영어, 특수문자, 숫자만 변경되고 한글은 변경이 안되었다는거..... 한글은 시스템 기본 폰트를 따라가는 것인가? ------------------------------------------------------------------------------ 테스트 + 검색 결과 pdf문서는 트루타입 폰트만 적용이 가능하다. 따라서, 트루타입으로 작성되지 않은 HTML문서와 기타 다른 문서들은 pdf문서로 변환 될 때 모두 시스템 기본 트루타입 글꼴로 변환이 된다. 따라서 pdf문서의 글꼴을 다르게 주고 싶을때는 윈도우에 설치된 트루타입의 글꼴을 찾아서 그 글꼴로 바꾸어 주면 된다. 트루타입 글꼴의 확인 방법은 windows -

wkhtmltopdf 속성 테스트 (1) [내부링크]

wkhtmltopdf http://192.168.10.53:8080/WebChart2/abcd.html?company=Jessica aaa.pdf -H --header-left leftHeader --header-right [page]/[toPage] 위와 같이 헤더를 지정해 줄 수 있다. 먼저 헤더라는 표시인 -H를 해주고 그 뒤에 세부 속성인 left와 right를 지정할 수 있다. 여기서 left를 지정하지 않으면 기본문자열이 들어가게 된다. ----------------------------------------------------------------------------------------- wkhtmltopdf http://192.168.10.53:8080/WebChart2/abcd.html?company=Jessica aaa.pdf -b --cover http://www.google.co.kr -b의 --cover 속성은 말 그대로 표지를 만들어 주지만 url주소만

CentOS에 TTF(TrueType Font) 설치하기 [내부링크]

1. 설치할 폰트 파일( *.ttf )을 /usr/share/fonts/korean/TrueType/에 복사한다. 2. 아래 명령을 실행한다. # mkfontscale # mkfontdir 3. 폰트를 적용하기 위해 다음 명령어를 실행한다. # fc-cache -fv 구버전에서는 윈도우용 TTF와 리눅스용 TTF가 따로 있어서 윈도우용 TTF를 리눅스에서 사용하려면 X-Window를 이용하여 한번 더 처리를 해주고 사용해야 되었던것 같은데 신버전에서는 그냥 넣고 쓰면 된다.(몰라서 개삽질..) 그런데 무조건 다 되는건 아닌것 같고 안되는 폰트도 있는 것 같다. * 윈도우는 Windows - fonts 폴더에 넣어주면 끝난다.

Spring Framework Project에서 lib 추가 방법 [내부링크]

인터넷을 뒤져보았는데 이클립스에서 window - preferences - java - build path - classpath variables에서 추가 하라고 해서 해보았으나 org.springframework 라이브러리를 사용할수가 없어서 다른 방법을 찾은 결과 스프링 프로젝트를 생성 후에, JRE System Library에서 마우스 오른쪽 클릭 - Build Path - Configure Build Path - Add External JARs에서 추가 하니 사용 가능했다.

Spring Framework Project에서 DataBase 사용하기 [내부링크]

* lib 사용방법은 다른 게시물 참조 1. 필요한 lib commons-logging.jar ojdbc14.jar postgresql.jdbc3.jar spring.jar tomcat-dbcp.jar 2. 테스트 소스 (1) DataStuff.java (JdbcTemplate를 이용해서 처리) import java.util.List; import javax.sql.DataSource; import org.springframework.jdbc.core.JdbcTemplate; public class DataStuff { private DataSource dataSource; private JdbcTemplate jdbcTemplate; List getNames() { return jdbcTemplate.queryForList("select * from youn"); //youn은 테이블 이름 } public DataSource getDataSource() { return dataSo

생성자 혼동 피하기 [내부링크]

예제) /* 생략 */ public ConstructorConfusionDemo(String someValue) { System.out.println("string"); } public ConstructorConfusionDemo(int someValue) { System.out.println("int"); } /* 생략 */ 위와같은 생성자가 있을때, <bean id="constructorConfusion" class="경로"> <constructor-arg value="1"/> </bean> 이와 같은 코드를 작성하면 ConstructorConfusionDemo(String someValue) 생성자가 호출된다. 이 경우, public ConstructorConfusionDemo(int someValue)생성자를 호출하고 싶다면 <bean id="constructorConfusion" class="경로"> <constructor-arg value="1" type="int"/> <

단순한 값 주입 설정하기 [내부링크]

<property> 태그를 이용하여 값을 주입할 수도 있지만 p 네임 스페이스를 사용하여 <bean> 태그 안에 직접 삽입하여 학성해야 할 코드의 양을 줄일 수 있다.

같은 팩토리 내부의 빈 주입하기 [내부링크]

Spring이 어떤 빈을 다른 빈에 주입하도록 설정하려면 먼저 두 개의 빈을 설정해야 한다. 하나는 주입할 것이고 다른 하나는 주입을 받을 대상이다. 그렇게 한 다음, 간단히 ref 속성을 대상 빈에 사용하여 주입을 설정하면 된다. 예) <bean id="encyclopedia" class="com.apress.prospring2.ch03.di.ConfigurableEncyclopedia"> <constructor-arg> <util:map> <entry key="AgeOfUniverse" value="147"/> <entry key="ConstantOfLife" value="326"/> </util:map> </constructor-arg> </bean> <bean id="oracle" class="com.apress.prospring2.ch03.di.BookwormOracle"> <property name="encyclopedia" ref="encyclopedia"/> </bea

주입과 BeanFactory 내포하기 [내부링크]

Spring은 BeanFactory들의 계층구조를 지원하여 한 Factory가 다른 것의 상위 Factory가 될 수 있다. BeanFactory 내포하기를 허용함으로써 설정을 여러 파일로 나눌 수 있게 한다. BeanFactory 내포하기를 할 때 Spring은 하위 Factory에 있는 Bean이 상위 Factory에 있는 빈을 참조할 수 있게 한다. 이것의 단점은 설정에서만 가능하다는 것이다. 하위 BeanFactory에서 getBean()호출로 상위 BeanFactory에 있는 빈에 접근할 수는 없다. XmlBeanFactory를 사용하여 BeanFactory 내포하기를 하는 것은 매우 간단하다. XmlBeanFactory하나를 다른 것에 전달하려면 상위 XmlBeanFactory를 자식 XmlBeanFactory의 생성자 인자로 넘겨주면 된다. 예) XmlBeanFactory parent = new XmlBeanFactory( new ClassPathResource("/ME

인스턴스화 모드 선택하기 [내부링크]

1. 싱글톤 1.1 상태가 없는 공유 객체 : 상태를 관리하지 않는 객체를 가지고 있고 의존 객체가 많다면 싱글톤을 사용하라. 상태가 없다면 동기화 할 필요가 없기 때문에 의존 객체가 어떤 일을 할 때 매번 새로운 인스턴스를 만들 필요가 없기 때문이다. 1.2 읽기 전용 상태를 가진 공유 객체 : 동기화 할 필요가 없기 때문에 매 요청마다 인스턴스를 생성하면 오버헤드만 증가한다. 1.3 공유 상태를 가진 공유 객체 : 상태를 반드시 공유해야 하는 빈을 가지고 있다면 싱글톤이 이상적인 선택이다. 이 때 상태 저장의 동기화는 가능한 다른 작업과 충돌 없이 독립적으로 이루어지도록 해야 한다. 1.4 쓰기 가능한 상태를 가진 처리량 많은 객체 : 애플리케이션에서 빈번하기 사용하는 빈을 가졌다면 싱글톤을 유지하고 빈에 대한 모든 쓰기 권한을 동기화 하여 더 좋은 성능을 얻을 수 있다. 2. 비싱글톤을 고려해볼만한 상황 2.1 쓰기 가능 상태를 가지고 있는 객체 : 여러 개의 쓰기 가능 상태를

초기화 Method [내부링크]

초기화 Method를 사용하는 것은 bean이 적절하게 설정되었는지 확인하는 이상적인 방법이다. 초기화 Method의 유일한 제약 사항은 인자를 허용하지 않는다는 것이다. 반환 타입을 정의할 수는 있지만 Spring이 모두 무시한다. InitializingBean을 사용해서 초기화 콜백을 한번 명시하면 모든 Bean class의 인스턴스를 처리 할 수 있는 장점이 있지만 application이 spring에 결합된다. 결국 애플리케이션의 요구사항에 따라 사용하려는 접근 방법을 선택해야 한다. 이식성이 이슈라면 초기화 Method를 사용하고 application의 설정 양을 줄이거나 잘못된 설정으로 인해 에러가 발생할 여지를 줄이고 싶다면 InitializingBean Interface를 사용하라. 초기화 Method와 InitializingBean을 동일한 bean 인스턴스에 둘 다 사용할 수 있다. 이 경우 Spring은 InitializingBean.afterPropertiesS

종료 후크 사용하기 [내부링크]

Spring 소멸 콜백의 유일한 단점은 자동으로 동작하지 않는다는 것이다. application을 호출하기 전에 destroynigSingleton()을 반드시 호출해야 한다. application을 서블릿으로 실행할 때는 간단하게 서블릿의 destroy() method에서 destroySingletons()을 호출하면 되지만 독집적인 application에서는 그렇게 단순하지 않다. 자바는 application을 종료하기 전에 실행하는 thread로 종료 후크를 생성할 수 있게 한다. 바로 이것이 BeanFactory의 destroySingletons() method를 호출하는 완벽한 방법이다. 이 방법을 취하는 가장 쉬운 방법은 Runnable 인터페이스를 구현하는 클래스를 만들고 run() method에서 destroySingletons() method를 호출하는 것이다. 예) 종료후크 구현하기 public class ShutdownHook implements Runnable

경로 지정 문제 [내부링크]

1. 이클립스로 프로젝트를 만들 때, 상대경로로 파일을 생성하면 기본 Path인 eclipse 폴더에 파일이 생성된다. 따라서, 상대경로로 파일을 생성해야 한다. 2. spring project에서 WEB-INF폴더에는 외부에서 접근이 불가능하다. 3. 서버에 있는 jsp 파일을 실행하면 html 형식의 문서를 반환하는데 이것은 화면에 보여지기만 하는 것이다. 이것을 HttpURLConnection 클래스를 사용하여 클라이언트의 자바 프로젝트를 "웹브라우저화" 시켜 반환된 문서를 파일로 저장하였다. 여기서 "./aaa.html"이라는 문서가 있다면 이 문서의 경로는 서버에서 수행 될 때와, 클라이언트에서 수행 될 때가 다르므로 주의해야 한다. (일단, 서버 절대경로로 통일하였다.)

삽질한 내용 [내부링크]

index.jsp에 form 태그를 사용하여 값을 전송하여 처리하는 것을 구현하였다. 최종결과는 abcd.jsp에서(view) 수행하여 abcd.html이라는 가상의 html문서에서 보여지는 방식인데 신기하게도 index.jsp를 수행하지 않고 바로 abcd.html을 호출하면 어느정도 결과가 나온다. 예를 들어 abcd.jsp에서 request.getAttribute()를 수행한다면 Attribute를 얻기 위해 이전에 수행하였어야 할 클래스와 컨트롤러 등을 수행하는 듯 하다. 그런데.... Form태그는 사용자에게 입력을 받는 부분이라 입력을 받지 않고 나머지 부분만 처리 하기 때문에 문제가 발생한다. ---------------------------------------------------------------------------------------------------------------- iText의 HtmlParser는 CSS는 적용이 안된다. ㅠㅠ wkhtmlto

JSP, HttpURLConnection, Servlet 한글 출력방법 [내부링크]

젠장... 이놈의 웹환경 한글 깨짐 현상때문에 개고생 했다. 1. 한글이 깨지는 이유 1(HTML, charset, data 포멧 관련) (1) HTML : ANSI, CHARSET : UTF-8, DATA : ANSI - > HTML태그 깨짐, 한글 깨짐 (2) HTML : ANSI, CHARSET : UTF-8, DATA : UTF-8 - > HTML태그 깨짐, 한글 정상 (3) HTML : UTF-8, CHARSET : UTF-8, DATA : ANSI - > HTML태그 정상, 한글 깨짐 (4) HTML : UTF-8, CHARSET : UTF-8, DATA : UTF-8 - > HTML태그 정상, 한글 정상 (5) HTML : ANSI, CHARSET : EUC-KR, DATA : ANSI - > HTML태그 정상, 한글 깨짐 (6) HTML : ANSI, CHARSET : EUC-KR, DATA : UTF-8 - > HTML태그 정상, 한글 정상 (7) HTML : UTF

Tomcat 6.0 Context설정하기 [내부링크]

톰캣을 설치하면 기본적으로 webapps/ROOT 경로가 홈디렉토리가 된다 원하는 경로로 변경하기 위하여 conf/server.xml 을 열어 <host></host>사이에 아래와 같이 Context부분을 추가해 준후 톰캣을 리스타트 한다.. <Context path="/woowa" reloadable="true" docBase="D:\workspace\woowa" /> path 는 http://localhost:포트번호/woowa 와 같이 입력될 가상디렉토리명이라 생각하면 된다 reloadable="true" 옵션은 클래스 변경시 자동 적용 유무를 판단한다 주로 개발시는 true 운영시는 false로 한다 docBase은 컨텍스트의 물리적 경로로 절대경로로 입력하여야 한다 이외에도 많은 옵션이 있으며 http://jakarta.apache-korea.org/tomcat/tomcat-4.1-doc/config/context.html 여기에서 확인가능하다.. 본인은 단독톰캣서버를 하나

tomcat 6.0 가상호스트 virtualhost 설정 [내부링크]

[주의사항] 톰캣 설정파일에서 한글을 사용하지 말자. (주석안의 한글고 사용하면 톰캣이 실행안된다.) TOMCAT_HOME : 톰캣 설치 디렉터리 1. 도메인으로 분류하는 방법 TOMCAT_HOME\conf\server.xml 을 열면 기본적으로 하나의 Service 엘리먼트가 있고 그 하위에 Engine 엘리먼트가, 또 그 하위에 아래와 같은 하나의 Host 엘리먼트가 있다. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> 아래와 같이 추가하려는 도메인으로 Host 엘리먼트를 하나 더 추가한다. <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceA

[공유] HttpURLConnection 을이용해서 웹페이지 호출하기..(파라미터,값 전송) [내부링크]

출처 pride FC to Dream|어린나무 스크랩된 글은 재스크랩이 불가능합니다.

JSP 페이지 이동 4가지 방법 및 특성 [내부링크]

먼저 다음 페이지 이동 특성들을 미리 알아볼 필요가 있습니다 JSP에서는 페이지 이동시 다음 4가지 정도의 방법이 있습니다 ① JavaScript를 이용 window.open, location.href, location.replace 등을 이용할수 있습니다 login_process.jsp <% if (a == null) { %> <script>location.href = "admin.jsp"; </script> <% } else { %> <script>alert('권한이 없어요!'); window.history.back(); </script> <% } %> 특징적인부분은 브라우져의 주소창이 변경되며 (이말은 즉슨 클라이언트가 다시 admin.jsp를 서버에 요청한다는 말입니다) login_process.jsp 에서 jsp가 다 실행되고 브라우져에 out put된 html 및 javascript들만으로 실행된 코드들이라는 것입니다 ② response.sendRedirect를 이용 lo

[공유] [기본개념] JSP의 동작 구조 [내부링크]

출처 coolten님의 블로그|플로러 스크랩된 글은 재스크랩이 불가능합니다.

동일 페이지 이동 하이퍼링크 [내부링크]

<a href="#이름">특정부분으로 이동</a> <a name="이름">여기가 이동할 부분</a>

JFreeChart 한글 깨짐 현상 해결방법 [내부링크]

//chart 한글 처리 //title chart.getTitle().setFont(new Font("HYGSRB", Font.BOLD, 20)); //범례 chart.getLegend().setItemFont(new Font("HYGSRB", Font.BOLD, 10)); CategoryPlot plot = (CategoryPlot)chart.getPlot(); Font labelFont = null; //x축 제목 한글처리 labelFont = plot.getDomainAxis().getLabelFont(); plot.getDomainAxis().setLabelFont(new Font("HYGSRB", labelFont.getStyle(), labelFont.getSize())); //y축 제목 한글처리 labelFont = plot.getRangeAxis().getLabelFont(); plot.getRangeAxis().setLabelFont(new Font("HYGSRB",

count(*) 값 변수에 담는 방법 [내부링크]

Integer str1 = Integer.parseInt(lst.valueList().get(1).toString());

JFreeChart에서 동일한 인자를 받는 차트 [내부링크]

createBarChart createAreaChart createBarChart3D createLineChart createLineChart3D createStackedAreaChart createStackedBarChart3D

CSS3을 이용한 둥근 테이블 만들기 [내부링크]

테두리의 코더값은 아래와 같이 radius값으로 지정해 줄 수 있다. border-radius:값; ex ) border-radius:20px; -webkit-border-radius:20px; <- for webkit -moz-border-radius: 20px; <- for firefox 각각 지정해 주려면 다음과 같이 하면 된다. CSS3 Mozilla WebKit border-top-right-radius -moz-border-radius-topright -webkit-border-top-right-radius border-bottom-right-radius -moz-border-radius-bottomright -webkit-border-bottom-right-radius border-bottom-left-radius -moz-border-radius-bottomleft -webkit-border-bottom-left-radius border-top-left-radius -

현재 wkhtmltopdf 명령 [내부링크]

wkhtmltopdf "http://192.168.10.53:8080/WebChart2/a bcd.html?company=%EC%82%B0%EC%A0%84&select=1" d:/WebChart2_files/WebContent/pdf/ 1111.pdf -b --cover "http://192.168.10.53:8080/WebChart2/cover.html?company=%EC% 82%B0%EC%A0%84&select=1" -t --toc-l2-font-size 12 --header-html "http://192.1 68.10.53:8080/WebChart2/header.html?company=%EC%82%B0%EC%A0%84&select=1" --fo oter-html "http://192.168.10.53:8080/WebChart2/footer.html?company=%EC%82%B0%EC% A0%84&select=1" --header-spacing 2 --footer-spacin

pageBreak (다음 페이지로 넘기기) [내부링크]

.pageBreak { page-break-before:always; } 위와 같이 스타일을 지정하면 지정된 부분에 사용하면 페이지가 넘어간다. 즉, html->pdf문서로 변환할 때, 일종의 출력을 하는 것이기 때문에 다음페이지로 넘어가는 것을 확인할 수 있다. h1 태그에 pageBreak를 걸어주면 h1태그가 나올때마다 다음 페이지로 넘어간다.

2010년 4월 29일 오후 1시 54분에 저장한 글입니다. [내부링크]

이런... wkhtmltopdf의 toc속성과 css의 page-break가 중복되지 않는다. toc로 만들어진 북마크(페이지 내 링크)가 다 깨져버린다. pdftk로 pdf문서를 합쳐보았는데 문서 자체는 잘 합쳐지지만 북마크는 다 깨진다. 공식 홈페이지에서 보니 북마크를 쓰려면 adobe acrobat을 쓰란다. =ㅁ=

css - 들여쓰기, 링크 밑줄 없애기 [내부링크]

1. 들여쓰기 text-indent: 20px; 2. 밑줄 없애기 a:link { text-decoration:none; color:black; } a:visited { text-decoration:none; color:black; } a:hover { text-decoration:none; color:black; }

자바 웹 프로그래머의 기본 [내부링크]

출처] http://youngrok.com/wiki/wiki.php/%C0%DA%B9%D9%C0%A5%C7%C1%B7%CE%B1%D7%B7%A1%B8%D3%C0%C7%B1%E2%BA%BB 1. web.xml 배치 서술자(deployment descriptor)라고 부르는 web.xml은 웹 프로젝트를 구성하는데 있어 필수적이면서 웹 애플리케이션의 동작을 여러 가지로 조정하는 역할을 한다. 스트러츠를 사용하는 경우도 스트러츠를 사용하기 위한 설정은 web.xml에 하게 되는데 그 설정들이 무슨 의미를 가지고 있는지 정도는 상식으로 알아두는 것이 좋을 것이다. 다음의 실제 스트러츠 설정 예제를 보자. <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name>

web.xml 태그 작성 순서 [내부링크]

http://www.jakartaproject.com/ http://java.sun.com/dtd/web-app_2_3.dtd <!-- The web-app element is the root of the deployment descriptor for a web application. --> <!ELEMENT web-app (icon?, display-name?, description?, distributable?, context-param*, filter*, filter-mapping*, listener*, servlet*, servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?, error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*, login-config?, security-role*, env-entry*, ejb-ref*, e

jsp에서 특정 내용을 html문서로 저장 [내부링크]

출처 ] http://www.jakartaproject.com/ 특정내용을 html로 다운로드 하실꺼면 다음과 같이 해보세요 <%@ page contentType="text/html" %> <% response.setHeader("Content-Disposition", "attachment; filename=\"test.dat\""); out.println("<font color=red>특정내용</font>"); %> filename에 들어갈 이름은 다운로드 파일 이름입니다

include 디렉티브(Directive) - <%@ include %> [내부링크]

JSP에서는 여러 JSP 페이지에서 공통적으로 포함하는 내용이 있을 때, 이러한 내용을 매번 입력하지 않고 저장해 두었다가 필요한 JSP 페이지 내에 삽입할 수 있는 기능을 제공한다. 이때 공통적으로 포함될 내용을 가진 파일을 해당 JSP 페이지 내에 삽입하는 기능을 제공하는 것이 include 디렉티브이다. <%@ include file="로컬URL" %> include 디렉티브의 처리과정은 정적이라고 할 수가 있다. include 디렉티브를 사용한 JSP 페이지가 컴파일 되는 과정에서 include되는 JSP 페이지의 소스 내용을 그대로 포함해서 컴파일을 하게 된다.

wkhtmltopdf의 footer-html속성 사용시 쪽번호 문제 [내부링크]

jsp를 사용해서 쪽번호를 사용했을 경우 쪽번호가 자기 마음대로 붙는 (랜덤) 사태가 발생하였다. Thread문제인가 하여 동기화 해본다고 설쳤지만 결국 실패했는데 <html><head><script> function subst() { var vars={}; var x=document.location.search.substring(1).split('&'); for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);} var x=['frompage','topage','page','webpage','section','subsection','subsubsection']; for(var i in x) { var y = document.getElementsByClassName(x[i]); for(var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]]; } } </script></he

equals와 "=="의 차이 [내부링크]

equals 메소드는 객체가 가지고 있는 내용이 같은가를 비교하기 위한 메소드이고, ==는 기본 데이터 타입의 변수일 때는 두 변수의 값이 같은가를 비교하며, 레퍼런스 타입의 변수일 때는 두 객체가 같은 객체인가를 비교하는 비교 연산자이다. ex) 여기서 s, s1, s2는 모두 레퍼런스 타입의 변수이다. String s = "연습"; String s1 = "연습"; String s2 = new String( "연습"); if(s == s1) //true if(s.equals(s1)) // true if(s==s2) // false String은 문자열 클래스 객체이기 때문에 ==을 사용하면 값을 비교하는게 아니라 같은 객체인가를 비교한다.

JSP 내장객체 [내부링크]

1. request : 클라이언트의 요청 정보를 저장하고 있는 객체 2. response : 클라이언트의 요청에 대한 응답 정보를 저장하고 있는 객체 3. out : JSP 페이지에 출력할 내용을 가지고 있는 출력 스트림 객체 4. session : 세션 정보를 저장하고 있는 객체 5. application : 웹 어플리케이션 Context정보를 저장하고 있는 객체 6. pageContext : JSP 페이지에 대한 정보를 저장하고 있는 객체 7. page : JSP 페이지를 구현한 자바 클래스 객체 8. config : JSP 페이지에 대한 설정정보를 저장하고 있는 객체 9. exception : JSP 페이지에서 예외가 발생되면 사용되는 객체 자바의 스크립트 요소에서는 내장 객체명과 같은 이름으로 변수를 선언할 수 없다. 만약 내장 객체명과 동일한 이름으로 변수를 스크립트 요소에서 선언을 하면 에러가 발생한다.

JSP 페이지의 모듈화 [내부링크]

1. include 액션 태그(<jsp:include>) <jsp:include>액션 태그는 include 디렉티브 (<%@ include%>)와 함께 다른 페이지를 현재 페이지에 포함시킬 수 있는 기능을 가지고 있다. include 디렉티브는 단순하게 소스의 내용이 텍스트로 포함되지만 <jsp:include> 액션 태그는 페이지의 처리 결과를 포함시킨다는 점이 다르다. 이때 포함되는 페이지는 HTML, JSP, Servlet 등 모두 가능하다. 또한, include 디렉티브는 주로 조각 코드를 삽입할 때 사용되고, <jsp:include> 액션 태그는 페이지를 모듈화할 떄 사용된다. 즉, 템플릿 페이지를 작성할 때 사용된다. 1.1 사용법 <jsp:include page="페이지" flush="false"/> 1.2 처리과정(a.jsp가 b.jsp를 include) 1.2.1 웹 브라우저가 a.jsp 페이지를 웹 서버에 요청한다. 1.2.2 서버는 요청받은 a.jsp페이지를 처리하

jstl문제 [내부링크]

출처 : http://forums.sun.com/thread.jspa?threadID=486791 This topic has 6 replies on 1 page. E-mail this Topic Watch this topic dare_devil Posts:1 Registered: 1/30/04 .JasperException: This absolute uri (http://java.sun.com/jstl/core) cannot 2004. 1. 30 ?? 3:07 <FORM action="post!reply.jspa"><INPUT type="hidden" value="2279057" name="messageID"> <INPUT class="buttonblue" onmouseover="this.style.color='#fbe249';" onmouseout="this.style.color='#FFF';" type=submit value="Reply »"></FORM> Hi, try to r

http://java.sun.com/jsp/jstl/core 에러가 뜰때 [내부링크]

실제 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 이 코드에서 에러가 나는데, 두가지 경우가 있다고 한다. 1. jstl.jar, standard.jar를 추가시켜 주지 않았거나 2. 이클립스가 jar 파일을 인식하지 못했거나 후자의 경우는 이클립스에서 clean을 살포시 눌러주고 rebuild하면 된다.

이클립스에서 war 파일을 만들어 배포 [내부링크]

프로젝트에서 war 파일을 만들 수 있는데 이것을 tomcat으로 배포 할때 그냥 tomcat 폴더에 넣으면 되는 것이 아니다. conf 폴더에서 tomcat-user.xml 파일에보면 <role rolename="tomcat"/> ...... 이라는 부분이 주석처리가 되어있는데 주석을 해제하고 <user name="username" password="비밀번호" roles="권한이름(manager)" /> 를 추가한 후에 tomcat의 index.jsp에 접속하면 왼쪽 상단에 tomcat manager를 누를 후에 로그인을 하면 하단에 WAR file to deploy가 있는데 여기에 추가한 후에 접속하면 잘 된다.

postgreSQL windows에 설치 [내부링크]

postgreSQL을 윈도우에 설치 할때는 그냥 설치하면 되는데 유저, db추가등이 문제이다. 한참 헤딩하다가 탐색기에서 리눅스 설치때와 동일하게 postgres.conf, pg_hba.conf인가? 두개의 파일을 메모장으로 열어서 등록해주었는데 외부에서 접속은 잘 되는데 빌어먹을 localhost가 안먹는다 =ㅁ= 나랑 싸우자는건가? 그리고 외부에서 접근을 하려면 방화벽에서 postgres에 설정한 포트를 풀어줘야 한다. 톰켓도 마찬가지

Java 6에서 "Type safety: Unchecked cast from Object to ~~~" 워닝 조치법 [내부링크]

출처 : http://pcandme.net/51 Java 6로 프로그래밍 시, 컴파일러에서 다음과 같은 워닝을 낼 때의 조치법이다. Type safety: Unchecked cast from Object to ~~~ 물결 표시가 들어간 자리에는 'ArrayList'와 같은 자바 컬렉션 프레임워크의 멤버가 들어간다. 워닝이 나는 라인 바로 위에 다음과 같은 어노테이션을 삽입한다. @SuppressWarnings("unchecked") 위 어노테이션은 경고 억제 어노테이션으로, 비확인 경고(unchecked warning)을 제거해 준다. 구글링한 결과, 위 워닝은 실행에 아무런 영향을 미치지 않으며, 대부분의 자바 프로그래머들이 외부 링크로 첨부된 음악, 동영상은 재생이 지원되지 않습니다. '무시해도 좋은' 워닝으로 생각하는 것으로 결론 지었다. 본인의 경우, Object 클래스 객체를 ArrayList<String> 객체로 형변환하려다 위와 같은 비확인 경고를 발생시키게 되어 위 어

웹 프로젝트 - 파일생성 물리경로 문제 해결방안 [내부링크]

웹으로 접속 하였을 경우 C:\ 으로 시작하는 물리 주소로는 접근이 불가능하다. 반면에 웹 프로젝트에서 파일을 생성할 경우에는 http://로 시작하는 웹 주소로 생성이 불가능하다. 이클립스로 개발을 하다보니 ./ 으로 시작하는 경로는 eclipse 폴더 밑으로 들어가 버리고 서버에 올리면 톰켓 폴더 밑으로 들어가 버린다. 그래서 경로 오차로 파일 create와 load가 안된다. 어디에서 실행을 해도 잘 되게 하는 방법을 찾다가 getServletContext().getRealPath("/") 라는 것을 찾았다. 이것은 현재 실행중인 프로젝트의 ROOT 경로를 반환한다. 따라서 new File(getServletContext().getRealPath("/") + "abcd/1234.jpg" .. ); 과 같이 생성하면 유기적으로 파일 생성이 가능하다. 참고로 이클립스 같은 경우에는 위와 같이 파일을 생성할 경우 경로가 좀 바뀌는데 워크스페이스\.metadata\.plugins\or

Postgresql 설치 에러날 때 [내부링크]

Windows Xp에서 Postgresql 설치 시, 마지막 부분에 Service 등록에서 에러가 나면서 롤백되어 버리는 경우가 있다. 이 경우는 대부분 Windows의 사용자 계정을 추가하는 것으로 해결할 수 있다. 기존 사용자 계정 삭제 1. 시작 > 실행 > 프롬프트 창을 연다. 2. net user 입력해서 postgres 계정이 있는지 확인. 3. 있다면 net user /delete postgres 입력해서 삭제. 사용자 계정 추가 1. net user postgres 비밀번호 /add 2. net user 입력해서 추가된 계정 확인 서비스 제어 권한 부여 1. 제어판 > 관리도구 > 로컬 보안 설정 창 열기 2. 보안설정 > 로컬 정책 > 사용자 권한 할당 > 서비스로 로그온에 postgres 계정 추가 postgres 계정의 폴더권한 부여 1. 탐색기 > 도구 > 폴더옵션 > 보기 2. "모든 사용자에게 동일한 폴더 공유 권한을 지정"에 첵크되어 있지 않을 경우 3.

쉘 실행시 Hang 현상(waitFor 실행시 무한대기) [내부링크]

Runtime.getRuntime().exec() 를 사용해 개발하다보니 WaitFor 실행시 Hang이 걸리고 진행되지 않는 현상이 있었다. 그래서 구글신께 문의해 본 결과 해결방법이 있는 곳을 찾았다. 출처 : http://eshurion.egloos.com/ 부지런히 손품을 팔아 찾아보니 윈도우(는 cmd로 도스창을 띄우고 작업하므로)에서는 화면상에 출력되는 내용이 모조리 버퍼로 들어가기 때문에 버퍼가 차버리면 그냥 그대로 프로세스가 멈추어 버리는 현상이 있다고 한다. 아직 리눅스/유닉스에서는 실행해보지 않았지만 그쪽은 괜찮다고 하는데... 이를 해결하기 위해 버퍼를 비워주는 메소드가 별도로 필요하다. 국내외를 다 다녀본 결과 대부분이 아래와 같은 클래스를 만들어 사용하고 있다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStrea

JSTL에서 페이지 포함방법 [내부링크]

JSP에서 다른 컨텐츠(다른 페이지)를 포함하는 방법은 3가지이다. 두가지는 다른 게시물에 존재하고 나머지 한가지는 <c:import> JSTL 태그이다. 사용법 : <c:import url="주소" /> <jsp:include> 태그도 가능하지만 <c:import url="주소"> <c:param name="변수명" value="값"/> </c:import> 와 같이 사용 가능하고 iframe이나 기타 다른 곳에 포함할때 비슷하게 사용할 수 있다. ex ) 테스트 소스 <iframe id="content_frame" name="contentframe" src="<c:url value="reportindex_right.jsp"> <c:param name="company" value="${param.company }"/> <c:param name="select" value="${param.select }"/> </c:url>" width="100%" height="480" frameb

JSTL requestEncoding(한글 안깨지게 하는 법) [내부링크]

JSP에서는 request.setCharacterEncoding("UTF-8"); JSTL에서는 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 을 추가해 준 후에 <fmt:requestEncoding value="UTF-8"/>

[jsp] Custom tag의 attribute 지시자 [내부링크]

<%@ attribute name="변수명" required="true" rtexprvalue="true" %> 1. required : 속성의 옵션 여부 - true를 사용하면 옵션이 아니라는 의미 2. rtexprvalue : true의 의미는 문자열도 도리 수 있고, 표현식도 가능하다는 말

JSP 내장객체 [내부링크]

JspWriter - out HttpServletRequest - request HttpServletResponse - response HttpSession - session ServletContext - application ServletConfig - config JspException - exception PageContext - pageContext Object - page

ResultSet 반환 [내부링크]

자바 또는 서블릿에서 Query를 수행하여 ResultSet을 반환하고 싶어 방법을 찾아보았다. 수많은 웹 페이지를 돌아다녀봤지만 ResultSet을 반환하는게 아니라 모두 ResultSet의 데이터를 담아두는 클래스 리스트(ArrayList<클래스>) 를 만들어 반환하는 것이었다. 왜 그런지 직접 테스트 해본결과 커넥션 풀을 사용하여 DB에 접속 했을 경우 자동으로 ResultSet과 Connection 객체 등이 close되지 않아 수동으로 close 해줘야 하는데 값을 넘겨주는게 아닌, 객체를 넘겨주는 것이기 때문에 넘겨주고 close를 해도 원본 객체가 close되어 받은 객체가 값을 읽어올 수 없었다. 그래서 결국 클래스를 만들어 list를 넘겨주는 방식으로 코드를 수정하였다.

EL 사용시 주의사항 [내부링크]

request 객체에서 ArrayList<클래스> 형식으로 파일을 리턴해준 것을 EL로 받을때, ex) 넘겨줄때 : request.setAttribute("array", 리스트객체); 받을때 : ${array} 와 같이 받을때, forEach를 쓰지 않고 출력할때 조심해야 한다. 리스트이기 때문에 array.변수명 과 같이 써주면 에러가 나고 array[0].변수명 과 같이 인덱스를 확실히 해줘야 한다.

JSP에서 파라미터를 넘기는 방법 [내부링크]

1. <jsp:param>을 이용한 방법 1.1 태그 호출 <jsp:include page="jsp 이름"> <jsp:param name="subTitle" value="파라미터 값"/> </jsp:include> 1.2 파라미터 사용 &{param.subTitle} * subTitle은 파라미터 이름 2. 태그 속성을 이용한 방법 2.1 사용자 정의 태그를 사용하겠다는 선언 <%@ tablib prefix="myTags" tagdir="/WEB-INF/tags" %> 2.2 태그 호출 <myTag:Header subTitle="파라미터 값"/> * Header는 Header.tag 에서 확장자를 제외한 이름을 쓴 것임 2.3 파라미터 사용 선언 지시자 <%@ attribute name="subTitle" required="true" rtexprvalue="true" %> 2.4 파라미터 사용 ${subTitle}

jstl sql 사용 [내부링크]

<sql:query var="rs_site" dataSource="jdbc/postgres"> select site_id from esm_site_agent group by site_id order by site_id </sql:query> <ul id="browser"> <c:forEach var="rows_site" items="${rs_site.rows}"> <li><span class="folder">${rows_site.site_id}</span> <sql:query var="rs_agent" dataSource="jdbc/postgres"> select agent_id from esm_site_agent where site_id=? <sql:param>${rows_site.site_id}</sql:param> </sql:query> <ul> <c:forEach var="rows_agent" items="${rs_agent.rows}"> <li><span class="fil

jquery를 이용한 tree 사용 [내부링크]

<SCRIPT LANGUAGE="JavaScript"> <!-- $(document).ready(function(){ $("#browser").treeview(); }); </SCRIPT> <table> <tr> <td> <ul id="browser"> ....... </td> </tr> <tr> <td> <ul id="browser"> ...... </td> </tr> </table> 과 같이 한 문서에 테이블 형식으로 ul 태그를 써서 tree를 사용하려 했으나 한문서에는 하나밖에 적용되지 않았다. 그래서 <table> <tr> <td> <iframe> </td> </tr> <tr> <td> <iframe> </td> </tr> </table> 이렇게 각 문서에 따로 tree를 구현하여 iframe으로 박았다.

FCKeditor [내부링크]

1. Install A. Download : http://sourceforge.net/projects/fckeditor/files/FCKeditor.Java/ i. Fckeditor-java-core-버전.jar 1. 실행시 필요한 라이브러리 파일을 제외한 코어 부분 ii. Fckeditor-java-2.4.1-bin.zip(or tar.gz) 1. 실행시 필요한 라이브러리 파일을 포함한 패키지 2. 다음 lib 파일을 포함하고 있다. A. Commons-fileupload-버전.jar B. Commons-io-버전.jar C. Slf4j-api-버전.jar B. Fckeditor-java-버전/java-demo/src/main/webapp/FCKeditor 폴더를 웹 프로젝트의 WebContent안에 집어넣는다. C. fckeditor-java-2.6\java-core\src\main\resources\META-INF/FCKeditor.tld파일을 WEB-INF에 복사 2. CON

[공유] 한글주소(URL)인코딩(encode, Encoding), 자바스크립트(JavaScript) [내부링크]

출처 일상으로의 초대|좋은생각 스크랩된 글은 재스크랩이 불가능합니다.

double자료형 반올림(올림, 버림) [내부링크]

BigDecimal(숫자).setScale(반올림할 자리수, 올림/버림/반올림 타입) ex) BigDecimal(25.1234).setScale(2, BigDecimal.ROUND_UP) 결과 : 25.12

오라클의 rownum 과 비슷한 기능 limit [내부링크]

오라클의 rownum 과 비슷한 기능 limit 그리고 limit 와 같이 사용하여 어디서부터 결과 값을 가져올지 정하는 것. 예제) select * from test_db where key = '1' limit 1000 offset 100; 설명) test_db 에서 key 가 1인 데이타를 100번째 로우부터 1000 개를 가져올것.

javascript 엔터(enter) 입력시 초기화 문제 / form의 input text에서 enter로 submit 방지 [내부링크]

입력상자가 하나만 있을 경우, 엔터키를 누르면 강제로 Submit 되어버린다. 엔터를 눌렀을 때, submit을 막을 방법은 1. 보이지 않게 text박스를 하나 더 만든다. <input type="text" name="aaa" style="display:none;"> 2. javascript를 통한 강제 제어 <input type="text" name="bbb" onkeydown='javascript_:{ if(event.keyCode==13) event.returnValue=false;}'> 3. form 자체에서 차단 <form onkeypress="return event.keyCode != 13;"> 4. jquery로 차단 $(document).on('keypress', 'form', function(e) { return e.keyCode != 13; }); 또는 <form onsubmit="return false;">

jqgrid에서 json, xml 사용법 [내부링크]

$("#gridList").jqGrid({ //ajaxGridOptions : {type:"POST"}, //serializeGridData : function(postdata) { //page = postdata.page; //return postdata; //}, url: 'string.jsp', datatype: "json", height:400, //높이 //width:300, autowidth: true, //자동 width 설정 colNames:['ID', 'Name', 'Date'], colModel:[ {name:'addin_id', index:'addin_id', width:30, align:"center", key:true, editable:false }, {name:'addin_name', index:'addin_name', width:170, align:"center", editable:false}, {name:'reg_date', index:'reg_date'

자바스크립트(JavaScript) 인코딩/디코딩 [내부링크]

자바스크립트(JavaScript)에서는 다음의 함수들로, HTML 페이지 주소를 인코딩/디코딩합니다. encodeURI() / decodeURI() 최소한의 문자만 인코딩합니다. ; / ? : @ & = + $ , - _ . ! ~ * ' ( ) # 이런 문자는 인코딩하지 않습니다. http:// ... 등은 그대로 나옵니다. encodeURIComponent() / decodeURIComponent() 알파벳과 숫자 Alphanumeric Characters 외의, 대부분의 문자를 모두 인코딩합니다. http:// ... 가 http%3A%2F%2F 로 됩니다. escape() / unescape() 예 전부터 있던 오래된 함수입니다. encodeURI() 와 encodeURIComponent() 의 중간 정도의 범위로 문자를 인코딩합니다. [출처] 한글주소(URL)인코딩(encode, Encoding), 자바스크립트(JavaScript)|작성자 좋은생각

UTF-8로 된 파일 읽어서 String으로 저장하기 [내부링크]

private static StringBuilder htmlReader(String filename) { BufferedReader bufferedReader; InputStreamReader inputStreamReader; FileInputStream fileInputStream; StringBuilder builder = null; String htmlFileName = filename; try { fileInputStream = new FileInputStream(htmlFileName); inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8"); bufferedReader = new BufferedReader(inputStreamReader); builder = new StringBuilder(); String temp = null; while ((temp = bufferedReader.readLine()) !

java 디렉토리(폴더) 생성 [내부링크]

File dir = new File(realPath + "report/pdf/"); if(!dir.isDirectory()){ System.out.println( "폴더 생성"); dir.mkdirs(); } request.getSession().getServletContext().getRealPath(""); 혹은 getServletContext().getRealPath("/"); 등으로 실제 서버의 경로를 구할 수 있다.

jquery combobox에 자동 생성되는 버튼 submit 막는 방법 [내부링크]

combobox를 적용하면 버튼이 생기는데 그 버튼을 누르면 목록 펼치기가 되는것은 좋은데 기본 옵션이 submit이라 페이지가 재 호출 되어버린다. 이 현상을 막으려면 $("<button>&nbsp;</button>") <-- 이 부분을 찾아서 조금만 더 내려가면 input.focus(); 가 있는데 바로 밑에 return false; 를 추가해주면 된다.

postgres 활동내역 보는 방법 [내부링크]

select * from pg_stat_activity

javascript trim함수 구현 [내부링크]

java에는 trim함수가 없어서 만들어 써야 한다. String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); }; var abc = " abc "; abc.trim(); document.frm.text.value.trim()

마우스 오른쪽 금지, 드래그 금지 태그 [javascript] [내부링크]

1. 오른쪽 금지 document.oncontextmenu = function(){return false;}; 2. 드래그 금지 document.onselectstart = function(){return false;}; 이것을 body등 HTML태그에 직접 넣어주면 안돌아가더라.. =ㅁ=;;

IE 7과 8의 호환.. 강제로 IE7로 맞추는 방법 [내부링크]

IE7과 IE8이 서식(?)이 달라서 같은 CSS로 다른 결과가 나온다. 웹 페이지에서 강제로 낮은 버전으로 랜더링하는 방법이 있다. <meta http-equiv="X-UA-Compatible" content="IE=7" /> 이 메타 태그를 모든 페이지에다가 붙여넣고 7 기준으로 개발하면 될것 같은데...

[css] word-wrap [내부링크]

그냥 일반적으로 검색해서 나오는 word-wrap 방법들은 뭔가 하나씩 안됨. 테스트 결과 다 되는 것 찾았음.. <style type="text/css"> table { table-layout:fixed; } p { width: 300px; border:1px solid red; word-wrap:break-word; word-break:break-all; } .wordBreak { font-size:0; line-height:0; } </style> <script type="text/javascript"> //<![CDATA[ function wordBreak(element) { element.innerHTML = element.innerHTML.split('').join('<span class="wordBreak"> </span>'); } //wordBreak(document.getElementsByTagName('div')[0]); wordBreak(document.getEl

중복 데이터 삭제 [postgres] [내부링크]

원래 코드 DELETE FROM 테이블명 as A WHERE rowid > (SELECT min(rowid) FROM 테이블명 as B WHERE B.필드명 = A.필드명; [출처] 중복 데이터 삭제|작성자 더클레오 postgres DELETE FROM 테이블명 as A WHERE ctid> (SELECT min(ctid) FROM 테이블명 as B WHERE B.필드명 = A.필드명);

java 한글처리 [내부링크]

public static String a2kTest(String str) { String rtn = null; try { rtn = (str == null) ? "" : new String(str.getBytes("ISO-8859-1"), "UTF-8"); if (check(rtn)) { return rtn; } } catch (java.io.UnsupportedEncodingException e) { } try { rtn = new String(str.getBytes("Cp1252"), "UTF-8"); if (check(rtn)) { return rtn; } } catch (java.io.UnsupportedEncodingException enc) { } return str; } public static boolean check(String target) { boolean iskorean = false; if (target == null) { return iskorean; } i

crontab에 java(자바) class 등록하여 사용 [내부링크]

1. crontab 명령어 crontab -l : 등록된 crontab 목록을 보여준다. crontab -e : 등록된 crontab을 수정한다. crontab -r : 등록된 crontab을 삭제한다. 2. 인터넷에 여러가지 방법이 떠돌아 다니지만 다 필요 없고 runnable jar 파일을 생성해서 커맨드라인에 vi 파일명.sh 을 입력하고 파일의 내용에 java -jar 파일명.jar 하면 된다. ex) sh파일 내용 cd /usr cd local // 해당경로로 이동 java -jar 123.jar 이후에 chmod 755 파일명.jar 해주면 완성! 3. crontab에 등록하려면 crontab -e를 입력하여 들어간 뒤 1 2 3 4 5 /경로/ 를 주면 완료된다. 1 : 분 2 : 시간 3 : 날짜 4 : 달 5 : 요일 - 0~6 [0은 일요일] 해당 필드에 *를 주면 모든이라는 뜻이므로 날짜에 *이라고 해주면 매일 동작하는 것이다. ex) 0 * * * * aaa.s

join을 해야 하는데 column이 비어 있을수도 있을 경우 [내부링크]

SELECT y.ticket_id, y.reg_user_id, y.status, y.resolution, y.ticket_title, y.ticket_content, y.from_date, y.to_date, y.open_date, y.complete_date, y.ticket_type, y.severity, y.priority, y.reg_date, y.site_name, x.alert_name /*FROM*/ FROM (SELECT a.ticket_id, b.alert_name FROM ticket_doc a, esm_alert_list b WHERE a.status='reject' AND ticket_title LIKE '%%' AND a.alert_id = b.alert_id) x RIGHT OUTER JOIN ( SELECT a.ticket_id, a.reg_user_id, a.status, a.resolution, a.ticket_title, a.ticket_content

[jquery - jqgrid] row 어쩌구 에러 나올때 [내부링크]

jqgrid는 table에 넣어야 하는데 <div>태그를 사용하면 row 에러가 난다.

주별, 월별로 묶을때 [내부링크]

group by to_char(날짜, 'W')로 하면 일월화수목금토 로 묶는다. group by date_trunc('week', 날짜)로 하면 월화수목금토일 로 묶는다. 따라서 심각한 수준의 오차 발생

XHTML 공백문자 처리 [내부링크]

XHTML에서는 스페이스와 Tab 키, 행 바꿈 등을 동일하게 공백문자로 처리한다. 유니코드상에서는 스페이스, Tab, 라인피드, 캐리지 리턴의 네 가지를 공백문자로 처리한다. HTML에서는 이에 더해 폼 피드, 캐리지 리턴+라인피드, 제로 폭 스페이스가 공백문자로 여겨지므로 주의해야 한다. 시작 태그 바로 뒤에 공백문자, 종료 태그 바로 앞의 공백문자는 무시된다.

웹 표준의 장점 [내부링크]

1. 수정과 관리 용이 새로운 버전의 브라우저가 출시되거나 사이트 디자인이 큰 폭으로 리뉴얼 될 때 드는 부담이 크게 줄어든다. 2. 웹 접근성 향상 3. SEO(검색엔진 최적화) 대책 검색엔진의 크롤러는 XHTML 소스를 거의 액면 그대로 해석하기 때문에 적절하게 구조화되고 깨끗하게 정리된 소스는 검색로봇이 잘 검색할 수 있다. 4. 파일 사이즈 축소와 서버 저장 공간 절약 5. 하위호환성과 상위 호환성 확보

<br> Tag 폐지 [내부링크]

현재 재정중인 XHTML 2.0의 초안에는 br은 폐지되고 새롭게 <l>가 도입될 예정이다. ex) <p>가나다라마바<br/>사아자</p> 가 아니라 <p> <l>가나다라마바</l> <i>사아자</l> </p> 이렇게 써야 함

정의형 목록(dl, dt, dd) [내부링크]

용어와 그 설명으로 구성된 목록을 정의형 목록이라고 한다. 정의형 목록은 dl 요소로 정의하고 용어를 나타대는 dt 요소와 그 설명인 dd요소를 포함한다. 많은 브라우저에서 dd 요소가 들여쓰기되어 표시된다. dd요소는 블록 레벨 요소이지만 dt요소와 dd요소 이외의 요소를 포함할 수 없다. dt요소는 인라인 요소이며 인라인 요소와 텍스트를 포함 할 수 있다. dd요소는 블록 레벨 요소이며 인라인 요소와 텍스트를 포함 할 수 있고, 블록 레벨 요소도 포함 할 수 있다.

<table> [내부링크]

1. WCAG 1.0에서는 table 요소에 summary 속성으로 요약문을, th 요소에는 abbr 속성으로 약어를 지정할 것을 규정하고 있다. 2. width, height, border, frame, rules, cellspacing, cellpadding, align, valign 속성 모두 폐지 예정. 3. 행 그룹화를 위한 thead , tfoot , tbody 요소 이 요소들은 caption, col, colgroup 요소의 다음에 thead, tfoot, tbody의 순서로 지정한다. 이와 같이 행을 그룹화하는 이유는 브라우저가 긴 표에 대해서 tbody 오소의 범위 안에 스크롤바를 제공한다든지, 인쇄할 때 표가 복수의 페이지에 걸친 경우에 모든 페이지에 헤더행을 반복해서 표시하는 기능을 부여하기 때문이다. (thead, tfoot는 생략 가능) 4. 열 그룹화를 위한 colgroup, col 요소 표의 열을 그룹화하기 위한 요소로 colgroup, col 요소가 있다

tabindex속성과 accesskey 속성 [내부링크]

a 요소에 tabindex 속성과 accesskey 속성을 지정하여 키조작에 의한 포커스 이동 방식을 사용자에게 제공할 수 있다. 1. tabindex 키보드 Tab키를 눌렀을 때의 포커스 이동 순서를 지정한다. 0에서 32767까지 지정 가능하다. 2. accesskey 액세스키를 눌렀을 때의 포커스를 지정한다. 대/소문자를 구별하지 않는다.

CSS 속성 선택자 [내부링크]

속성 선택자는 특성 속성명이나 속성값을 가진 요소에 스타일을 적용하기 위한 선택자다. 속성 선택자에는 네 가지 서식이 있다. 1. 요소명[속성명] id의 값은 관계 없이 id가 존재하기만 하면 된다. ex) h1[id] { color: red; } 2. 요소명[속성명="속성값"] ex) h1[id="abc"] { color: red; } 3. 요소명[속성명~="속성값"] 요소 중에서 그 속성명을 가지고 속성값을 공백문자로 구분하여 복수지정한 경우 그 속성 값이 포함된 요소에 스타일을 적용한다. ex) P[class~="note"] { color: red; } <p class "va1 va2 note">aaaaa</p> 4. 요소명[속성명|= "속성값"] 요소 중에 그 속성명을 가지고 속성값을 하이픈(-)으로 구분하여 복수지정한 경우 그 속성값의 앞 부분이 일치하도록 포함된 요소에 스타일을 지정한다.

jQuery - addClass, toggleClass, removeClass [내부링크]

jQuery에서는 class로 적용된 요소를 동적으로 처리할 수 있는 함수를 제공한다. #addClass(className) - 해당 className을 가진 클래스 속성을 추가. 즉 이벤트가 발생한 노드에 선언된 클래스 스타일을 적용시킨다. .hidden {display:none;} $("#box").addClass("hidden"); id="box"> #removeClass(className) - removeClass는 addClass의 반대이다. 해당클래스 속성을 지정된 노드에서 제거해준다. - 사용법은 addClass와 동일하다. #toggleClass(className) - toggleClass는 addClass와 removeClass의 기능을 모두 포함하는 메소드이다. toggle이란 용어의 의미대로 addClass와 removeClass 함수가 toggle 형식으로 교대로 적용된다. 즉, 스타일 클래스가 적용된 경우는 제거를, 속성이 선언되어 있지 않은 경우에는 선언해주

postgres에서 에러가 나는 경우 로그를 보는 방법 [내부링크]

1. su - postgres로 들어간다. 2. 경로 : /var/lib/pgsql/data/pg_log로 이동 3. tail -f 파일명 [ex : tail -f postgresql-Mon.log] * 에러가 발생하는 경우만 log가 추가된다.

jquery를 사용하지 않는 마우스 오버 [내부링크]

table의 tr 또는 td 그리고 dt, dd등도 css로 hover를 줄 수 있다. dt:hover{ } 등.

Java & JavaScript 인코딩 타입에 관계없이 문자열을 인코디 디코딩 하기 [내부링크]

http://kin.naver.com/knowhow/detail.nhn?d1id=8&dirId=8&docId=576518&qb=amF2YSBlbmNvZGUgIGphdmFzY3JpcHQgZGVjb2Rl&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=gSvLBB331yCssvrHRidssv--489690&sid=TVC43PKzUE0AADrSBLk javascript <-> java 호환 가능

tomcat + openssl [내부링크]

SSL Setting 1) openssl 설정파일 openssl.cnf 을 연다 [find . -name 'openssl.cnf' 로 경로 확인] ----------------------------------------- [ CA_default ] dir = /root/demoCA ----------------------------------------- 로 설정함.. 2) 설정한 디렉토리로 이동 cd /root/demoCA 3) 필요한 디렉토리와 파일들을 생성한다. mkdir certs mkdir crl mkdir newcerts mkdir private touch index.txt echo "0001" > serial echo "0001" > crlnumber 4) CA 및 서버 인증서 생성 - 자체인증기관 생성 openssl genrsa -des3 -out ./private/cakey.pem 2048 openssl req -new -x509 -days 3650 -key ./p

면접시 호감 또는 비호감 답변 순위 [내부링크]

(www.career.co.kr)가 기업 채용담당자 247명을 대상으로 조사한 결과 호감 1위. ‘앞으로 ~분야에서 경험을 쌓고 싶다’는 ‘성장인재형’ 2위. ‘~을 통해 극복했습니다’의 ‘위기극복형’ 3위. ‘면접관님과 얘기를 나누다 보니 긴장이 덜하고 오히려 편안해졌다’는 ‘현장적응형’ 4위. ‘이 회사에 지원하기 위해 ~을 노력했습니다’인 ‘노력형’ 비호감 1위. ‘특별한 지원동기가 없다’는 ‘무관심형’ 2위. ‘방금 전에 대답을 했는데 또 말씀 드려야 합니까?’라는 ‘안하무인형’ 3위. ‘잘 생각나지 않습니다. 잘 모르겠습니다’라는 ‘무대포형’ 4위. ‘있는데요…그런데요…’와 같은 ‘유아형’ 5위. ‘그리 뛰어나게 잘 하는 것은 없습니다’의 ‘자기비하형’ 6위. ‘다른 사람은 몰라도 저는 그렇지 않습니다’의 ‘자기자랑형’ * 면접시 가장 세심하게 체크하는 사항 1위 ‘목소리와 말투’를 가장 많이 들었다. 2위 ‘전체적인 분위기 및 외모’ 3위 ‘면접시간 준수’ 4위 ‘옷차림

tomcat error page [내부링크]

web.xml에서 <error-page> <error-code>403</error-code> <location>/WEB-INF/view/exception/403.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/WEB-INF/view/exception/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/WEB-INF/view/exception/500.jsp</location> </error-page> 등과 같이 정의. 여기서 유의할 점은 403.jsp 등과 같은 에러 페이지는 반드시 512byte이상의 크기를 가져야 한다는 것이다. * html status(error) code "100" ; Section 10.1.1: Continue | "101" ; Section 10.1.2: Swi

jsp download 후 새로고침이 필요할 경우 [내부링크]

jsp에서 download를 하면 header의 referer가 소멸하여 referer를 체크하여 무엇인가 하려고 할때 에러가 발생한다. 따라서 아래의 편법을 사용 1. 다운로드 클릭시 새창팝업 2. 팝업창에서 다운로드 - 팝업 onload시 다운로드 시작 3. 다운로드 완료후 창닫기 클릭 - 사용자에게 다운로드 완료 후 창닫기 클릭하라는 메시지 보여줌 반드시 다운로드 완료 후 완료 버튼을 클릭하세요 [완료] 4. 팝업창에서 parent 페이지 refresh 출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040202&docId=76316536&qb=anNwIGRvd25sb2FkIOyDiOuhnOqzoOy5qA==&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=gjzHsz331xossvwUzchssv--054514&sid=Taz2fNfDrE0AACl0Sek

jsp jquery 마우스 오른쪽 차단 [내부링크]

$(document).bind("contextmenu", function(e){ return false; });

iframe 또는 dialog안의 문서인지 아닌지 구분할때 [내부링크]

parent.document == document 를 쓰면 된다. parent.document를 하였을때, parent문서가 존자하지 않으면 자기 자신을 가리키기 때문에...

jQuery Layout [내부링크]

jQuery Layout이 존재하는 페이지에서 body의 기본 css display속성을 none으로 했다가. ready에서 $("body").css("display", ""); 으로 해줄 경우 size를 제대로 계산해주지 못하여 Layout이 깨진다.

ckeditor 사용법 정리 [내부링크]

1. ckeditor import <script type="text/javascript" src="/업로드폴더/ckeditor.js"></script> 2. ckeditor 추가 2.1 html <textarea id="editor1" name="editor1" style="width:100%;height:200px;"></textarea> 2.2 javascript CKEDITOR.replace( 'editor1' ); 3. config 3.1 skin CKEDITOR.replace( 'editor1',{ skin:'스킨폴더명' }); ※ CKeditor 에서는 3가지 스킨을 기본적으로 포함하고 있습니다. (kama,office2003,v2) 3.2 interface color CKEditor 기본스킨을 사용할 시 위지윅 에디터의 인터페이스 UI 컬러를 설정할 수 있습니다. CKEDITOR.replace( 'editor1',{ uiColor: '#14B8C4' }); 4. Ente

jQuery 성능 향상 방법 25가지 [내부링크]

Introduction jQuery is awesome. I've been using it for about a year now and although I was impressed to begin with I'm liking it more and more the longer I use it and the more I find out about it's inner workings. I'm no jQuery expert. I don't claim to be, so if there are mistakes in this article then feel free to correct me or make suggestions for improvements. I'd call myself an "intermediate" jQuery user and I thought some others out there could benefit from all the little tips, tricks and te

jQuery 성능향상 방법 [내부링크]

jQuery 성능 조정 이 기사의 두 번째 부분에서는 jQuery 코드의 성능을 향상시키는 방법을 살펴본다. 앞 섹션에서는 jQuery를 JavaScript 라이브러리로 선택하는 것이 성능을 고려했을 때 현명한 선택이라는 점을 살펴보았다. 운이 좋아서 이 기사를 읽고 있다면 아마도 jQuery를 사용해 보고 있을 것이다. 하지만 기본 라이브러리가 빠르다고 해서 작성한 모든 코드의 품질이 좋다고 말할 수는 없다. jQuery를 사용하여 코드를 작성할 때 주의를 기울이지 않을 경우 실제로 매우 느린 코드가 작성될 수도 있기 때문이다. 이 섹션에서는 jQuery 코드의 속도를 향상시키기 위한 몇 가지 성능 조정 및 베스트 프랙티스 팁을 단계별로 설명한다. 팁 1 - 되도록이면 CLASS 대신 ID를 사용하여 검색한다. jQuery 코드에서는 일반적으로 ID를 기준으로 요소를 검색하는 기술과 CLASS를 기준으로 요소를 검색하는 두 가지 검색 기술이 일반적으로 사용된다. JavaScript

jQuery 성능 향상 방법 [내부링크]

$("#site_id").css("display", "none"); $("#site_id").css("color", "red"); $("#site_id").css("border", "1px solid #cccccc"); 와 같이 사용할 경우에는 매번 객체를 search 하기 때문에 오래 걸린다. 이와 같은 경우 var $site_id = $("#site_id"); $site_id.css("display", "none"); $site_id.css("color", "red"); $site_id.css("border", "1px solid #cccccc"); 이와 같이 사용하면 최초 변수 선언시 1번만 search를 하기 때문에 성능 향상을 기대할 수 있다.

IPv6, request.getRemoteAddr(), 0:0:0:0:0:0:0:1 [내부링크]

톰캣이 request.getRemoteAddr();시 IPV6형식으로 주소값을 반환할 때 톰캣실행시의 JVM에 환경변수를 추가한다. 이클립스 > Run > Run Configuration > Arguiments > -Djava.net.preferIPv4Stack=true 또는 run Con... > Arguments > VM arguments의 끝에 -Djava.net.preferIPv4Stack=true JSP에서 <%=request.getRemoteAddr()%> 출력해본다. 0:0:0:0:0:0:0:1 -> 127.0.0.1 로 나오면 정상 출처 : http://blog.naver.com/foenix?Redirect=Log&logNo=40095444945

openBSD에서 Tomcat 설치 [내부링크]

1) sudo pkg_add -v jdk를 먼저 설치해준다.. 설치할 때 버전이 몇개가 나오면 그중에서 골라서 설치한다. 2) /root/.profile 환경설정 파일 맨 아래에 PATH 를 추가 해줍니다. [root@murondo~]# vi /root/.profile JAVA_HOME=/usr/local/jdk1.70 CATALINA_HOME=/usr/local/tomcat PATH=$PATH:/usr/local/bin:$JAVA_HOME/bin:$CATALINA_HOME/bin 3) tomcat tar 파일을 받아서 압축 풀어서 사용하면 된다. 추가 1. package download ftp://ftp.openbsd.org/pub/OpenBSD/4.9/packages/amd64/ 2. 사전설치 2.1. libiconv

Tomcat 버그(bug) - quoted with " which must be escaped when used within the value [내부링크]

1, 원인 JSP2.0 파싱강화 (https://issues.apache.org/bugzilla/show_bug.cgi?id=45015) 2. 해결방법 2.1 유닉스/리눅스의 경우 startup.sh중에 "export CATALINA_OPTS" 부분에 문구 추가 또는 tomcat / conf / catalina.properties의 맨 마지막줄에 문구 추가 2.2 이클립스의 경우 설정 - tomcat - JVM파라미터추가에 문구 추가 또는 이클립스의 server 프로젝트에서 tomcat / conf / catalina.properties의 맨 마지막줄에 문구 추가 3. 넣어줘야 할 문구 3.1 Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false 또는 3.2 org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false

openBSD ip change [내부링크]

1. VMWare Network 설정 [VMware 환경일때만] VMware Network 설정을 Bridged로 변경한다.(기본은 NAT) 2. 사용가능한 Network Interface Card 명칭을 확인 # ifconfig 입력 사용가능한 장치 확인후 vi /etc/hostnames.[NIC명칭 ex) em0] 를 써서 파일 내용 수정 inet [IP ADDR] [SUBNET MASK] NONE ex) inet 192.168.2.100 255.255.255.0 NONE 3. Default Gateway 등록 route add -inet default [IP ADDR] *) VMware일 경우 VMware를 사용하는 PC의 IP를 넣어준다. 4. 재시작 sh/etc/netstart

openBSD oracle thin test [내부링크]

1. ojdbc버전.jar를 다운받는다. 2. classpath 등록 2.1 classpath 확인 # env 2.2 classpath 등록 # export set CLASSPATH=경로:경로 * 경로와 경로는 콜론(:)으로 구분하고, jar파일일 경우는 파일명까지 다 써준다. 3 테스트 파일 컴파일 후 실행 프로그램 소스 (table은 oracle 기본 table이기 때문에 그냥 쓰면 동작함) import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class test { public test() { super(); } public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.Oracle

svn 구동하기 [내부링크]

1. svn 시작하기 # svnserve -d -r [svn 경로] ex) /home/svn 2. svn 시작여부 확인 # svn checkout svn://IP 주소/저장소 이름

Log4J 사용 가이드 [내부링크]

1. Log4J 설치하기 (URL : http://logging.apache.org/log4j/docs/download.html ) 2.1 해당 파일 다운받기 2.1.1 기본파일 - log4j-버전.jar : log4j를 사용하기 위해서 필요한 jar 파일 ( http://logging.apache.org/log4j/docs/download.html ) 2.1.2 확장파일(DB에 로그를 남기기 위한 파일) - jdbcappender.jar, ojdbc14.jar(oracle 드라이버 jar 파일) 2.2 log4j Conf 파일 설정하기 log4j.properties를 만들어 /WEB-INF/classes 밑에 놓으세요 ex) log4j.rootLogger=INFO, stdout, rolling log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.Patte

window(윈도우) taskkill 사용법 (예를들어 port 제거) [내부링크]

tomcat 사용시 해당 포트가 사용중이라고 tomcat 실행이 되지 않을때 1. cmd창에서 사용중인 프로세스 ID 확인 (해당 포트가 사용중인 PID) netstat -ao 2. taskkill로 삭제 taskkill /PID 1111 3. netstat -ao로 다시 확인했을 때 아직 죽어있지 않으면 강제 종료 taskkill /F /PID 1111

'org.eclipse.jst.jee.server:프로젝트이름' did not find a matching property 경고 [내부링크]

Eclipse 환경에서 Tomcat 기동시 이와 같은 에러가 발생한다면 1. 먼저 웹 서버를 중지 2. 이클립스 서버 뷰를 열고 해당 서버를 더블클릭하면 설정창이 나온다. 3. overview의 server option의 publish module contexts to separate XML files을 체크한다. 4. 저장하고 다시 실행한다.

NotFoundException이 뜰 경우 [내부링크]

1. 먼저 프로젝트 경로로 가서 class 파일이 있는지 확인 2. 만약 class파일이 없다면 이클립스의 해당 프로젝트에서 마우스 오른쪽 클릭하여 build path로 진입 3. Libraries에서 x표시된 것이 있나 확인 후 경로 수정 또는 삭제 4. 다시 build

fckeditor [내부링크]

1. http://java.fckeditor.net/ 에서 java 버전을 다운 받는다. 2. 나온 jar 파일을 /WEB-INF/lib에 복사한다. fckeditor-java-core-2.4.1.jar,commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,slf4j-api-1.5.2.jar 3. web.xml에 하단 추가 #--------여기 <servlet> <servlet-name>Connector</servlet-name> <servlet-class> net.fckeditor.connector.ConnectorServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Connector</servlet-name> <!-- Do not wrap this line otherwise Glassfish will fail t

jquery css 값 설정 방법 [내부링크]

1. $("#id").css(속성, 값); ex) $("#abc").css("background", "red"); 2. $("#id").css({속성: 값, 속성: 값, 속성: 값}); ex) $("#abc").css({ background: red, font-color: blue});

javascript[자바스크립트] replaceall [내부링크]

javascript에는 replaceall이 존재하지 않는다. 대신 쉽게 구현할 수 있다. var d = "2011-07-07"; d = d.split("-").join(""); 결과 : 20110707

getRemoteHost(), getRemoteAddr() [내부링크]

이 함수들은 기본적으로 마지막 proxy server ip를 반환한다. 하지만 request.getHeader("Proxy-Client-IP") 를 사용하면 접속한 호스트의 아이피를 반환한다.

웹 브라우저 창의 크기 조절 ( web browser resize ) [내부링크]

window 객체의 resizeTo 메소드와 resizeBy 메서드를 이용하면 웹 브라우저 창의 크기를 조절할 수 있다. resizeBy : 지정된 간격만큼 창 크기를 조절 resizeTo : 지정된 크기로 창 크기를 조절

parseint [내부링크]

parseInt(num, 10); 이와 같이 써 주어야 큰 수가 제대로 표현이 된다.

tomcat 배포 방법. 시도해 볼 것. [내부링크]

1. 톰캣 환경 설정 tomcat-users.xml 에 아래의 role 및 사용자를 추가한다. <role rolename="manager-script"/> <role rolename="manager-gui"/> <user username="tomcat" password="tomcat" roles="tomcat,manager-gui,manager-script"/> server.xml <Context docBase="project-web" path="/project-web/" /> 주의 path 의 마지막에 / 이 꼭 들어가야 한다. 주의 2. Curl 을 이용해서 webapps 디렉토리에 war를 복사해 준다. curl --upload-file project-web/target/project-web.war http://tomcat:tomcat@localhost:8080/manager/deploy?path=/project-web&update=true ////////////////////

GZIP compression in Tomcat [내부링크]

<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" <!-- 아래 3 옵션을 추가하면 Tomcat에서 압축 데이터 전송함 --> compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml"/>

cpu, memory 상태 보기 - vmstat [내부링크]

1. cpu, memory 상태 보기 : vmstat 2. cpu core 별 상태 보기 : vmstat -P

리눅스(linux) 탭(tab) 자동완성 기능 구현 [내부링크]

Process process2 = null; int len, sLen = 0, count=0; String []s = null; String after = null; String before = null; String[] cmd = { "/bin/sh", "-c", "ls -dF " + path + "*" }; try { process2 = Runtime.getRuntime().exec(cmd); process2.waitFor(); byte[] msg = new byte[3000]; while((len=process2.getInputStream().read(msg)) >= 0){ s = new String(msg, 0, len).split("\n"); } process2.exitValue(); process2.destroy(); if( s!= null ) { for( int zz=0; zz<s.length; zz++){ System.out.println("*** : " + s[zz]

웹 페이지 로딩속도 빠르게 하는 10가지 노하우 [내부링크]

출처 : http://kr.blog.yahoo.com/goodwoo78/3487 1. 이미지는 반드시 싸이즈를 지정 이미지의 WIDTH와 HEIGHT를 입력하여 주면 로딩속도가 빨라집니다. 이미지를 삽입시 가령 sample.gif (width=200, height=60 크기) 라는 이미지를 올린다면 <img scr="sample.gif" width=200 height=60 alt="샘플"> 이와같이 이미지의 폭과 높이를 모두 넣어 주는 것이 로딩에 도움을 줍니다. 또한 alt 태그를 이용하여 이미지에 대한 설명을 주면 방문객들에게 친절한 서비스를 제공하는 것이며 네스캐이프나 익스플로러 이외에 다른 텍스트 브라우저를 쓰는 사람들에게 많은 도움이 되겠죠. 2. 다음 페이지의 이미지를 미리 받습니다 다음페이지로 연결되는 페이지라면 다음 페이지의 이미지를 미리 받아 캐시 메모리에 저장시켜두는 것이 다음페이지의 로딩속도를 빠르게 합니다. 예를 들어 다음 페이지에 sample2.gif라는 큰

jqgrid memory leak (메모리 누수) [내부링크]

출처 : http://kossovsky.net/index.php/2009/07/ie-memory-leak-jquery-garbage-collector/ I suppose all of you have suffered all those terrible memory leaks in Internet Explorer. Sometimes it’s bearable, but most of the time it’s not. I say enough is enough ! A couple of days ago, I had to create some web application with a very rich client side UI. It worked like a charm in Google Chrome, Firefox… but IE7, after few dozens of nyroModal popups it just went dead. Most of the styles are gone, JavaScrip

jquery 성능 향상 [내부링크]

http://www.xpressengine.com/19263501

자식창(child window)에서 부모창으로 submit [내부링크]

부모창에서 window.name = "pwin"; <- 부모창 이름 자식창에서 target="pwin";

새로고침 방지 [내부링크]

<script language='javascript'> function noEvent() { if (event.keyCode == 116) { event.keyCode= 2; return false; } else if(event.ctrlKey && (event.keyCode==78 || event.keyCode == 82)) { return false; } } document.onkeydown = noEvent; </script> 오른쪽 클릭으로 새로고침 방지 <body oncontextmenu="return false">

jsp iframe redirct [내부링크]

if( YOUR_ERROR_CONDITION ){ response.sendRedirect("error.jsp"); } error.jsp will contain the Javascript <script language="JavaScript"> window.top.document.location.href = "error_page.jsp; </script>

css에서 name 속성과 id 속성의 충돌 문제 [내부링크]

XHTML 1.0부터는 이전 버전의 브라우저와 호환성을 위해 태그(tag) 요소 등에 name 속성과 id 속성을 같은 값으로 지정하면 스타일이 충돌할 가능성이 있다. 예를들어 a[name="c1"]{ color: red; } a#c1 { color: yellow; } 위 같이 <a href= ...></a> 태그에 css를 적용하면 충돌한다. 스타일의 개별성 규칙에 따르면 a[name="c1"]은 11이고 a#c1은 101이므로 id 속성이 우선된다. 만약 이 경우에 name 속성을 우선시 하고 싶다면 a[name="c1"]{ color: red!important; } 와 같이 사용해야 한다.

FIN_WAIT_1, FIN_WAIT_2, TIME_WAIT 상태 [내부링크]

"netstat -n" 명령 결과 FIN_WAIT_1, FIN_WAIT_2, TIME_WAIT 상태가 수천개를 넘어서는 상황에 대한 대처법입니다. 1. FIN_WAIT_1 의 갯수를 줄일 수 있는 파라메터 # no -a | grep rto ..... rto_length=13 (default) rto_limit=7 (default) .... # no -o rto_length=4 (13-->4) # no -o rto_limit=3 (7-->3) 이렇게 조정할 경우, FIN_WAIT_1 상태는 최대 25초 이내에 사라집니다. 2. FIN_WAIT_2 의 갯수를 줄일 수 있는 파라메터 FIN_WAIT_1 상태는 FIN_WAIT_2 상태로 넘어갑니다. # no -a | grep tcp ..... tcp_keepintvl=150 { 150/2 * (1+8) = 11분 15초 } .... # no -o tcp_keepintvl=10 { 10/2 * (1+8) = 45초 } 3. TIME_WAIT

CentOS에서 hostname, ip address 변경 [내부링크]

hostname 변경 ]# vi /etc/sysconfig/network <-편집 hostname 바로 적용하기 ]# echo > /proc/sys/kernel/hostname ip adress 변경 5.0 이후는 system-config-network-tui 5.0 이전은 netconfig

웹 사이트 최적화 [내부링크]

1. HTTP 요청을 줄여라. 우리가 웹에서 URL 입력 후 엔터를 치면 페이지가 보이게 된다. 페이지에 이미지가 3개라고 하면 총 4번의 요청이 생기게 된다. 1번(HTML) + 3번(이미지) 요청이 많으면 많을수록 속도가 느려지는 것은 당연할 것이다. 그럼 어떠한 방법으로 HTTP 요청을 최소화 할 수 있을지 생각해 봐야한다. 제일 간단한 방법중 하나는 여러개의 이미지를 하나의 이미지로 생성한 후 그것을 css 로 사용하는 것이다. 이것을 css sprite 라고 한다. 2. 콘텐츠 전송 네트워크를 이용하라. 한곳에 집중되어 있는 서버 하나를 여러개로 나누는 것으로 생각할 수 있겠다. 한국에서 접속하는 서버가 미국에 있다면 당연히 느릴 것이다. 3. 헤더에 만료기한을 추가하라. 브라우저는 캐시를 이용하여 HTTP의 요청 수를 줄일 수 있다. 이 부분은 조금더 연구해 봐야겠다. 4. Gzip 컴포넌트. 이 부분은 조금더 연구해 봐야겠다. 5. 스타일시트는 위에 넣어라. css는 무

GeoIP 를 이용해서 전세계 IP 할당 지역(국가 및 도시) 확인 [내부링크]

출처 : http://www.wssplex.net/TipnTech.aspx?Seq=448 www.wssplex.net 이미 수많은 개발자 및 서버들에서 이용되고 있는걸 저도 한번 해봤습니다...^^ 샘플코드가 있으니 뭐 딱히 할꺼라론.... 전세계의 IP 할당에 관련된 최신 데이터 베이스는 http://www.maxmind.com/ 에서 구할수가 있습니다. 물론 상용버젼도 있으나 Free 버젼도 일반적인 상황에서는 훌륭 합니다. 샘플코드 : http://www.maxmind.com/app/api DB파일 : http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz 특히 Linux 계열에서는 GeoIP 를 방화벽에서 컴파일을 통한 모듈 추가를 해서, 특히 중국측 IP 대역을 차단하는데 많이들 이용하는 것 같습니다. iptables -A INPUT -m geoip ! --src-cc KR -j DROP 다음은, 예제 코드에 있는 내용중

jqgrid add / del / edit [내부링크]

기본적으로 db 작업하고 싶은 필드에 editable: true 속성을 넣어준다. default로 text box가 나타나는데, selectbox로 바꾸고 싶다면 edittype: 'select'와 editoptions:{value:{'0':'new window', '1': 'right window'}}를 해준다. 마지막으로, $("#grid").jqGrid("navGrid","#GridPager",{edit:true,add:true,del:true,search:false,refresh:true}, { // afterShowForm:afterShowEdit, // afterSubmit:processAddEdit, // beforeSubmit:validateData, dataheight:150, closeAfterAdd: true, closeAfterEdit: true }, { 'drag':true, 'resize':false, closeOnEscape:true, closeAfterE

jqgrid nav button [내부링크]

$("#GridList").jqGrid("navGrid","#GridPager",{add:false,edit:false,del:false,search:false,refresh:true}, {},{}, {}, {closeAfterSearch:false, drag:false, closeOnEscape:false, multipleSearch:false}, {}) .navButtonAdd("#GridPager", { caption: "ADD", buttonimg: "fullpath/row-edit.gif", onClickButton: function(){ oCar = { "TitleText" : "", "LinkURL" : "data_form.jsp", "IsModal" : true, "aclass" : "ui-dialog-noclose ui-dialog-smalltitle", "awidth" : 520, "aheight" : 370, "ascrolling" : "yes", "aframeb

jQuery radio button Control [내부링크]

1. checked 된 radio 값 : $(':input:radio[name="radio_name"]:checked').val(); 2. 특정 radio 버튼 checked : $('input:radio[name="radio_name"]:input[value="Y"]').attr("checked", true); - checked 해제는 false를 넣으면된다 * value 자리에 원하는 값을 세팅하면 radio_name 으로 된 버튼중에서 해당 값과 매칭되는 것을 찾아 checked 처리를 해준다 3. checked 된 radio 갯수 : $("input[name=radio_name]:radio:checked").length * jQuery 에서 radio 버튼의 존재여부 확인, 존재하는 것중에서 checked 된게 있는지를 확인 가능 * 화면에 해당하는 radio_name으로 radio버튼이 없어도 실행된다는 점이 장점!, 아래처럼 함수화 시켜 사용하면된다. ===========

jQuery select control [내부링크]

1. 특정 option값 선택 $("select[name=testSel] option[value="+str+"]").attr("selected",true); 2. select change event $("#selectBox").change(function(){ ////// });

jstree 1.0 ver. checkbox 사용법 [내부링크]

1. homepage - http://www.jstree.com 2. create $("#" + val).jstree({ animation: 1000, load_open: true, real_checkboxes: true, "html_data":{ // html 형태의 데이터를 tree로 변환 "ajax":{ "url": "main_site_tree.jsp?searchValue=", // 지정된 url로 부터 데이터를 가져온다. "data": function(n){ // 새로운 노드를 불러올 경우에 넘길 param 설정 return { id: n.attr ? n.attr("id") : 0 }; } } }, // "data": function (n) { // return { id : n.attr ? n.attr("id") : 0 }; // }, "core" : { "initially_open" : [ "allNode" ] }, // 최초 로딩 시에 어디까지 펼칠 것인가 지정 "plug

jQuery mouse event [내부링크]

1. mouseover - 마우스가 element 위에 위치 할때 2. mouseout - 마우스가 element를 떠날때 --------------------------------------------- 3. mouseenter - 마우스가 element위에 들어설때 4. mouseleave - 마우스가 element를 떠날때 * 1과 3의 차이점 1은 마우스가 올라가 있는 한 계속 호출되고 2는 마우스가 올라갈 때 한번만 호출된다.

jquery autocomplete (combobox) select event [내부링크]

$("#customer_id").combobox(); $( "#autocomplete_customer_id").bind('autocompleteselect', function(e, ui) { var i = ui.item.option.value; // id var j = ui.item.value; // value var k = ui.item.option.index; // option index });

CentOS cpu 사용률 [내부링크]

mpstat -P ALL 1 1 | grep Average 1. yum install sysstat로 설치 2. -P ALL은 모든 cpu 출력 명령어 3. 1 1에서 앞의 1은 갱신 주기(초) 뒤의 1은 출력 횟수 4. grep Average를 하는 이유는, 출력 횟수를 명시하면 마지막에 Average를 출력하는데, Average만 보기 위하여 써준다. 5. %idle이 쉬고 있는 자원이기 때문에 사용률을 구할 때 100 - %idle을 하면 된다. 6. 또는 split(문자열, " "); 로 쪼갠 후에 empty 는 제거하면 된다.

java Runtime.getRuntime().exec() 를 사용 할 때, > xxx.out 와 같이 파일을 생성하는 경우 [내부링크]

Runtime클래스의 exec 메소드는 process를 기동하고 param을 넘겨주는 역할을 한다. mpstat -P ALL 1 1 | grep Average > /tmp/cpuUsage.txt의 경우 "|"와 ">>"같은 명령은 쉘 프로세스에 의해 각각의 명령이 쉘 프로세스에 의해 수행된다. 따라서 String [] cmd = {"/bin/sh", "-c", "mpstat -P ALL 1 1 | grep Average > /tmp/cpuUsage.txt"}; process = Runtime.getRuntime().exec(cmd); 와 같이 실행하여야 한다.

jqGrid grouping and [setcell, delrowdata, addrowdata] [내부링크]

cell의 내용을 변경하거나 delrowdata, addrowdata를 하더라도 grouping이 다시 되지 않는다. 다시 grouping이 되게 하려면 reload를 해야 하는데 reload를 하게 될 경우 db에서 다시 데이터를 가져 오기 때문에 아무런 의미가 없게 된다. 이 때, jqGrid 옵션에 loadonce: true를 주게 되면 db에 다시 안가고 현재 데이터만으로 reload를 하기 때문에 원하는 결과를 얻을 수 있다.

jqGrid - Last row not showing after reloadGrid [reloadGrid하면 마지막 row가 사라지는 현상] [내부링크]

You main error is the usage of rowNum: -1 instead of some large enough value like rowNum: 10000. Moreover you should use gridview: true parameter of jqGrid and data: mydata instead of much more slow filling of grid with respect of addRowData (moreover you use <= in the loop instead of <). Additionally I would recommend you to use column templates which will reduce the code and can it more readable. The result of the changes you can see here. rowNum을 -1로 주지 말고 충분한 숫자로 주라는 소리이다. 출처 : http://stacko

jqgrid subgrid subGridRowExpanded [내부링크]

subGrid: true, subGridRowExpanded: function(subgrid_id, row_id) { // subgrid를 그려야 할 때 그리지 않고 다른 작업을 한다. },

mysql drop table, create table (with auto_increment) [내부링크]

DROP TABLE IF EXISTS server_user; CREATE TABLE server_user ( server_user_id INTEGER NOT NULL AUTO_INCREMENT, server_id INTEGER NOT NULL, customer_user_id INTEGER NOT NULL, reg_date INTEGER NOT NULL, PRIMARY KEY (`server_user_id`,`server_id`,`customer_user_id`) );

mysql unix time [내부링크]

1. insert UNIX_TIMESTAMP() 2. 사용할 때 FROM_TIMESTAMP(유닉스 타입 시간, format)

[Eclipse] Subclipse 설치 시 "Unable to load default SVN Client"오류 [내부링크]

출처 : http://entireboy.egloos.com/4201369 RHEL(Red Hat Enterprise Linux)에 설치된 Eclipse에 Subclipse를 설치하려고 시도를 했다. 일반적인 방법인 이클립스 애드온 업데이트를 통해 설치했다. 다음 업데이트 주소를 등록하고 (Required) 표시가 된 애드온(Add-on)을 설치했다. 분명히 윈도에서는 이렇게 (Required)만 설치하면 잘 동작했다. <br /><a href="<a href="http://subclipse.tigris.org/update_1.6.x">http://subclipse.tigris.org/update_1.6.x</a>"><a href="http://subclipse.tigris.org/update_1.6.x></a>">http://subclipse.tigris.org/update_1.6.x</a></a><br /> 그런데.. SVN repository를 등록하려고 하면 다음과 같은 경고

jqgrid memory leak (메모리 누수) [내부링크]

출처 : http://www.trirand.com/blog/?page_id=393/bugs/subgrid-options-and-memory-leaks/ Tony, Thanks for that input. We experimented with various document types and observed the memory usage patterns of jqGrid with the subGrid set to true within IE8. Here is what we found (please note that we used a customized setData method within jqGrid 4.3.1 – will post that function later once we have something concrete) jQuery version used was still 1.6.2 DT1 – <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"

[Eclipse] Subversion Native Library Not Available [내부링크]

http://ssun.pe.kr/485 이 방법때로 따르면 되지만, 반드시 버전을 확인하고 맞춰서 깔아야 한다.

postgres에서 백업받아서 mysql에 insert [내부링크]

1. backup pg_dump -h localhost -U [user name] -W -b -f [파일명] -t [테이블명] --inserts [스키마명] * 전체 백업 pg_dump -U [user name] [스키마명] > [파일명] mysql -u [user name] -ptest < [파일명]

centos 부팅 시 최초 인터넷 연결 안될 때 설정 [내부링크]

# vi /etc/sysconfig/netwok-scripts/ifcfg-eth0 ONBOOT="no" 를 "yes"로 바꾸고 reboot

Tomcat 시작 시 Class 호출 [내부링크]

1. /WEB-INF/web.xml <web-app> <!-- web-app 태그 사이에 만든다. --> <servlet> <servlet-name>ktis.esm.common.abcde</servlet-name> <!-- 사용할 class path --> <servlet-class>ktis.esm.common.abcde</servlet-class> <!-- load-on-startup tag 음수 : 서블릿 호출 시 실행 양수 (또는 0) : tomcat 시작 시 실행 --> <load-on-startup>1</load-on-startup> </servlet> </web-app> 2. abcde.java // import 생략 public class abcde extends HttpServlet{ public void init(ServletConfig config){ System.out.println("*******"); } public void service(HttpServlet

flot (plot) chart yaxis width, formatter [내부링크]

yaxis:{ labelWidth: 50, tickFormatter: function(num, axis){ if(!num) return num; if (parseInt(num) <= 0) return num; num = num.toString().replace(/\$|\,/g,''); if(isNaN(num)) num = "0"; sign = (num == (num = Math.abs(num))); num = Math.floor(num*100+0.50000000001); cents = num%100; num = Math.floor(num/100).toString(); if(cents<10) cents = "0" + cents; for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3)); retu

log4j properties [내부링크]

log4j.rootLogger=ALL, stdout, rolling log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # 화면에 로그 출력 log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}][%c{1} %l] - %m%n # 파일에 로그 출력 log4j.appender.rolling=org.apache.log4j.DailyRollingFileAppender log4j.appender.rolling.File=./log/ESM.log log4j.appender.rolling.DatePattern='.'yyyy-MM-dd log4j.appender.rolling.MaxFileSize=10000KB log4j.appender.rolling.Append=true log4j.appe

ssh로 접속하여 background 실행(&) 하였을 때 ssh 종료하면 백그라운드로 실행한 프로그램도 종료되는 현상 [내부링크]

ssh로 접속하여 background 실행(&) 하였을 때 ssh 종료하면 백그라운드로 실행한 프로그램도 종료되는 현상이 발생. 1. exit 명령어를 친 후에 ssh 종료 2. nohup ./[실행파일] 로 실행한 후에 ssh 종료 하면 이런 현상이 발생하지 않는다.

postgres db 접속 [내부링크]

# pgsql -h 127.0.0.1 -U abcd h는 ip주소를 입력하고, 여기서 U옵션은 DB의 user인데, -d옵션을 지정하지 않으면 abcd라는 이름을 가진 database를 검색해서 접속 시도를 한다. 따라서 abcd라는 이름의 database가 없다면 에러가 발생한다. 만약 username과 database의 이름이 다르다면, # psql -h 127.0.0.1 -U abcd -d database 와 같이 입력해야 한다.

bin sh sed (문자열 replace) [내부링크]

sed란? : Stream EDitor, 파이프를 통해 지나가는 스트림을 편집할 수 있다. 표준입력이나 파일로부터 데이터 스트림을 받아서 변환한 다음 표준출력으로 보낸다. 그리고 sed 명령은 기본적으로 모든 행에 적용된다. shell 에서 sed 실행 (파일을 읽어서 파일의 라인별로 읽어 replace) while read line; do line=$(echo $line | sed "s@\[@@g") line=$(echo $line | sed "s@\]@@g") echo $line done < $datapath/korea.$checkdate.txt 설명 $datapath/korea.$checkdate.txt라는 파일을 읽어서 라인 별로 line이라는 변수에 저장 line 변수를 읽어서 sed로 [와 ]를 빈 문자로 치환하여 다시 line에 저장 [, ]는 중요한 문자이기 때문에 \를 넣어서 처리 해야 하며, "(쌍 따옴표)가 반드시 앞뒤로 붙어있어야 한다.

쉘(shell)에서 문자열 쪼개기 (split) [내부링크]

while read line; do # replace line=$(echo $line | sed "s@\[@@g") line=$(echo $line | sed "s@\]@@g") line=$(echo $line | sed "s@ @@g") # substring IFS="," for i in $line do echo $i | sed "s@'@@g" >> $webdir/korea/$checkdat/$checkdate/korea.html echo "<br/>" >> $webdir/korea/$checkdat/$checkdate/korea.html done IFS=" " done < $datapath/korea.$checkdate.txt IFS="," 부터 IFS=" "까지가 split 코드이다. line 변수의 문자열이 i 배열로 만들어져 저장되는데 split이 끝났으면 반드시 IFS를 초기화 시켜주어야 한다. 그렇지 않으면 제대로 동작하지 않는다.

bin sh 덧셈 [내부링크]

#!/bin/sh let x=1 let sum=0 until [ $x -gt 100 ] do let sum=$sum+$x echo $sum let x=$x+1 done

bin sh if [내부링크]

if [ $cnt = 5 ]; then echo "aaa" else if [ $cnt = 6 ]; then echo "bbb" fi fi 1. else if문은 존재하지 않는다. 2. 대괄호( "[" ) 는 반드시 공백이 있어야 한다. 3. 닫는 괄호오른쪽에는 세미콜론(;)이 존재해야 한다.

frame 무시하고 최상위에서 새로고침 (reload) [내부링크]

if (top.location != window.location) top.location.reload(); if (window.opener) {window.opener.top.location.reload(); self.close();} 현재 윈도가 최상위가 아닐 경우 최상위에 새로고침한다. iframe이나 frame을 사용하는 웹 사이트의 로그아웃 처리 등에 유용하다.

PHP, global, static 변수 & param 전달 방식 [내부링크]

1. global - php에서는 함수 내에서 함수 영역 밖에 있는 변수를 참조하고 싶을 경우 참고하려는 변수를 global로 선언한다 2. static - 일반적으로 함수를 호출했을 때 함수 안에 있는 변수의 내용을 초기화한다. 그런데 함수를 호출할 때마다 이전의 함수 호출시 가지고 있었던 변수의 내용을 유지하고 시을 경우에는 static을 사용한다. static.ex function inc(){ static $i=1; print $i."<br>"; $i=$i+1; } for($j=1; $j<=10; $j++) inc(); 3. 파라미터 전달 방식. call by value : 값의 형태로 넘겨 받음(기본적으로 이 방식을 지원) 실제 파라미터 값만이 형식파라미터에 전달 function swap($a,$b){ $tem=$a; $a=$b; $b=$tem; } $i=3; $j=4; swap($i,$j); print"$i, $j"; 원하는 결과를 얻으려면 function swap($a,$

postgres table row count [내부링크]

SELECT schemaname,relname,n_live_tup FROM pg_stat_user_tables ORDER BY n_live_tup DESC; row가 존재하는 table list가 필요하면 where n_live_tup > 0 을 추가한다.

javascript jquery each break, continue [내부링크]

jquery에서 each 사용 시 break 또는 continue를 사용해야 할 때가 있다. 1. continue - return true; 2. break - return false;

jstree v 0.9.9 select, open [내부링크]

1. select $.tree.reference('site_agent_tree_alert_list').select_branch($("#id")); 2. open $.tree.reference('site_agent_tree_alert_list').open_branch($("id"));

jqGrid 모든 브라우저 동일하게 사용 하는 방법 [내부링크]

jqGrid 모든 브라우저 동일하게 사용 하는 방법 1. jqGrid option에 shrinkToFik: false 추가 2. 스크롤이 없을 경우 A. width = colModel width + (colModel count * 5) 3. 스크롤이 있을 경우 A. width = colModel width + (colModel count * 5) + 7 위와 같이 적용 했는데 제대로 안될 경우 navGrid 추가(모두 false로 넣어도 되지만 없으면 안된다.)

javascript(자바스크립트) 자료형 검사(typeof) [내부링크]

javascript에서 자료형을 확인하려면 typeof 연산자를 사용한다. <script> alert(typeof('String')); alert(typeof(200)); </script> 위 코드를 실행하면 아래와 같은 결과를 얻을 수 있다. string number

javascript for in 반복문 [내부링크]

javascript는 배열이나 객체를 더욱 쉽게 다룰 수 있게 for in 반복문을 제공한다. <script> // 배열 선언 var array = ['포도', '사과', '딸기', '바나나']; // 반복문 for(var i in array){ alert(array[i]); } </script> 위의 코드는 아래의 코드와 같은 역할을 한다. <script> // 배열 선언 var array = ['포도', '사과', '딸기', '바나나']; // 반복문 for(var i = 0; i < array.length; i++){ alert(array[i]); } </script>

html input text 입력 제한 [내부링크]

1. 한글을 기본 입력 언어로 설정 <input type="text" style="ime-mode:active"/> 2. 영어를 기본 입력 언어로 설정 <input type="text" style="ime-mode:inactive"/> 3. 영어만 입력되도록 제한 <input type="text" style="ime-mode:disabled"/> ime-mode는 웹 표준이 아니기 때문에 동작하지 않는 브라우저가 존재할 수 있다.

postgresql 외부 접속 [내부링크]

1. postgresql.conf listen_address='*' 2. pg_hba.conf host all all 0.0.0.0/0 password 위와 같이 수정했는데 접속이 되지 않는 경우는 # iptables -A INPUT -p tcp --dport 5432 -j ACCEPT 위의 명령어를 실행 한 후 postgres restart

tomcat native 연동 [내부링크]

1. jdk 설치 ( 절대! openjdk가 설치 되어있으면 안된다.) 2. tomcat 설치 (다운받아서 압축 해제) 3. native library 생성 3.1 빌드 3.1.1 압축해제 - # cd [tomcat 경로]/bin - # tar -zxvf tomcat-native[버전].tar.gz - cd tomcat-native-버전-src/jni/native 3.2 dependency package 설치 - # yum -y install openssl-devel apr-devel 3.3 Native Library Build - # ./configure --with-apr=/usr/bin --with-ssl=/usr/include/openssl - # make && make install 3.2 Native Library 시스템 등록 - # echo "/usr/local/apr/lib" > /etc/ld.so.conf.d/tomcat-native - # ldconfig - # l

tomcat port 추가 [project는 80포트, 배포 페이지는 8080포트] [내부링크]

conf 폴더 안에 server.xml을 수정해 줘야 한다. 파일을 열어서 </Service> 밑에 아래 내용을 추가 1 <Service name="test1"> 2 <Connector executor="tomcatThreadPool" URIEncoding="UTF-8" port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" /> 3 <Connector port="8091" protocol="AJP/1.3" redirectPort="8444" /> 4 <Engine name="test1" defaultHost="localhost"> 5 <Host name="192.168.2.54" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 6 <Context path="" docB

tomcat favicon 설정 [내부링크]

1. favicon 만들기 - IE에서는 반드시 ico인 이미지. 그 중에서도 특정 ico 포멧에서만 제대로 동작한다. - 따라서 만든 ico가 제대로 적용되지 않을 경우 다른 방법으로 새로 만들 것 - 적용 성공한 site : http://favicon-generator.org/ 2. 적용 - catalina_home(tomcat/webapps/ROOT/)의 favicon.ico를 원하는 이미지로 교체 - port를 추가해서 만든 경우 해당 port의 ROOT에도 favicon.ico 추가 3. 확인 방법 - chrome의 경우에는 브라우저 캐시를 삭제 한 후 브라우저를 종료하고 다시 접속하면 적용된 것을 확인할 수 있다. (이렇게 하지 않으면 이전 favicon이 화면에 보인다.) - IE의 경우는 아직 모르겠음

jqgrid에서 임의의 버튼에 jqgrid event 사용 [내부링크]

$(”#myTable”).jqGrid('editGridRow', “new”, { … useDataProxy: true …});

주소표시줄에 하위 주소(sub address, 파일 경로) 숨기기, 상태 표시줄의 내용 숨기기 [내부링크]

1. 하위 주소 숨기기 <frameset cols="0,100%" border="0"> <frame/> <frame src="login.jsp"/> <noframes></noframes> </frameset> 2. 상태표시줄의 내용 숨기기 <script> var boodschap = 'aaaaa'; function dgstatus() { window.status = boodschap; timerID= setTimeout("dgstatus()", 30); } dgstatus(); </script>

window 7 관리자 권한 물어보지 않게 하기 [내부링크]

1. Windows 7 을 기존에 설치하듯이 설치 후 마지막 "사용자 이름 넣기" 에서 Shift + F10 을 눌러 DOS 창 활성화 2. 활성화 된 창에서 taskmgr.exe 를 실행하여 작업관리자 실행 3. msoobe 를 찾아서 종료 4. Windows 로그인 화면에서 재시작 5. 안전 모드로 부팅(F8) 6. 안전모드 부팅 후 시작 - 실행 - compmgmt.msc 7. 로컬 사용자 및 그룹 - 사용자 - Administrator 더블 클릭 8. 계정 사용 안함을 체크 해제한 후 재부팅

jquery plugin [내부링크]

1. plugin 개발 시 지켜야 할 사항 1.1 다른 라이브러리에서 $를 사용할 수 있기 대문에 $ 대신 jQuery를 사용 1.2 만약 $를 사용하고 싶다면 아래와 같이 plugin 정의 ex) (function($){ // defined plugin $.fn.plugin_name = function(param){ // Our plugin implementation code goes here. }; })(jQuery); 1.3 plugin 이름을 겹치지 않는 이름으로 정한다. 1.4 파일명은 반드시 jquery.[plugin_name].js로 하도록 한다. 1.5 한가지 기능에 하나의 이름으로 plugin을 개발한다. 1.6 옵션을 받아서 plugin을 컨트롤 할 수 있도록 한다. ex) // defined plugin $.fn.plugin_name = function(option){ var defaultOption = { width: 150, height: 20 }; // 빈

웹 개발을 위한 대규모 서비스를 운용하는 기술 [내부링크]

1. 소규모 서비스와 대규모 서비스의 차이 1.1 확장성 확보, 부하분산 필요 대량의 액세스가 있는 서비스에서는 서버 1대로 처리할 수 없는 부하를 어떻게 처리할 것인지가 가장 큰 문제다. 최근 10년 동안의 트렌드로는 '스케일아웃(scale-out)'이 이 문제에 대한 전략의 기초가 된다. 스케일 아웃은 서버의 역할을 분담하거나 대수를 늘림으로써 시스템의 전반적인 처리 능력을 높여서 부하를 분산하는 방법이다. 다만, 스케일 아웃 전략을 사용한 경우에는 비용이 절감되는 반면에 다양한 문제가 발생한다. 1.1.1 스케일아웃으로 인해 발생하는 문제(고려해야 할 사항) - 사용자로부터의 요청을 어떻게 분배할 것인가? - 데이터 동기화는 어떻게 할 것인가? - 네트워크 통신의 지연시간을 어떻게 생각해볼 수 있을까? 1.2 다중성 확보. 즉, 특정 버서가 고장 나거나 성능이 저하되더라도 서비스를 계속 할 수 있는 구성 2. 대규모 데이터 처리의 어려운 점 2.1 메모리 내에서 계산할 수 없다

jquery ui class [내부링크]

ui-state-default default ui-state-hover mouse hover ui-state-focus 초점이 맞춰진 상태 ui-state-active 활성화 상태 ui-state-highlight 강조 표시 ui-state-error 에러 ui-state-error-text 글자만 에러 표시 ui-state-disabled 사용할 수 없는 상태 ui-helper-hidden 보이지 않게 만듦(display 속성 조작) ui-helper-hidden-accessible 보이지 않게 만듦(clip 속성 조작) ui-helper-reset 스타일 초기화 (margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none, font-size: 100%; list-style: none;) ui-helper-clearfix float 속성을 적용한 객체를 감싸는 객체에 사용 ui-helpe

웹 페이지 성능 향상 [내부링크]

1. Avoid CSS expressions - CSS expression을 사용하지 않는다. 2. make fewer HTTP requests - HTTP request를 최소화 하라. - image background 처리 - 같은 크기의 이미지는 하나의 이미지로 합쳐서 background 속성을 이용하여 잘라서 표현 - css와 js는 각각 하나의 파일로 합칠 것 3. Use a Content Delivery Network - css파일이나 js 파일 및 이미지 파일들이 CDN에 존재하지 않는다는 것이다. - CDN - http://cusee.net/2460488 - 내 서버에 있는 컨텐츠에 접근하기 위해 사용자들이 request를 보낼 경우, 내 서버까지 도달하기 전 각 ISP나 IX 부분에서 병목 현상으로 느려질 수 있기 때문에, 각 중단 ISP 지점에 내 컨텐츠들을 copy하여 사용자들이 더 빨리 접속하여 컨텐츠 정보를 획득하도록 도와주는 형태 4. Add Expires

DIV 안의 객체를 세로 가운데 정렬 [내부링크]

<div style="width: 100px; height: 100px; display: table-cell; vertical-align: middle;"> <input type="checkbox" id="aaa" name="aaa"/> </div> display: table-cell 속성은 div를 td 처럼 쓸 수 있게 해 주는 css이다. 이어서 vertical-align: middle을 써주면 가운데로 간다.

tomcat gzip(compress) 압축 [내부링크]

server.xml의 connector에 compression="on" compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css,application/javascript" 를 추가하면 된다는데 난 html, jsp만 압축된다. ㅠㅠ

postgresql에서 index 관련하여 테스트 결과 [내부링크]

1. 단일 column이 index가 걸려 있을 경우 - index1 : customer_id (pk) - index2 : customer_name - index3 : customer_mail 1.2 검색조건이 기본키가 포함되어 있으면 무조건 기본키 index를 탄다. 1.3 index는 무조건 가장 마지막에 등록된 index 하나만 탄다. ex) select * from customer where customer_name = '가나' and customer_mail = '[email protected]' select * from customer where customer_mail = '[email protected]' and customer_name = '가나' 위 2개의 query문은 customer_name과 customer_mail 두개의 index를 모두 타는게 아니라 둘 중 나중에 등록된 customer_mail column에 대해 index를 탄다. 1.4 단순 join으로는 index를 타지

postgresql vaccum(청소) [내부링크]

-이름 VACUUM 쓰레기 수집기 / 선택적으로 데이터베이스 분석하기 -개요 VACUUM [FULL] [FREEZE] [VERBOSE] [ table] VACUUM [FULL] [FREEZE] [VERBOSE] ANALYZE [ table [ (column [, ...] ) ] ] -설명 VACUUM 은 삭제된 tuple들이 차지하고 있는 공간을 반환합니다. 보통의 PostgreSQL 작업에서 삭제되거나 update에 의해 쓸모 없어진 tuple들은 테이블에서 물리적으로는 삭제되지 않고 VACUUM이 실행될 때까지 남아있습니다. 그러므로 VACUUM은 주기적으로 실행되어야 하며, 자주 업데이트 되는 테이블들의 경우는 더 그렇습니다. 매개변수 없이 VACUUM을 실행하면, 현재 데이터베이스의 모든 테이블에 대해서 실행합니다. 그리고 table을 매개변수로 지정하면 해당 테이블에 대해서만 실행됩니다. VACUUM ANALYZE 는 먼저 VACUUM하고, 그 테이블을 ANALYZE합니다.

[C/C++] rand() % M 사용하지 말라!! [내부링크]

출처 : http://rockdrumy.tistory.com/540 영어 원문 : http://members.cox.net/srice1/random/crandom.html ANSI C에서는 rand()는 0과 RAND_MAX 범위 안의 정수를 무작위로 발생 시키는데 RAND_MAX값은 stdlib.h에 정의되어 있고 일반적으로 최소 32767 이상이다. 주목 할 것은 32767 이라는 수가 큰 수가 아니라는 점이다. 만약 RAND_MAX가 32767 이라면 시퀀스가 시작되어 난수성을 상실할 때까지 20000개의 난수 정수를 얻을 수 있을 것이다. RAND_MAX는 더 커져야 한다. 당신을 위해서라도 RAND_MAX 값을 확인해보자. 경험상 난수성을 상실 할 때까지 RAND_MAX의 2/3 정도의 숫자만 발생 할 수 있을 것이다. 안전을 위해서 나는 RAND_MAX의 1 / 10 보다 작은 난수 값을 만들 것을 추천한다. 만약 RAND_MAX의 1 / 10 이상보다 더 큰 수를 필요로

Using libconfig in Visual Studio 2008 ( Visual Studio 2008에서 config 파일 읽기 라이브러리 사용방법) [내부링크]

원문 : http://www.japary.com/forum/index.php?topic=56.0 Before starting with libconfig, it is supposed that you have already got Visual Studio 2008 installed. Using libconfig as a dynamic library By default the Visual C++ solution of libconfig is configured to build a dynamic library for use. Step 1 – Install and compile libconfig 1. Download the libconfig. 2. Uncompress the downloaded file. I choose to uncompress it to C:\libconfig-1.4.5. However, you can choose a different path if you want. 3. O

visual studio 2008에서 boost 설치 [내부링크]

http://www.boostpro.com/download/ 에 접속해서 1.47.0 ver. 를 다운받는다. (그 이상 버전은 visual studio 2008과 호환이 되지 않는다.)

c/c++ header 파일 중복 include 에러(error) 방지 - #ifndef 사용 [내부링크]

1. test.h int num = 0; 2. calc.h #include "test.h" ... (생략) 3. calc.c #include test.h #include calc.h ...(생략) -------------------- 위와 같은 형태로 되어있을 경우 int num = 0; 이 두번 선언이 되기 때문에 재정의 에러가 발생한다. 이것을 방지 하고자 할 경우에는 1. test.h #ifndef __test_h__ #define __test_h__ int num = 0; #endif 2. calc.h #ifndef __calc_h__ #define __calc_h__ #include "test.h" ...(생략) #endif 와 같이 header 파일을 수정한다. 1번 기준으로 설명하면, #ifndef는 컴파일 단계에서 __test_h__ 가 선언되어있는지 확인한다. 처음에는 선언되어있지 않기 때문에 "true"로 판단하여 진행하고 바로 다음줄에서 #define __test

정규식 테스트 사이트 [내부링크]

http://regexlib.com/RETester.aspx

boost::asio udp relay server [내부링크]

출처 : http://reiot.com/2008/03/16/boost-asio-udp-relay-server/ http://boxcatstudio.wordpress.com/2008/03/16/boost-asio-udp-relay-server/ boost::asio udp rely server class udp_relay_server { struct relay_policy { udp::endpoint from_, to_; DWORD delay_; }; struct relay_message { boost::shared_ptr<std::string> message_; udp::endpoint destination_; DWORD expire_clock_; }; enum { MIN_SLEEP_DELAY = 10 }; public: udp_relay_server(boost::asio::io_service& io_service, short port) : socket_(io_service, udp

java.net.SocketException: Permission denied [내부링크]

1. 원인 - 기본적으로 0 ~ 1023 까지의 port는 시스템에서 사용하는 port이기 때문에 사용하지 못하는데 사용하려 할 경우에 java.net.SocketException: Permission denied가 발생한다. 2. 해결방안 - java.policy 파일에 grant signedBy "paul" { permission java.net.SocketPermission "IP:port", "허용 권한"; }; 를 추가한다. 2.1 IP:port - ip 와 port는 *를 써서 모든 것을 허용할 수 있다. - 예를 들어 port에 "1024-" 라고 입력하면 1024 이후의 모든 포트를 허용할 수 있다. 2.2 허용 권한은 accept,connect, listen,resolve가 있는데 쉼표를 사용하여 "accept, connect"와 같이 줄 수 있다.

libconfig comfile and install [내부링크]

1. libconfig 파일 다운로드해서 압축 해제 후에 2. # ./configure --prefix=/usr --libdir=/usr/lib64 --build=x86_64-linux --target=x86_64-linux 3. # make && make install 4. 환경변수 설정 4.1 /root/.bash_profile을 열어서 unset USERNAME LD_LIBRARY_PATH=/usr/lib64:/usr/local/lib64:/usr/lib:/usr/local/lib export LD_LIBRARY_PATH 추가 4.2 # source /root/.bash_profile

c++ boost install [내부링크]

원본(출처) : http://www.boost.org/doc/libs/1_51_0/more/getting_started/unix-variants.html 의 Easy Build and Install Issue the following commands in the shell (don't type $; that represents the shell's prompt):$ cd path/to/boost_1_51_0 $ ./bootstrap.sh --help Select your configuration options and invoke ./bootstrap.sh again without the --help option. Unless you have write permission in your system's /usr/local/ directory, you'll probably want to at least use$ ./bootstrap.sh --prefix=path/to/installati

c 현재시간 구하기 [내부링크]

time_t lTime; struct tm *today; time(&lTime); // 현재시간 구하기 today = localtime(&lTime); printf("%04d-%02d-%02d %02d:%02d:%02d\n", today->tm_year + 1900, // tm_year는 1900을 더해야 한다. today->tm_mon + 1, // tm_mon은 1월이 0, 2월이 1... 식으로 되어 있기 때문에 +1을 해야 한다. today->tm_mday, today->tm_hour, today->tm_min, today->tm_sec );

** glibc detected *** ( ... ) double free or corruption : 0x..... [내부링크]

변수를 두번 연속 free / delete / malloc / new / fclose 등의 동작을 했을 경우 나타나는 현상이다. free(buff); buff = NULL; NULL로 항상 초기화 하는 습관을 갖자

linux tcpdump [내부링크]

# tcpdump -i lo port 7000 - -i 옵션은 interface 설정. 뒤의 lo는 localhost의 의미 - port 옵션은 선택한 port를 대상으로 하는 패킷을 탐지하겠다는 의미 - Flag[R]은 비정상 종료

linux에서 c 컴파일 유의사항 [내부링크]

ifdef 로 debug모드를 정의해서 로그를 찍어 볼 경우, (ex. #ifdef __DEBUG Makefile을 vi로 열어서 CFLAGS = $(INCLUDES) 의 뒤에 -D__DEBUG 와 같이 추가한다.

centos, redhat (linux) port forwarding(redirect) [내부링크]

iptables -t nat -A PREROUTING -p udp --dport 514 -j REDIRECT --to-port 9514 * iptables 확인 iptables -L -t nat -v * 514로 들어오는 패킷을 9514로 redirect * redirect되서 들어오는 패킷은 tcpdump 9514로 탐지되지 않는다. * iptables save를 하지 않으면 iptables restart되거나 시스템이 reboot되면 초기화 된다.

How to Fix “An old version of the database format was found” While Starting PostgreSQL [내부링크]

출처 : http://www.ehowstuff.com/how-to-fix-an-old-version-of-the-database-format-was-found-while-starting-postgresql/ 아래와 같은 문제가 발생하면 [root@server ~]# service postgresql start An old version of the database format was found. You need to upgrade the data format before using PostgreSQL. See /usr/share/doc/postgresql-8.4.1/README.rpm-dist for more information. initdb를 다시 하면 된다. 먼저 pgsql/data 안의 파일을 모두 삭제 한 후, [root@server ~]# cd /var/lib/pgsql/data [root@server data]# ls base pg_clog pg_ident.conf pg

linux 사용자, 사용자 그룹 [내부링크]

1. 사용자 정보(home directory 등) /etc/passwd 2. 사용자 정보 변경 및 확인, 그룹 변경 2.1 usermod -g [groupname] [username] - 사용자의 그룹을 변경 2.2 groupmod -n [new_groupname] [old_groupname] - 그룹명 변경 2.3 lid [username] - 사용자가 포함되어있는 그룹명 찾기 2.4 id [username] - 사용자의 id와 그룹 id를 확인

[linux] rsync 원격백업 설정 [내부링크]

출처 : http://blog.daum.net/moon0sool/56 1. 서버 쪽(원본) 1.1 rsync 설치 확인 rpm -qa | grep rsync 1.2 rsync를 xinetd를 이용하여 실행시키기 위해 /etc/xinetd.d/rsync 파일을 수정 vi /etc/xinetd.d/rsync # default: off # description: The rsync server is a good addition to an ftp server, as it \ # allows crc checksumming etc. service rsync { disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID } 1.3 설정 파일 생성 vi /etc/rsyncd.conf [aporia] -----> 서비스명 path =

jquery [내부링크]

1. index 선택 : eq(index) 2. 이벤트 강제발생 : trigger(eventName) 3. 현재 또는 미래에 존재하는 객체에 이벤트 연결 : live()

postgresql initdb failed [내부링크]

OS : centos 6.2 DB : postgresql 8.4 1. 현상 postgresql의 data경로를 바꿔서 설치 할 경우에 # service postgresql initdb 를 실행하면 failed(실패)가 떨어지는데 로그가 남지 않아서 원인을 찾을 수 없는 경우가 발생 2. 해결방법 # su - postgres -c "initdb -D /경로/pgsql/data" 를 실행 하면 initdb가 실행이 되고, 마지막에 ----------------------------------------------------------- 작업완료. 이제 다음 명령을 이용해서 서버를 가동 할 수 있습니다: postgres -D /경로/pgsql/data 또는 pg_ctl -D /경로/pgsql/data -l logfile start ----------------------------------------------------------- 라는 메시지가 발생한다. 이 중, 아래 pg_ctl로

makefile 강좌 [내부링크]

http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html

debian ip config [내부링크]

1. 설정파일 열기 $ vi /etc/network/interfaces 2. IP 설정 2.1 고정 IP 설정 auto eth0 iface eth0 inet static address 192.168.10.50 netmask 255.255.255.0 gateway 192.168.10.1 dns-nameservers 168.126.63.1 2.2 dhcp 설정 auto eth0 iface eth0 inet dhcp 3. nameserver 설정파일 열기 $ vi /etc/resolv.conf 4. nameserver 설정 nameserver 168.126.63.1 nameserver 168.126.63.2 5. network 재시작 $ service networking restart

debian postfix [내부링크]

1. install # apt-get -y install postfix libsasl2 sasl2-bin libsasl2-modules popa3d dovecot-imapd dovecot-pop3d dovecot-common 2. 도메인 추가 등의 기본 설정 # postconf -e "myorifin = hostway.co.kr" # postconf -e "myhostname = mail.hostway.co.kr" postconf -e "relay_domains = hostway.co.kr" 3. 구동 # postfix reload # /etc/init.d/dovecot restart 4. virtual email 추가 예를 들어 text로 수신되는 메일은 [email protected]로 전송하는 것은 아래와 같다. # postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual" # vi /etc/postfix/virtual t

debian mirror site 설정 [내부링크]

# vi /etc/apt/source.list deb http://ftp.daum.net/debian/ squeeze main non-free contrib deb-src http://ftp.daum.net/debian/ squeeze main non-free contrib

onmouseover, onmouseout 정리 [내부링크]

1. event onmouseover : 마우스 커서가 해당 개체 안에 들어갈 경우 발생하는 이벤트 onmouseout : 마우스 커서가 해당 개체에서 벗어날 경우 발생하는 이벤트 2. 사용방법 2.1 this를 이용한 색상 적용 <input type="button" value="테스트" onmouseover="this.style.backgroundColor='#ff0000'" onmouseout="this.style.backgroundColor='#ffffff'"/> 2.2 this를 이용한 class 적용 <style> .on{ background-color: red; } .off{ background-color: white; } </style> <input type="button" value="테스트" onmouseover="this.className='on'" onmouseout="this.className='off'"/> 2.3 script 사용 <input type="bu

div tag width 100% [내부링크]

<div></div>과같이 쓰게 되면 default로 height는 0, width는 전체에 영역이 잡힌다. 그래서, 여태까지 style="width: 100%" 와 같다고 생각했는데, 큰 착각이었다. 만약, width를 주지 않고 <div></div>로 사용 했을 경우 margin이나 padding을 주면 margin과 padding영역까지 고려해서 width가 할당되지만 <div style="width: 100%"></div>와 같이 사용하게 되면 margin과 padding을 고려하지 않고 부모의 width 크기 전체로 잡는다. 따라서 <body>의 밑에 <div> 태그가 있을 경우 margin이나 padding을 준다면 (ex. padding: 10px;) 100% + 20px이 되기 때문에 20px만큼 body에 스크롤이 생긴다.

c언어 core dump [내부링크]

1. 실행파일과 코드를 같은 경로에 둔다. 2. # ulimit -c unlimited (해당 명령어를 입력하면 프로그램 실행 시 core 파일이 떨어진다) 3. 프로그램 실행 4. # gdb [실행파일경로] [코어파일명]

script 태그의 async와 defer 속성 [내부링크]

출처 : http://appletree.or.kr/blog/web-development/javascript/script-%ED%83%9C%EA%B7%B8%EC%9D%98-async%EC%99%80-defer-%EC%86%8D%EC%84%B1/ 기본적으로 웹 브라우저가 외부 자바스크립트를 불러오는 일반 script 태그를 만나게 되면, 우선 해당 스크립트를 내려받아 해석하고 실행(execute)할 때까지 웹 문서의 HTML 코드 parsing 작업을 잠시 뒤로 미룬다. 그래서 용량이 큰 스크립트를 문서 해석 초기에 만나게 되면 해당 페이지를 불러오는 속도마저 지체되는 현상을 일으키게 되어 결국 전체적 성능을 떨어뜨리는 결과를 가져오는데 이런 부작용을 근본적으로 막기 위해 소개된 것이 script 태그의 async와 defer 속성이다. 사용 예 <script async src="myAsyncScript.js" onload="myInit()"></script> <script defer

2013년 1월 10일 오후 5시 59분에 저장한 글입니다. [내부링크]

출처 & 참고문서 1. http://friendlybit.com/js/lazy-loading-asyncronous-javascript/ 2. http://appletree.or.kr/blog/quotes/%EB%8A%90%EA%B5%BF%ED%95%98%EA%B2%8C-%EB%B9%84%EB%8F%99%EA%B8%B0%EC%8B%9D%EC%9C%BC%EB%A1%9C-javascript%EB%A5%BC-%EC%9B%B9-%EB%AC%B8%EC%84%9C%EC%97%90-%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94-%EB%B0%A9/ (function() { function async_load(){ var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'http://yourdomain.com/script.js'; var x = document.getEl

Virtualbox 사설 IP 설정 [내부링크]

1. 설정할 이미지 선택 후 [파일 - 환경설정 - 네트워크 - VirtualBox Host-Only Ethernet Adapter]을 더블클릭 2. IP 대역대로 사용할 IP(게이트웨이 주소)입력 ex) 192.168.100.1 3. 설정할 이미지에서 마우스 오른쪽 클릭 후 [설정 - 네트워크] 선택 4. 어댑터1은 NAT, 어댑터2는 호스트 전용 어댑터(Host-Only) 5. 가상 OS에서 IP 변경 ex) Debian 기준으로.. # vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet static address 192.168.100.100 network 255.255.255.0 6. network restart ex) Debian # /etc/init.d/networking restart

javascript 상속 [내부링크]

function Rectangle(w, h) { var width = w; var height = h; this.getWidth = function() { return width; }; this.getHeight = function() { return height; }; this.setWidth = function(value) { if(value < 0) { throw '길이는 음수일 수 없습니다.'; } else { width = value; } }; this.setHeight = function(value) { if(value < 0) { throw '높이는 음수일 수 없습니다.'; } else { height = value; } }; } Rectangle.prototype.getArea = function() { return this.getWidth() * this.getHeight(); }; function Square(length) { this.base = Rectangle

ECMAScript 5 객체 속성 추가 [내부링크]

ECMAScript 5 객체 속성 추가 - HTML5와 함께 출현한 javascript 표준안을 ECMAScript 5라고 부른다. - ECMAScript 5는 IE 8 이하에서는 지원하지 않는다. 메서드 이름 설명 Object.defineProperty() 객체에 속성을 추가 Object.defineProperties() 객체에 속성을 추가 1. defineProperty(속성을 추가하려는 객체, 속성의 이름, 속성과 관련된 옵션 객체) <script> var aaa = {}; Object.defineProperty(aaa, 'name', { }); </script> 1.1 객체 속성 관련 옵션 옵션이름 설명 value 속성의 값을 의미 writeable 객체의 속성 값을 변경 할 수 있는지를 의미 get getter set setter configurable 속성의 설정을 변경 할 수 있는지를 의미 enumerable for in 반복문으로 검사할 수 있는지를 의미 옵션을 입력하

ECMAScript 5 객체 생성 [내부링크]

ECMAScript 5 객체 생성 - HTML5와 함께 출현한 javascript 표준안을 ECMAScript 5라고 부른다. - ECMAScript 5는 IE 8 이하에서는 지원하지 않는다. - 생성자는 틀은 기반으로 객체를 찍어내 객체를 생성하지만 create는 기존에 있던 객체를 복제하고 새로운 속성을 추가해 객체를 생성한다. method 이름 Object.create() 1. create(원본이 되는 객체, 추가하고자 하는 속성) <script> var aaa = Object.create({}, { name: {value: 'masami', enumerable: true}, gender: {value: 'female', enumerable: true} }); var bbb = Object.create(aaa, { region: {value: 'Seoul', enumerable: true} }); </script> 이렇게 사용하면 bbb에서 name과 gender를 사용할 수

java Properties를 이용하여 config파일 읽기 [내부링크]

1. 클래스 선언 import java.util.*; import java.io.FileInputStream; import java.io.InputStream; public class Config() { public Config() { configFile = new java.util.Properties(); try { // 방법 1 시작 (이 방법은 프로젝트 내부의 파일만 사용할 수 있다.) configFile.load(this.getClass().getClassLoader().getResourceAsStream("config.conf")); // 방법 1 끝 // 방법 2 시작 InputStream in = new FileInputStream("config.conf"); configFile.load(in); in.close(); // 방법 2 끝 } catch(Exception e) { e.printStackTrace(); } } public String getProperty(St

IE 8, 9 전용 css 핵 [내부링크]

height: 23px \0/IE8+9; 와 같이 ;(세미콜론) 앞에 \0/IE8+9 를 쓰면 된다.

html/css - table 구조에서 열(column)단위로 숨기기 [내부링크]

<table> <colgroup> <col width="100"/> <col width="200" style="display: none"/> </colgroup> <tr> <td>첫번째</td> <td>두번째</td> </tr> </table> 위와 같이 쓰게 되면 두번째 열 모두 숨겨진다. * 참고사항 ) IE에 한해서 버전에 따라 display: none이 되는 놈이 있고 visibility: collpase;가 되는 놈이 있는데, 두개 다 쓰면 IE 8을 제외하고는 다 된다고 한다. (아직 테스트 못해봄) IE 8은 visibility: collpase만 적용가능하다고 하는데 테스트 해보고 글 업데이트 필요

html accesskey (단축키 지정) [내부링크]

<script> function add() { alert("add"); } </script> <body> <a href="javascript: add()" accesskey="n">add</a> </body> accesskey 속성은 마우스 등을 쓰지 않는 환경을 위해 링크나 입력 폼에서 키보드의 키 입력만으로 동작을 실행할 수 있도록 accesskey 속성값에 access 할 영어 또는 숫자 한문자를 지정하여 단축키를 설정한다. accesskey의 실행 방법은 사용자의 OS와 브라우저에 따라 다르다. 특히, 다른 브라우저와는 다르게 IE(인터넷 익스플로러)에서는 <a> 태그에 지정된 accesskey를 실행하면 지정된 링크가 실행되는 것이 아니라, <a> 태그로 포커스가 이동된다. 이때 Enter를 눌러야 지정된 링크가 실행된다. IE(인터넷 익스플로러에서는 예약어(F, E, V, A, T, H)는 사용 할 수 없다. * 브라우저별 accesskey 실행 방법 1. Window I

문서(body, html, document)에 keydown 이벤트 잡기 [내부링크]

<script> document.onkeydown = abcde; function abcde() { if(event.keyCode == 13) { alert("tagName : " + event.srcElement.tagName + "\n" + "id : " + event.srcElement.id + "\n" + "class : " + event.srcElement.className); } } </script> 1. event.keyCode == 13은 Enter 2. event.srcElement.tagName : event를 발생시킨 tagName 3. event.srcElement.id : event를 발생시킨 Element의 ID 4. event.srcElement.className : event를 발생시킨 Event의 class

IE 8이하 차단 [내부링크]

script나 jsp/php 등에서 복잡하게 프로그램을 만들 필요 없이 IE에 경우 간단하게 차단 가능하다. 1. HTML에서 아래 코드 추가 (lteIE8.js 는 임의로 변경하면 됨) <!--[if lte IE 8]><script type="text/javascript" src="lteIE8.js"></script><![endif]--> 2. lteIE8.js에 원하는 script 코드 작성 ex) top.location.href = "/lteIE8.html";

이클립스(eclipse)에서 외부 프로젝트로 작업하기 [내부링크]

1. File - Import - General - Existing Project into Workspace 2. Select root directory에 경로 입력 후(browse) Finish

javascript clipboard [내부링크]

http://stackoverflow.com/questions/400212/how-to-copy-to-the-clipboard-in-javascript

javascript function exist(define) check (함수가 존재하는지 체크) [내부링크]

함수명이 getUserId 일 경우 1. 동일 문서 if("undefined" != typeof getUserId) { alert("함수가 존재하지 않습니다."); } 2. iframe, frame으로 나뉘어져 있을 경우 if("undefined" != type parent.document.getElementById("프레임 ID").contentWindow.getUserId) { alert("함수가 존재하지 않습니다."); } 3. 자식 창에서 부모창을 호출 할 경우 if("undefined" != type opener.getUserId) { alert("함수가 존재하지 않습니다."); } 4. 응용 if("undefined" != type opener.parent.document.getElementById("main").contentWindow.getUserId) { alert("함수가 존재하지 않습니다."); }

javascript json형태로 데이터 전송하기 [내부링크]

var data = []; data.push({"name": "홍길동", "phone", "111-1111"}); 와 같이 데이터 배열을 만들고 전송할 때 encodeURIComponent(JSON.stringify(data)); 와 같이 하면 된다.

PHP json string 형태로 넘어온 데이터 사용하기 [내부링크]

$ethx_info = isset($_REQUEST['ethx_info']) ? $_REQUEST['ethx_info'] : ""; $decode = json_decode($ethx_info, true); $field_info = $decode[0]; echo $field_info["ethx"];

linux dnsdomainname timeout (time delay) [내부링크]

command line에 hostname과 hostname -s를 쳤을 때 다른 결과가 나오면 dnsdomainname 명령어를 쳤을 때 timeout이 걸린다.

모니터 공유 kvm synergy [내부링크]

http://synergy2.sourceforge.net/ 에서 다운 로드 후.. main computer를 server로 환경설정

ajax에서 post로 데이터 주고받기 [내부링크]

$.ajax에는 type, url, data의 옵션이 있다. type은 데이터 전송 타입. url은 데이터를 보낼 주소 data는 보낼 데이터인데.... type에 post로 셋팅하더라도 1. url 옵션에 www.naver.com?data=younjh라고 보내면 'GET'으로 데이터를 전송한다. 데이터가 GET으로 넘어왔기 때문에 $_REQUEST['data']로 데이터를 받을 수 있으며 이 때 데이터의 길이가 너무 길면 데이터를 받지 못한다. 2. url: 'naver.com', data: 'data=younjh' 라고 보내면 'POST'로 데이터를 전송한다. 이 때는 데이터를 $_POST['data]로 데이터를 받아야 한다. 이 경우 $_REQUEST로 데이터를 받으면 데이터를 받지 못한다. 결론. POST로 데이터를 전송하고 받을때는 type: 'post', url: 'www.naver.com', data: 'data=younjh' 와 같이 옵션을 주고 PHP에서는 $_POS

javascript 레퍼런스 참조 없는 배열 복사(deep copy) [내부링크]

var aaa = [0, 1, 2, 3, 4, 5]; var bbb = aaa; 하면 레퍼런스 참조로 복사된다. 참조 없는 배열 복사가 필요하면 아래와 같이 한다. var aaa = [0, 1, 2, 3, 4, 5]; var bbb = JSON.parse(JSON.stringify(aaa));;

mysql 접속제한 해제 [내부링크]

1. mysql 접속 - mysql -u root -p - pw 입력 2. DB change - use mysql; 3. 계정정보 조회 - select host, user, password from user; - 출력결과 +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | 보안상 삭제 | | 127.0.0.1 | root | 보안상 삭제 | +-----------+------+-------------------------------------------+ - 위와 같이 local로만 접근이 가능하도록 설정되어 있었습니다. 4. 권한 부여 - grant all privileges on *.* to 'root'@'%' ide

php extension build 및 사용법 [내부링크]

1. g++, make, clean install 2. svn://192.168.0.91/svn/firewall/src/UI/extension 에서 checkout 3. logmanager 폴더를 설치해야 하는 서버로 복사 4. cd /설치경로/logmanager/logmanlib 5. make clean; make 6. make install 7. cd ../phpext 8. phpize 9. CXXFLAGS=-O2 ./configure --enable-fwlogman 10. make clean; make 11. php.ini 설정 변경 - vi /etc/php5/apache2/php.ini - dynamic extension 검색해서 아래쪽에 extension=fwlogman.so 입력 12. /etc/init.d/apache2 restart

debian rsyslog 설치 및 설정, php에서 사용 [내부링크]

1. install - apt-get install rsyslog rsyslog-doc 2. setting - http://nil.uniza.sk/sk/sip/kamailio/kamailio-logging-how-debian-lenny - local0 등을 설정 하고 restart 3. php 사용법 3.1 syslog(LOG_INFO, "apple"); - /var/log/syslog 파일에 로그 기록 3.2 syslog(LOG_INFO | LOG_LOCAL0, "apple"); - /var/log/syslog 파일 및 /var/log/syslog/(local0로 설정한 파일 명) 에 로그 기록 3.3 openlog("치환할 문자", LOG_CONS, LOG_LOCAL0); syslog(LOG_INFO, "apple"); closelog(); - syslog만 쓰면 "Apr 26 16:11:55 debian apache2: apple" 처럼 로그가 남는다. (날짜, hostname

linux(debian) 임의로 bridge 추가 [내부링크]

1. Package: bridge-utils 2. install : apt-get install bridge-utils 3. use : brctl addbr eth10

select 화살표 삭제 [내부링크]

select { -webkit-appearance: none; }

html/javascript - enter키를 누르면 click event가 발생하는 문제 [내부링크]

출처 : http://stackoverflow.com/questions/905222/enter-key-press-event-in-javascript IE에서 enter를 누르면 form submit이 동작하는데, submit이 불가능한 상황이 되면 현재 페이지의 첫번째에 있는 button의 클릭 이벤트가 발생 하는 것 같다. (어처구니 없는 건 textbox에서 enter를 눌러도 이런다는거...) function runScript(e, id) { if (e.keyCode == 13) { var tb = document.getElementById(id); eval(tb.value); return false; } } 위의 소스로 회피 가능.

PHP explode - blank(white) space remove [내부링크]

explode 대신 아래와 같이 사용 $line = "aaa bbb ddd"; $cols = preg_split('/\s+/', $line);

YouTube에서 툴바를 설치하지 않고 동영상 다운로드 하기 [내부링크]

javascript:(function(){document.body.appendChild(document.createElement('script')).src='http://userscripts.org/scripts/source/25105.user.js'})(); 1. 크롬 실행 2. 아무페이지나 들어가서 즐겨찾기 추가 3. 즐겨찾기 주소를 위의 스크립트 코드로 변경 4. 원하는 YouTube 페이지로 들어가서 즐겨찾기 실행 5. 다운로드 버튼 클릭

html -> input file 'accept' attribute(file 확장자 추가) [내부링크]

<!-- Match all image files (image/*) --> <input type="file" accept="image/*"> <!-- Match all video files (video/*) --> <input type="file" accept="video/*"> <!-- Match all audio files (audio/*) --> <input type="file" accept="audio/*"> <!-- Match all image files (image/*) and files with the extension ".someext" --> <input type="file" accept=".someext,image/*"> <!-- See note below --> <!-- Match all image files (image/*) and video files (video/*) --> <input type="file" accept="image/*,video/*"> <!-

javascript object size [내부링크]

출처 : http://stackoverflow.com/questions/5223/length-of-javascript-object-ie-associative-array Object.size = function(obj) { var size = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) size++; } return size; }; // Get the size of an object var size = Object.size(myArray);

[debian] wkhtmltopdf 설치방법 [내부링크]

1. 아래 경로에 접속 후 wkhtmltopdf-0.9.9 static 버전 다운로드 http://www.google.co.kr/url?sa=t&rct=j&q=wkhtmltopdf&source=web&cd=1&ved=0CDUQFjAA&url=http%3A%2F%2Fcode.google.com%2Fp%2Fwkhtmltopdf%2F&ei=PRwSUYCJGKiuiQL-5oDQDA&usg=AFQjCNEb0ynW8pjrkwFO60-rlQ9ZVVbpzg&bvm=bv.41934586,d.cGE&cad=rjt 2. 실제 사용할 경로에 압축 해제 3. 필요한 lib 파일을 /usr/lib에 복사 - libfontconfig.so.1 - libfreetype.so.6 - libX11.so.6 - libXdmcp.so.6

linux LD_LIBRARY_PATH [내부링크]

라이브러리가 있는 곳을 몇시해 주는 환경변수 라이브러리를 참조할때 기본은 /usr/lib를 참조하지만, /usr/local/lib가 설정되어있다면 /usr/local/lib를 먼저 참조한다. 만약 /usr/local/lib를 찾아봤는데 원하는 파일이 없다면 /usr/lib를 참조한다.

ajax에서 data를 쓰지 않고 url로 param을 보낼 경우 버그 발 [내부링크]

$.ajax({ type : "POST", url : "menu_system/system_setting.php?request=alias_header" }); 이런식으로 url에 param을 추가해서 보낼 경우 특정 브라우저(chrome 28.0.1500.72 m)에서 서버로 param을 제대로 보내주지 못한다. url: "menu_system/system_setting.php", data: "request=alias_header" 처럼 나눠 써야함

absolute객체 가운데 정렬 [내부링크]

div { width: 500px; height: 100px; position: absolute; left: 50%; /* 가로 가운데 정렬 */ margin-left: -250px; /* 가로 가운데 정렬이 왼쪽 끝을 기준으로 되기 때문에 width의 절반만큼 왼쪽으로 이동한다. */ top: 50%; /* 세로 가운데 정렬 */ margin-top: -50px; /* 세로 가운데 정렬이 위쪽 끝을 기준으로 되기 때문에 height의 절반만큼 위쪽으로 이동한다. */ }

iframe, frame 사용시 페이지 이동할때마다 깜빡임 현상 (메인 배경이 흰색이 아닌데 흰색으로 깜빡임 현상) [내부링크]

배경 색과 관계없이 html을 그릴 때 먼저 흰색배경이 칠해지고 나서 css가 적용되어 다른 색이 칠해지기 때문에 흰색 깜빡임 현상이 발생한다. 따라서 부모와 iframe/frame 배경을 원하는 배경색으로 칠해놓고 iframe/frame안의 html문서의 html 테그의 속성을 visibility: hidden을 해놓고 script에서 visible로 바꾸면 이 현상을 해결할 수 있다.

resultset null (select 결과가 없을 경우) 처리 방법 [내부링크]

if(rs.next()) { do { } while(rs.next()); } else { System.out.println("Empty Batch"); }

javascript json sort [내부링크]

var people = [ {name: 'a75', item1: false, item2: false}, {name: 'z32', item1: true, item2: false}, {name: 'e77', item1: false, item2: false}]; function sortByKey(array, key) { return array.sort(function(a, b) { var x = a[key]; var y = b[key]; return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }); } people = sortByKey(people, 'name'); 출처 : http://stackoverflow.com/questions/8175093/simple-function-to-sort-a-json-object-using-javascript

cookie lifetime (expire) [내부링크]

참조 : http://php.net/manual/en/function.setcookie.php 쿠키를 사용 할 때 expire 인자를 사용하지 않으면 기본값이 세션이 유지되는 동안 쿠키유지이다. 따라서, 오랫동안 쿠키를 유지하고 싶을 경우에는 expire 시간을 조절해야 한다. ex) <?php $value = 'something from somewhere'; setcookie("TestCookie", $value); setcookie("TestCookie", $value, time()+3600); /* expire in 1 hour */ setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1); ?>

대륙의 클라우드 (웹 하드) [내부링크]

바이두 2테라. 텐센트 10테라 쿼우 360이 36테라 http://spapa1004.tistory.com/51 http://spapa1004.tistory.com/53 http://sungsoon.tistory.com/notice/330 http://w3tech.tistory.com/187 링크된 네 개의 페이지를 잘 읽어보고 가입하세요. 바이두가 꽉차면 텐센트 10테라! http://spapa1004.tistory.com/49 http://spapa1004.tistory.com/50 이것도 부족하면 궁극의 36테라 쿼우 360이 있습니다. http://spapa1004.tistory.com/83 http://spapa1004.tistory.com/84 쿼우360은 이메일 주소 바꿔서 여러 계정으로 가입 가능

java hashmap synchronized [내부링크]

java의 hashmap은 기본적으로 not synchronized이기 때문에 multi thread환경에서 잘못된 동작이 발생 할 수 있다. 이것을 예방하기 위한 방법이 있다. Map<Integer, String> workingJob = Collections.synchronizedMap(new HashMap<Integer, String>());

SVN Repository Dump 및 Load [내부링크]

1. Dump 전체 dump svnadmin dump d:\Repository\Source > mysource.filename.dump 해당 리비전만 dump (리비전 10 만 덤프) svnadmin dump -r 10 d:\Repository\Source > mysource.filename.dump 지정된 범위 리비전 dump (10부터 20까지) svnadmin dump -r 10:20 d:\Repository\Source > mysource.filename.dump 2. Load svnadmin create d:\Repository\myNewSource Load 하기 위해선 신규 Repository를 생성한다. 아래는 그 다음에 작업 리비전 1번부터 사용 svnadmin load d:\Repository\myNewSource < mysource.filename.dump 기존 리비전번호 그대로 사용 svnadmin load --force-uuid d:\Repository\myNe

java 가변 변수(인자) - Variable Arguments [내부링크]

public static void test(String query, String... strings) { System.out.println(query); for(String str : strings) { System.out.println(str); } }

linux에서 cpu 1개로 부팅하는 방법 (1개의 코어만 사용) [내부링크]

/data/boot/grub/grub.cfg에서 90번째 라인에 linux /boot/vmlinuz root=/dev/sda1 ro maxcpus=1

WAS 변경 시 주의사항 [내부링크]

eclipse에서 웹 프로젝트를 생성할 때 target runtime이라는 것이 있다. 보통 설치되어있는 WAS가 dafault로 선택되어 들어가는데, 여기서 선택된 것에 따라서 servlet 객체(등)의 사용 주체가 바뀌게 되기 때문에 여기에서 설정된 WAS 서버 이외의 서버에서 프로그램을 동작시키게 되면 에러가 발생한다. 이 경우 프로젝트 우클릭 -> Properties -> targeted Runtimes으로 서버를 변경한다.

JBAS018014 META-INF/valang.tld 에러 [내부링크]

JBAS018014 에러가 발생하여 WEB-INF/lib/spring-modules-validation-0.7.jar 파일 내부의 META-INF/valang.tld파일 내용 중 13 line의 <body-content>None</body-content>을 <body-content>empty</body-content>으로 변경

2013년 11월 1일 오후 4시 47분에 저장한 글입니다. [내부링크]

출처 : http://vijava.blogspot.kr/2012/12/enableasync-annotation-metadata-was-not.html spring의 설정(dispatcher-servlet)에서 <context:component-scan base-package="*"/> 일 경우 JBoss에서 @EnableAsync annotation metadata was not injected 에러 발생. 해석은 차후 올릴 예정... (ㅠㅠ)

JSP MultipartRequest 업로드 [내부링크]

1. WEB-INF/lib에 cos.jar 추가 2. form 태그에 enctype="multipart/form=data" 속성 추가 3. 받는쪽에 아래와 같이 추가 - import com.oreilly.servlet.* - com.oreilly.servlet.multipart.DefaultFileRenamePolicy 4. request를 받는다. - MultipartRequest multi=new MultipartRequest(request, "저장경로", "파일 크기 제한", new DefaultFileRenamePolicy()); 5. form 태그 값 받는 방법 - String prcm_curr = multi.getParameter("abc"); 6. 파일명 받는 방법 - multi.getFile("태그의 name 속성 값").getName();

eclipse freemarker code assist [내부링크]

* freemarker api - http://freemarker.sourceforge.net/docs/index.html 1. help - install new software 메뉴로 진입 2. work with에 all available sites 선택 3. freemarker 검색하여 설치 4. window - preferences로 진입 5. File Associations에서 *.ftl에 대해 JSP Editor를 등록 후 Default로 설정 6. Content Types의 JSP를 찾아서 *.ftl을 등록

ibatis/mybatis - org.postgresql.jdbc4.Jdbc4PreparedStatement.setQueryTimeout(int) 에러 발생 시 [내부링크]

1. 해결방법 JDBC 설정에서 defaultStatementTimeout를 삭제합니다. ex) <setting name="defaultStatementTimeout" value="25000" /> 2. 상세 설명 defaultStatementTimeout 는 모든 JDBC 쿼리에 대한 timeout 시간(초) 지정합니다. 지정하지 않는 경우 timeout 없습니다.(cf. 각 statement 설정에 따라) (각 statement 의 설정으로 override 가능함. 모든 driver가 이 설정을 지원하는 것은 아님에 유의할 것.) 즉, timeout이 발생하여 발생 한 오류입니다.

spring jquery ajax 406(not acceptable) error [내부링크]

1. spring context xml 파일에 아래와 같이 코드 추가 <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jacksonMessageConverter"/> </list> </property> </bean> 2. 필요한 jar - jackson-core-asl.x.x.x.jar - jackson-databind-x.x.x.jar - jackson-mapper-asl.x.x.x.jar

spring ajax [내부링크]

1. jar 파일 추가 - jackson-core-asl.x.x.x.jar - jackson-databind-x.x.x.jar - jackson-mapper-asl.x.x.x.jar 2. spring context에 설정 추가 <bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="jacksonMessageConverter"/> </list> </property> </bean> 3. controller @RequestMapping(value="/user/aj

form submit disable [내부링크]

$('#formid').bind("keyup keypress", function(e) { var code = e.keyCode || e.which; if (code == 13) { e.preventDefault(); return false; } });

jquery multiple selector [내부링크]

$("#upload_link,#upload_link2,#upload_link3").each(function(){ // todo });

empty beans.xml [내부링크]

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> </beans>

sitemesh & freemarker [내부링크]

1. web.xml <filter> <filter-name>sitemesh</filter-name> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class> <init-param> <param-name>debug.pagewriter</param-name> <param-value>false</param-value> </init-param> </filter> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>freemarker</servlet-name> <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class> <init-param> <param-name>Temp

[script] 구버전 IE에서 HTML5, CSS3를 사용하는 방법 [내부링크]

출처 : http://www.phpschool.com/link/tipntech/77726 1. 사용법 <!--[if lt IE 9]> <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE9.js">IE7_PNG_SUFFIX=".png";</script> <![endif]--> 2. 함께 사용하면 더 좋은 것들 - html5shiv: http://code.google.com/p/html5shiv/ 구버전 IE가 <header>, <nav>, <article> 등 HTML5 태그를 알아듣도록 해줍니다. - css3pie: http://css3pie.com/ 구버전 IE에서도 동글동글한 외곽선, 그림자, 그라데이션 등의 CSS3 효과를 사용할 수 있도록 해줍니다.

postgresql total row count [내부링크]

1. int 형으로 출력 SELECT schemaname,relname,n_live_tup FROM pg_stat_user_tables ORDER BY n_live_tup DESC; 2, 5.09986e+06 형태로 출력 SELECT nspname AS schemaname,relname,reltuples FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) WHERE nspname NOT IN ('pg_catalog', 'information_schema') AND relkind='r' ORDER BY reltuples DESC; 출처 : http://stackoverflow.com/questions/2596670/how-do-you-find-the-row-count-for-all-your-tables-in-postgres

jqgrid + spring mvc [내부링크]

1. javascript $("#list").jqGrid({ url: g_url, // data: "table=users", postData: {table: 'users'}, /** 중요 **/ // cache: false, // global: false, /** trigger global Ajax event handlers for this request **/ // async: false, mtype:"POST", datatype: 'json', // contentType: "application/x-www-form-urlencoded", colNames: ['ID', '이름', '권한', '이메일'], colModel: [ {name:'id', index:'id', width:55}, {name:'name', index:'name', width:90}, {name:'auth', index:'auth', width:90}, {name:'email', index:'email', wi

jquery outerHTML() [내부링크]

1. 1 $('#div1').clone().wrapAll('<div/>').parent().html(); cs 2. 1 2 3 4 5 jQuery.fn.outerHTML = function(s) { return s ? this.before(s).remove() : jQuery("<p>").append(this.eq(0).clone()).html(); }; Colored by Color Scripter cs

연산자 우선순위 [내부링크]

종류 연산방향 연산자 우선순위 단항 연산자 <------ ++ -- + - ~ ! (타입) 높음 낮음 산술 연산자 ------> * / % ------> + - ------> << >> >>> 비교 연산자 ------> < > <= >= instanceof ------> == != 논리 연산자 ------> & ------> ^ ------> | ------> && ------> || 삼항 연산자 ------> ?: 대입 연산자 <------ = *= /= %= += -= <<= >>= >>>= &= ^= |=

++i 와 i = i + 1 의 비교 [내부링크]

++i 와 i = i + 1의 결과는 같지만 실제로 연산이 수행되는 과정은 다르다. ++i가 더 적은 명령만으로 작업을 수행하기 때문에 더 빠르다. * 바이트 코드 비교 수식 i = i + 1 ++i 컴파일된 코드 istore_1 iload_1 iconst_1 iadd istore_1 istore_1 iinc 1 1 위의 표는 컴파일 했을 때 새엉되는 클래스 파일(*.class)의 바이트코드 명령어를 비교한 것이다. i = i + 1은 5개의 명령으로, ++i는 2개의 명령으로 이루어져 있다.

java class 내에서 this와 this()의 차이 [내부링크]

1. this - 인스턴스 자신을 가리키는 참조변수, 인스턴스의 주소가 저장되어 있다. - 모든 인스턴스메서드에 지역변수로 숨겨진 채로 존재한다. 2. this(), this(매개변수) - 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다. - 반드시 첫 줄에서만 호출이 가능하다.

클래스메서드(static method)와 인스턴스 메서드 [내부링크]

1. 클래스를 설계할때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야 하는 것에 static을 붙인다. - 생성된 각 인스턴스는 서로 독립적이기 때문에 각 인스턴스의 변수는 서로 다른 값을 유지한다. 그러나 모든 인스턴스에서 같은 값이 유지되어야 하는 변수는 static을 붙여서 클래스 변수로 정의해야 한다. 2. 클래스변수(static)는 인스턴스를 생성하지 않아도 사용 할 수 있다. - static이 붙은 변수(클래스 변수)는 클래스가 메모리에 올라갈 때 이미 자동적으로 생성되기 때문이다. 3. 클래스메서드는 인스턴스 변수를 사용할 수 없다. - 인스턴스변수는 인스턴스가 반드시 존재해야만 사용할 수 있는데, 클래스 메서드는 인스턴스 생성 없이 호출 가능하기 때문에 클래스 메서드가 호출 되었을 때 인스턴스가 존재할 수도 있고 없을 수도 있다. 그래서 클랫메서드에서 인스턴스변수의 사용을 금지한다. 4. 메서드 내에서 인스턴스변수를 사용하지 않는다면, static을 붙이는 것을 고

jquery attr과 prop 차이점 (attr vs prop) [내부링크]

1. 개요 - jQuery 1.6/1.6.1에서 .attr()와 .prop()로 나눔 ( checkbox에 버그가 존재해서 ) * 공식 API 문서 ( http://api.jquery.com/prop/ ) The difference between attributes and properties can be important in specific situations. Before jQuery 1.6, the .attr() method sometimes took property values into account when retrieving some attributes, which could cause inconsistent behavior. As of jQuery 1.6, the .prop() method provides a way to explicitly retrieve property values, while .attr() retrieves attributes. 2. .attr(),

javascript - insert item into array at a specific index (원하는 위치에 값 추가) [내부링크]

var arr = []; arr[0] = "a"; arr[1] = "b"; arr[2] = "c"; arr[3] = "d"; arr.splice(2,0, "ee"); - splice의 2번째 인자는 삭제할 아이템의 갯수인데 0이므로 특정 위치에 값 추가의 효과를 볼 수 있다. * splice Document http://www.w3schools.com/jsref/jsref_splice.asp

정규분포 [正規分布, normal distribution] jquery chart [내부링크]

jstat chart 주소 : www.jstat.org License : MIT

postgresql에서 insert하고 id 리턴받기 [내부링크]

INSERT INTO Table1 (name) VALUES ('a_title') RETURNING id 위와 같이 RETURNING을 붙여준다. 출처 : http://stackoverflow.com/questions/6560447/can-i-use-return-value-of-insert-returning-in-another-insert

mybatis insert return [serial] [내부링크]

1 2 3 <insert id="insert" useGeneratedKeys="true" keyProperty="survey_id" keyColumn="survey_id"> insert문 </insert> Colored by Color Scripter cs keyProperty는 map의 survey_id라는 이름의 변수 (혹은 키)에 값을 넣겠다는 의미이고 keyColumn은 db의 어떤 column에서 값을 가져올지 정하는 값이다. keyColumn을 생략하면 default로 가장 앞의 key를 가져오는데 만약 pk가 여러개의 column이 묶여 있을 경우 문제가 될 수 있다. 위와 같이 설정 할 경우 map에 survey_id라는 key의 value를 사용 할 수 있다.

jquery live method 삭제(remove) [내부링크]

live()가 jquery 1.9에서 삭제되었음. 따라서 아래와 같이 사용 요망 1 2 3 $(document).on('keydown', 'input[name=basis_from], input[name=basis_to]', function(e) { alert('dddd'); }); Colored by Color Scripter cs 첫번째 인자 : 이벤트 두번째 인자 : 이벤트를 bind할 객체 (쉼표로 여러개를 한번에 등록 가능)

internet explorer autocomplete off [내부링크]

google chrome에서는 form 태그에 autocomplete="off"라는 옵션을 주면 비밀번호를 저장하지 않게 할 수 있다. Internet Explorer(IE)에서는 11버전부터 이 기능을 지원하지 않는다. 근거 자료 : microsoft MSDN - http://msdn.microsoft.com/en-us/library/ie/ms533486(v=vs.85).aspx 위 문서를 해석하면 11버전에서는 지원하지 않습니다. 만약 autocomplete가 활성화 되어 있다면 각 필드마다 추천 값들이 제시될 것입니다. 추천값들은 name변수나 vcard_name변수에 따른 vCard schema에 의거해 정해집니다 만약 autocomplete가 비활성화 되어 있다면 저장되지 않고 물어보지도 않습니다. password 문법의 값들은 autocomplete로 채워질수 있습니다; 하지만 이 정보를 저장할수 있는 기능이 브라우저 내에서 비활성화 되어있을수도 있고, autocomple

spring MultiActionController를 통한 파일 업로드 by Excel [내부링크]

1. HTML <form id="multiForm" name="multiForm" method="post" action="/target/multiInsertAction.do" enctype="multipart/form-data"> <input type="file" id="file" name="file"/> <button type="submit" class="cm_btn_01"><span>등록</span></button> </form> 2. FileUploadBean public class FileUploadBean { private MultipartFile file; public MultipartFile getFile() { return file; } public void setFile(MultipartFile file) { this.file = file; } } 3. Controller public ModelAndView multiInsertAction(HttpServletRequ

Java String class의 특징 [내부링크]

String 클래스에는 문자열을 저장하기 위해서 문자형 배열 변수(char []) value를 인스턴스 변수로 정의해놓고 있다. 인스턴스 생성 시 생성자의 매개변수로 입력받은 문자열은 이 인스턴스 변수에 문자형 배열로 저장되는 것이다. 한번 생성된 String 인스턴스가 갖고 있는 문자열은 읽어 올 수만 있고, 변경할 수는 없다. 예를 들어 아래의 코드와 같이 '+' 연산자를 이용해서 문자열을 결합하는 경우 인스턴스 내의 문자열이 바뀌는 것이 아니라 새로운 문자열이 담긴 String 인스턴스가 생성되는 것이다. String a = "a"; String b = "b"; String a += b; 이처럼 덧셈연산자(+)를 사용해서 문자열을 결합하는 것은 매 연산 시 마다 새로운 문자열을 가진 String 인스턴스가 생성되어 메모리 공간을 차지하게 되기 때문에 가능한 결합횟수를 줄이는 것이 좋다. 문자열간의 결합이나 추출 등 문자열을 다루는 작업이 많이 필요한 경우에는 String 클래스

HTML 객체의 넓이보다 text의 길이가 길어졌을 경우 ... 처리 방법 [내부링크]

.ellipsis{ white-space:nowrap; text-overflow:ellipsis; /* IE, Safari */ -o-text-overflow:ellipsis; overflow:hidden; -moz-binding: url('ellipsis.xml#ellipsis'); }

[공유] 브라우저와 기술에 대하여 한눈에 볼 수 있는 사이트 [내부링크]

출처 ONE WAY, JESUS! [agapeuni]|프로그래머 THE EVOLUTION OF THE WEB : Browser & Technologies [출처] http://www.evolutionoftheweb.com/?hl=en#/evolution/day ONE WAY, JESUS! [agapeuni] - 2014년 01월 14일 다른 블로그 및 홈페이지에 게재할 경우에는 출처를 밝혀 주세요. *^^* 스크랩된 글은 재스크랩이 불가능합니다.

mybatis sql transaction 처리 (sqlSession, sqlSessionManager) [내부링크]

mybatis의 sqlSession은 현재 session이 close되어 있는지 확인 할 방법이 없을 뿐더러 다시 open을 할 방법도 없는 것 같다. 그래서 sqlSessionManager를 사용.... private final String resource="mybatis/mybatisConfig.xml"; // sessionManager 생성 SqlSessionFactory factory; SqlSessionManager manager; factory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource)); manager = SqlSessionManager.newInstance(factory); // 연결되어 있는 상태인가 확인하여 연결되어 있지 않으면 다시 연결 // 괄호 안의 true는 autoCommit 여부 if(false == managerisManagedSessionStarted()

yum 설치 확인 [내부링크]

yum list installed 패키지명

CentOS - MySQL install [내부링크]

1. SQL server 설치 yum install mysql-server 2. server start service mysqld start 3. 부팅 시 mysql 실행시키도록 설정 chkconfig mysqld on 4. password 변경 (선택) (초기에는 root 비밀번호가 존재하지 않음) - mysql -u root - use mysql; - update user set password=password('변경할 비밀번호') where user = 'root'; - flush privileges; - exit - service mysqld restart 5. anonymous 유저 삭제 - mysql -u root -p - delete from mysql.user where user='';

mysql user 생성 [내부링크]

1. create ex) ryu / ssf4 mysql> create user 'ryu'@'localhost' identified by 'ssf4'; 2. ryu 유저에게 abc 데이터베이스를 로컬에서만 접속할 수 있게 권한 부여 mysql> GRANT ALL PRIVILEGES ON abc.* TO 'ryu'@'localhost' WITH GRANT OPTION; 3. ryu 유저에게 모든 데이터베이스를 로컬에서만 접속할 권한 부여 mysql> GRANT ALL PRIVILEGES ON *.* TO 'ryu'@'localhost' 4. ryu 유저에게 abc 데이터베이스에 원격에서도 접속할 권한 부여 mysql> GRANT ALL PRIVILEGES ON *.* TO '계정'@'%' identified by '비밀번호';

[spring] itext pdf 문서에 비밀번호 걸기 [내부링크]

1. 라이브러리 - itextpdf.jar 2. code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public static void main(String[] args) { try { OutputStream file = new FileOutputStream(new File("D:\\Test.pdf")); Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, file); writer.setEncryption("hello".getBytes(), "hello123".getBytes(), PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128); document.open(); document.add(new Paragraph("Hello World, iText")); document.add(new

spring @transactional [내부링크]

ServiceImpl에 @Transactional(propagation = Propagation.REQUIRED, rollbackFor={Exception.class})

java로 exe 파일 읽어서 특정 문자열을 바꾸어 저장하기 [내부링크]

1. String 이용 public static void main(String[] args) throws Exception { Path newP = Paths.get("d:/result.exe"); String content = binaryFileToHexString("d:/attach.exe"); System.out.println(content.indexOf("{exec}")); String result = content.substring(0, content.indexOf("7B657865637D")) + "7777772E6E617665722E636F6D" + content.substring(content.indexOf("7B657865637D") + "7777772E6E617665722E636F6D".length()); Files.write(newP, hexStringToByteArray(result)); } public static String binaryFileToHexStr

엑셀에서 셀에 email 주소만 입력 가능하게 하는 방법 [내부링크]

[데이터 - 데이터 유효성 검사 - 설정 - 제한대상 - 사용자 지정] 선택 후 아래와 같이 수식 입력 * E3은 셀 번호 =AND(FIND(".",E3),FIND("@",E3))

자바(java) sendmail 파일명 한글 깨짐 [내부링크]

자바의 sendmail을 사용하여 첨부파일을 보내면 수신자의 메일에서 파일명이 개지는 현상 해결방법 setAttachFileName(파일명) 도는 setFileName(파일명)에서 "파일명" 을 아래와 같이 변경 MimeUtility.encodeText("파일명", "EUC-KR", "B"));

postgresql에서 idle 강제 kill [내부링크]

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mes_sys' AND pid <> pg_backend_pid() AND state = 'idle' AND state_change < current_timestamp - INTERVAL '5' MINUTE; 여기에서 datname을 각 프로젝트에 맞게 변경하면 된다.

javascript unit test - qunit [내부링크]

javascript unit test라고 구글에 검색하면 많은 테스트 모듈이 나온다. node.js를 사용해서 테스트 하는 것들이 있는데 너무 어려워서 못써먹겠고.... 그것을 제외하고 가장 사용하기 쉬운 것을 기록한다. http://qunitjs.com/ 1. html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>QUnit Example</title> <link rel="stylesheet" href="qunit.css"> </head> <body> <div id="qunit"></div> <div id="qunit-fixture"></div> <script src="qunit.js"></script> <script src="tests.js"></script> </body> </html> 2. script test( "hello test", function() { ok( 1 == "1", "Passed!" ); });

jquery tooltip plugin [내부링크]

name : qtip2 address : http://qtip2.com

HashMap, HashTable, LinkedHashMap, ConcurrentHashMap [내부링크]

1. HashMap vs HashTable 비동기화 vs 동기화 비동기화가 성능이 좋고, 동기화는 성능이 안좋다. 비동기는 Multi Thread환경에서 사용하면 안된다. 여러개의 thread가 동시에 HashMap을 건드려서 key, value를 넣게 되면 문제가 발생할 수 있다. 2. Hashap, HashTable vs LinkedHashMap Data 추출 시 저장된 순서에 상관없이 랜덤 추출 vs Data 추출 시 저장된 순서대로 추출 LinkedHashMap의 경우 3번째 인자값을 true로 설정 해줌으로써 저장순서 대신 접근 순서에 대한 기록을 유지한다. 3. ConcurrentHashMap 동기화를 제공하는 Map Interface HashTable보다 성능이 좋다.

[PHP] eval 함수의 위험성 [내부링크]

출처 : http://habony.tistory.com/265#.U3Hc7vl_vUp mixed eval ( string $code_str ) (PHP 4, PHP 5) 이 함수는 php코드를 평가하기 위해 사용됩니다. 예를 들면, 다음의 결과로 이해할 수 있을 것입니다. 예제(ex #1 <?php $string = 'cup'; $name = 'coffee'; $str = 'This is a $string with my $name in it.'; echo $str. "\n"; eval("\$str = \"$str\";"); echo $str. "\n"; /* 결과: This is a $string with my $name in it. This is a cup with my coffee in it. */ ?> 작은 따옴표에 의한 값은 보통 일반 텍스트 문자로 처리되지만, eval 함수를 사용하게 되면 php 코드로 해석, 실행해 버립니다. 그래서 간혹 개발자는 편의상 디비에 저장해 두

javascript: variable as array key (변수를 배열의 키로 사용) [내부링크]

var elements = {}; var key = 'bond'; var v = 'network gear'; elements[key] = v;

php json_encode/json_decode mixed object and array output [내부링크]

{"data":[]} 를 script로 보내면 array이기 때문에 key : value 의 형태로 값을 넣을 수 없다. 또한 {"data":{}}로 되어 있더라도 json_decode를 하면 []로 변경된다. json_encode(변수, JSON_FORCE_OBJECT) 를 하게 되면 무조건 {} 로 변경되기 때문에 문제가 발생할 수 있다. (array를 사용해야 할 경우) if(count(변수) == 0) { 변수 = new stdClass(); } 와 같이 처리할 수 있다.

php code 체크 모듈 [내부링크]

http://phpmd.org/documentation/index.html 112번에서 실행하면 됨

javascript 실행 시간 측정 [내부링크]

var from = new Date().getTime(); // 단위 ms // 처리 로직 var to = new Date().getTime(); alert(to - from);

javascript] json isEmpty (빈 오브젝트인지 검사 empty object) [내부링크]

var json_object = {} var json_array = [] json_array의 경우는 비어있는지 체크할 때 json_array.length 가 0인지 체크하면 되지만 json_object의 경우는 length를 사용하면 제대로 된 결과를 얻을 수 없다. 이 경우 jquery에서 제공해 주는 isEmptyObject()를 사용하면 된다. 출처 : http://api.jquery.com/jQuery.isEmptyObject/ 1. 리턴 값 비어있는 object이면 true를 리턴 2. 사용법 2.1. if(jQuery.isEmptyObject(json_object)) { // 비어 있을 경우 } 2.2. if(true === jQuery.isEmptyIObject(json_object)) { // 비어 있을 경우 }

javascript] jquery를 이용하여 tag의 첫번째 자리 (index 0)에 객체 추가하기 [내부링크]

before <div class="container"> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div> ----------------------------------- prepend 사용 $(".container").prepend('<div class="inner">Hi</div>'); ----------------------------------- after <div class="container"> <div class="inner">Hi</div> <div class="inner">Hello</div> <div class="inner">Goodbye</div> </div>

php에서 json형태로 데이터 넣기 [내부링크]

$enable = '1'; $count = 10000; 1. for($display_cnt = 0; $display_cnt < $count; $display_cnt ++) { $result['list'][$display_cnt]['enable'] = $enable; $result['list'][$display_cnt]['id'] = $enable; $result['list'][$display_cnt]['users'] = $enable; $result['list'][$display_cnt]['srcs'] = $enable; $result['list'][$display_cnt]['src_eth'] = $enable; $result['list'][$display_cnt]['dsts'] = $enable; $result['list'][$display_cnt]['dst_eth'] = $enable; $result['list'][$display_cnt]['services'] = $enable;

[공유] 무조건 알아야 할 PHP 속도 테스트 20가지 [내부링크]

출처 시점의 변화|피레님 스크랩된 글은 재스크랩이 불가능합니다.

javascript - Using jQuery to compare two arrays [내부링크]

두개의 array를 비교하여 같은 array인지 알고 싶을 경우 $(arr1).not(arr2).length == 0 를 사용한다. 두개의 array가 같다면 $(arr1).not(arr2).length는 0이다. http://api.jquery.com/:not/#not-elements 위의 주소로 가보면 온갖걸 다 쓸 수 있다.

svn commit 시도 시 SVN: Working Copy ~~~ locked가 걸렸을 때 [내부링크]

1. clean up을 해본다. 2. lock 파일 삭제 - 파일 옵션에서 숨김파일 표시로 변경 - svn 폴더로 들어가서 lock 파일 삭제

javascript array sort [내부링크]

javascript에 기본적으로 array sort 함수를 지원한다. var arr = [40, 1, 10, 5, 25]; 1. arr.sort(); - 이와 같이 쓸 경우 1, 10, 25, 40 과 같이 문자로 취급하여 정렬한다. 2. arr.sort(function(a, b){return a-b}); - 1, 5, 10, 25, 40 과 같이 정렬 3. arr.sort(function(a, b){return b-a}); - 40, 25, 10, 5, 1 과 같이 정렬

php, html, javascript, css 코드 검사 [내부링크]

PHP Storm을 사용하면 코드 검사를 할 수 있다. 1. 코드 검사 Code - Inspect Code - Whole project - OK 2. 경고/오류 로 구분하여 보기 inspection 결과 화면에서 오른쪽 맨 위 첫번째 버튼 클릭 3. filter 사용 (볼 필요 없는 것 선택) inspection 결과 화면에서 오른쪽 아래에서 3번째 버튼 (연장 버튼) 클릭

html - xmp 내부에서 ... 찍기 [내부링크]

text-overflow: ellipsis; white-space: pre; overflow: hidden; word-wrap: normal; display: block;

크로스 도메인 처리 [내부링크]

도메인이 다른 곳으로 ajax를 보내면 console창에서 오류 메시지가 뜨고 심지어 IE에서는 아예 차단을 시켜 버린다. jsonp로 처리하면 문제 없음 $.ajax({ url: 'http://127.0.0.1:8090/STAY_OUT?server=' + get_server(), dataType : 'jsonp', jsonp : 'callback', timeout: 200, async: false, success: function(data) { }, error: function() { } });

get current URL with javascript [내부링크]

자바스크립트에서 현재 접속한 페이지의 주소 얻기 document.URL

javascript jquery] html dom element redraw [내부링크]

$('#parentOfElementToBeRedrawn').hide().show(0);

text 선택 방지 [내부링크]

-webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;

ASP] Call [내부링크]

Call 키워드가 있어도 함수를 호출하고 없어도 호출하는데 Call 키워드가 있을 경우 - Call 함수명(파라미터1, 파라미터2, ...) Call 키워드가 없을 경우 - 함수명 파라미터1,파라미터2 * 함수명과 파라미터1 사이에 공백

convert string to jsonobject [내부링크]

string을 json으로 변경해서 써야할 때. import net.sf.json.JSONObject; JSONObject temp = JSONObject.fromObject("{'a':'b'}");

convert object to jsonobject (오브젝트를 JSON 형식으로 변환) [내부링크]

Map<String, Object> map = new HashMap<String, Object>(); map.put("PARTNER_NO" , "0002485000" ); map.put("RSRVCH_DIV" , "91" ); map.put("RSRV_NO" , BARCODE ); map.put("RSRV_STAT" , "2" ); 1. JSONSerializer.toJSON(map); // net.sf.json.JSONSerializer 2. JSONObject.fromObject(map); // net.sf.json.JSONObject

eclipse project 경로 [내부링크]

System.getProperty("user.dir")

java에서 원하는 character set으로 파일 읽고 쓰기 [내부링크]

1. 읽기 BufferedReader instrm = new BufferedReader(new InputStreamReader(new FileInputStream(new File(getFilename())), "ms949")); while((tmpstr = instrm.readLine()) != null ) { } 2. 쓰기 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(new File(filepath), true), "ms949"); br = new BufferedWriter(osw); br.write(value);

sencha - html tag안에 객체 추가하기 [내부링크]

1. script <script type="text/javascript"> Ext.define('MyApp.store.MyTreeStore', { extend: 'Ext.data.TreeStore', requires: [ 'Ext.data.proxy.Ajax', 'Ext.data.reader.Json' ], constructor: function(cfg) { var me = this; cfg = cfg || {}; me.callParent([Ext.apply({ storeId: 'MyTreeStore', root:{ text:'root', expanded:true }, proxy: { type: 'ajax', url: '/backoffice/buy/menuTreeList.ajax', reader: { type: 'json' } } }, cfg)]); } }); Ext.define('MyApp.view.MyTreePanel', { extend: 'Ext.tree.Panel', requ

sencha grid column replace [내부링크]

{ xtype:'gridcolumn', itemId: 'id', width: 90, align: 'center', dataIndex: 'id', text : '바로가기', renderer: function(value, meta, record, rowIndex, colIndex, store, view){ return Math.round(value/1000) + "Kb"; } }, renderer를 이용하여 replace http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.column.Column 참조

sencha - actioncolumn [내부링크]

{ xtype: 'actioncolumn', handler: function(view, rowIndex, colIndex, item, e, record, row) { onclickWebPosManagementDetailPopup(rowIndex); }, width: 85, align: 'center', text: '바로가기', dataIndex: 'activeDetailButton', icon: '../resources/img/btn_view.png', iconCls: 'iconStyle1' }, actioncolumn을 사용하면 column에 버튼이 생기는데 handler를 이용하여 버튼이 눌렸을 때 동작을 지정할 수 있음

ER-WIN 논리/물리 순서 정렬 [내부링크]

1. 물리에서 아무 테이블이나 선택 2. 마우스 우클릭해서 columns 선택 3. reset 버튼 클릭 4. reset order 클릭 5. 2개의 라디오 버튼 중에 아래 버튼 클릭 (위는 해당 테이블만 정렬, 아래는 전체 테이블 정렬)

javascript 원시타입 - Infinity [내부링크]

자바스크립트에서는 최대 숫자를 벗어나는 숫자를 표현하기 위해 Infinity라고 하는 값이 정의되어 있다. 실제로 Infinity의 타입은 “number”로 나온다. 자바스크립트에서 지원하는 최소값을 벗어나는 문자를 표현하고 싶다면 –Infinity를 사용하면 된다.

javascript undefined [내부링크]

var v = 1; 에서 v는 undefined로 정의 되고 코드를 실행하는 단계에서 다시 1로 초기화 된다. if문에서 undefined가 false로 변환된다.

javascript arguments.callee [내부링크]

callee 속성은 현재 실행되고 있는 함수(함수 객체)를 나타낸다. 마치 생성자 안에서 사용되는 this와도 유사한 개념이다. arguments.callee 속성을 이용하면 익명함수(unnamed function)가 자신을 참조할 수도 있고 재귀 호출도 쉽게 구현할 수 있다. function makeFactorialFunc() { return function(x) { if(x <= 1) { return 1; } return x * arguments.callee(x - 1); } }

mysql ROW_COUNT(); [내부링크]

INSERT 한 결과 COUNT

erwin - export query [내부링크]

Physical로 변경 - Forward Engineer - Schema Generation - Preview

MariaDB 백업 [내부링크]

mysqldump -u root -p DB_name > BACKUP_NAME.sql 윈도우 버전의 경우 설치 경로의 bin 디렉토리까지 이동하여 실행시켜야 한다.

mariaDB 1418 오류 [내부링크]

1. 에러 메시지 /* SQL 오류 (1418): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) */ 2. 처리방법 - DB에 접속해서 아래 변수의 값을 확인한다. - show global variables like 'log_bin_trust_function_creators' - value 값이 off가 나온다면 my.conf에 다름과 같이 설정하고 서버를 재시작한다. - log_bin_trust_function_creators = 1 - 만약 my.conf 안에 /etc/my.cnf.d 라는 경로가 있다면 해당 경로로 간다. - server.cnf안에 설정을 입력한다. - serv

mySQL is integer (숫자만 찾기) [내부링크]

select field from table where field REGEXP '^-?[0-9]+$';

sencha grid - auto column size 하는 방법 [내부링크]

1. viewConfig에 forceFit: true 추가 2. size를 변경했으면 하는 column에 flex: true 추가 3. 한 컬럼만 변경되었으면 할 경우에는 한군데만 쓰고 여러군데가 바뀌게 하고 싶으면 여러군데다가 사용하면 됩니다. 4. Scroll이 필요한 경우에는 알아서 스크롤 영역을 확보하고 scroll이 필요가 없을 경우에는 스크롤 영역이 사라집니다.

select2에서 search bar 숨기기 [내부링크]

minimumResultsForSearch: -1,

datefield (datepicker) 자동으로 펼치게 하기 [내부링크]

Ext.getCmp('sellPeriod1').onTriggerClick();

sencha grid 데이터 변경 [내부링크]

function changeStat(rowIndex, value) { var models = Ext.getCmp("gridList").getStore().getRange(); if(value === P_BARCD_STAT_NOT_USE) { models[rowIndex].set('BARCD_STAT',P_BARCD_STAT_USE); } else { models[rowIndex].set('BARCD_STAT',P_BARCD_STAT_NOT_USE); } } 위와 같이 rowIndex + column명으로 변경한다. 단, column에서 renderer를 사용할 경우 setting과 동시에 renderer가 view data로 바꿔버리니 주의 할 것

javascript (jquery) 특정 textbox 또는 textarea에서 현재 커서 위치 가져오기 [내부링크]

(function ($, undefined) { $.fn.getCursorPosition = function() { var el = $(this).get(0); var pos = 0; if('selectionStart' in el) { pos = el.selectionStart; } else if('selection' in document) { el.focus(); var Sel = document.selection.createRange(); var SelLength = document.selection.createRange().text.length; Sel.moveStart('character', -el.value.length); pos = Sel.text.length - SelLength; } return pos; } })(jQuery); $("#myTextBoxSelector").getCursorPosition();

Convert ArrayList containing Strings to an array of Strings in Java [내부링크]

자바에서 문자열의 배열에 문자열을 포함하는 ArrayList를 반환하는 방법 List<String> list =new ArrayList<String>(); list.add("android"); list.add("apple"); String[] stringArray = list.toArray(new String[list.size()]);

브라우저별 keycode [내부링크]

http://www.javascripter.net/faq/keycodes.htm

sencha grid tooltip [내부링크]

1. grid의 listener에 아래와 같이 추가 listeners: { viewready: gridToolTip } 2. 아래와 같은 함수 선언 function gridToolTip(grid) { var view = grid.view; // record the current cellIndex grid.mon(view, { uievent: function (type, view, cell, recordIndex, cellIndex, e) { grid.cellIndex = cellIndex; grid.recordIndex = recordIndex; } }); grid.tip = Ext.create('Ext.tip.ToolTip', { target: view.el, delegate: '.x-grid-cell', trackMouse: true, renderTo: Ext.getBody(), listeners: { beforeshow: function updateTipBody(tip) { i

javascript - string format ( { 0}  과 같은 형태의 문자열을 replace ) [내부링크]

String.prototype.format = String.prototype.f = function() { var s = this, i = arguments.length; while (i--) { s = s.replace(new RegExp('\\{' + i + '\\}', 'gm'), arguments[i]); } return s; }; Usage 'Added {0} by {1} to your collection'.f(title, artist)

javascript - comment documentation ( 주석을 문서화 ) [내부링크]

주석을 문서화 하기 위해서는 아래와 같이 주석을 달아야 한다. ( jsDoc ) /** * Adds two numbers * @param {Number} a * @param {Number} b * @return {Number} sum */ function sum(a,b) { return a + b; }

JAVA에서 String이 '숫자'로만 이루어져 있는지 체크 [내부링크]

출처 : http://stackoverflow.com/questions/1102891/how-to-check-if-a-string-is-a-numeric-type-in-java How to check if a String is a numeric type in Java How would you check if a String was a number before parsing it? stackoverflow.com 1. Exception 사용 public static boolean isNumeric(String str) { try { double d = Double.parseDouble(str); } catch(NumberFormatException nfe) { return false; } return true; } 2. 정규식 사용 public static boolean isNumeric(String str) { return str.matches("-?\\d+(\\.\\d+)?");

sencha grid - column 색상 변경 [내부링크]

renderer: function(value, meta) { if (parseInt(value) > 0) { meta.tdCls = 'red'; return value; } else { meta.tdCls = 'category-not-matching'; return value; } }, 'red'는 class name

remote 주소를 제대로 가져올 수 없을 때. nginx - ip 설정 [내부링크]

WEB 서버 경로 : /usr/local/nginx-1.4.7/ /usr/local/nginx-1.4.7/conf/nginx.conf 파일의 server 부분에 아래의 내용을 추가 server { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 프로그램 상에서 아이피를 추출해야 하는경우 request.getHeader("X-Real-IP"); http와 https에 모두 추가 해야 함. nginx start : ./nginx nginx stop : ./nginx -s stop

Sencha Grid Column Header TEXT 변경 방법 [내부링크]

1. Get Sencha Grid Column var columns = Ext.getCmp('gridList').getView().getGridColumns(); 2. Grid column 중에서 변경하고자 하는 ItemId(Grid 에서 이미 선언한) 를 찾아 변경 Ext.each(columns, function (col) { if( col.itemId == itemId ) { col.setText("쿠폰사"); return false; } });

2015년 2월 3일 오후 3시 12분에 저장한 글입니다. [내부링크]

minValue : 지정한 날 이전은 선택할 수 없다. maxValue : 지정한 날 이후는 선택할 수 없다. 예: Ext.create('Ext.form.field.Date', { xtype: 'datefield', id: 'rcpDate', width: 124, renderTo: 'rcpDate', maskRe: /[0-9.]/, margin: '0 5 0 5', format: 'Y-m-d', value : getTodayDate(), minValue: new Date() });

sencha에서 row를 클릭하면 radio가 자동으로 선택되게 [내부링크]

1. column { xtype: 'gridcolumn', renderer: function(value, metaData, record, rowIndex, colIndex, store, view) { var checked = ''; if(rowIndex === 0){ checked = 'checked'; } return '<input type= "radio" name="radiogroup" '+ checked + '/>'; }, width: 50, align: 'center', dataIndex: 'active', text: '선택' } 2. event listeners : { itemClick : { fn : me.onGridItemClick } } 3. function onGridItemClick : function(dataview, record, item, index, e, eOpts) { $(item).find("input[name=radiogroup]").prop("chec

select2 destroy or remove [내부링크]

$("id").select2("remove"); $("id").select2("destroy"); 버전에 따라 다르다.

Firefox ( ff, 파이어폭스 ) - 팝업을 새창으로 띄우지 않고 새 탭으로 띄우기 [내부링크]

1. 부가기능인 Tab Mix Plus 설정 기능 사용 - Tab Mix Plus를 설치한 뒤, - Tools -> 부가기능 -> Tab Mix Plus 설정 -> 링크 -> 싱글 윈도우 모드 사용 2. 파이어폭스 설정 (about:config) 변경 - 주소창에 about:config 입력 - browser.link.open_newwindow 입력 후 값을 3으로 변경 - browser.link.open_enwwindow.restriction의 값을 0으로 변경 * 만약 창 크기가 변경 될 경우 - 도구 -> 설정 -> 고급 -> 자바스크립트 설정에서 '현재 창을 이동하거나 크기 조절' 옵션을 체크 해제

PPT 글꼴 일괄 적용 ( 한번에 글꼴(폰트) 바꾸기 ) [내부링크]

[홈] 텝에서 오른쪽 끝의 "바꾸기" 선택

request 넘기지 않고 사용하는 방법 [내부링크]

return ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest().getSession(false).getAttribute(sessionType).toString(); 1. RequestContextHolder Spring MVC에서 어떤곳에서든 request 객체를 얻어오기 위해 사용합니다. 2. RequestContextHolder.currentRequestAttributes() 현재 thread에 바인딩 되어있는 RequestAttributes를 돌려줍니다.

mysql ( mariadb ) timeout [내부링크]

1. connection 확인 show processlist; 2. 현재 설정된 timeout 확인 show variables like '%timeout%' 3. timeout 변경 cd /etc/my.cnf.d vi server.cnf [mysqld] wait_timeout = 60 interactive_timeout= 60 ( 단위 : 초 ) DB서버를 재기동 시키면 다시 원래대로 돌아 갑니다. 그렇다면 값을 계속 유지 하게 하려면 아래와 같이 설정 파일에 추가를 해주고 재기동을 시키면 됩니다. vi /etc/mysql/conf.d/mariadb.cnf 4. 재시작 /etc/init.d/mysql stop /etc/init.d/mysql start

slick grid ( render grid ) . scroll paging 처리 [내부링크]

1. liststore에 옵션 추가 buffered: true, trailingBufferZone: 5, leadingBufferZone: 5, purgePageCount: 0, scrollToLoadBuffer: 10, 2. gridList에 옵션 추가 plugins: [ Ext.create('Ext.grid.plugin.BufferedRenderer', {}) ], 3. 조회시 아래와 같이 해야 함 var listStore = Ext.data.StoreManager.get("listStore"); listStore.proxy.extraParams = param; listStore.load({ callback : function(records, operation, success) { if( success == true){ $('#listSearchResultTextBegin').text('조회결과 Total '); $('#listSearchResultTextCount').text(

Excel에서 column의 size ( width ) 를 자동으로 설정 [내부링크]

모든 데이터가 들어간 이후에 if(null != model.get("colName")) { List<String> colName = (List<String>) model.get("colName"); for (int i = 0; i < colName.size(); i++) { sheet.autoSizeColumn(i); } } 위의 코드를 추가합니다. 그런데, autoSizeColumn 함수 자체가 정확하게 동작하지 않아서.. 보기 좋게 size를 조절하지 못합니다.

jQuery UI Sortable Position [내부링크]

$( "#menuListContainer > ul" ).sortable({ start: function(event, ui) { ui.item.startPos = ui.item.index(); } , stop: function(event, ui) { console.log("Start position: " + ui.item.startPos); console.log("New position: " + ui.item.index()); } });

java excel column width [내부링크]

sheet.setColumnWidth(cols, (colWidth * (short)265));

firefox ( 파이어폭스 ) inline-block not working [내부링크]

display: -moz-inline-stack;를 같이 사용하면 됨

mysql name(이름) masking [내부링크]

DELIMITER // CREATE DEFINER=`mcouponbo`@`%` FUNCTION `getMaskName`(`v_code` varchar(10)) RETURNS varchar(50) CHARSET utf8 BEGIN declare return_value varchar(50); SELECT CASE CHAR_LENGTH(v_code) WHEN 0 THEN '' WHEN 1 THEN '*' WHEN 2 THEN CONCAT('*', SUBSTRING(v_code, 2, 1)) ELSE CONCAT(SUBSTRING(v_code, 1, 1), REPEAT('*', CHAR_LENGTH(v_code) - 2), SUBSTRING(v_code, CHAR_LENGTH(v_code), 1)) END INTO return_value; RETURN return_value; END// DELIMITER ;

mysql 전화번호 masking [내부링크]

DELIMITER // CREATE DEFINER=`mcouponbo`@`%` FUNCTION `getMaskPhone`(`v_code` varchar(50)) RETURNS varchar(50) CHARSET utf8 BEGIN declare return_value varchar(50); SET v_code = replace(v_code, '-', ''); SELECT CASE WHEN CHAR_LENGTH(v_code) < 9 THEN v_code ELSE CASE SUBSTRING(v_code, 1, 2) WHEN '02' THEN CONCAT('02', '-', REPEAT('*', CHAR_LENGTH(v_code) - 6), '-', SUBSTRING(v_code, CHAR_LENGTH(v_code) - 3, CHAR_LENGTH(v_code))) ELSE CONCAT(SUBSTRING(v_code, 1, 3), '-', REPEAT('*', CHAR_LENGTH(v_co

nginx stop [내부링크]

kill -QUIT $( cat /usr/local/nginx/logs/nginx.pid )

mysql log delete ( 로그 삭제 ) [내부링크]

PURGE BINARY LOGS BEFORE '2009-05-01 00:00:00'; * 1기가 이상의 디렉토리 확인 du -h | grep [0-9]G

Topics / Queues [내부링크]

Topics In JMS a Topic implements publish and subscribe semantics. When you publish a message it goes to all the subscribers who are interested - so zero to many subscribers will receive a copy of the message. Only subscribers who had an active subscription at the time the broker receives the message will get a copy of the message.Queues A JMS Queue implements load balancer semantics. A single message will be received by exactly one consumer. If there are no consumers available at the time the me

용어 정리 [내부링크]

1. RV(Rendezvous) - 메시지(프로토콜) 종류 1.1. RV란? - TIBCO BASE 제품 - TIB(정보 버스)를 이용하여 UDP 통신 기반으로 TRDP라는 자체 프로토콜을 구현 - MOM으로 버스 방식의 아키텍쳐 사용 - -deamon 파라미터 n App는 TCP를 이용하여 RVD에 접속 n TCP를 정의하기 위한 값 n APP 기동시 RVD가 살아있지 않다면 자도응로 RVD 구동 n 하나 이상의 RVD를 한 호스트에서 수행 가능 - -service 파라미터 n RVD가 네트워크를 통하여 통신하기 위한 port n 각 Transport는 하나의 service 포트를 통해 데이터 송수신 n 하나의 rv 데몬만이 하나의 service 포트를 점유 n Rv 데몬은 여러 service 포트 사용 가능 - -network 파라미터 n Broadcast, Multicast를 결정하는 파라미터 n 3개의 part로 구성됨 ( part1;part2;part3 ) n Default

IE8이하 버전에서 HTML5 사용하기 [내부링크]

http://teilar.tistory.com/entry/IE8%EC%9D%B4%ED%95%98-%EB%B2%84%EC%A0%84%EC%97%90%EC%84%9C-HTML5-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 IE8이하 버전에서 HTML5 사용하기 자 이제까지 HTML5 문서를 만들기 위한 준비과정을 진행해보았습니다. 새로운 엘리먼트들에 대해서도 알아보았고 새로운 엘리먼트들에 대한 기본 CSS정의도 해보았고 IE에서 새로운 엘리먼트를 인식시키는 방법에 대해서도 알아보았습니다. 그럼 이제 좀 더 견고한 HTML5문서를 만들어 봅시다. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>HTML5</title> <link rel="stylesheet" href="css/common.css" type.. teilar.tistory.com

구글 접속 오류 ( 구글 접속 안됨 ) / 다음 접속 오류 ( 다음 접속 안됨 ) [내부링크]

포멧 후 윈도우를 새로 설치하면 구글 등 특정 사이트에 접속이 안되는 경우가 있어요... ( 처음 당해봄 ㅠㅠ ) 아래와 같이 해결 가능합니다. C:\Windows\System32\drivers\etc 경로로 이동하면 hosts 라는 파일이 있는데, 맨 아래 보면 66.249.89.104 www.google.co.kr 202.131.29.70 www.naver.com 222.231.51.78 www.daum.net 203.84.218.36 kr.yahoo.com 211.115.207.229 windowsforum.kr 이런 내용이 있는데 이것을 모두 삭제 후 저장하면 접속 잘 됩니다. ------------------------------------------------------------------------------------------ * hosts 파일이란? 네트워크를 통해 다른 서버에 접속할 때 도메인 정보를 이용해서 접속하는 경우 도메인 정보를 IP로 바꾸는 과정이 필

sitemesh left menu [내부링크]

http://okky.kr/article/100893 OKKY | sitemesh에서 decorator 페이지에 데이타를 넘기려면 어떻게 해야 하나요? spring과 sitemesh를 같이 사용중입니다. 궁금한점이 decorator 페이지에 데이타를 넘겨서 메류를 정의하고 싶은데 페이지를 이동하면서 데이타를 넘기면 해당 페이지에서만 접근할수 있고 decorator 페이지에서는 접근이 불가능 합니다. decorator 페이지에서도 데이타를 받고 싶은데 좋은 방법 없을까요? okky.kr http://zenice.tistory.com/22 사이트를 조직화 해주는 프레임워크, SiteMesh 사이트를 조직화 해주는 프레임워크, SiteMesh 개요 불행히도 2005년을 살아가고 있는 개발자들은 다수의 프레임워크를 선택할 수 있는 행운을 갖게 되었다. 하지만 이 행운은 여러 프레임워크의 특성과 장단점, 프레임워크간의 관계를 면밀히 검토해야 할 결코 즐겁지만은 않은 비명을 안겨 주었다. 뿐만

Spring 3.0 + tiles 2 + maven [내부링크]

1. pom.xml 에 아래 내용 추가 <!-- tiles --> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-api</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-compat</artifactId> <version>2.1.4</version> </dependency> <dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-core</artifactId> <version>2.1.4</version> </dependency> 2. spring-context.xml 에 아래 내용 추가 <!-- tiles2 layout config --> <bean id="tilesConfigurer"

jqGrid destroy ( jqgrid 삭제 ) [내부링크]

1. html <div id="gridContainer"></div> 2. javascript // grid 초기화 function deleteGrid() { $("#list").jqGrid("clearGridData"); $("#list").jqGrid("GridDestroy"); $("#list").remove(); $("#gridContainer").empty(); } // grid 생성 function initGrid() { var table = document.createElement('table'); var pager = document.createElement('div'); table.id = 'list'; pager.id = 'pager'; $("#gridContainer").append(table); $("#gridContainer").append(pager); $("#list").jqGrid({ ... }); }

javascript 테스트 - qunit [내부링크]

1. 사이트 http://api.qunitjs.com QUnit API Documentation api.qunitjs.com 2. 사용법 예시 test("replaceAll", function() { equal(replaceAll("2016/03/01", "/", ""), "20160301"); }); 2. API 2.1 equal ( A, B ); - A와 B가 같다면 true

jqgrid rowspan, jqgrid colspan [내부링크]

jqGrid 4.2.0부터 공식적으로 Header Grouping을 지원합니다. 1. 공식문서 : http://www.trirand.com/jqgridwiki/doku.php?id=wiki:groupingheadar wiki:groupingheadar - jqGrid Wiki www.trirand.com 2. 옵션 설명 - useColSpanStyle : header에 한 줄을 추가 했을 때 rowspan을 할 것인지 여부 - startColumnName : colspan을 시작할 column ( colmodel의 name을 사용 ) - numberOfColumn : 몇개의 column을 merge할 것인가 - titleText : merge된 column의 title 3. 결과 4. 아래와 같은 결과를 원할 경우 grid.jqGrid("setGroupHeaders", { useColSpanStyle: true, groupHeaders: [{ startColumnName: "amou

root context [내부링크]

request.getContextPath()

Spring에서 엑셀(excel) 다운로드 개발 시, workbook를 통째로 넘기는 방법 [내부링크]

1. Controller public ModelAndView downloadExcel(Locale locale, Model model, HttpServletRequest request) throws Exception { ModelAndView mav = new ModelAndView(); mav.setViewName("excelDownloadView2"); // workbook 생성 ... // workbook 생성 종료 mav.addObject("workbook", wb); } 2. AbstractExcelView renderMergedOutputModel 변경한다. public abstract class AbstractExcelView extends AbstractView { /** The content type for an Excel response */ private static final String CONTENT_TYPE = "application/vnd.ms-excel"

엑셀(excel) merge [내부링크]

모든 셀에 border를 미리 준 후에 merge를 해야 한다. CellStyle headerStyle = ExcelUtil.getHeaderStyle(wb); String[][] header = { {"NO", "정산일", "가맹점명", "정산ID", "정산설정", "결제서비스", "", "", "", "원가수수료", "원가VAT", "입금금액", "PG수수료", "", "", "보류", "해제", "상계", "정산금액"}, {"", "", "", "", "", "신용카드", "계좌이체", "가상계좌", "합계", "", "", "", "수수료", "VAT", "합계", "", "", "", ""} }; ExcelUtil.setHeader(sheet, header, headerStyle); ExcelUtil.rowspan(sheet, header); ExcelUtil.colspan(sheet, header); ----------------------------------------

이클립스 자동 줄맞춤 시 line 의 최대 길이 [내부링크]

1. JAVA [Window - Preferences - Java - Code Style - Formatter] 메뉴로 이동 New 버튼 클릭 [Line Wrapping] 탭에서 Maximun line width를 변경 Code 2. HTML [Window - Preferences - HTML Files - Editor] 메뉴에서 Line width를 변경

request -> map key mapping [내부링크]

@SuppressWarnings("unchecked") public Map getParamMap(HttpServletRequest request) { Enumeration em = request.getParameterNames(); Map map = new HashMap(); while(em.hasMoreElements()) { String key = em.nextElement().toString(); map.put(key, request.getParameter(key)); } return map; }

HTML문서를 직접 excel로 다운로드 [내부링크]

<%@ page language="java" contentType="application/vnd.ms-excel;charset=UTF-8" pageEncoding="UTF-8"%> <!-- 워드 --> <%-- <%@ page language="java" contentType="application/vnd.word;charset=UTF-8" pageEncoding="UTF-8"%> --%> <!-- 한글 --> <%-- <%@ page language="java" contentType="application/hwp;charset=UTF-8" pageEncoding="UTF-8"%> --%> <% //******************************MS excel****************************** // MS excel로 다운로드/실행, filename에 저장될 파일명을 적어준다. response.setHeader("Content-Disposition","att

jqgrid summary footer [내부링크]

http://thatisgood.tistory.com/entry/jqGrid-%EC%98%88%EC%A0%9C jqGrid footer 그리고 footer sum 예제 결과 그림: //jqGrid $("#grid").jqGrid({ sortable: true, datatype: "local", colNames:['종류','출고', '입고', '정산수량', '금액'], colModel:[ {name:'crateName', index:'crateName', width:160, align:'center', sorttype:'text', sortable:true,}, {name:'outQuantity', index:'outQuantity',width:165, align:"right", sorttype:'int', sortable:true, formatter: 'integer', formatoptions:{thousandsSeparator:",".. thatisgood.tistory.com

java에서 javascript로 ajax 통신 ( json 형태 ) 할 때 null이 있을 경우 에러가 발생 [내부링크]

JSONObject.fromObject()나 JSONArray.fromObject()를 사용 할 경우 value에 null이 있을 경우 error가 발생한다. Gson (com.google.code.gson) 을 사용하면 에러가 발생하지 않음

jquery - form안의 값을 parameter로 만들기 [내부링크]

1. key=value&key=value 형태 $("form[name=mainForm]").serialize() 2. { name: key, value: value } 형태 $("form[name=mainForm]").serializeArray(); 3. { key: value } 형태 $("form[name=mainForm]").serializeObject (); $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name] !== undefined) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; };

ibatis list에 map을 담아서 넘겼을 때 iterate ( foreach / 반복 / 루프 ) 방법 [내부링크]

1. java List<Map<String, String>> list = new ArrayList<Map<String, String>>(); Map<String, String> tmp = new HashMap<String, String>(); tmp.put("code1", "A"); tmp.put("desc1", "A"); list.add(tmp); tmp = null; tmp = new HashMap<String, String>(); tmp.put("code1", "B"); tmp.put("desc1", "B"); list.add(tmp); Map<String, Object> param = new HashMap<String, Object>(); param.put("codeList", list); 2. ibatis ( xml ) SELECT <isNotEmpty property="cardList"> <iterate property="cardList"> user_id AS "$card

Spring MVC 환경에서 gson 사용시 한글 깨짐 현상 [내부링크]

@RequestMapping 에 produces="text/plain;charset=UTF-8" 를 추가하면 정상 출력됨 ex) @RequestMapping(value = "/path", produces="text/plain;charset=UTF-8")

CSS 속성 선택자 [내부링크]

패턴 의미 CSS Level 지원하지 않는 브라우저 E[attr] ‘attr’ 속성이 포함된 요소 E를 선택합니다. 2 IE6 E[attr="val"] ‘attr’ 속성의 값이 정확하게 ‘val’과 일치하는 요소 E를 선택합니다. 2 IE6 E[attr~="val"] ‘attr’ 속성의 값에 ‘val’이 포함되는 요소를 선택합니다. (공백으로 분리된 값이 일치해야 합니다.) 2 IE6 E[attr^="val"] ‘attr’ 속성의 값이 ‘val’으로 시작하는 요소를 선택합니다. 3 IE6 E[attr$="val"] ‘attr’ 속성의 값이 ‘val’으로 끝나는 요소를 선택합니다. 3 IE6 E[attr*="val"] ‘attr’ 속성의 값에 ‘val’이 포함되는 요소를 선택합니다. 3 IE6 E[attr|="val"] ‘attr’ 속성의 값이 정확하게 ‘val’ 이거나 ‘val-’ 으로 시작되는 요소 E를 선택합니다. 2 IE6

jstl nl2br ( jstl에서 java 함수 사용 ) [내부링크]

1. tld 파일 생성( mi-html-util.tld ) <?xml version="1.0" encoding="UTF-8" ?> <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd" version="1.2"> <tlib-version>1.2</tlib-version> <function> <name>nl2br</name> <function-class>kr.infinisoft.paytus.common.util.StringUtil</function-class> <function-signature>java.lang.String nl2br(java.lang.String)</function-signature> </functio

spring 국제화 ( messageSource ) [내부링크]

1. spring-context에 messageSource bean을 등록한다. - 이 때 id를 messageSource로 해야 한다. ( 그렇지 않으면 동작하지 않음 ) - basename에서 설정된 이름으로 파일을 만들어야한다. - 아래와 같은 경우 message_ko_KR.properties, message, message.properties <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basename"> <value>messages</value> </property> </bean> 2. /src/main/resources 하위에 properties 파일을 생성한다. - {0}과 {1}은 출력 시 변수처리 될 부분이다. String 배열을 입력받아 메시지를 완성한다. ( ex. MSG={0} {1} 하이 ) - 메시지는

spring 국제화(다국어 지원) 및 javascript에서의 사용 [내부링크]

다국어를 사용 할 때 뿐만 아니라 메시지 관리 차원에서 메시지를 공통으로 많이 사용하고 있다. 1. 인코딩 설정 다국어를 사용하기 위해서는 web.xml에서 인코딩필터를 UTF-8로 설정해야 한다. <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 2. Spring 설정 Spring의 application-servlet.xm

spring json [내부링크]

1. 반드시 POST로 받아야 함. ( method = RequestMethod.POST ) 2. @RequestBody 를 사용해서 받는다. ( @RequestBody AidFeeParamVO param ) 3. javascript에서 JSON.stringify()을 사용

jqgrid footer [내부링크]

1. footer 옵션을 true로 추가 footerrow: true, userDataOnFooter: true, 2. loadComplete단계에서 이하 작업 추가 loadComplete: function(){ var colSum = $grid.jqGrid('getCol', 'totCnt', false, 'sum'); $grid.jqGrid('footerData', 'set', {app_dt: "합계:", totCnt:colSum}); var colSum = $grid.jqGrid('getCol', 'totAmt', false, 'sum'); $grid.jqGrid('footerData', 'set', {totAmt:colSum}); var colSum = $grid.jqGrid('getCol', 'cardCnt', false, 'sum'); $grid.jqGrid('footerData', 'set', {cardCnt:colSum}); var colSum = $grid.jqGrid

jqgrid original row data [내부링크]

데이터를 표시할 때 formatter를 사용했을 경우 var row = $("#list").jqGrid("getRowData", rowId); 를 사용하면 가공된 데이터를 return한다. 구글링을 하다보면 jqgrid를 생성 할 때 아래와 같은 옵션 추가를 하라고 나오는데 이렇게 할 경우 footerData를 사용할 수가 없다. jsonReader: { userdata : 'rows' } [해결방법] 1. colModel에 unformat 옵션 추가 <script> jQuery("#grid_id").jqGrid({ ... colModel: [ ... {name:'price', index:'price', width:60, align:"center", editable: true, formatter:imageFormat, unformat:imageUnFormat}, ... ] ... }); function imageFormat( cellvalue, options, rowObject ){

jqgrid 화면 크기에 맞게 resize [내부링크]

1. grid option autowidth: true, 2. $(window).bind('resize', function() { // 그리드의 width를 div 에 맞춰서 적용 $('#list').setGridWidth($("#gridContainer").width()); //Resized to new width as per window }).trigger('resize');

현재 URL 주소 가져오기 ( Get current URL in web browser ) [내부링크]

Use:window.location.href As noted in the comments, the line below works but is bugged for Firefox.document.URL; 출처 : http://stackoverflow.com/questions/1034621/get-current-url-in-web-browser Get current URL in web browser How do I get the website URL? Not the URL as taken from a link. On the loading page, I want to get the full, current URL of the current web page and store its value in a variable. stackoverflow.com

jqgrid 페이징 처리 [내부링크]

loadComplete: function(){ var grid = $("#" + list), MAX_PAGERS = 10; var i, myPageRefresh = function(e) { var newPage = $(e.target).text(); grid.trigger("reloadGrid",[{page:newPage}]); e.preventDefault(); }; $(grid[0].p.toppager + '_center td.myPager').remove(); var pagerPrevTD = $('<td>', { class: "myPager"}), prevPagesIncluded = 0, pagerNextTD = $('<td>', { class: "myPager"}), nextPagesIncluded = 0, totalStyle = grid[0].p.pginput === false, startIndex = totalStyle? this.p.page-MAX_PAGERS*2: pa

spring 3.0 트랜젝션 처리 [내부링크]

1. spring-context.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/

spring scope ( 스프링 스코프 ) [내부링크]

1. 스코프 종류 - singleton : 하나의 공유객체만 관리 - prototype : 필요한 매 순간에 새로운 bean 객체 생성 - request : request 단위로 생성 - session : ression 단위로 생성 - globalSession 2. 사용법 java 클래스 위에 @Scope("request") 와 같이 사용

custom tag ( 사용자정의 태그 ) [내부링크]

[커스텀 태그(Custom Tag)] - 스크립트 코드와 EL을 혼합해서 사용하는 대신 또 다른 태그를 만들어서 사용할 수 있도록 지원한다. - JSTL 또한 커스텀 태그의 일종으로 커스텀 태그를 모아 놓은 커스텀 태그 라이브러리의 한 종류이다. [커스텀 태그의 장점] - 재사용성 향상 - 쉽고 단순한 JSP 제작 - 코드의 가독성 향상 [커스텀 태그 종류] - JSP 1.2 스타일로 구현한 커스텀 태그 - JSP 2.0 또는 그 이상 버전의 SimpleTag를 사용한 커스텀 태그 - 태그 클래스라고 한다. - JSP 1.2 방식 & SimpleTag 커스텀 태그는 자바 클래스 기반의 커스텀 태그이다. - 작성방법과 서리 방법이 복잡하다 - 소스코드가 공개되지 않는다. - JSP 2.0 또는 그 이상 버전의 태그 파일을 사용한 커스텀 태그 - 태그 파일이라고 한다. - 커스텀 태그의 표준 인터페이스를 구현하거나 클래스를 상속받아서 구현한다. - JSP와 유사한 방식으로 커스텀 태그를

jqgrid multiselect 사용 시 특정 row 선택 안되도록 설정 [내부링크]

1. loadComplete 함수에서 checkbox를 disabled 처리하거나 삭제 loadComplete: function(){ var ids = $("#list").jqGrid('getDataIDs'); $list = $("#list"); $.each(ids, function() { var confirm_cl = $list.jqGrid("getRowData", this).confirm_cl; if("1" === confirm_cl) { $("#jqg_list_" + this).remove(); // $("#jqg_list_" + this).prop("disabled", true); } }); } 2. onSelectAll, beforeSelectRow beforeSelectRow: function(rowid, e) { // 그리드 선택 전 // 체크박스 disabled // var cbsdis = $("tr#"+rowid+".jqgrow > td > input.cbox:dis

eclipse tomcat 메모리 설정 [내부링크]

[Run - Run Configurations] 메뉴에서 Arguments 탭으로 가서 VM arguments의 첫줄에 아래와 같이 추가 -Xms128m -Xmx512m -XX:MaxPermSize=128m [출처] eclipse tomcat 메모리 설정|작성자 리베리오

JSP 파일에 CSS 파일의 내용을 import [내부링크]

<jsp:include page="index.css"/> 또는 <%@include file="/WEB-INF/include/header.jsp"%>

HTML로 만들어진 excel에 메모 추가 ( comment ) [내부링크]

1. 메모를 넣을 컬럼에 아래와 같이 추가 <![if !supportAnnotations]> <span class=msocomspan1> <span class="msocomspan2" id="_anchor_1" onmouseover="msoCommentShow('_com_1','_anchor_1')" onmouseout="msoCommentHide('_com_1')" language="JavaScript"> <a class=msocomanch href="#_msocom_1" name="_msoanchor_1">[1]</a> </span> </span> <![endif]> 2. 메모를 아래와 같이 추가 <div style='mso-element: comment-list'> <![if !supportAnnotations]> <hr class=msocomhide align=left size=1 width="33%"> <![endif]> <div style='mso-element: comm

엑셀 excel 파일이 열리지 않을 때 ( 실행만 되고 문서가 열리지 않을 때 ) [내부링크]

- 인터넷에서 다운받은 엑셀이 열리지 않는 현상 발생 - 파일을 에디터로 열어서 다시 저장하면 열림 - 열리지 않는 파일을 메신져로 다른 사람에게 보냈다가 다시 받아도 열리는 현상 발행 - 환경 : Microsoft Excel 2010 [해결방법 : 보안 센터에서 제한된 보기 해제] - [파일 > 옵션] 메뉴를 선택합니다. - 옵션 팝업창의 왼쪽 메뉴 중 [보안 센터]를 선택합니다. 그 후 오른쪽 하단의 [보안 센터 설정]을 클릭합니다. - [제한된 보기]를 선택 한 후 오른쪽 화면의 체크박스를 모두 해제 합니다. --------------- 다른 이유로 안열릴 경우 ( 해보지는 않았음 ) --------------- [다른 프로그램과의 충돌로 안열리는 경우] 1. 실행창에 msconfig를 입력해서 시스템 구성 팝업창을 띄웁니다. 2. [서비스] 탭을 선택 후 "모든 Microsoft 서비스 숨기기"의 체크박스를 체크 한 후 "모두 사용 안함" 버튼을 클릭합니다. 3. "시작프로그

HTML to Excel : mso-number-format style attribute [내부링크]

1. 사용 방법 td { mso-number-format:\@; } 2. format NO Decimals : mso-number-format:”0″ 3 Decimals : mso-number-format:”0\.000″ Comma with 3 dec : mso-number-format:”\#\,\#\#0\.000″ Date7 : mso-number-format:”mm\/dd\/yy” Date9 : mso-number-format:”mmmm\ d\,\ yyyy” D -T AMPM : mso-number-format:”m\/d\/yy\ h\:mm\ AM\/PM” 01/03/1998 : mso-number-format:”Short Date” 01-mar-98 : mso-number-format:”Medium Date” 01-mar-1998 : mso-number-format:”d\-mmm\-yyyy” 5:16 : mso-number-format:”Short Time” 5:16 am :

javascript 우편번호 서비스 [내부링크]

https://spi.maps.daum.net/postcode/guidessl Daum 우편번호 서비스 우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Daum 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다. spi.maps.daum.net

IVR ( Interactive Voice Response : 대화형 음성 응답 ) [내부링크]

대화형 음성 응답 ( Interactive Voice Response, IVR )은 음성과 키패드를 통한 입력을 통해 컴퓨터와 인간이 상호작용하게 하는 기술을 말한다. IVR은 종종 음성 응답장치( Voice Response Unit, VRU )라는 용어로도 사용되기도 한다. IVR은 대체로 데이터베이스 액세스를 포함하는 대규모 어플리케이션의 일부이다. IVR 어플리케이션에는 일반적으로 다으과 같은 것들이 포함된다. - 텔레뱅킹 - 여론 조사를 포함한 각종 조사 ( 전화 투표 ) - 콜센터의 통화 전달 - 단순한 주문입력 거래 - 선택적인 정보 조회 - 신용카드 관련 업무 처리 IVR 어플리케이션은 적절한 상황, 키패드 신호 논리, 적절한 데이터에의 엑세스 등을 위해 미리 녹음된 음성 응답과, 나중에 처리하기 위한 녹음하는 능력 등을 제공한다. IVR 어플리케이션들은 CTI를 사용하여, 송화자가 원하는 데이터를 디스플레이를 통해 볼 수 있는 담당 직원에게 통화를 넘겨줄 수도 있다.

JSP에서 LINE 공백(white space) 제거하는 방법 [내부링크]

JSP를 사용하다 보면 JSTL이 있던 자리가 HTML로 변경되고 나서 빈 줄 ( white space )로 남아있는 것을 보게 된다. 이 경우 에러가 발생하지는 않지만 디버깅을 할 때 코드의 line 수가 너무 많아서 브라우저가 멈춰버리는 경우가 발생한다. 이것을 해결하는 방법은 아래 3가지가 있다. 1. JSP에 선언하는 방법 <%@ page trimDirectiveWhitespaces="true" %> 2. web.xml에 설정하는 방법 <jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <trim-directive-whitespaces>true</trim-directive-whitespaces> </jsp-property-group> </jsp-config> 3. Tomcat의 conf/web.xml에 설정하는 방법 <init-param> <param-name>trimSpaces</param-name> <pa

IE에서 돋움체 ( DotumChe ) 텍스트 박스에서 잘림 현상 [내부링크]

IE11에서 화면을 열었을 때, 텍스트박스의 글자가 잘려보이는 현상이 있었다. 문제가 발생하는 케이스는 아래와 같다. 글자체 : 돋움체 정렬 : 오른쪽 정렬 글자 크기 : 11px 브라우저 : IE11

HTML/CSS 웹 폰트 사용하기 [내부링크]

기존에는 설치되어 있는 글꼴만 사용할 수 있었기 때문에 아래와 같이 굴림체가 없을 경우 궁서체를 사용하고 궁서체도 없으면 Arial체를 사용하라는 방식으로 글자체를 선언했습니다. font-family: "굴림", "궁서", "Arial"; 하지만! CSS3를 사용하면 더 이상 글꼴을 선택 할 때 사용자의 컴퓨터에 설치되어 있는 것만 사용하지 않아도 됩니다. CSS의 웹 폰트는 사용하고 싶은 글꼴을 선언해 주고 해당 글꼴 파일의 경로를 지정해 주면 자동으로 다운로드 받아 브라우저가 출력해 줍니다. 이러한 방법을 사용하려면 @font-face 속성을 이용해서 글꼴의 종류와 글꼴의 파일 경로를 설정해 줍니다. @font-face { font-family: 글꼴이름; src: url('글꼴파일URL경로1'), url('글꼴파일URL경로2') ...; } font-family에 신규 글꼴 이름을 지정하면 해당 이름이 등록됩니다. 나중에 해당 이름을 스타일에 적용하면 그 글꼴로 표시됩니다. s

내부 스타일 시트에서 사용하는 반응형 웹을 위한 미디어쿼리 [내부링크]

<style> /* 스마트폰 */ @media (max-width: 799px) { .login-wrap ul { width: 700px; } } /* 태블릿 PC */ @media only screen and (min-width:800px) and (max-width: 1023px) { } /* PC */ @media only screen and (min-width: 1024px) { .login-wrap ul { width: 400px; } } </style>

외부 스타일 시트로 반응형 웹 만들기 [내부링크]

<link href="style.css" rel="stylesheet" type="text/css" media="screen and(min-width:800px)">

반응형 웹 만들기 [내부링크]

1. 모바일과 데스크톱 PC 인터넷 환경의 차이점 인식 - 이미지 사용 최소화 ( 인터넷이 느릴 경우 렉이 걸림 ) - 다양한 모바일 디바이스의 화면 크기 - 스마트폰 화면 가로 크기는 320~720px까지 다양하다. 데스크톱 PC처럼 가로 크기가 고정되어 있는 상태에서 CSS 작업을 하는 것은 이제 바람직하지 않다. - 중요 스마트폰으로 한정해 놓고 초점을 맞춰야 한다. - 링크의 롤오버 기능은 사용하지 않는다. - 모든 브라우저에서 모두 동일한 화면을 제공해 줄 필요는 없다. - 모든 브라우저에서 동일한 '정보'를 손상없이 제공해 준다는 '콘텐츠 지향'관점으로 만들어야 한다. 2. HTML 작업 - 심플한 시맨틱 마크업 - HTML 작업은 웹 표준에 입각해서 심플하면서도 분명하게 작업해야 한다. - header, article, footer 같은 엘리먼트들을 과감하게 사용한다. ( 단, 하위 브라우저에서도 UI가 깨지지 않도록 작업 ) - 뷰포트 메타데이터 일반적으로 스마트폰 브

oracle offset limit ( 오라클 페이징 처리 ) [내부링크]

오라클은 12버전부터 offset과 limit가 추가되었다. 그 이전 버전은 존재하지 않음. 12 이전 버전은 페이징 처리를 직접 해야 함. 1. 12 이전 버전 SELECT * FROM ( SELECT a.*, ROWNUM AS "rnum" FROM ( <사용자 정의 쿼리 QUERY> ) a WHERE ROWNUM <= end_number ) a WHERE rnum >= start_number 2. 12 이후 버전 SELECT * FROM table_name ORDER BY column_name OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;

META-INF를 이용한 JNDI DB연결 [내부링크]

sever.xml에 JNDI를 사용하게 되면 프로젝트를 서버에 올릴때 마다 server.xml을 수정해줘야 하는 번거로움이 있다. 이럴때 META-INF 폴더를 이용하면 간편하게 JNDI를 이용할수 있다. 1.webapp 폴더 아래 META-INF폴더생성 2.context.xml 파일 생성 3.context.xml에 JNDI 추가 <?xml version="1.0" encoding="UTF-8"?> <Context> <Resource name="jndi이름" auth="Container" type="javax.sql.DataSource" driverClassName="드라이버" loginTimeout="10" maxWait="5000" username="아이디" password="비밀번호" testOnBorrow="true" url="접속 주소" /> </Context> 4.어플리 케이션에서 JNDI호출 ex)스프링 <bean id="dataSource" class="org.spri

HTML 태그 제거 [내부링크]

http://okky.kr/article/111879 OKKY | HTML 태그 제거 메소드 입니다. HTML 태그 제거 메소드 입니다. html 태그는 물런 script 와 style 태그까지 없애며 순수하게 내용만 가지고 옵니다. 돌려 보시고 조언부탁드립니다. public String htmlRemove(String str) { StringBuffer t = new StringBuffer( okky.kr http://itmir.tistory.com/474 [Java] HTML 태그(Tag) 삭제하기 HTML을 파싱하고난후 결과를 받아보면 HTML의 태그가 존재하는 경우가 간혹 있습니다 <p>안녕하세요<img>~</img></p> 여기서 "안녕하세요"만 얻고 싶은대 <img>까지 같이 오는 경우 아래 메소드로 HTML 태그 삭제가 가능합니다 public String RemoveHTMLTag(String changeStr){ if(changeStr != null && !changeS

브라우저 캐싱 방지 ( no-cache 설정 ) [내부링크]

1. HTML <META http-equiv="Expires" content="-1"> <META http-equiv="Pragma" content="no-cache"> <META http-equiv="Cache-Control" content="No-Cache"> 2. ASP <% Response.Expires = 0 Response.AddHeader "Pragma","no-cache" Response.AddHeader "Cache-Control","no-cache,must-revalidate" %> 3. JSP <% response.setHeader("Cache-Control","no-store"); response.setHeader("Pragma","no-cache"); response.setDateHeader("Expires",0); if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control",

안드로이드 크롬 웹 디버깅. Web debugging on Android. [내부링크]

1. 휴대폰을 디버깅 모드로 변경 (1) 설정모드로 지입하여 디바이스 정보를 Click (2) 소프트웨어 정보 Click (3) 빌드번호를 7회 이상 클릭 - 3번까지 하면 개발자 옵션이 생긴다. http://blog.naver.com/hunees/220758426819 안드로이드 개발자 모드실행 안드로인드 4.0 이하 버젼에선 설정 모드에서 바로 개발자 설정으로 들어갈 수 있었으나 요즈음 마시멜... blog.naver.com 2. PC 크롬에서 아래 주소로 접속 후 inspect 버튼 클릭 chrome://inspect/#devices http://fimtrus.tistory.com/95 안드로이드 용 크롬 웹 디버깅. Web debuging on Android. 예전에는 아래와 같은 방법으로 불편(?)하게 디버깅을 했었는데 킷캣 이상버전부터는 앱에 내장되어 있는 웹뷰에 대해서도 디버깅을 지원한다. (앱에 약간의 코딩을 해준다면...) 먼저 킷캣 이하버전에선 아래의 코드가 동작

web chrome에서 isp 호출 [내부링크]

// 안드로이드의 경우 function callAppScheme(tid) { window.location.href="intent://TID=" + tid + "#Intent;scheme=ispmobile;package=kvp.jjy.MispAndroid320;end"; } // 아이폰의 경우 function callIOSAppScheme(tid) { window.location.href="ispmobile://TID=" + tid; } 기존에는 아래와 같이 만들었으나 크롬이 패치되면서 크롬에서 차단함 <iframe src="intent://TID=" + tid + "#Intent;scheme=ispmobile;package=kvp.jjy.MispAndroid320;end"></iframe> 그래서 iframe으로 test.jsp를 만들어서 호출하고 test.jsp에서 parent.callAppScheme(tid)를 호출하였는데 자꾸 이전페이지로 자동 이동하는 버그 발생하였음. tes

footer 만드는 방법 [내부링크]

1. content 영역 position: relative; min-height: 700px; z-index: 100; /* 스크롤이 맨 아래로 내려올 경우나 스크롤이 없을 경우에만 footer가 보이게 할 경우사용 */ margin-bottom: 68px; /* footer의 height 와 같은 값. 스크롤이 맨 아래로 내려올 경우나 스크롤이 없을 경우에만 footer가 보이게 할 경우사용 */ background: #ffffff; 2. footer 영역 position: fixed; /* 스크롤이 맨 아래로 내려올 경우나 스크롤이 없을 경우에만 footer가 보이게 할 경우사용 */ bottom: 0; /* 스크롤이 맨 아래로 내려올 경우나 스크롤이 없을 경우에만 footer가 보이게 할 경우사용 */ width: 100%; /* 스크롤이 맨 아래로 내려올 경우나 스크롤이 없을 경우에만 footer가 보이게 할 경우사용 */ z-index: 99; /* 스크롤이 맨 아래로 내려

결제 회사 용어 정리 [내부링크]

1. 캐시백 ( Cash-back ) 서비스 - 카드 결제 시 현금을 인출할 수 있게 해주는 캐시백(Cash-back) 서비스 - 편의점이나 마트 등에서 물건을 사면서 카드에 연결된 은행 계좌를 통해 현금을 인출하는 서비스로 만원짜리 물건을 사고, 3만원을 결제하면 차액인 2만원을 현금으로 돌려받는 것 * 관련기사 http://www.newstomato.com/ReadNews.aspx?no=673138 금감원 '캐시백 서비스' 내달 가이드라인 공개 카드 결제 시 현금을 인출할 수 있게 해주는 캐시백(Cash-back) 서비스 최종 가이드라인이 다음 달에 공개된다. 주무 부처인 금융감독원이 '20대 금융관행 개혁과제'의 일환으로 캐시백 서비스를 선정한 만큼, 연내 도입을 위해 속도를 내는 모양새다.이번에 발표되는 가이드라인에는 인출 한도와 이용 가능한 카드, 해외사례, 수수료 원칙 등 큰 틀이 담길 예정이다.금융감독원은 18일 시중은행 부행장급으로 구성된 캐시백 서비스 도입 태스크포스

지식인에 소스코드 올리는 방법 [내부링크]

출처 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10601&docId=154505265&qb=7KeA7Iud7J24IOy9lOuTnA==&enc=utf8&section=kin&rank=1&search_sort=0&spq=1&pid=S%2BA9rdoRR18ssZWMMDZsssssstC-155975&sid=tO0KcZRg2B8fxspuIO6NQg%3D%3D 지식인에 소스코드 어떻게 올리는지 궁금합니다. 아래 이미지 처럼 소스코드 어떻게 올리는지 궁금합니다. 관련지식인 링크 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10402... kin.naver.com

윈도우 10 업데이트 이후 스티커 메모 사라짐 현상 [내부링크]

윈도우가 업데이트 되면서 스티커 메모가 시작 프로그램에서 보이지 않는 문제가 있습니다. 이 경우 1. 시작메뉴에서 Sticky Notes를 실행하시면 됩니다. ( 이건 스티커메모는 아니고 윈도우 앱 입니다. ) 2. 윈도우 탐색기에서 stikynot 를 검색 한 후에 WinSxS 폴더에 있는 StikyNot.exe를 실행하시면 됩니다.

javascript history object [내부링크]

1. 설명 문맥에 필요한 Document 들의 연속을 세션 히스토리라고 합니다. History 객체는 문맥의 세션 히스토리에 들어 있는 페이지들을 나타냅니다. 각각의 문맥(중첩된 문맥을 포함)은 유일한 세션 히스토리를 갖습니다. 2. The History Interface [code] interface History { readonly attribute long length; void go(in optional long delta); void back(); void forward(); /* 주어진 타이틀로, 주어진 데이터를 세션 히스토리에 씁니다. URL이 주어졌다면 함께 적용합니다. */ void pushState(in any data, in DOMString title, in optional DOMString url); /* 주어진 타이틀과 세션 히스토리의 현재 항목을 갱신합니다. URL이 주어졌다면 함께 적용합니다. */ void replaceState(in any data,

iframe auto resize [내부링크]

<iframe src="..." frameborder="0" scrolling="no" onload="resizeIframe(this)" /> <script> function resizeIframe(obj) { obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px'; } </script> 출처 : http://stackoverflow.com/questions/9975810/make-iframe-automatically-adjust-height-according-to-the-contents-without-using Make iframe automatically adjust height according to the contents without using scrollbar? For example: <iframe name="Stack" src="http://stackoverflow.com/" width="740" f

동적 table [내부링크]

[code] .list-tb { border-collapse: collapse; } .list-tb tr th { padding: 0 10px; white-space: nowrap; height:25px; background-color:#bccfe3; font-weight:bold; color: #FFF; border: 1px solid #ede9e3; } .list-tb tr td { white-space: nowrap; padding: 0 10px; height: 25px; border: 1px solid #ede9e3;} .list-tb tr:nth-child(odd) { background-color:#F7F7F7; } [/code]

gmail 아웃룩 설정 [내부링크]

1. 컴퓨터에서 Gmail을 엽니다. 2. 오른쪽 상단에서 환경설정 을 클릭합니다. 3. 환경설정을 클릭합니다. 4. 전달 및 POP/IMAP 탭을 클릭합니다. 5. POP 다운로드를 활성화 합니다. 6. 내 계정으로 들어갑니다. 7. 로그인 및 보안으로 들어갑니다. 8. 연결된 앱 사이트에서 보안수준이 낮은 앱 허용을 사용 으로 변경합니다. 9. 아웃룩을 실행합니다. 10. 수동 설정 또는 추가 서버 유형을 선택하고 다음을 클릭합니다. 11. POP 또는 IMAP을 선택하고 다음을 클릭합니다. 12. 기본정보를 입력합니다. - 받는 메일 서버 : pop.gmail.com - 보내는 메일 서버 : smtp.gmail.com 13. 기타설정을 클릭합니다. 14. 보내는 메일 서버 탭에서 보내는 메일 서버 인증필요를 클릭합니다. 15. 고급 탭을 클릭하고 값을 입력합니다. - 받는 메일 서버 : 965 또는 995 - 암호화된 연결(SSL) 필요 클릭 - 보내는 메일 서버 : 465 -

@ResponseBody로 String 처리할때 한글처리 [내부링크]

<mvc:annotation-driven> <mvc:message-converters> <!-- @ResponseBody로 String 처리할때 한글처리 --> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>

WINDOWS SERVER 2008 IIS SMTP 설정 [내부링크]

1. 제어판으로 이동 2. 프로그램 및 기능 3. Windows 기능 사용/사용안함 4. 역할 > 웹 서버(IIS) > 역할 서비스 추가 5. 체크되어있는 항목 체크 6. IIS(인터넷 정보 서비스) 6.0 관리자 7. SMTP 가상서버를 생성 후 접근가능 IP, 로깅 방식 등 설정

Mysql - Alter a column to be AUTO_INCREMENT [내부링크]

ALTER TABLE document MODIFY COLUMN document_id INT auto_increment

convert json to map [내부링크]

HashMap<String,Object> result = new ObjectMapper().readValue(JSON_SOURCE, HashMap.class);

custom URI로 exe를 실행 할 경우 예외처리 [내부링크]

exe를 브라우저에서 실행하려고 할 경우에 경고창이 뜨는 문제가 발생. [해결방법] [IE] - Registry 이용 [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\ProtocolExecute\프로그램이름] "WarnOnOpen"=dword:00000000 [Crome] 크롬의 경우에는 %appData%로 이동 후 상위 폴더로 가서 \Local\Google\Chrome\User Data\Local State 파일을 열어서 /protocol_handler/excluded_schemes/XXXXXXXXXXXX:false 로 설정 하면 되는데.. 문제는 해당 파일에 variations_compressed_seed 라는 값이 존재하여 같지 않으면 원복을 시켜버림

사용자 계정 컨트롤 (UAC) 설정 변경 방법 [내부링크]

시작메뉴에서 uac검색 * 윈도우키 + R 에서는 동작하지 않음

windows device(machine) uuid [내부링크]

1. wmic csproduct get uuid -> windows xp에서 동작하지 않음 2. regedit에서 HKLM\SOFTWARE\Microsoft\cryptography -> 변조 가능 3. 별도의 프로그램에서 smbios의 uuid를 구한다. -> xp에서 정상동작으로 확인 #define _WIN32_DCOM #include <iostream> using namespace std; #include <comdef.h> #include <Wbemidl.h> # pragma comment(lib, "wbemuuid.lib") int main(int argc, char **argv) { HRESULT hres; // Step 1: -------------------------------------------------- // Initialize COM. ------------------------------------------ hres = CoInitializeEx(0, CO

SVN 단축키 설정 [내부링크]

1. Window > Customize Perspective... 메뉴를 선택한 후, Commad Groups Availability 탭을 선택하여 Available comand gruops 에서 SVN 항목을 체크 2. Window > Preferences > Keys 로 이동 후 Binding에서 commit, update의 단축키 설정

log4j java 설정 [내부링크]

1. web.xml에 아래 코드 추가 <servlet> <servlet-name>ServletContextListenerImpl</servlet-name> <servlet-class>Servlet.listener.ServletContextListenerImpl</servlet-class> <load-on-startup>0</load-on-startup> </servlet> 2. java class 추가 package Servlet.listener; import java.io.File; import java.util.StringTokenizer; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import org.apache.log4j.ConsoleAppender; import org.apache.log4j.DailyRollingFileAppender; import org.apache.log4j

[svn] 이클립스(eclipse)에서 특정 폴더 및 파일을 버전관리 대상에서 제외하는 방법 [내부링크]

class, classpath와 같은 파일들은 각 서버나 PC의 환경이 모두 다르기 때문에 버전관리를 하지 않아도 됩니다. 이 경우 이클립스에서 버전관리에서 제외하는 방법은 아래와 같습니다. 1. Window > Preferences 메뉴로 이동 2. Team > Ignored Resources 로 이동 3. Add Pattern 버튼을 클릭하여 아래와 같은 패턴 등록 - */classes - */classes/** 출처 : http://zzznara2.tistory.com/694 [Svn] 이클립스(eclipse)에서 특정 폴더 및 파일 버전관리 대상에서 제외하는 방법 컴파일되는 폴더나 파일들... .classpath 같은 파일들은 각 서버나 PC의 환경이 모두 다르기 때문에 굳이 버전관리를 하지 않아도 됩니다. 이런 경우, 이클립스에서 어떻게 버전관리에서 제외하는지 알아보겠습니다. classes 폴더 및 그 하위 폴더 및 파일들을 모두 제외하려면... */classes */cla

jquery stringify [내부링크]

jQuery.extend({ stringify : function stringify(obj) { // if ("JSON" in window) { // return JSON.stringify(obj); // } var t = typeof (obj); if (t != "object" || obj === null) { // simple data type if (t == "string") obj = '"' + obj + '"'; return String(obj); } else { // recurse array or object var n, v, json = [], arr = (obj && obj.constructor == Array); for (n in obj) { v = obj[n]; t = typeof(v); if (obj.hasOwnProperty(n)) { if(null === v || undefined === v) { v = ""; } if (t == "string") { v =

svn에 폴더내의 전체 파일이 아닌 일부 파일만 관리 [내부링크]

1. svn 저장소에 폴더를 추가 2. 관리할 최상위 폴더에서 마우스 오른쪽 클릭 후 SVN checkout 클릭 3. 나타나는 팝업에서 관리할 파일만 선택 4. OK 클릭 5. 다시 폴더에서 마우스 오른쪽 클릭하여 commit

[nsis] tomcat service java option 변경 - java utf-8 [내부링크]

tomcat 옵션에 -Dfile.encoding=utf8 을 등록해야 하는 상황이됨. //US//Tomcat7 ++JvmOption 을 이용하면 추가되지만, 패키지를 지웠다 다시 깔 때마다 utf이 계속 추가되는 상황 발생 --JvmOptions는 기존에 있던 옵션을 모두 지우고 하나만 남겨두는 옵션이라 사용 불가 최종적으로 -- 옵션을 이용하여 모두 삭제 한 뒤 기존 옵션을 추가하고 utf8로 추가하도록 함. ExecWait '"$StrWasDbSetupDir\Tomcat\bin\Tomcat7.exe" //US//Tomcat7 --JvmOptions=-Dcatalina.home="$StrWasDbSetupDir\Tomcat"' ExecWait '"$StrWasDbSetupDir\Tomcat\bin\Tomcat7.exe" //US//Tomcat7 ++JvmOptions=-Dcatalina.base="$StrWasDbSetupDir\Tomcat"' ExecWait '"$StrWasDb

자바스크립트 확인창 무시하기 : 지금 보고 있는 웹 페이지에서 창을 닫으려고 합니다. 이 창을 닫으시겠습니까? [내부링크]

보통 윈도우 창을 닫을 때 보통 window.self.close(); 를 사용하는데 이 경우 IE 버전에 따라 '지금 보고 있는 웹 페이지에서 창을 닫으려고 합니다. 이 창을 닫으시겠습니까?' 이런 alert 창이 뜬다. 이 창을 안보이게 하기 위해 검색을 해보니 window.open('about:blank', '_self').close(); 를 하면 된다고 되어있는데 특정 상황에서 문제가 발생. window.open('about:blank', '_self'); opener=window; window.close(); 이렇게 하면 된다.

DB(sql)를 읽어서 apache spark에 밀어넣기 [내부링크]

DB(sql)를 읽어서 apache spark에 밀어넣기 [참조] - https://github.com/sujee81/SparkApps/commit/84c1192aedb5745ca85c3542298a56ecce74d83d Load DB data into Spark Dataset with Spark v2.0.0 · sujee81/SparkApps@84c1192 github.com * 참고사항 위 URL에서는 [code] private static final SparkSession sparkSession = SparkSession.builder().master("local[*]").appName("Spark2JdbcDs").getOrCreate(); [/code] 위와 같이 되어있는데 이 경우 java.net.URISyntaxException 오류 발생 1. JAVA [code] package ddd.dddd; import java.util.List; import java.util.Pr

ResultSet to JSON [내부링크]

출처 : http://stackoverflow.com/questions/18960446/how-to-convert-a-java-resultset-into-json How to convert a Java resultset into JSON? I have a resultset as a result of a MySQL query using the JDBC connector. So my job is to convert the resultset into a JSON format. So that I can send it to the clientside as a AJAX response. Can s... stackoverflow.com Apache-DBUtils,Gson 사용 [code] public static String resultSetToJson(Connection connection, String query) { List<Map<String, Object>> listOfMaps = nu

SYS_CONNECT_BY_PATH mysql ( tree 구조의 계층 표시 ) [내부링크]

[code] CREATE DEFINER=`prcsadmin`@`%` FUNCTION `menu_sys_connect_by_path`( `rootId` VARCHAR (50), `langCode` VARCHAR(3) ) RETURNS varchar(1000) CHARSET utf8 LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE sParentList VARCHAR (1000); DECLARE sParentTemp VARCHAR(1000); DECLARE sParentNameTemp VARCHAR(1000); SET sParentTemp =CAST(rootId AS CHAR); WHILE sParentTemp IS NOT NULL DO IF (sParentList IS NOT NULL) THEN SET sParentList = CONCAT(sParentNameTemp,' >

[javascript] 오늘 하루동안 이 창을 열지 않음 ( 팝업,레이어팝업 ) [내부링크]

1. HTML // (오늘) 하루동안 열지 않기(소스) <div id="div_laypopup" align="center" style="display:none;border-width:0px;Z-INDEX: 201; POSITION: absolute;left:528px; top:640px;"> <input type="checkbox" name="close" value="OK" onclick="javascript:closeWin('div_laypopup', 1);"/>하루동안 이 창을 열지 않음 <!-- <input type="checkbox" name="close" value="OK" onclick="javascript:closeWinAt00('div_laypopup', 1);"/>오늘만 이 창을 열지 않음 --> </div> <script type="text/javascript"> <!-- openWin('div_laypopup'); --> 2. javascript <script l

Convert a binary to decimal using MySQL [내부링크]

CONV(BINARY(CONCAT(setting1, setting2)), 2, 10) oracle = bin_to_num

oracle -> mariadb(mysql) conversion [내부링크]

DECODE(#SESSION_LANG#,'','KO',#SESSION_LANG#) -> IFNULL(#SESSION_LANG#,'KO')

eclipse에서 server log ( tomcat log )를 저장하는 방법 [내부링크]

1. 서버를 더블클릭 2. "Open launch configuration"을 클릭 3. "Common" 탭을 클릭 4. "File"을 체크하고 경로 및 파일명 지정 5. 서버 재시작

체크박스(checkbox)와 텍스트(text)의 높이 조정하기 ( 라벨(label)을 사용할 경우 ) [내부링크]

체크박스와 라벨을 같이 사용할 경우 높이가 맞지 않는 경우가 발생할 수 있다. 이 경우 checkbox의 스타일을 아래와 같이 하면 된다. position: relative; top: 1px; /* top의 높이는 유동적으로 조절 */

공유(cifs, smbfs)를 외부망에서 사용 ( 139, 445 port ) [작성중] [내부링크]

윈도우의 파일 공유는 NETBIOS 기반으로 제작되었지만, CIFS가 되면서 TCP/IP기반으로 변경 되었습니다. 즉, 내부망이 아닌 외부망에서 자유롭게 사용 가능합니다. 하지만, 보안에 취약하기 때문에 인터넷 업체들이 139, 445 port를 차단했습니다. ( \\8.8.8.8 과 같이 역슬레시 2개로 접근 하는 방법이 차단되었습니다. ) 또한 윈도우의 파일 공유는 포트를 변경 할 수 없고, 변경된 포트로 접근할 수도 없습니다. 따라서 rinetd를 이용하여 포트를 리다이렉트 시켜서 사용합니다. 1. 사용하는 프로그램 - rinetd : https://boutell.com/rinetd/ - 리눅스용, 윈도우용 모두 존재 - hiddenstart : http://www.ntwind.com/software/utilities/hstart.html - rinetd의 콘솔창을 안보이게 하는 용도로 사용. 2. 사용법 ( 클라이언트 ) 2.1 loopback 어뎁터 등록 2.1.1 UI로

java - network drive connect ( 네트워크 드라이브 연결 ) [내부링크]

[code] NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "[윈도우계정ID]", "[윈도우계정 비밀번호]"); String path = "smb://8.8.8.8/[네트워크이름]/public/개인정보출력테스트.txt"; String copyPath = "smb://8.8.8.8/[네트워크이름]/public/111111111122222223333333333333.txt"; SmbFile sFile = null; SmbFile sDestFile = null; try { sFile = new SmbFile(path, auth); sDestFile = new SmbFile(copyPath, auth); sFile.copyTo(sDestFile); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally {

mysql 날짜검색시 between 안에 포함되는 날짜전체 출력 [내부링크]

select a.Date from ( select curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b cross

windows NetBIOS over TCP/IP 사용 안함으로 변경 [내부링크]

1. 사용안함으로 변경 wmic nicconfig where Description="Microsoft Loopback Adapter" call SetTcpipNetbios 2 2. 값 확인 wmic nicconfig get caption,index,TcpipNetbiosOptions 3. value The SetTcpipNetbios parameter can have this value: 0 – Use NetBIOS setting from the DHCP server 1 – Enable NetBIOS over TCP/IP 2 – Disable NetBIOS over TCP/IP

windows "LMHost 조회가능" 체크/체크해제 [내부링크]

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters 의 EnableLMHOSTS의 값을 변경한다. 1 : 체크 0 : 체크해제 * 이 옵션을 사용할 경우 모두 드라이브에 값이 변경된다.

Windows 방화벽: 로컬 포트 예외 허용 [내부링크]

지원: Windows XP Professional SP2 이상 Registry Hive HKEY_LOCAL_MACHINE Registry Path SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile\GloballyOpenPorts Value Name AllowUserPrefMerge Value Type REG_DWORD Enabled Value 1 Disabled Value 0

[windows] cmd에서 ip 변경 [내부링크]

wmic nicconfig where Description="Microsoft Loopback Adapter" call enablestatic (10.0.0.1),(255.255.255.0) wmic nicconfig where Description="Microsoft Loopback Adapter" call setgateways(10.0.0.254) description 확인 -> wmic nicconfig get description

Axis2로 Web Service 만들기 (spring + maven + axis2 ( soap )) [내부링크]

[환경] JAVA 8 ( jdk 1.8.0_131 ) Tomcat 8.0.44 1. pom.xml 설정 <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2</artifactId> <version>1.6.2</version> <type>pom</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.axis2</groupId> <artifactId>axis2-jaxbri</artifactId> <version>1.6.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <type>jar</type> <scope>test</scope> </dependency> <dependency>

JAVA SOAP ( AXIS2 ) [내부링크]

1. 환경 - jdk1.8 - tomcat 8 - eclipse 2. Server 2.1 이클립스 환경 설정 2.1.1 axis2 다운로드 - 아래의 주소에 접속하여 Binary 버전 다운로드하고 압축해제 한다. - http://axis.apache.org/axis2/java/core/download.cgi - org.apache.axis2.eclipse.codegen.plugin_1.7.5.jar를 다운받아서 eclipse\dropins 폴더에 넣는다. - jsr311-api-1.1.1.jar를 lib 폴더에 넣는다. - xmlschema-core-2.2.1.jar를 lib 폴더에 넣는다. 2.1.2 이클립스 환경 설정 - [Window - Preferences - Web Services - Axis2 Preferences] 메뉴에서 Axis2 runtime location에 압축 해제한 경로를 지정한다. - 경로 지정 후 Axis2 runtime loaded successful

DB key값이 무조건 대문자로 return 될 때 해결 방법 [내부링크]

CaseInsensitiveMap (Apache Commons Collections 4.1 API) 으로 리턴

윈도우 공유 폴더 설정하기 [내부링크]

net share 명령어 ============================================================== 1. 명령어 net share 공유명=공유위치 /grant:유저명,권한 ex) net share DHubDrive="C:\Dhub" /grant:kim,full /grant:hong,change 2. 권한종류 read, change, full 3. 공유 삭제 net share 공유명 /delete 4. net share /? NET SHARE sharename sharename=drive:path [/GRANT:user,[READ | CHANGE | FULL]] [/USERS:number | /UNLIMITED] [/REMARK:"text"] [/CACHE:Manual | Documents| Programs | BranchCache | None ] sharename [/USERS:number | /UNLIMITED] [/REMARK:"text"]

윈도우 공유 폴더 접근 권한 설정 [내부링크]

net use 공유폴더이름 /user:접근허용계정 계정의비밀번호 ex) net use DHubDrive /user:hong pw1234

NSIS에서 Loopback adapter 설치 [내부링크]

1. devcon 다운로드 - https://developer.microsoft.com/ko-kr/windows/hardware/windows-driver-kit WDK(Windows 드라이버 키트) 및 관련 도구 다운로드 – Windows 10 하드웨어 개발자 센터 Windows 10, Visual Studio 및 WDK 시작 Visual Studio 2015 및 WDK 10을 함께 사용하면 Windows 10이 실행되는 디바이스에 효율적인 고품질 드라이버를 만들 수 있는 통합 개발 환경이 구현됩니다. Visual Studio에는 Visual Studio Tools for Windows 10 및 Windows 10용 Microsoft Windows SDK(소프트웨어 개발 키트)가 포함되어 있습니다. 도구를 설치하고 Windows 드라이버를 빌드, 테스트, 디버그 및 배포하세요. 드라이버 개발의... developer.microsoft.com 2. nsis에서 설치 명령어 ; 설치

NSIS 시작 프로그램에 등록하기 [내부링크]

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "Display Name" "프로그램 경로" 1. 등록 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "hstart_rinetd" "$INSTDIR\rinetd\hstart_rinetd.bat" 2. 삭제 DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "hstart_rinetd"

NSIS 파일 전체 복사 ( 폴더 복사 ) [내부링크]

; 복사할 destination 폴더 생성 CreateDirectory "$INSTDIR\rinetd" ; destination 폴더 지정 SetOutPath "$INSTDIR\rinetd" ; source 폴더 지정 File /nonfatal /a /r ".\Resources\rinetd\"

모바일 웹 개발 방법 [내부링크]

1.viewport를 이용한 모바일 해상도 조절 -viewport 구조를 잘 알아두면 상황에 맞게 잘 활용할 수 있습니다. -요즘은 안드로이드, iOS 모두 viewport를 지원하지만 렌더링 클라이언트 중에는 지원하지 않는 경우가 있을 수 있는데 이 경우 별도의 메타 태그를 통해 보완해 주면 됩니다. <meta name=”HandheldFriendly” content=”true”> <meta name=”MobileOptimized” content=”720”> 1.1.viewport 태그의 기본 구조 <meta name=”viewport” content=”user-scalable=no, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0”/> 위의 태그는 확대/축소를 하지 못하도록 만들어 놓은 태그로 모바일 페이지에 적용 된 예시 입니다. 1.1.1.width=device-width -컨텐츠를 디바이

WINDOWS RUN AS ADMINISTRATOR로 실행한 프로그램에서 네트워크 드라이브 사용할 수 었을 때 [내부링크]

http://technet.microsoft.com/en-us/library/ee844140(v=ws.10).aspx * 증상: 윈도즈에서 권한상승(UAC)를 사용해 관리자 권한으로 실행한 컴퓨터에서 네트워크 드라이브를 사용하지 못하는 경우가 있다. * 이유: 네트워크 드라이브의 억세스 권한을 획득할 때 사용한 사용자 세션 정보는 UAC로 관리자 권한을 획득해 실행되는 프로세스의 사용자 정보와 같지 않기 때문에, 네트워크 드라이브를 사용할 수 없다. * 해결방법: 1. regedit을 실행 2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 를 찾음 3. DWORD키를 만들되 다음과 같이 함. * 이름 = EnableLinkedConnections * 값 = 1 4. 리부팅

logback 설정 [내부링크]

<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <Pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%logger{0}-%M] - %msg%n</Pattern> </encoder> </appender> <!-- <appender name="FILELOG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_DIR}/SafeGuardDoclog.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_DIR}/SafeGuardDoclog_%d{yyyy-MM

windows tomcat에서 tomcat 메모리 확보 방법 [내부링크]

1. UI 버전의 경우 Java 탭의 Java Options에 아래와 같이 추가 -Xms40m -Xmx512m -XX:MaxPermSize=256M -XX:MaxPermSize=256m 2. UI 버전이 아닐 경우 set CATALINA_OPTS=-server -Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m

XP용 IE 8 다운로드 주소 [내부링크]

http://download.microsoft.com/download/B/B/0/BB0A25CB-C624-4DC7-8451-20C04D87D6A0/IE8-WindowsXP-x86-KOR.exe <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script>

명령어로 tomcat의 memory pool 변경 [내부링크]

tomcat7 //US//tomcat7 --JvmMs 512 --JvmMx 2048 JvmMs : 초기 메모리 ( Initial memory pool ) JvmMx : 최대 메모리 ( Maximum memory pool ) 단위 : MB <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script>

무료 아웃룩 프로그램 ( ms outlook 대체 ) [내부링크]

모질라에서 무료 아웃룩을 제공한다. 1. URL https://www.mozilla.org/ko/thunderbird/ Thunderbird — 메일을 더 쉽게 사용하세요 Thunderbird는 메일을 더 쉽게 사용할 수 있는 무료 프로그램입니다. 더 많은 기능을 만나보세요! www.mozilla.org

sitemesh3 [내부링크]

sitemesh를 써보려고 했는데 계속 없는 URL이라고 에러가 나서 검색해 보니 sitemesh3이 나온것을 발견 http://wiki.sitemesh.org/wiki/display/sitemesh3/Getting+Started+with+SiteMesh+3 Getting Started with SiteMesh 3 - SiteMesh 3 - Confluence Introduction This tutorial is a quick introduction to using SiteMesh3 in a web-application. It covers: A high level overview of how SiteMesh3 works Installation and configuration Building and applying a simple decorator It is recommend you read the high level SiteMesh 3 Overview before this tutor

jqGrid에서 Cannot read property 'safari' of undefined 에러 발생 시 [내부링크]

jqGrid의 하위 버전을 쓸 경우 jqGrid에서 $.browser를 사용하는데, $.browser는 jQuery 1.9에서 삭제됨. 따라서 jquery-migrate를 추가함 아래는 jquery 1.x를 사용할 경우이고 jquery 2.x나 jquery 3.x를 사용할 경우 높은 버전의 migrate를 받아야 함. https://github.com/jquery/jquery-migrate/tree/1.x-stable#readme jquery/jquery-migrate jquery-migrate - APIs and features removed from jQuery core github.com

[Eclipse] 유용한 이클립스 단축키 [내부링크]

1. Ctrl + Shift + L : 이클립스 전체 단축키를 볼 수 있다. 2. Ctrl + F11 : 최근 실행한 Run 실행 3. Ctrl + D : 줄 삭제 4. Alt + ↑ , Alt + ↓ : 줄 위치 바꿈 5. Ctrl + Shift + O : 사용하지 않는 import 삭제, 필요한 import 추가 6. Ctrl + H : 검색 창을 open 7. Ctrl + F : 찾기/바꾸기 창을 open 8. Ctrl + L : 입력한 라인의 줄로 이동 9. Ctrl + Page Up , Ctrl + Page Down : 코드 편집 창에 여러 개의 창이 띄워져 있을 경우 좌/우 창 이동 10. Ctrl + F6 : 현재 띄워져 있는 파일간 이동 11. Ctrl + F7 : 뷰간 이동 ( 네비게이션 ) 12. Ctrl + W : 에디터 창 닫기 13. Ctrl + Shift + W : 열려있는 모든 에디터 창 닫기 14. Alt + Shift + A : 에디터모드, 다량의 데이

byte로 데이터를 주고 받는 방법 ( java read byte ) - 작성중 [내부링크]

1. byte 파일 읽기 FileInputStream in = null; BufferedInputStream bis = null; try { in = new FileInputStream(new File("C:\\SeqID")); bis = new BufferedInputStream(in); int len = 0; while ((len = bis.read(buffer)) >= 0) { ByteBuffer bb = ByteBuffer.wrap(buffer); bb.order(ByteOrder.LITTLE_ENDIAN); String orgFilePath = ByteUtil.getString(bb, (orgFilePathSize * 2)); int eventType = ByteUtil.getInt(bb); } catch (Exception e) { e.printStackTrace(); } finally { try { bis.close(); in.close(); } catch (IOExce

[chartjs] height 변경 [내부링크]

1. 옵션에 maintainAspectRatio: false를 설정 options: { maintainAspectRatio: false } 2. 높이 변경 var ctx = document.getElementById(chartId).getContext("2d"); ctx.height = 150; 또는 <div id="chartContainer" style="width: 730px; height: 150px; display: inline-block;"> <canvas id="chart-area" ></canvas> </div> <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script>

[chartjs] Axes의 step ( 증가값 ) 변경 [내부링크]

xAxes: [{ display: true, ticks: { suggestedMin: 0, // minimum will be 0, unless there is a lower value. // OR // stepSize:1, // 1씩 증가 //min:0, max:100, beginAtZero: true // minimum value will be 0. } }]

[chartjs] line chart의 선을 직선으로 변경 [내부링크]

data: { datasets: [{ label: 'aaaa', data: data, backgroundColor: window.chartColors.red, borderColor: window.chartColors.red, fill: false, lineTension: 0 }], labels: labels, }, * lineTension의 값을 0으로 설정

[chartjs] chartjs 사용하기 [내부링크]

1. chartjs란? 1.1 License : MIT license. 1.2 공식 홈페이지 : http://www.chartjs.org/ Chart.js | Open source HTML5 Charts for your website Open source Chart.js is a community maintained project, contributions welcome! 8 Chart types Visualize your data in 8 different ways; each of them animated and customisable. HTML5 Canvas Great rendering performance across all modern browsers (IE9+). Responsive Redraws charts on window resize for per... www.chartjs.org 1.3 Github 주소 : https://github.com/chartjs/Chart.

[JAVA] 시간 표시 할 때 오전/오후 표시하기 [내부링크]

String format = "yyyy-MM-dd aa hh:mm:ss"; Calendar today = Calendar.getInstance(); SimpleDateFormat type = new SimpleDateFormat(format); return type.format(today.getTime()); * aa가 오전/오후를 나타냄

[mariaDB, MySQL] DB 연결 속도저하 해결 방법 [내부링크]

localhost 로 접속하는 경우는 문제가 없지만 IP 로 접속하는 경우에는 DNS 서버의 성능이 떨어지거나 장애가 있는 경우에 DB 연결 시 속도저하가 발생할 수 있습니다. 이 경우 skip-name-resolve를 설정함으로써 DB 접속시에 문제점을 해결할 수 있습니다. 이 옵션은 client 에서 server로 접속시에 DNS Lookup 과정을 생략해 줍니다. 1. my.cnf ( 또는 my.ini ) 에 설정 [mysqld] skip-name-resolve 2. 또는 hosts 파일에 접속 IP와 호스트명을 넣어줍니다. mysql에서 접속시 ip에 대한 resolving(역질의)를 합니다. 하지만, 대부분의 IP는 등록되어 있지 않으며, DNS가 느리다면 이 부분은 더욱 심각한 속도 문제가 발생합니다. 1번은 역질의를 하지 않게 하는 방법이고 2번은 hosts파일에서 질의 하게 하는 방법입니다. 출처 : http://blog.naver.com/leolo/7002168744

google map api 연동 [내부링크]

1. API KEY 발급 1.1 https://developers.google.com/maps/ 주소로 이동 1.2 "시작하기" 버튼 클릭 1.3 본인이 사용할 API 찾기 ( javascript의 경우 - Google Maps JavaScript API ) 1.4 "키 가져오기" 클릭 - 만약 미리 생성해 놓은 키가 없다면 키를 생성해야 한다. - https://console.developers.google.com/apis 주소로 이동 - 사용자 인증 정보 메뉴로 이동 - 사용자 인증정보 만들기 -> API 키 2. google map 구현 <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=구글 API 키"></script> function initialize(x, y) { var myLatlng = new google.maps.LatLng(x, y); // 위도, 경도 var myOptio

IE 익스플로러 파일 다운로드 한글 깨짐 [내부링크]

private String getDisposition(String filename, String browser) throws Exception { String dispositionPrefix = "attachment;filename="; String encodedFilename = null; if (browser.equals("MSIE") || browser.equals("Trident")) { /* IE11부터 식별문자가 MSIE에서 Trident로 변경됨. */ encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20") + ";"; } else if (browser.equals("Firefox")) { encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; } else if (browser.equals("O

server.xml의 connector 설정 [내부링크]

속성 설명 port 포트번호 protocol 프로토콜명(HTTP/1.1, AJP/1.3 ...) acceptCount Request 큐의 길이를 설정한다. HTTP 요청시 IDLE 스레드가 없을 경우 해당 값만큼 요청을 대기한다. 대기 큐에 들어간다는 것은 처리 가능한 스레드가 없다는 의미이며, 기능장애 가능성이 높다. 따라서 대기 큐에 쌓이도록 하는 것보다 0~10 내외로 값을 낮게 주어 처리하도록 한다. rediretPort SSL 요청이 들어올 경우 redirect될 포트 번호 URIEncoding GET 요청을 처리 할 때 사용할 인코딩 방식을 설정한다. 톰캣의 default값은 ISO-8859-1인데, 한글 사용을 하려면 UTF-8로 변경해야 한다. useBodyEncodingForURI true/false 이 값은 request.setCharacterEncoding()으로 설정한 값으로 인코딩을 처리한다. 스프링 프레임워크를 사용할 경우 web.xml에서 Character

[tomcat] 톰캣 재시작 시 Caused by: java.lang.NoClassDefFoundError: Lorg/apache/ibatis/session/SqlSessionFactory; 오류 발생 [내부링크]

org.apache.catalina.core.ContainerBase startInternal 심각: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:188) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123) at org.apache.catalina.co

[jquery] resize 끝날 때 한번만 이벤트 실행 [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 우선 resize 에 resizeEnd 를 trigger 등록 $(window).resize(function() { if(this.resizeTO) { clearTimeout(this.resizeTO); } this.resizeTO = setTimeout(function() { $(this).trigger('resizeEnd'); }, 500); }); // 그런 후 아래처럼 event 에 bind 시켜서 사용 $(window).on('resizeEnd', function() { // 실행 코드 들어가는 곳 }); Colored by Color Scripter cs

SXSSFWorkbook out of memory [내부링크]

SXSSFWorkbook 를 사용하여 엑셀을 만드는 도중 메모리 초과 현상 발생. 메모리가 2.1G까지 올라가는 현상이 발생하여 해결방법을 찾아보았다. [해결방법] 1. 생성 할 때 row를 입력 Workbook wb = new SXSSFWorkbook(100); // 100개의 행만 메모리에 유지하고 초과되는 행은 파일에 기록 * dispose 함수는 임시 파일을 삭제하는 함수.

[JSP] 대용량 파일 다운로드 [내부링크]

request.setCharacterEncoding("UTF-8"); // 서버에 실제 저장된 파일명 String exportFolderPath = request.getParameter("exportFolderPath"); String filename = request.getParameter("exportFileName"); // 실제 내보낼 파일명 String orgfilename = request.getParameter("orgFileName"); InputStream in = null; OutputStream os = null; File file = null; boolean skip = false; String client = ""; try { // 파일을 읽어 스트림에 담기 try { file = new File(exportFolderPath + "/" + filename); in = new FileInputStream(file); } catch (FileNotFoundExc

[windows nginx + tomcat] remote_addr (client IP)를 얻는 방법 [내부링크]

[출처] https://www.lesstif.com/pages/viewpage.action?pageId=20775886 http://rocksea.tistory.com/68 [ nginx + tomcat ] reverse proxy 연동하기 ( windows ver. ) 회사에 로컬 개발환경 셋팅을 위한 자료 배포 차원으로 windows 에서의 ngix + tomcat 환경 구성 하기 포스팅을 써보려 합니다. 개발환경 OS : Windows7 nginx : 1.2.2 tomcat : 7 step 1. nginx download nginx의 설치는 다운로드 후 압축만 풀면 끝이기 때문에 따로 설치는 없습니다. Download URL : http://www.nginx.org/en/download.html [ 그림 1 ] nginx download step 2. 압축해제 다운받은 nginx-1.2.2.... rocksea.tistory.com XFF는 HTTP Header 중 하나로 HT

java object to map [내부링크]

import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; public static Map<String, Object> introspect(Object obj) throws Exception { Map<String, Object> result = new HashMap<String, Object>(); BeanInfo info = Introspector.getBeanInfo(obj.getClass()); for (PropertyDescriptor pd : info.getPropertyDescriptors()) { Method reader = pd.getReadMethod(); if (reader != null) { result.

IE8 호환성보기 [내부링크]

출처 : http://webdir.tistory.com/38 X-UA-Compatible, IE=edge, 호환성 보기 Internet Explorer 8 버전이 등장하면서 새로운 기능 한 가지를 추가했습니다. 바로 호환성 보기 버튼인데, 이미 주소 표시줄 옆에 있는 종이 모양의 아이콘을 눌러 보신 분도 계실꺼라 생각합니다. 호환성 보기의 이해 호환성 보기 버튼은 IE8이 웹페이지에 접근했을때, 어떤 렌더링 엔진을 사용할 것인지를 선택하게 하는 용도의 버튼입니다. 웹 개발자 및 디자이너 분들은 구형 IE 브라우저에서 표준에 맞지 않는 수많은 오.. webdir.tistory.com 1. 호환성보기 호환성보기 버튼은 IE8로 웹 페이지를 볼 때, 어떤 렌더링 엔진을 사용할 것인지를 선택하게 하는 용도의 버튼입니다. 여기서 문제는, 호환성보기는 IE6이나 IE7을 기준으로 제작된 웹 페이지를 볼 수 있게 해주는 역할을 하기 때문에 IE8 이상에서 제작된 웹 페이지의 경우 반대로 화면이

[jQuery] 회전한 객체 0, 0 위치 맞춤 [내부링크]

이미지를 회전하면 위치가 이상하게 변하는데 이 경우 이미지의 position이 이상해 진다. 이때 jQuery를 사용해서 위치를 깔끔하게 정리 할 수 있다. 1. HTML <div id="imageMain"> <img src="image/aaa.png" name="img_viewImage"/> </div> 2. javascript $("img[name=img_viewImage]").position({ my:'left top', at:'left top', of:'#imageMain' }); * 회전 plugin http://jqueryrotate.com/

[javascript] JSON.stringify가 IE8에서 동작하지 않을 경우 해결방법 [내부링크]

JSON.stringify를 IE8에서 사용하려고 한다면 "호환성 모드"에서 동작하지 않아야 한다. 따라서 아래의 메타태크를 추가 <meta http-equiv="X-UA-Compatible" content="IE=8" /> * 호환성보기를 안쓰는 것이 중요하기 때문에 content의 값은 IE=10이 되어도 된다.

IE8에서 사용 가능한 chart [내부링크]

1. jqPlot 2. flot chart [참고사항] 1. chartjs는 1.x 버전까지만 IE8을 지원 - 애니메이션 효과를 사용하지 않아야 함. - tooltip 처리가 될때 깜빡임현상 발생

[스크랩] n년블로그 - 구글 크롬 버전업후 화면커짐 해상도 문제해결 [내부링크]

[출처] https://m.blog.naver.com/PostView.nhn?blogId=ahnsj1&logNo=220859735496&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F [스크랩] n년블로그 - 구글 크롬 버전업후 화면커짐 해상도 문제해결 고마우신 엔백님^^의 블로그에서 해결책을 찾아 공유합니다.구글 크롬 바로가기의 속성창에서 대상경로의 ... m.blog.naver.com 구글 크롬 바로가기의 속성창에서 대상경로의 뒷부분에 띄어쓰기 한번하고 명령줄 /high-dpi-support=1 /force-device-scale-factor=1 추가하는 방법입니다. 적용후 시스템 다시시작해야 반영됩니다. OS는 win7입니다.

[windows] redmine svn 연동 [내부링크]

1.redmine 설정 1) 레드마인 웹 페이지 접속 2) 관리자 계정으로 로그인 3) [관리 - 설정 - 저장소] 메뉴로 이동하여 설정 4) [프로젝트 - <프로젝트명> - 설정 - 저장소] 메뉴로 이동하여 "저장소 추가" 클릭하고 내용 입력 주 저장소 : 체크 식별자 : 한번 입력되면 수정 불가. 대문자 입력할 수 없음 URL : svn 주소 입력 로그인 : svn 계정 비밀번호 : svn 계정의 비밀번호 5) 등록된 저장소 확인 6) 식별자를 클릭하면 아래와 같이 화면이 바뀌어야 함. 아래 화면이 뜨면 연동 완료 ## 예외상황!!!! 404 항목이나 리비전이 저장소에 존재하지 않습니다 위와 같은 상황 발생시 해결방법 * 주의사항: 반드시 svn서버가 아닌 redmine 서버에서 해야 함 1. svn에서 인증서 가져오기 설정 1) pstools 다운로드 https://technet.microsoft.com/en-us/sysinternals/pstools.aspx 2) 다운로드가

Internet Explorer 11 ( IE11 ) 개발자도구 에러 - Exception in window.onload: Error: An error has occurredJSPlugin.3005 [내부링크]

보안업데이트를 하면 해결됨 http://www.microsoft.com/en-us/download/details.aspx?id=45154 Cumulative Security Update for Internet Explorer 11 for Windows 7 for x64-based Systems (KB3008923) A security issue has been identified in a Microsoft software product that could affect your system. www.microsoft.com

IE ( 인터넷 익스플로러 )에서 홈페이지가 먹통일때 [내부링크]

1. 인터넷 옵션에서 "보안"탭으로 이동 후 "신뢰할 수 있는 사이트"에 등록 2. 인터넷 옵션에서 "보안"탭으로 이동 후 "사용자 지정 수준" 버튼 클릭 후 "active 스크립팅 사용"으로 변경 <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script>

배치파일(bat 파일)을 서비스로 등록하는 방법 [내부링크]

jar 파일을 서비스로 등록하는 방법을 찾던 중 아래와 같이 해서 성공했음 sc create 명령어로 서비스를 등록하면 "서비스를 시작하지 못했습니다: 서비스가 시작이나 제어 요청에 시기 적절하게 응답하지 않았습니다" 라는 오류 메시지가 뜸 [srvany.exe, instsrv.exe + 레지스트리 수정] 이라는 방법이 검색하면 나오는데 이 방법은 윈도우xp나 윈도우2003정도에서만 정상동작하는 것 같음 결국 nssm 사용 nssm 다운로드 : https://nssm.cc/download 1. bat 파일 작성 ( jar.bat ) @ECHO OFF CALL "C:\Program Files\Java\jdk1.7.0_45\bin\java.exe" -jar "jar 파일 경로" 2. nssm 압축 해제 후 cmd창에서 설치 경로로 가서 아래 명령어 실행 nssm install [서비스명] [bat파일 경로] ex) nssm jarService c:\jar\jar.bat

[DHTMLX] getformdata 날짜 포멧 [내부링크]

그냥 getformdata()를 쓰면 return되는 값이 Thu Nov 23 2017 13:47:00 GMT+0900 (대한민국 표준시) 이고 이것을 json으로 변환하면 2017-11-23T04:48:00.000Z 이렇게 되버려서 제대로 된 시간을 알 수 없다. 13:37:00 과 같이 보이는데로의 값을 얻기 위해서는 getformdata(true) 를 사용해야 한다.

windows 정품인증 ( 윈도우 정품인증 ) [내부링크]

윈도우 7 이상에서 사용 가능한 방법 1. 좌측 하단 "프로그램 및 파일검색" cmd을 입력 후 잠시 기다린다. 2. 검색된 프로그램에서 cmd에서 마우스 오른을 클릭 후 "관리자 권한을 실행" 클릭 3. 새로 뜬 창에서 slmgr -rearm 을 입력 후 엔터키를 누른다. 4. 이 때 다시 시작 하라는 팝업창이 나오는데 재부팅을 한다. 만약 "요청된 작업을 수행하려면 상승된 권한이 필요합니다." 라는 메시지가 나온다면 좌측 하단 "프로그램 및 파일 검색" 창에서 5. 단, 이렇게 인증을 받았더라도 Windows 업데이트 항목 중에 KB971033이 활성화 되면 다시 인증이 풀릴 수가 있기 때문에 Windows 업데이트 내역 확인 후 KB971033를 설치 삭제하고 비활성화를 하면 해결된다.

[NSIS] 64bit에서 registry를 제대로 write, read, delete 하지 못할때 [내부링크]

System::Call "kernel32::GetCurrentProcess() i .s" System::Call "kernel32::IsWow64Process(i s, *i .r0)" StrCmp $0 '0' Win32 Win64 Win32: Goto End Win64: SetRegView 64 End: 위 코드와 같이 SetRegView 64 를 해줘야 한다.

javaSoft\Prefs 경로 [내부링크]

HKLM "Software\JavaSoft\Prefs" ( 32bit ) HKLM "Software\Wow6432Node\JavaSoft\Prefs" ( 64bit )

시작프로그램 안뜨게 변경 [내부링크]

1. 실행창에서 msconfig 입력 2. "시스템 구성" 팝업창이 열리는데 여기서 "시작프로그램" 탭으로 이동한다. 3. 사용하지 않을 프로그램을 체크해제 하고 "적용" 버튼 클릭

Spring file download ( 스프링 파일 다운로드 ) [내부링크]

1. context 설정 <bean id="downloadView" class="com.util.DownloadView"/> 2. JAVA view 생성 import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import java.net.URLEncoder; import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.util.FileCopyUtils; import org.springframework.web.servlet.view.AbstractView; public class FileDownloadView extends AbstractView{ public

jQuery Sortable - Select and Drag Multiple List Items [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>jQuery UI Sortable - Connect lists</title> <link rel="stylesheet" href="./jquery-ui-1.12.1.css"> <style> #sortable1, #sor

CentOS sendmail [내부링크]

1. sendmail 명령어 1) sendmail queue 확인 # sendmail -bp 2) queue에 쌓인 메일 강제로 다시 보내기 #sendmail -q -v 3) 로그 확인 # tail -f /var/log/maillog 2. 메일 발송이 안되거나 느릴 경우 확인해야 할 사항 1) # vi /etc/hosts 명령어로 설정 변경 127.0.0.1 localhost.localdomain localhost yourhostname ex) 127.0.0.1 localhost localhost.localdomain localhost localhost.localdomain ::1 localhost localhost.localdomain localhost localhost.localdomain * hostname 확인방법 # hostname * hostname 변경 # hostnamectl set-hostname [변경할 호스트명] 2) # /etc/resolv.conf 를 수정 D

[mysql/mariadb] DB 스케쥴러 [내부링크]

1. 스케쥴 등록 SET GLOBAL event_scheduler = on; SET @@global.event_scheduler = on; SET GLOBAL event_scheduler = 1; SET @@global.event_scheduler = 1; 또는 my.cnf or my.ini 에 옵션(event_scheduler=On)을 추가하고 mysql 을 시작한다. CREATE EVENT [이벤트명] ON SCHEDULE [스케쥴 시간] STARTS [시작시간] /* 선택 */ ENDS [종료시간] /* 선택*/ DO [수행할 쿼리] ex) SET GLOBAL event_scheduler = on; SET @@global.event_scheduler = on; SET GLOBAL event_scheduler = 1; SET @@global.event_scheduler = 1; CREATE EVENT e_doc_stat ON SCHEDULE EVERY 1 day # STARTS

MySQL 쿼리 실시간 모니터링 [내부링크]

1. 로그를 남기도록 DB 설정을 한다. mysql> SET GLOBAL general_log='ON'; mysql> SET GLOBAL slow_query_log='ON'; mysql> SET GLOBAL log_output='TABLE'; 2. 로그를 확인한다. mysql> SELECT * FROM mysql.general_log; <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script>

[jstree] 함수 설명 [내부링크]

1. 선택된 노드의 value를 가져옴 1 var id = $('#' + treeId).jstree('get_selected'); cs 2. 선택된 노드의 text를 가져옴 1 $('#' + treeId).jstree().get_selected(true)[0].text cs 3. 체크된 노드의 id 목록을 가져옴 1 $('#deptTree').jstree(true).get_selected() cs <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script>

[jqgrid] column show/hide [내부링크]

$('#dataGrid').showCol('이름'); $('#dataGrid').hideCol('이름');

[jqgrid] 제목 클릭 시 정렬 [내부링크]

1. column 속성에 sortable: true 추가 colModel:[ {name:'id',index:'id', width:55}, {name:'invdate',index:'invdate', width:90, sortable: true}] 2. java에서 request를 받음 String strPage = request.getParameter("page") == null ? "1" : request.getParameter("page"); // 현재 페이지 String strLimit = request.getParameter("rows") == null ? "10" : request.getParameter("rows"); // 한 페이지 row 수 String strSortColumn = request.getParameter("sidx") == null ? "" : request.getParameter("sidx"); // 정렬 할 컬럼 ID String strSortOrder

JAVA image rotate ( 이미지 회전 ) [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 private static void ro2(int rotate) throws Exception { // byte[] imgbuf2 = getDecript("원본 이미지 경로", ""); // ByteArrayInputStream bais2 = new ByteArrayInputStream(imgbuf2); // BufferedImage oldImage = ImageIO.read(bais2); File orgFile = new File("원본 이미지 경로"); BufferedImage oldImage = ImageIO.read(orgFile); BufferedImage newImage = null; if(180 == rotate) { newImage = new BufferedImage(oldImage.getWidth(),oldImage.getHeig

[CentOS]에서 SSH 로그인이 느린 경우 [내부링크]

CentOS 에서 SSH 로그인이 매우 느린 것은 보안 기능이 강화되었기 때문이다. SSH 서버는 모든 외부에서의 접속에 리버스 DNS(reverse DNS)을 시행하며, 이로 인해 약 13초 정도의 접속 지연이 발생된다. 이를 피하기 위해서는 다음과 같이 수정한다. 1. 설정 파일로 접근 # vi /etc/ssh/sshd_config 2. DNS 사용여부 변경 useDNS yes를 useDNS no로 변경 3. 저장 4. 서비스 재시작 1) centos 6 # service sshd restart 2) centos 7 # systemctl restart sshd.service <script src="chrome-extension://hhojmcideegachlhfgfdhailpfhgknjm/web_accessible_resources/index.js"></script>

[jstree] max_depth [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $('#menuTree').jstree( { 'core' : { 'data' : [ {"parent":"#","id":"MENU_018","text":"MENU1"}, {"parent":"#","id":"MENU_009","text":"MENU2"}, {"parent":"MENU_009","id":"MENU_016","text":"MENU_2_1"}, {"parent":"MENU_009","id":"MENU_015","text":"MENU_2_2"} ] , 'check_callback': true} , 'types': { '#': {'max_depth': 2} }, 'plugins': ['dnd', 'types'] } ); Colored by Color Scripter cs

[jstree] node의 ID로 node data 구하기 ( get node by ID in jstree ) [내부링크]

Spring/JAVA/Web [jstree] node의 ID로 node data 구하기 ( get node by ID in jstree ) 노루궁뎅이 2018. 2. 1. 9:46 이웃추가 본문 기타 기능 var node = $('#treeID').jstree(true).get_node(nodeID);

DB 데이터 존재여부 [내부링크]

1. MySQL information_schema가 하나의 데이터베이스로 관리되고 테이블 정보를 담고 있는 "TABLES" 테이블도 실제적인 자세한 정보를 담고 있습니다. 따라서 아래와 같은 쿼리문으로 데이터 존재여부를 알 수 있습니다. SELECT table_rows FROM information_schema.tables WHERE TABLE_SCHEMA = 스키마명 and TABLE_NAME = 테이블명 2. ORACLE SELECT NUM_ROWS FROM ALL_TABLES WHERE TABLE_NAME = 테이블명;

angular2 에서 tag에 클래스 주는 방법 [내부링크]

<li class="{{val > 0 && val <= 20 ? 'used': '' }}">20</li>

OWASP ZAP 사용방법 [내부링크]

출처 : https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project 1. OWASP ZAP 설치 https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project 접속하여 "Download ZIP" 클릭하여 다운로드 후 설치 2. Firefox 설치 3. Firefox에서 proxy 설정 3.1 [설정] 메뉴 클릭 3.2 네트워크 프록시 설정 버튼 클릭 3.3 프록시 설정 - 수동 프록시 설정 - HTTP 프록시에 값 입력 - "모든 프로토콜에 위의 프록시 설정 사용 - "비밀번호가 저장되어 있으면 인증시 묻지 않기" 체크 4. OWASP ZAP 설정 4.1 [tool > option] 메뉴 클릭 4.2 Local Proxies로 이동하여 FireFox에 입력했던 값과 동일한 값 입력 5. Firefox로 모든 페이지에 접속하여 기능 동작 ( 반드시 Launch Browser 버튼으로

[oracle] COUNT(*) 를 빠르게 하는 방법 [내부링크]

개발을 하다 보면 페이징 처리를 위해 아래와 같이 COUNT(*)를 해야 할 때가 있다. SQL) SELECT COUNT(*) FROM [테이블명] WHERE [조건] 이 경우 전체 테이블을 FULL SCAN 할 수도 있고 INDEX SCAN을 할 수도 있다. 이 경우 데이터가 많을 경우 많은 시간이 걸릴 수 있다. 만약 인덱스를 SCAN하는데 하나의 블록이 아니라 MULTI BLOCK을 SCAN한다면 당연히 SINGLE BLOCK SCAN보다 빠를 것이다. 이 때 사용하는 것이 INDEX FAST SCAN이다. 사용 방법은 아래와 같다. SQL) SELECT /*+ INDEX([테이블명] [인덱스명]) */ COUNT(*) FROM [테이블명] WHERE [조건]; 사용 예 ) SELECT /*+ INDEX(EMP pk_emp */ COUNT(*) FROM EMP where empno > 0; [참고사항] 위 처럼 HINT를 사용해도 HINT를 무시하고 TABLE FULL SCAN

[MySQL] COUNT의 잘못된 인식과 속도 차이 [내부링크]

일반 SQL 질의의 SELECT 절에의 *는 모든 컬럼을 가지고 오기 때문에 필요한 컬럼만 가지고 오는 SELECT 절에 비해 속도가 느리고 불필요한 자원을 낭비한다는 사실은 모두가 알고 있을 것입니다. 그렇기 때문에 이러한 것을 똑같이 생각함으로 인해 집계함수의 COUNT에 대한 COUNT(*) 와 COUNT(컬럼)에 대한 잘못된 인식과 SQL 질의를 실행하여 DB의속도를 느리게 할 수 있는 원인이 될 수 있습니다. 일반 SQL질의와 다르게 COUNT 집계함수에서의 *의 역할은 다른 역할을 수행하고 있습니다. * MySQL COUNT 함수의 역할을 보면 COUNT(*) : 단순 행을 세는 역할을 합니다. (MySQL 내부적으로 데이터를 읽지않고 행의 갯수만 흝고 지나간다는 뜻을 말합니다.) COUNT(컬럼) : 행의 값을 세는 역할을 합니다.(데이터를 읽는다는 뜻이 되겠지요) 자 그럼, 컬럼이 VARCHAR(50) 형태의 데이터가 100만건이 있다는 가정하에 실행계획 및 질의를 실

[Oracle] MView (Materialized Views) [내부링크]

[현상 확인] 1. tab_a와 tab_b 테이블로 view를 생성한다. 1 2 3 4 5 6 create view join_tabs as ( select col_x as col_z from tab_a union select col_y as col_z from tab_b ); Colored by Color Scripter cs 2. view를 select 하면 index를 타지 않고 full scan 한다. 1 select * from join_tabs where col_z = 'BLAH'; cs [해결 방법] --> Materialized Views를 사용한다. Materialized Views란? - 관계형 데이터 베이스에서 view를 가상의 테이블이라고 한다. 따라서 인덱스를 잡을 수 없다. - MVIEW라고 불리는 물리 뷰(구체화 뷰)의 용도는 그룹함수 min, max, sum, avg 등의 값을 미리 만들어 놓을 때 유용하며 user_segments에서 확인 가능하다. -

[oracle] hint 사용법 [내부링크]

힌트의 사용법 {SELECT | INSERT | UPDATE | DELETE} /*+ hint [text] [hint [text]] ... */ 혹은 {SELECT | INSERT | UPDATE | DELETE} --+ hint [text] [hint [text]] ... - 이러한 힌트의 사용은 SQL 전체가 아닌 쓰여진 SQL 블럭에만 적용됩니다. 힌트의 종류 별 분류 Optimization Goals and Approaches ALL_ROWS 혹은 FIRST_ROWS CHOOSE RULE Access Method Hints AND_EQUAL CLUSTER FULL HASH INDEX 혹은 NO_INDEX INDEX_ASC 혹은 INDEX_DESC INDEX_COMBINE INDEX_FFS ROWID Join Order Hints ORDERED STAR Join Operation Hints DRIVING_SITE HASH_SJ, MERGE_SJ 혹은 NL_SJ LEADING U

DB Join의 방식 ( 물리적 Join ) [내부링크]

Join의 종류와 방식 Join의 종류 ( 논리적 Join ) - INNER Join - OUTER Join - CROSS Join - FULL OUTER Join - SELF Join Join의 방식 ( 물리적 Join ) - Nested Loop Join - 중첩반복 - Merge Join - 정렬병합 - Hash Join - 해시매치 Join의 방식 1. 중첩반복(Nested Loops) 조인 바깥 테이블의 처리 범위를 하나씩 액세스하면서 그 추출된 값으로 안쪽 테이블을 조인하는 방식 - 순차적으로 처리된다. - 바깥 테이블과 일치하는 값을 안쪽 테이블에서 찾아야 하므로 안쪽 테이블의 해당 열에 인덱스가 필요하다. - 메모리 사용량은 가장 적다. - 바깥 테이블과 안쪽 테이블의 크기는 성능과 관련이 없다. 특징 순차적인 진행 첫 테이블 필터링 -> 두 테이블간의 연결 -> 최종 운반 단위 산출까지 반복적, 순차적으로 진행됩니다. 선행적 선행 테이블의 처리 범위가 전체 일의 양을

Linux LVM 생성 ( 하드디스크 여러개를 하나로 합쳐 mount를 해야 할 경우 ) [내부링크]

하드디스크를 LVM을 만들 수 있게 파티션 생성 1. fdisk -l 하여 LVM 설정할 하드디스크의 디바이스명을 확인 2. fdisk를 이용하여 LVM 타입으로 파티션을 생성한다. 아래 순서대로 진행한다. ( 연결할 하드디스크의 수만큼 1~10 번을 반복 ) 1) 명령창에 "fdisk /dev/sdf" 입력 2) n 엔터 ( 새 파티션 추가 ) 3) p 엔터 ( primary partition (1-4) ) ( 주 파티션이면 p, 확장 파티션이면 e ) 4) 1 엔터 ( 파티션 넘버 입력 ) 5) 엔터 ( First cylinder 1-1792, default 1: ) 6) 엔터 ( last cylinder ) 7) t 엔터 ( change a partition's system id ) 8) l 엔터 ( type L to list codes ) 9) 8e 엔터 ( linux LVM이 8e 이다 ) 10) w 엔터 ( write table to disk and exit ) 물리 볼륨

svn dump가 안될 경우 [내부링크]

# svnadmin dump [svn경로] > [덤프파일경로] --> svnadmin dump c:\repository\wow > c:\dump\wow.dmp 위 명령어로 dump 할 경우 아래와 같은 메시지가 뜨면서 dump가 안되는 경우가 있다. svnadmin : 예상되는 파일 시스템 포맷 '1'에서 '4'까지의 수입니다. 발견된 포맷 '6' 이 경우 svn --version 명령어를 통해서 svn의 버전을 확인 한 후 db/format을 변경하면 된다. 아래는 format 파일의 설명이다. [번역 - 구글 번역기] format파일에는 Subversion 저장소 형식에 대한 정보가 들어 있으며 db/formatSubversion 저장소 파일 시스템 (FS) 형식에 대한 정보가 들어 있습니다 . 저장소 형식 번호 : ( format ) 형식 0, 1 및 2는 1.0 이전 버전입니다. 형식 3은 1.0에서 1.3까지 현재 버전입니다. 형식 4는 리드에서 1.2까지 잠금 기능을 개발

[oracle] 성능 향상을 위해 로그 기록하지 않기 [내부링크]

1. 아카이브 모드인지 확인 SQL > archive log list; --> database log mode ( 데이터베이스 로그 모드 ) 가 No Archive Mode(아카이브 모드 없음) 인지 확인 2. "Archive Mode" 일 경우 변경방법 2-1. 특정 테이블을 로그를 기록하지 않도록 변경 SQL > ALTER TABLE [테이블명] NOLOGGING; 2-2. No Archive Mode로 변경 2-2-1. INIT.ORA 파일의 parameter 수정 ( 아래 3줄을 주석처리 한다. ) #LOG_ARCHIVE_START = TRUE #LOG_ARCHIVE_DEST = "C:\oracle\ora92\database\archive" #LOG_ARCHIVE_FORMAT = %S.ARC 2-2-2. 아래 단계 수행 -- 데이터베이스 종료 SQL> SHUTDOWN IMMEDIATE -- 데이터베이스 인스턴스를 mount SQL> STARTUP MOUNT pfile=C:\o

파티션테이블 제약사항 [내부링크]

1. 오라클 - EE 이상 버전에서 사용가능 - https://docs.oracle.com/cd/E11882_01/license.112/e47877/editions.htm#DBLIC109 2. MariaDB - pk만 파티션으로 분리 가능 ( 날짜단위로 파티션 테이블을 만들려면 pk에 날짜가 포함되어야 함 ) - 모든 파티션은 동일한 스토리지 엔진 사용 - 테이블과 인덱스를 별도로 파티션 불가(테이블과 인덱스 같이 해야함) - 파티션 된 테이블은 foregin key를 지원불가 - 파티션 된 테이블은 FullText Index를 지원 불가 - 파티션 된 테이블은 Geometry 칼럼 타입 지원 불가 - 한 테이블당 파티션의 개수는 최대 1024개 - Temp Table 은 파티션 사용 불가 - Partition 값은 반드시 정수형 타입 3. MySql - 모든 파티션은 동일한 스토리지 엔진 사용 - 파티션별 다른 엔진을 지정하여도 에러가 발생하지는 않지만 적용되는것은 아니다. - 테

linux 사용자 계정에 root 권한 주는 방법 [내부링크]

1. 사용자 추가 # adduser [계정] ex) # adduser hong 2. password 설정 # passwd [계정] -> 비밀번호 입력 ex) # passwd hong 3. root 권한 주는 방법 usermod -u 0 -o [계정이름] ex) # usermod -u 0 -o dev 4. 이 명령어를 썼을 때 발생하는 현상 # chown dev:dev [폴더명] 명령어를 사용하여 권한을 주면 dev:dev로 변경되는게 아니라 root:dev로 변경됨

RHEL/CentOS 7 에서 방화벽(firewalld) 설정하기 [내부링크]

개요 - RHEL 7 부터는 방화벽을 관리하는 데몬이 firewalld 로 변경되었고 방화벽 설정은 복잡한 iptables 명령어대신 firewall-cmd (콘솔), firewall-config(X-Windows) 명령어를 사용하는 것을 권장합니다. - firewall-cmd 는 iptables 를 쓰기 쉽게 하는 wrapper 이고 복잡한 규칙을 사용할 경우 --direct 옵션으로 iptables 내부에 접근해야 합니다. 설치 # yum install firewalld # systemctl start firewalld # systemctl enable firewalld 설정 기본 설정은 /usr/lib/firewalld/ 에 위치하고 있으며 미리 설정된 zone과 zone 별 허용하는 서비스등은 이 폴더를 보면 확인할 수 있습니다. 시스템 개별 설정은 /etc/firewalld/ 에 위치하며 default zone 등 firewall 의 동작은 /etc/firewalld/fir

[centos 7] vsftpd 설치 [내부링크]

1. 설치 확인 # rpm -qa | grep vsftpd 2. 설치 # yum install -y vsftpd 3. 설정 변경 # vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO chroot_local_user=YES chroot_list_enable=YES pasv_enable=YES pasv_min_port=10000 pasv_max_port=10200 allow_writeable_chroot=YES # vi /etc/vsftpd/chroot_list root 4. ftp가 home 디렉토리를 찾을 수 있도록 변경 # setsebool ftp_home_dir on 혹은 # setsebool tftp_home_dir on 5. vsftpd 시작 # service vsftpd start 6. vsftpd 자동 시작 등록 # chkconfig vsftpd on * 참고 - anonymous_enable=NO -> 익명 유저 로그인을 차단 - chr

[centos 7] mariadb 설치 [내부링크]

1. repo 설정 # vi /etc/yum.repos.d/MariaDB.repo [mariadb] name=MariaDB baseurl=http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 2. 설치 # yum install -y MariaDB-server 3. DB 시작 # systemctl start mariadb 4. UTF8로 설정 변경 # vi /etc/my.cnf.d/clients.cnf [client] default-character-set=utf8 # vi /etc/my.cnf.d/server.cnf [mysqld] collation-server = utf8_general_ci init-connect='SET NAMES utf8' character-set-server = utf8 # vi /etc/my.cnf.d/mysql-clients

[centos 7] tomcat 서비스 등록 및 시작프로그램 등록 [내부링크]

1. /etc/init.d/tomcat 파일 생성 # /etc/init.d/tomcat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #!/bin/bash # chkconfig: 345 50 50 export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64 export PATH=$PATH:$JAVA_HOME/bin export CATALINA_HOME=/usr/local/tomcat export PATH=$PATH:$CATALINA_HOME/bin case "$1" in start) sh $CATALINA_HOME/bin/startup.sh ;; stop) sh $CATALINA_HOME/bin/shutdown.sh ;; restart) sh $CATALINA_HOME/bin/shutdown.sh; su - tomcat -c $CATALINA_HOME/bin/startup.sh ;; *) e

[linux] multi ip ( IP가 여러개 설정되어있는 경우 ) [내부링크]

리눅스 서버에 설정된 IP가 192.168.0.78 인데 특정 상황에서 192.168.0.234 로 패킷이 들어오는 것을 확인. 서버에서 ifconfig를 사용하여 IP를 확인했으나 192.168.0.78만 있는 상황 # ip address 명령어를 이용해서 봤더니 secondary 로 192.168.0.234가 있는 것을 확인

이클립스(eclipse)에 메이븐(maven) 적용 [내부링크]

1. 이클립스 다운로드 ( 여기서는 oxygen ) 1.1) 홈페이지 접속하여 오른쪽 상단의 "다운로드" 버튼 클릭 1.2) 왼쪽 하단에서 "Download Packages" 클릭 1.3) Eclipse IDE for Java EE Developers에서 64bit 클릭 1.4) Select Another Mirror 클릭 1.5) Korea, Republic Of - xxx 클릭 ( 한국이어야 다운로드가 빠름 ) 2. Maven 다운로드 2.1) 메이븐 홈페이지 접속 후 "Download" 링크 클릭 2.2) Binary zip archive에 있는 apache-maven-x.x.x-bin.zip 클릭 3. 정해진 경로에 압축 풀기 4. Maven Repository 변경 기본 Maven Repository는 ${user.home}/.m2/repository 라는 폴더에서 관리한다. 이를 다른 폴더에서 관리하도록 저장소를 로컬로 변경한다. 1) D:\tools\apache-mave

[Spring 3.2.8 + maven + mybatis 3.2.2 + mybatis-spring 1.2.0]hikariCP 사용하기 [내부링크]

hikaricp(히카리 커넥션풀)은 빠른 속도로 인해 점점 더 주목 받고 있는 커넥션 풀입니다. 공식 홈페이지 : https://github.com/brettwooldridge/HikariCP brettwooldridge/HikariCP 光 HikariCP・A solid, high-performance, JDBC connection pool at last. github.com 위 홈페이지 내용을 보면 "현존하는 가장 빠른 커넥션 풀" 이라고 소개하고 있습니다. 또한 안정성도 보장됩니다. boneCP의 경우 히카리로 인해 개발을 중단한다고 써져 있습니다. 설치 및 사용 방법은 아래와 같습니다. 1. pom.xml 설정 ( maven 설정 ) 1) HikariCP 추가 ( 여기서 버전은 JAVA 버전에 맞게 써줘야 합니다. ) 2) mybatis 추가 1 2 3 4 5 6 7 8 9 10 <dependency> <groupId>org.mybatis</groupId> <artifactId

[Spring 3.2.8 + maven] logback 설정하기 [내부링크]

1. logback을 사용해야 하는 이유 Automatic Reloading Configuration file 로깅 레벨 등 설정을 변경하게 되면 Application(WAS)를 다시 시작했어야 했지만 logback 에서는 그럴 필요가 없다. 설정 파일을 변경하면 지정된 시간이 지나게 되면 파일의 변경을 감지하고 다시 읽어 들인다. Graceful Recovery from I/O Failures 기존 log4j에서 FileAppender 를 사용하여 로그를 파일서버에 저장하는 경우, 파일 서버에 문제가 있어 I/O fail이 나면 Application(was)를 재시작 했어야 했지만 logback에서는 파일 서버가 정상으로 돌아오면 에러 상황에서 빠르게 자동으로 복구가 된다. Automatic Compress logback에서는 로그 파일의 자동 압축을 지원하고, 시간(파일의 갯수)이 지난 파일을 자동으로 삭제하는 기능도 제공을 한다. 로그 파일을 거대해서 압축하는데 시간이 오래 걸

[mysql] utf-8 procedure나 function에서 한글 깨짐 문제 [내부링크]

db의 characterSet을 utf-8로 이미 맞춘 상태라면 procedure나 function의 변수에 character set utf8 을 써준다. ex) CREATE FUNCTION foo ( param1 VARCHAR(30) CHARACTER SET utf8 ) RETURNS VARCHAR(30) CHARSET utf8 DETERMISTIC BEGIN DECLARE v_RETURN_VALUE VARCHAR(30) CHARACTER SET utf8 /* some codes here */ RETURN v_RETURN_VALUE; END $$ 출처 : http://dkjoyer.blog.me/220985977188 MYSQL utf8 procedure나 function에서 한글 깨짐문제 MYSQL이나 MARIA DB를 쓰다보니 한글이 까지는 경우가 발생합니다.가장먼저 해야할 일은 mysql... dkjoyer.blog.me

[javascript] 비밀번호 유효성 검사 [내부링크]

비밀번호 규칙 : 8자 이상이어야 하고, 숫자/소문자/대문자/특수문자를 모두 포함해야 한다. 1. 정규식 ^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$ 이 정규식은 다음의 규칙을 적용한다. - 하나 이상의 영문 대문자 (?=.*?[AZ]) - 하나 이상의 영문 소문자 (?=.*?[az]) - 하나 이상의 숫자 (?=.*?[0-9]) - 하나 이상의 특수 문자 (?=.*?[#?!@$%^&*-]) - 최소 길이 8자 .{8,} (앵커 포함) 비밀번호 규칙 : 8자 이상이어야 하고, 숫자/소문자/대문자/특수문자를 모두 포함해야 한다. 2. javascript code 1 2 3 4 5 6 var reg = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/; var password = '123456'; if(false === reg.test(password))

[mssql] sysservers에서 'xxxxx' 서버를 찾을 수 없습니다. sp_addlinkedserver를 실행하여 sysservers에 서버를 추가하십시오. 오류 해결방법 [내부링크]

DB에 youn과 sin 두개의 스키마가 있다. 이 때 youn 스키마의 dept 테이블을 select하기 위해 아래와 같이 쿼리를 했는데 오류가 발생한다. SELECT * FROM youn.dbo.dept; [오류 메시지] sysservers에서 'youn' 서버를 찾을 수 없습니다. sp_addlinkedserver를 실행하여 sysservers에 서버를 추가하십시오. 위 메시지를 볼 때, 스키마도 서버로 인식하는 것 같다. 위 오류를 해결하기 위해서는 Microsoft SQL Server Management Studio에서 아래와 같이 작업을 진행한다. 1) DB 연결 2) 데이터베이스 > 서버개체 > 연결된서버에 접속하려는 스키마명이 있는지 확인 3) 오른쪽 클릭 > 새 연결된 서버 클릭 4) 일반 탭의 연결된 서버에 DB 스키마명 입력 5) 보안 탭에서 로그인의 현재 보안 컨텍스트를 사용하여 연결 선택 후 확인 버튼 클릭 * 참고. 서버IP.dbo.테이블명 과 같이 쿼리 할

[mybatis] Oracle LONG, CLOB Select 시 에러날때 : getCLOB not implemented for class oracle.jdbc.driver.XXX [내부링크]

오라클에서는 Long Type이나 CLOB Type 컬럼을 select 할때 getCLOB() 가 구현되지 않았다면서 에러가 난다. 1. jdbc-context.xml ( spring 설정 파일 ) 에 mybatis-config.xml 추가 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref="dataSource" p:typeAliasesPackage="com.company.name" p:configLocation="/WEB-INF/spring/mybatis-config.xml" p:mapperLocations="classpath*:com/company/name/oracle/*.xml" /> 2. /WEB-INF/spring/mybatis-config.xml 파일 작성 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE config

[oracle] 사용자가 생성한 모든 table, view 삭제 [내부링크]

SELECT 'DROP TABLE ' || object_name || ' CASCADE CONSTRAINTS;' FROM user_objects WHERE object_type = 'TABLE'; 위 쿼리를 해서 나오는 결과를 복사해서 실행

[apache] redirect ( 아파치 리다이렉트 ) [내부링크]

1. conf/httpd.conf에서 아래 주석 해제 Include conf/extra/httpd-vhosts.conf 2. conf/extra/httpd-vhosts.conf 에서 아래와 같이 입력 <VirtualHost *:80> ServerName younjh.com DocumentRoot "[root 경로]" # DocumentRoot "C:/Apache24/htdocs" Redirect / [redirect 시킬 URL] # Redirect / http://192.168.0.212:8081 </VirtualHost>

No grammar constraints (DTD or XML Schema) referenced in the document. [내부링크]

XML에서 No grammar constraints (DTD or XML Schema) referenced in the document. 라는 경고가 발생한다면 DOCTYPE을 추가하면 된다. ex) <!DOCTYPE xml> <!DOCTYPE configuration> 또는 이클립스에서 Window > Preferences > XML > XML Files > Validation > Validating > No Grammer specified에서 옵션을 Ignore로 변경한다.

xml에서 한글 읽기 ( utf-8 ) [내부링크]

1) 에러발생하는 방법 baseFileReader = new FileReader(strBaseXmlPath); InputSource inputSourceSource = new InputSource(baseFileReader); 2) 정상적인 방법 InputSource inputSourceSource = new InputSource(new InputStreamReader(new FileInputStream(strBaseXmlPath), "UTF-8")); 2번과 같이 하지 않으면 Element를 통해 읽어 들일때 end tag를 인식하지 못해 에러난다.

[eclipse] Could not find the main class. Program will exit [내부링크]

1. ANT 홈의 수정 현재 작업중인 이클립스는 예전에 쓰던 PC의 이클립스 환경을 그대로 복사해서 사용하고 있으며, 이런 저런 플러그인이 많이 추가되어 있다. 여러 버전의 jdk, jre 등등 ㅜㅜ 우선은 ANT_HOME을 재설정한다. Window -> Preference -> Ant -> Runtime 으로 찾아 들어가면 Ant home... 이라는 버튼이 오른쪽에 있는데 그것을 누르고 현재 PC에 설치되어 있는 실제 ANT 플러그인 폴더를 선택하여 적용하면 된다. 이렇게해서 해결되었다는 사람들도 많았는데, 나의 경우는 여전히 같은 에러가 발생했다. 그래서 좀 더 찾아보니... ㅜㅜ 2. JAVA compiler 버전의 확인 작업 중인 이클립스 환경에는 고객 요구사항에 적합한 JDK 버전이 다양해서 여러 버전이 설치되어 있다. 현재 사용 중인 JDK 버전을 이클립스의 자바 컴파일러에게 알려줘야 한다... Window -> Preference -> Java -> Compiler 창

이클립스에서 SVN Connector 설치 오류 해결하기 How to install 'SVN Connector' in Eclipse Oxygen 출처: http://4urdev.tistory.com/27 [Simplify] 출처: http://4urdev.tistory.com/27 [Simplify] [내부링크]

최근 Eclipse Oxygen 에서 SVN Connector가 정상적으로 설치되지 않는 현상이 있어, 이에 대한 해결 방법을 공유합니다. 현재 기준 최신 버전에서 발생하는 문제이지만, 향후에도 적용 가능한 해결 방법이고, 그냥 이렇게 설치하는 것도 일종의 방법이므로, 게시합니다. Eclipse에서 일반적으로 SVN Connector 를 설치하는 방법은, 다음과 같습니다. 이클립스를 실행하고 설정(Preference)로 진입합니다. 좌측의 Tree에서 Team > SVN 으로 진입합니다. 우측 영역에서 SVN Connector 탭을 선택하여 SVN Connector를 확인합니다. (이 스크린샷에서 필자의 Eclipse 에는 이미 SVN Connector 가 설치되어 있어서 버튼이 보이지 않습니다) Install SVN Connector 버튼을 이용해서 설치 Dialog에 진입합니다. 위 과정에서 이상하게도, 설치 dialog가 그냥 닫혀버리는 현상이 발생합니다. 아마도 설치 Dial

[Spring] session정보에 사용자가 선택한 언어를 setting [내부링크]

session.setAttribute("org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE", Locale.KOREAN);

[java] properties 설정 파일 사용하기 [내부링크]

1. import import java.io.Reader; import java.util.Properties; import org.apache.ibatis.io.Resources; 2. 실제 코드 // 여기서 실제 경로는 /config/properties/jdbc.properties 인데, config가 build path에 등록되어 있으므로 config를 생략한다. Reader reader = Resources.getResourceAsReader("properties/jdbc.properties"); Properties properties = new Properties(); properties.load(reader); // 화면에 전체 properties를 출력 properties.list(System.out); // 특정 property를 가져온다. properties.getProperty(키값);

[java] 특정값이 배열에 존재하는지 확인하는 방법 [내부링크]

String[] arr = new String[] {"AB","BC","CD","AE"}; String v = "BC"; Arrays.asList(arr).contains(v); # 위 방법은 primitive 타입을 저장하는 배열에서는 사용할 수 없습니다. # 아래와 같이 사용하면 double, long, int 등의 값을 가지는 배열에서 특정 값을 찾을 수 있습니다. int arr = {1,2,3,4}; boolean contains = IntStream.of(arr).anyMatch(x -> x == 4);

[mybatis] JAVA로 config 설정 [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 public static SqlSession getSqlSession(String prefix) throws Exception { SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(createSqlMap(prefix)); SqlSession sqlSession = factory.openSession(false); return sqlSession; } private static InputStream createSqlMap(String prefix) throws Exception { Reader reader = Resources.getResourceAsReader("p

[mybatis] 프로젝트 외부 경로 사용 ( mapper ) [내부링크]

일반적으로 mybatis에서 xml을 mapper하기 위해 아래와 같이 사용한다. <mapper resource="경로"/> 이 경우는 프로젝트 내의 class path를 기본으로 하는 경로이기 때문에 프로젝트 외부를 참조할 수 없다. 프로젝트 외부를 사용하고 싶을 경우 아래와 같이 사용한다. <mapper url="file://경로"/> ex) <mapper url="file:///usr/local/project/mybatis/common.xml"/>

[java] 포트 방화벽 및 리스닝 여부 확인 - port check [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 String errorMsg = "정상입니다."; try { SocketAddress endpoint = new InetSocketAddress("127.0.0.1", 8080) new Socket().connect(endpoint, 3000); } catch(Exception e) { if(e.getMessage().indexOf("connect timed out") > -1) { errorMsg = "connect timed out - 방화벽이 막혀 있습니다."; } else if(e.getMessage().indexOf("Connection refused") > -1) { errorMsg = "Connection refused - port가 리스닝하고 있지 않습니다."; } } Colored by Color Scripter cs

[logback] 외부파일을 이용하여 설정하기 [내부링크]

jar를 export 해서 프로그램을 실행해야 할 때 loback의 설정을 jar 밖으로 분리할 필요가 있다. logback.xml 의 경로를 바꿀 수는 없는 것 같고... 별도의 properties 파일을 만들어서 관리할 수 있다. 1. logback.xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 <?xml version="1.0" encoding="UTF-8"?> <!-- 30초마다 설정 파일의 변경을 확인한다. 파일이 변경되면 다시 로딩한다 --> <configuration scan="true" scanPeriod="30 seconds"> <!-- 외부 설정파일을 사용할 수 있다. --> <property file="/u

[spring] <spring:message> 를 tag의 attribute에 사용하는 방법 [내부링크]

<spring:message code="tooltip.text" var="variable1"/> <input type="text" id="email" name="email" value="${variable1}" />

[javascript] html element의 실제 width [내부링크]

HTML 객체 ( ex. img ) 를 회전(rotate) 했을 때 이미지가 차지하는 영역 ( width, height ) 가 달라지게 된다. 아래와 같이 가로 100, 세로 50의 객체 ( <img src="이미지경로" id="imgTest" width="100" height="50" /> ) 가 있을 때, 회전을 하게 되면 실제 객체의 영역이 변경되게 된다. ( 붉은색 테두리 ) 이 경우 width를 구하기 위해 - document.getElementById("imgTest").width - $("#imgTest").width() - $("#imgTest").outerWidth() 등을 사용하면 원래 객체의 넓이인 100 이 return 된다. var img = document.getElementById('imgTest'); //or however you get a handle to the IMG var width = img.clientWidth; var height = img.

jqgrid getRowData [내부링크]

var rowid = $("#jGrid").jqGrid("getGridParam", "selrow" ); // 선택한 열의 아이디값 var userId = $("#jGrid").jqGrid("getRowData", rowid).userId; // 선택한 열중에서 사업자번호정보를 가져온다.

select에서 ajax 기능을 사용할 경우, 조회된 결과를 마우스로 클릭 했을 때 DB로 한번 더 가는 문제 [내부링크]

1. select2.js에서 아래의 코드를 찾는다. this.$selection.on( 'keyup.search input.search', '.select2-search--inline', function (evt) { * 4.0.3 버전 기준으로 1974 line에 있음. 2. 이 부분에서 self.handleSearch(evt); 를 아래와 같이 변경한다. if(true === evt.originalEvent.isComposing) self.handleSearch(evt);

oracle jdk -> open jdk 로 변경 시 java.lang.ClassNotFoundException: net.sf.json.JSONObject 에러 [내부링크]

<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib-ext-spring</artifactId> <version>1.0.2</version> </dependency> 위 코드를 아래 코드로 변경 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency>

[AnyEdit] 이클립스 플러그인 - 카멜케이스, 대문자, 소문자 변경 [내부링크]

1. AnyEdit 단축키 (1) To Lower Case : Ctrl + Alt + L ex) USER_ID --> user_id (2) To Upper Case : Ctrl + Alt + U ex) user_id --> USER_ID (3) Camel ↔ Underscores : Ctrl + Alt + K ex1) USER_ID --> userId ex2) userId --> user_id 2. AnyEdit 플러그인 설치 방법 (1) 이클립스에서 [Help > Eclipse MarketPlace] 선택 (2) anyedit 입력해서 검색 후 Install 버튼 눌러서 설치 (3) 팝업창에서 'Yes' 버튼을 눌러서 이클립스 재시작 3. AnyEdit 플러그인 수동 설치 방법 (1) 이클립스에서 설치가 되지 않는 경우 아래 URL로 접속하여 이클립스 버전에 맞춰서 다운로드 http://andrei.gmxhome.de/anyedit/links.html (2) 이클립스 설치 폴더 아

[java] VO to map - VO를 map으로 변경하는 방법 [내부링크]

Apache Commons BeanUtils 의 describe() 메소드를 사용한다. ex) 1 2 3 UserVO vo = dao.selectInfo(paramMap); Map<String, String> map = BeanUtils.describe(vo); System.out.println(map.get("userId")); cs

[select2] remote옵션 사용 시 tooltip 넣는 방법 [내부링크]

query에 title을 넣는다. ex) select user_id as id, user_name as text, user_dept as title from tb_user

[HP 노트북][윈도우 서버] 무선랜(와이파이)가 되지 않을 경우 확인방법 [내부링크]

노트북에서 와이파이 아이콘을 아무리 눌러도 흰색으로 활성화 되지 않을 경우 1. 시작 > 서버관리자에서 역할 및 기능 추가 클릭 2. 왼쪽에서 기능 클릭 ( 기능 메뉴가 활성화 되지 않은 경우는 다른 메뉴를 클릭하면 기능 메뉴가 활성화 된다. ) 3. 무선 LAN 서비스 체크박스를 체크한다. 4. 프로그램이 설치되면서 재부팅을 하라고 하는데, 재부팅 한다. 5. 그래도 인터넷이 안되면 서비스로 들어가서 WLAN AutoConfig 가 중지되어있는지 확인하고 중지되어있다면 실행시킨다. [참고. 서버관리자] 윈도우 서버에서 서비스를 설치하고 실행하도록 제어하는 관제탑같은 역할을 하는 것이 서버 관리자 입니다. 이 서버 관리자를 통해 윈도우의 모든 설정을 제어할 수 있습니다. 서버 관리자 기능은 서버 뿐 아니라 윈도우 클라이언트 버전에서도 사용 가능합니다. - 윈도우 7/8/8.1에서 서버 관리자 사용하기 https://studyforus.tistory.com/173

[jstree] 체크된 노드를 구할 때 부분체크 된 노드의 id도 같이 구하는 방법 [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 function getParam() { var arr = $('#deptTree').jstree(true).get_selected(); // get_json() 함수를 호출하면 tree의 모든 node를 계층구조의 json 데이터로 return한다. // getAllSelected는 재귀함수이다. getAllSelected($('#deptTree').jstree(true).get_json(), arr); console.log(arr); } function getAllSelected(treeNode, arr) { $.each(treeNode, function() { var node = this; var $nodeA = $("#" + node.id + "_anchor"); if(undefin

jQuery를 사용하여 input 상자에 숫자만 허용하는 방법 [내부링크]

출처 : https://stackoverflow.com/questions/995183/how-to-allow-only-numeric-0-9-in-html-inputbox-using-jquery inputFilter 플러그인을 사용한다. 1. plugin 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 // Restricts input for each element in the set of matched elements to the given inputFilter. (function($) { $.fn.inputFilter = function(inputFilter) { return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() { if (inputFilter(this.value)) { this.oldValue = this.value; this.oldSelectio

[javascript jquery] element의 위치를 알고 싶은 경우 [내부링크]

일반적으로는 jquery의 position() 또는 offset() 함수를 사용하는데, 특정 경우에서 이상한 값을 얻어올 수 있다. 이 경우 아래와 같이 offsetTop, offsetLeft를 사용한다. // document.getElementsByTagName // document.getElementById // document.getElementsByClassName // document.querySelectorAll var element = document.getElementsByClassName("find"); alert(element[0].offsetTop);

[웹 보안취약성] [내부링크]

1. X-Frame-Options Header Not Set 1.1 X-Frame-Options 헤더란? X-Frame-Options 헤더는 FrameSet이나 iframe 등에 의한 클릭재킹에 대한 보호를 제공하며 2009년에 IE8에서 추가되었고 얼마 후 다른 브라우저들에도 채택되었습니다. 1.2 옵션 값 - DENY : 외부 사이트에 대한 프레임 금지 - SAMEORIGIN : 같은 사이트만 허용 - ALLOW-FROM : 특정 사이트만 허용 1.3 사용법 - TOMCAT의 web.xml에 아래와 같은 코드 추가 ( 프로젝트 내의 web.xml이 아님 ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <filter> <filter-name>httpHeaderSecurity</filter-name> <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-cl

[tomcat 7.0] log 설정 [내부링크]

1. Tomcat Logging 종류 - Tomcat을 설치하면 기본적으로 log 파일은 tomcat root경로/log 에 위치하게 됩니다. 구분 설명 파일명 Java Logging API Tomcat에서는 Application당 logging 설정을 제어하기 위해 java.util.logging 기반의 구현체 JULI를 사용. logging.properties 파일의 설정에 따름 ex) localhost.yyyy-MM-dd.log Servlets logging API javax.servlet.ServletContext.log를 통해 메시지를 출력할 때 사용됨. logging.properties 파일의 설정 중 org.apache.catalina.core.ContainerBase.[${engine}].[${host}].[${context}]의 설정에 따름 ex) manage.yyyy-MM-dd.log Console Tomcat 운여 시 출력되는 STDDRR/STDOUT ex) ca

[java] 실행 인코딩 설정 [내부링크]

이클립스에서는 한글이 잘 표시되지만 jar 또는 exe로 만들어 실행 할 경우 한글 깨짐 현상이 발생할 수 있습니다. 그 이유는 JAVA를 실행할 때 기본적으로 시스템의 Charset를 가지고 실행하기 때문입니다. Windows의 Charset이 MS949라면 JAVA를 실행시키면 MS949로 파일을 인코딩해서 실행하게 되는 것입니다. 만약, UTF-8의 Charset를 가진 파일을 실행하게 되면 한글은 깨지게 됩니다. 이 경우 JAVA를 UTF-8로 실행시키면 되는데 방법은 아래와 같습니다. 1) JAVA java -Dfile.encoding=UTF-8 실행할자바파일 2) jsmooth로 exe 파일을 만들어 실행 할 경우 프로젝트의 메인에 다음 구문을 추가합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import java.lang.reflect.Field; import java.nio.charset.Charset; public CText { public

[mybatis, hikaricp, oracle] Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 38; 문서 루트 요소 "oraErrorSqlStateSqlExceptionMapping"은(는) DOCTYPE 루트 "null"과(와) 일치해야 합니다. [내부링크]

oracle DB 설정 중 아래와 같은 오류 발생. Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 38; 문서 루트 요소 "oraErrorSqlStateSqlExceptionMapping"은(는) DOCTYPE 루트 "null"과(와) 일치해야 합니다. 확인 결과. mapperLocations 에러 에러가 발생했는데 보통 설정 할 때 아래와 같이 설정한다. <property name="mapperLocations"> <array> <value>classpath*:/${databaseType}/**/*.xml</value> </array> </property> 이 경우 모든 경로의 xml을 다 읽는다는 의미인데 오라클만 신기하게 동작하지 않는다. 아래 처럼 수정하면 해결됨 <property name="mapperLocations"> <array> <value>classpath:/${databaseType}

tomcat server mode [내부링크]

서버가 windows 7이나 10 등이 아닌 windows server라면 자동으로 server mode로 동작한다. [확인방법] jconsole을 실행해서 VM Summary 탭으로 가서 Virtual Machine이 Java HotSpot(TM) Server VM version xxx 라면 서버 모드이다.

service로 기동중인 tomcat을 jconsole로 확인하는 방법 [내부링크]

1. tomcat 홈페이지에 가서 jmx 다운받아서 tomcat의 lib 폴더에 추가 ( 반드시 tomcat 버전과 맞아야 함 ) 2. java option에 아래 내용 추가 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=[사용할 port] -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=[서버 IP]

[oracle] & 문자를 insert 하는 방법 [내부링크]

INSERT INTO TB_USER(USER_NAME) VALUES('young&shin'); 을 실행하면 에러가 발생한다. 이 경우 & 를 || chr(38) || 로 변경하면 된다. INSERT INTO TB_USER(USER_NAME) VALUES('young' || chr(38) || 'shin');

[mssql] user_connections ( max connection ) [내부링크]

접속 가능한 connection을 의미하는 user connections의 대한 내용은 아래와 같습니다. - 인스턴스 하나 당 설정 가능한 최대값은 32767입니다. - 인스턴스란 CREATE DATABASE 문에 의해 생성된 DB 스키마를 의미합니다. - default value는 0인데 여기서 0은 unlimit ( 32767 ) 을 의미합니다. - 현재 값을 확인할 수 있는 쿼리는 EXEC sp_configure; 입니다. [출처] https://docs.microsoft.com/en-us/sql/sql-server/maximum-capacity-specifications-for-sql-server?view=sql-server-2017 Maximum Capacity Specifications for SQL Server - SQL Server Maximum Capacity Specifications for SQL Server 8 minutes to read Contributors

[naver xss 방지] lucy xss filter [내부링크]

[Lucy XSS Filter 소개] XSS(Cross Site Scripting) 공격을 방어하는 JAVA 라이브러리 - 화이트 리스트(White List) 설정 방식 - 블랙리스트 방식에 비해 새로운 공격 유형에 더 안전함 - 규칙을 선언한 XML 파일 사이의 상속, 오버라이딩 가능 - 보안 정책을 정하는 부서에서 상위 설정 파일을 제공하고 서비스별로 필요한 정책을 하위 선언 파일에 기술하는 방식으로 사용이 가능함 - 메모리를 효율적으로 쓰는 SAX 방식의 HTML 파싱 모듈 제공 - HTML5, HTML4 Transitional DTD 명세 지원 - 공격 패턴 검출 시 주석문으로 알림 - <!-- Not Allowed Tag Filtered -→ 주석을 추가해서 허용되지 않는 태그임을 알려줌 - 기능 확장이 지점 제공 (ElementListener, AttributeListener) - Malformed HTML도 파싱 가능 - EBNF(Extended Backus-Naur F

Cross Site Scripting ( XSS ) 개념 및 방지 방법 ( 작성 중. 작성 완료되면 제목도 변경할 예정 ) [내부링크]

XSS ( Cross Site Scripting ) XSS는 브라우저로 전송하는 페이지에서 사용자가 입력하는 데이터를 검증하지 않거나, 출력 시 위험 데이터를 무효화 시키지 않을 때 발생한다. 일반적으로 사용자의 브라우저를 목표로 하는 세 가지 형태의 크로스 사이트 스크립팅(XSS)이 있다. 1) Reflected XSS ( 반사 XSS ) 반사식 XSS 공격은 검색 결과, 에러 메시지 등 서버가 외부에서 입력 받은 값을 받아 브라우저에게 응답할 때 전송하는 과정에서 입력되는 변수의 위험한 문자를 사용자에게 그대로 돌려주면서 발생한다. 2) Stored XSS 악성 스크립트를 영구히 저장해 놓는 방법. 게시판 등에 악성 스크립트를 삽입해 놓으면, 사용자가 사이트를 방문하여 악성 스크립트가 저장되어있는 페이지에 정보를 요청할 때, 서버는 악성 스크립트를 사용자에게 전달하여 사용자 브라우저에서 스크립트가 실행되면서 공격한다. 3) DOM XSS DOM(Document Object Mod

[oracle] ORA-04091 테이블이 변경되어 트리거/함수가 볼 수 없습니다. [내부링크]

오라클에서 트리거를 건 테이블을 UPDATE 할 수 없다. UPDATE를 하기 위해서는 :NEW.컬럼 := '값'; 의 형태가 되어야 한다. 단, 트리거 유형을 AFTER로 하면 안되고 BEFORE로 해야 한다.

[singleton pattern] 싱글턴 패턴 [내부링크]

싱글턴 패턴(singleton pattern)이란? - 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조 할 수 있도록 하는 패턴 - 하나의 인스턴스만을 생성하는 책임이 있으며 getInstance 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행한다. 싱글턴 패턴을 쓰는 이유 - 메모리 낭비를 방지 - 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다. - DBCP(DataBase Connection Pool)처럼 공통된 객체를 여러개 생성해서 사용해야 하는 상황에서 많이 사용 싱글턴 예제 하나의 공유 프린터를 여러 명이 사용한다고 하자. 1 2 3 4 public class Printer { public Printer() { } public void print() { ... } } cs 이 프린터를 사용하려면 client에서 new Printer()가

[Command pattern] 커맨드 패턴 [내부링크]

커맨드 패턴(Command pattern) 이란? - 요청을 객체의 형태로 캡슐화(1)하여 명령을 단순화한다. - 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용하고자 할 때 유용하다. - 실행될 기능을 캡슐화함으로써 기능의 실행을 요구하는 호출자(Invoker) 클래스와 실제 기능을 실행하는 수신자(Receiver) 클래스 사이의 의존성을 제거한다. - 따라서 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용 할 수 있도록 해준다. - '행위(Behavioral) 패턴(2)'의 하나 [참고] (1) 캡슐화(encapsulation) - 객체의 속성(data field)과 행위(method)를 하나로 묶는다. - 실제 구현 내용 일부를 외부에 감추어 은닉한다. (2) 행위 패턴 - 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴 - 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로

[Strategy pattern] 스트래티지 패턴 [내부링크]

스트래티지(Strategy pattern) 패턴이란? - 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴 - 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐되어있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게 하는 디자인 패턴 - '행위패턴'의 하나 - 즉, 전략을 쉽게 해주는 디자인 패턴이다. - MVC 패턴에서 뷰는 무엇인가 스크린에 그리는 방법(How)에 대해서는 알지만 어떤 내용(What)을 담을 지는 컨트롤러가 알려주기 전까지는 알 수 없다. 다른 컨트롤러로부터 다른 내용의 출력 형태나 내용이 달라지게 되면 그 때마다 뷰의 출력내용이 달라지게 된다. 이 경우 컨트롤러는 뷰의 스트래티지가 된다. MVC에서 뷰와 컨트롤러는 스트래티지 패턴을 기반으로 한다. 스트래티지 패턴의 구조 - Strategy : 인터페이스나 추상 클래스로 외부에서 동일한 방식으로 알고리즘을 호출하는 방법을 명시 - Conc

select2 options [내부링크]

Option 자료형 기본값 설명 width string resolve selectbox의 넓이 조절 minimumResultsForSearch integer 0 검색결과를 표시하는 최소 입력 글자 수. -1을 설정할 경우 검색창이 나타나지 않음

[다국어] 웹페이지에서 언어 변경 [내부링크]

1. 현재 Locale 값을 얻어올 수 있는 LocaleUtil.java 만들기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.web.servlet.i18n.SessionLocaleResolver; public class

null을 공백문자(empty string) 으로 변경하는 방법 [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // 방법 1. 사용자 정의 함수 생성. public String toString(Object o) { return toString(o, ""); } public String toString(Object o, String nullDefault) { return (o != null) ? o.toString() : nullDefault; } // 방법 2. Objects.toString 사용 (JAVA 7 이상 지원) System.out.println(Objects.toString(v, "")); // 공백 문자 출력 System.out.println(Objects.toString(v, "홍길동")); // "홍길동" 출력 // 방법 3. Optional.ofNullable(v).orElse("") System.out.println(Optional.ofNullable(v).orElse(""); // 공백 문자 출

[java] LIST에서 특정 값 찾기 [내부링크]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 List<String> list = new ArrayList<String>(); list.add("임꺽정"); list.add("신사임당"); list.add("을지문덕"); list.add("이순신"); int i=0; // 권장하지 않는 방법 for(i=0; i<list.size(); i++) { if(list.get(i).equals("이순신")) { System.out.println("for 위치 : " + i); } } // 권장하는 방법 i = list.indexOf("이순신"); System.out.println("indexOf 위치 : " + i); cs

HTML to Excel 데이터 타입 지정 [내부링크]

HTML to Excel : mso-number-format style attribute 엑셀 출력을 하다보면 전화번호가 01011112222가 있을 때 숫자로 판단하여 1011112222 와 같이 맨 앞의 0이 잘려버리는 현상이 발생한다. 이것을 해결하기 위해서는 <td style='mso-number-format:타입'> 방식을 사용하면 된다. 1 2 3 4 5 <style> td.int { mso-number-format:\#\,0; text-align:right; } td.decimal-2 { mso-number-format:\#\,0\.00; } td.text {mso-number-format:\@} </style> Colored by Color Scripter cs NO Decimals : mso-number-format:”0″ 3 Decimals : mso-number-format:”0\.000″ Comma with 3 dec : mso-number-format:”\#\

mybatis에서 map일 경우 key를 변경 하는 방법 [내부링크]

오라클의 경우 쿼리의 결과의 키가 무조건 대문자로 리턴된다. 이것을 소문자로 쓰고 싶거나 camelcase로 변경하여 사용하고 싶을 때 Map을 상속받는 클래스를 생성하고 put 함수를 가로채 key를 변경하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 import org.apache.commons.collections.map.ListOrderedMap; import org.apache.commons.lang.StringUtils; public class CustomMap extends ListOrderedMap { /** serialVersionUID */ private static final long serialVersionUID = -7700790403928325865L; /** * key 에 대하여 소문자로 변환하여 super.put * (ListOrderedMap) 을 호출한다. * @param key * -

mybstis typeAlias 사용하기 [내부링크]

mybatis에서 parameterType이나 resultType에 VO를 사용하려면 com.abc.project.UserVO 와 같이 경로를 모두 써줘야 해서 불편하다. typeAlias를 이용하여 짧게 변경할 수 있는데 사용법은 크게 2가지가 있다. 1. 클래스 단위 등록 - mybatis 설정 파일에 typeAliases를 등록한다. 1 2 3 4 5 6 7 <settings> ... </settings> <typeAliases> <typeAlias alias="test" type="com.test.vo.TestVo"/> </typeAliases> Colored by Color Scripter cs 2. 패키지 단위 등록 - 이 경우는 특정 패키지에 vo를 모두 넣어놨을 때 사용하는 방법. 2.1 VO에 Alias 작성 1 2 3 4 5 6 7 8 package com.test.vo; import org.apache.ibatis.type.Alias; @Alias("test")

[spring 3.2.9] spring batch 사용하기 [내부링크]

[BATCH 샘플 코드] 1) pom.xml 1 2 3 4 5 <dependency> <groupId>org.springframework.batch</groupId> <artifactId>spring-batch-core</artifactId> <version>2.2.4.RELEASE</version> </dependency> Colored by Color Scripter cs 2) .springBeans 파일에 context-batch.xml 경로 추가 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0" encoding="UTF-8"?> <beansProjectDescription> <version>1</version> <pluginVersion><![CDATA[3.9.4.201804120850-RELEASE]]></pluginVersion> <configSuffixes> <configSuffix><![CDATA[xml

[eclipse] lombok 사용법 [내부링크]

1. maven에 lombok 추가 1 2 3 4 5 6 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency> cs 2. lombok 다운로드 경로로 이동 3. lombok.jar 파일을 더블클릭하여 실행하면 설치된 IDE 목록이 나오는데, 이중에 없다면 "Specify location.." 버튼을 클릭하여 eclipse 경로 지정 4. Install / Update 버튼 클릭 5. Quit Installer 버튼 클릭 6. eclipse 경로로 이동 7. eclipse 경로에 lombok.jar 파일이 없다면 파일을 추가 8. eclipse.ini 파일 open 9. 아래 설정이 없거나 다르다면 수정 ( 반드시 -vmargs 가 있어야 함 ) -vmargs -javaagent:

[디자인 패턴] 디자인 패턴이란? [내부링크]

디자인 패턴이란 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법 중 하나로, 과거의 소프트웨어 개발 과정에서 설계된 노하우를 축적하여 이름을 붙여, 이후에 재사용하기 좋은 형태로 특정의 규약을 묶어서 정리한 것이다. 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있다. 이러한 유사점을 패턴이라 한다. 객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용한다. 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원활하게 해주는 아주 중요한 역할을 한다. 예를 들어 "기능마다 별도의 클래스를 만들고, 그 기능들로 해야 할 일을 한번에 처리해주는 클래스를 만들자."라고 하는 것 보다 "Facade 패턴을 써보자" 라고 제안하는 쪽이 이해하기 쉽다. 디자인 패턴 구조 콘텍스트(context) 문제가 발생하는 상황을 기술한다. 즉,

[Decorator pattern] 데코레이터 패턴 [내부링크]

데코레이터 패턴이란? 객체의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주는 패턴 즉, 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 각 추가 기능을 Decorator 클래스로 정의한 후 필요한 Decorator 객체를 조합함으로써 추가 기능의 조합을 설계 하는 방식이다. 문제의 시작 커피를 주문할 때는 우유, 물, 얼음, 모카 등을 추가 하고, 그 위에 휘핑 크림을 얹기도 한다. 각각을 추가할 때마다 커피 가격이 올라가기 때문에 주문 시스템에도 그런 점들을 모두 고려해야 한다. 에스프레소, 아메리카노, 아이스 아메리카노, 라떼, 아이스 라떼 등 각각 클래스로 만들면 너무 많고 커피가 추가될 때마다 새로운 클래스를 만들어야 한다. 첨가물(우유, 모카 등)의 가격이 변경되면 모든 클래스의 cost()를 변경해야 한다. 문제의 해결 특정 음료(에스프레소) 부터 시작해서 첨가물들로 "장식" 한다. 모든 데코레이터는 cost() 메소드를 갖는다. cost()에서는 부모

[spring + soap + schedule + maven] SOAP client [내부링크]

개발환경 1. STS 2.9.7 2. axis2 1.7.9( 다운로드 받아야 함 ) 프로젝트 생성 1. Package Explorer에서 마우스 우클릭 > New > Spring Legacy Project 클릭 2. 프로젝트 이름 입력 후 Spring MVC project 클릭 후 Finish 버튼 클릭 프로젝트 설정 1. 마우스 우클릭 > Maven > Update Project... 메뉴 클릭 ( 매우 중요 ) SOAP을 하기 위해서는 [마우스 우클릭 > Properties > Project Facets]에서 Axis2 Web Service를 체크 해야 한다. Axis2 Web Service를 사용하기 위해서는 Dynamic Web Module을 체크하고 2.5로 버전을 변경해야 한다. 그런데, Dynamic Web Module을 체크하고 "Apply and Close" 버튼을 누르면 프로젝트에 "WebContent" 폴더가 생기는데 이 폴더가 존재하면 java 기능이 정상적으로

Spring + Apache cxf를 이용한 SOAP XML 통신 Server [내부링크]

Apache cxf란? Apache cxf 프레임워크를 이용하면 SOAP 통신을 할 수 있다. Apache cxf의 장점은 spring과의 연동이 가능하다는 점이다. 개발환경 JDK 1.8 / Spring 3.2 / apache cxf 2.6.2 진행 순서 1. apache cxf 2.6.2 버전 (apache-cxf-2.6.2.zip) 다운로드 ( https://archive.apache.org/dist/cxf/2.6.2/ ) - 2. spring legacy project > Spring MVC project 생성 3. [Window > Preferences] 메뉴에서 Web services에 Apache CXF 2.x 등록 3.1. Server and Runtime에 Apache CXF 2.x 등록 3.2 CXF 2.x Preferences에 경로 지정 4. pom.xml에 dependency 추가 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Apache cxf를 이용한 SOAP XML 통신 Client [내부링크]

웹 서비스를 제공하는 서버(정보 제공자)는 WSDL을 발행해준다. WSDL이란 Web Services Description Language의 약자로 '웹서비스에 대한 정의서'이다. 이 WSDL에는 웹 서비스에 대한 구체적인 내용이 들어있다. 서비스를 제공해주는 URI / 요청과 응답에 대한 메시지 포멧 / 오퍼레이션 등이 기재되어있다. 클라이언트는 WSDL을 통해 서버와 통신을 한다. 1. apache cxf 2.6.2 버전 (apache-cxf-2.6.2.zip) 다운로드 ( https://archive.apache.org/dist/cxf/2.6.2/ ) 2. spring legacy project > Spring MVC project 생성 3. [Window > Preferences] 메뉴에서 Web services에 Apache CXF 2.x 등록 3.1. Server and Runtime에 Apache CXF 2.x 등록 3.2 CXF 2.x Preferences에 경로 지정

JSP / JSTL 에서 URL encode 하는 방법 [내부링크]

<c:url />을 사용한다. 사용방법 1 2 3 4 5 <c:url value="/yourClient" var="url"> <c:param name="yourParamName" value="http://google.com/index.html" /> </c:url> <a href="${url}">Link to your client</a> Colored by Color Scripter cs 결과 1 <a href="/yourClient?yourParamName=http%3a%2f%2fgoogle.com%2findex.html">Link to your client</a> cs [주의사항] <c:url />을 사용할 경우 contextPath가 자동으로 들어간다. 만약 URL 주소 : http://localhost/wsm/yourClient contextPath : http://localhost/wsm 라면 결과는 1 <a href="/wsm/yourClient?yourParamName=

[jqGrid] gridUnload [내부링크]

$("#jqGrid").jqGrid("GridUnload"); 안되면 $.jgrid.gridUnload('#jqGrid'); 사용

DB에 byte로 insert 하기, select 후 string으로 변경하기 [내부링크]

JAVA Controller 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public void testByte() throws Exception { String tmp = "<html><body><p>홍길동</p></body></html>"; String cd = String.valueOf(System.currentTimeMillis()); map.put("CD", cd); map.put("VAL", tmp.getBytes()); dao.insertTest(map); Map<String, Object> tmpMap = dao.selectTest(); byte[] data = (byte[]) tmpMap.get("VAL"); String str = new String(data); System.out.println("########"); System.out.println(data); System.out.println(str); } Colored by Col

Spring i18n ( 다국어 ) - Locale Resolver [내부링크]

Locale Resolver의 종류 1. AbstractLocaleContextResolver http의 헤더의 Accept-Language에 의해 선택된다. setLocale이 지원되지 않는다. 오직 브라우저 설정에 의해서만 결정 2. SessionLocaleResolver 처음 들어갈 때는 AccpetHeaderLocaleResolver처럼 브라우저의 언어 설정에 의한 Accept-Language로 값이 결정된다. 단, setDefaultLocale을 설정한다면 이 값이 최우선 세션으로 저장되며 org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE 라는 세션 속성이름으로 클래스를 시리얼라이징 되어 저장 3. CookieLocaleResolver SessionLocaleResolver와 속성이 동일하지만 lang 값이 바뀔 경우 세션이 아닌 쿠키에 저장된다. 때문에 SessionLocaleResolver의 경우 세션이

인증 오류가 발생했습니다. / 요청한 함수가 지원되지 않습니다. / 원격데스크톱 연결오류 [내부링크]

갑자기 원격 데스크톱이 연결 안될 경우 해결방법 1. 윈도우키+R(실행창 오픈) 이후 gpedit.msc 입력 (로컬 그룹 정책 편집기 화면이 열림) 2. [컴퓨터구성 > 관리 템플릿 > 시스템 > 자격 증명 위임] 메뉴로 이동 3. "Oracle 수정 암호화"에서 마우스 우클릭 -> 편집 선택 4. Oracle 수정 암호화 사용 클릭 > 보호수준 취약 선택 > 적용 버튼 클릭 출처 : https://m.blog.naver.com/gmrdud2gh/221275206353

[web] 인코딩 ( 한글 깨짐 ) [내부링크]

HTML 1 <meta charset="utf-8"> cs XHTML 1 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> cs

Java EE 개발자는 항상 -server 옵션을 켜 두는 것이 좋다. [내부링크]

JVM에 -server 옵션을 지정하면 일반적인 상태(client 상태)보다 더 많은 최적화 방법을 동원하는데, 예를 들어 반복문 내부에서 전혀 값이 바꾸지 않는 내용을 반복문 밖으로 빼내는 등의 최적화 작업이 일어난다. 따라서 -server 옵션을 지정하지 않은 상태로 개발이나 테스트 과정을 진행하고 실 서버에 적용할 때에만 -server 옵션을 지정하면, 프로그램이 예상했던 대로 작동하지 않을 가능성이 있다. 여기 나온대로 개발자는 항상 운영 환경과 동일한 VM 설정을 해야한다. 같은 Java 코드라도 -server 냐 -client 냐에 따라 최적화 방식이 달라지고 코드가 다르게 작동한다. 이와 같은 현상에 대해 Effective Java 2nd ed. Item 66 에서도 다루고 있다. -client와 -server 옵션에 따라 코드의 해석이 달라지고 행동도 달라진다. 따라서 되도록 테스트 WAS를 띄울때 -server 옵션을 주고 띄워야 한다. (운영 서버는 항상 -serv

mssql maven [내부링크]

sqljdbc4.jar를 다운받은 후 pom.xml에 아래 내용 추가 1 2 3 4 5 <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency> cs

테이블/컬럼 존재 여부 확인하기 [내부링크]

MySQL MySQL은 information_schema가 하나의 데이터베이스로 관리되고 테이블 정보를 담고 있는 "TABLES" 테이블도 실제적인 자세한 정보를 담고 있다. 1 2 SELECT COUNT(*) cnt FROM information_schema.tables WHERE table_schema = 'DB명' AND table_name = '테이블명'; cs 컬럼 확인은 아래와 같이 columns 테이블을 확인한다. 1 2 SELECT * FROM information_schema.columns WHERE table_schema = 'DB명' AND table_name = '테이블명' AND column_name = '컬럼명'; cs Oracle 오라클의 경우에는 "ALL_TABLES" 테이블를 조회하면 된다. 1 SELECT COUNT(*) cnt FROM ALL_TABLES WHERE TABLE_NAME = '테이블명'; cs 컬럼은 ALL_TAB_COLUMNS 를 확

[토스행운퀴즈] 2019-07-02 후퍼옵틱 [내부링크]

여름철 자동차 내부로 들어오는 자외선과 뜨거운 태양열을 차단하기 위해 자동차 유리에 하는 것은? --> 틴팅 질화티타늄이 주성분인 후터옵틱의 나노세라믹 필름은 일반 필름에 비해 xxx이 높아 --> 내구성 후퍼옵틱 나노세라믹 틴팅 필름은 일반 염료 필름보다 약 3배 더 높은 xxx 효과 --> 열차단

java 동적으로 filed 값 가져오기 [내부링크]

1 2 3 4 5 6 7 8 9 10 11 import java.lang.reflect.Field ===중략 Test test = new Test(); //필드가 포함되어 있는 class Field fd = test.getClass().getDeclaredField("필드명"); //"필드명"의 값 가져오기 String testFieldVal = (String)fd.get(test); //필드 객체의 get 함수에 class 객체를 넘기고 해당 변수의 형으로 캐스팅 cs 출처 : https://m.blog.naver.com/PostView.nhn?blogId=joypheonix&logNo=100163503643&proxyReferer=https%3A%2F%2Fwww.google.com%2F java 동적으로 filed 값 가져오기 import java.lang.reflect.Field ===중략 Test test = new Test(); //필드가 포함되어 있는 class Fiel.

[queryDSL] CASE WHEN [내부링크]

queryDSL에서 CASE WHEN 구문을 사용하기 위해서는 CaseBuilder()를 사용하면 된다. 1. CaseBuilder의 사용 예 1 1 2 3 4 5 Expression<String> cases = new CaseBuilder() .when(c.annualSpending.gt(10000)).then("Premier") .when(c.annualSpending.gt(5000)).then("Gold") .when(c.annualSpending.gt(2000)).then("Silver") .otherwise("Bronze"); cs 2. CaseBuilder의 사용 예 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import static kr.com.wow.QTbUser; // 클래스 및 함수 선언부 생략 JPAQuery<TbUser> query = jpaQueryFactory .from(tbUser) .select(Projections.bean(TbUse

[java] BigInteger [내부링크]

BigInteger 개요 java의 64비트 정수인 long은 9223372036854775807 까지의 숫자를 나타낼 수 있습니다. 그 이상의 정수가 필요하다면 BigInteger를 사용해야 합니다. BigInteger는 숫자의 크기에 제한이 없습니다. BigInteger 사용법 1 2 3 4 5 6 7 8 9 10 11 12 13 import java.math.BigInteger; public class Test { public static void main(String[] arg){ BigInteger bi = new BigInteger("100"); BigInteger bi2 = new BigInteger("2"); System.out.println("곱하기 => "+bi.multiply(bi2)); System.out.println("나누기 => "+bi.divide(bi2)); System.out.println("빼 기 => "+bi.subtract(bi2)); Syste

[querydsl] string 사용 [내부링크]

asString을 사용하면 된다. import static com.querydsl.core.types.dsl.Expressions.asString; asString("READ").as("type")

[java] Map을 POJO(VO, class)로 변경 [내부링크]

방법 1. org.codehaus.jackson.map.ObjectMapper 사용 * [참고] 이 방법은 Map에는 존재하는데, POJO에 값이 없다면 에러가 합니다. import org.codehaus.jackson.map.ObjectMapper; Map<String, Object> map = new HashMap<>(); map.put("userId", "admin"); map.put("userName", "administrator"); ObjectMapper mapper = new ObjectMapper(); UserVO user = mapper.convertValue(expectedMap, UserVO.class); 방법 2. com.google.gson.Gson 사용 import com.google.gson.Gson; import com.google.gson.JsonElement; Map<String, Object> map = new HashMap<>(); map.put(

[tomcat] 대용량 파일 업로드 실패 ( 파일 전송 실패, tomcat maxPostSize ) [내부링크]

WAS를 Tomcat을 사용할 경우 대용량 파일이 업로드가 안되고 URLConnection으로도 전송이 안되는 문제가 발생할 수 있습니다. 그 이유는, POST 방식에도 용량, 개수 제한이 있기 때문인데 이때 필요한 설정이 maxPostSize와 maxParameterCount입니다. ( GET 방식만 제한이 있는 것이 아닌, POST 방식도 제한이 있습니다. ) POST 전송 SIZE와 parameter의 개수를 설정 가능하며, 무한대로 설정할 수도 있습니다. maxParameterCount : 최대 parameter 개수 - 0보다 작은 수로 설정할 경우 무제한 - default value : 10000 The maximum number of parameter and value pairs (GET plus POST) which will be automatically parsed by the container. Parameter and value pairs beyond this l

Apache + Tomcat 연동 [내부링크]

개발 환경 - Windows 10 ( 64 bit ) - Apache24 - Tomcat 8.5 Apache와 Tomcat을 연동하는 이유 - Tomcat 서버는 서블릿 컨테이너의 역할만 하고, Apache는 Web server의 역할을 하도록 각각의 기능을 분리하기 위해 연동을 할 수 있습니다. - Apache HTTP Server에서 제공하는 편리한 기능을 사용하기 위해서 연동을 할 수 있습니다. - Load Balancing 기능을 사용하기 위해 연동을 할 수 있습니다. ※ Apache와 Tomcat을 연동하는 방법들은 아래 3가지가 있는데 mod_jk를 많이 사용한다고 합니다. - mod_jk - mod_proxy - mod_proxy_ajp ※ AJP란? 아파치가 웹 서버와 서비스(Tomcat 등)을 연동하기 위해 정한 프로토콜 Apache 24 설치 1. Apache 24 Download 1) https://www.apachelounge.com/download/에 접속 2

Apache + Tomcat Load Balancing [내부링크]

Apache + Tomcat 연동은 되어있다고 가정하고 그 이후 부터 진행합니다. https://blog.naver.com/yjhyjh5369/221910887060 Apache + Tomcat 연동 개발 환경- Windows 10 ( 64 bit )- Apache24- Tomcat 8.5Apache와 Tomcat을 연동하는 이유- ... blog.naver.com ※ tomcat을 두 개 설치 되어있어야 합니다. 1. workers.properties 파일 변경 (apache24 설치 경로)/conf/workers.properties 파일 open 후 아래와 같이 변경 worker.list=load_balancer worker.load_balancer.type=lb worker.load_balancer.balance_workers=tc1,tc2 worker.tc1.port=8009 worker.tc1.host=localhost worker.tc1.type=ajp13 worker.t

[tomcat] cache-control [내부링크]

js, image, jsp 등을 변경했는데 반영이 안되는 경우가 있습니다. 그 이유는 브라우저가 "browser cache"를 사용하기 때문인데 이것을 사용하는 이유는 아래와 같습니다. 1) 인터넷에서 다운받는것보다 하드디스크에서 가져오는 것이 빠릅니다. 2) 대부분의 웹 사이트가 여러 페이지에 동일한 요소를 많이 가지고 있습니다. - 예를 들어 사이트(회사) 로고의 경우 동일한 이미지를 모든 페이지에서 다운받을 필요가 없습니다. 3) 2번과 같은 이유로 불필요한 traffic이 발생합니다. 하지만 고객사를 대상으로 한 관리자 웹 페이지를 유지보수 하다 보면 장애가 발생하여 수정해서 반영했지만 고객이 보기에 똑같은 상황, 또는 java는 반영이 되었는데 jsp/javascript는 반영이 안되어 오류가 발생하는 경우가 있습니다. browser cache를 사용하지 않아도 되는 경우 두가지 방법 중 하나를 선택 하여 brower cache control을 할 수 있습니다. 방법 1.

[ibatis/mybatis] large resultSet, 대용량 select [내부링크]

조회화면에서 엑셀 다운로드를 개발해야 하는데, 조회화면은 한 화면에 10~20건씩 보여주더라도 엑셀 다운로드는 모든 데이터를 조회해서 export 해야 합니다. 이 경우 DB tool에서 직접 조회하면 1초 이내로 조회되는데, ibatis/mybatis 를 통해서 조회화면 몇십초씩 걸리는 경우가 있습니다. 이럴 때 fetchSize를 이용하여 성능을 높일 수 있습니다. <!-- ibatis --> <select id="selectListToExcel" resultClass="java.util.Map" fetchSize="1000"> fetchSize는 설정하지 않으면 기본 값은 10입니다. fetchSize가 10일 경우 DB 데이터가 1,000건이면 실제 DB에서 100번을 조회하게 되고, fetchSize가 1,000일 경우 한번만 조회하게 됩니다. 따라서 비약적인 성능 향상을 기대할 수 있습니다. 참고한 사이트에서 어떤 사용자는 109k의 기록을 검색하는데 1분 40초가 소요되

[ibatis] java 배치 개발 시 OOM(Out of memory) 해결방안 [내부링크]

배치 프로그램을 만들 때 일반적으로 ibatis에서 data list를 select 후 DAO에서 List로 받아서 Loop 돌면서 처리 하는데 이 경우 너무 많은 데이터를 처리하다 보면 Out of memory 오류가 발생합니다. 모든 데이터를 메모리에 담아서 처리하니까 메모리가 많이 필요 할 수 밖에 없습니다. 이럴 때 queryWithRowHandler를 사용하면 데이터를 한 건씩 반환받아서 처리할 수 있습니다. 아래와 같이 개발 할 수 있습니다. RowHandler import java.util.Map; import com.ibatis.sqlmap.client.event.RowHandler; public class RowHandlerCallback implements RowHandler { @Override public void handleRow(Object arg0) { Map<String, String> map = (Map<String, String>) arg0; Syst

java에서 IPv4 사용하는 방법(tomcat 등 WAS에서 request.getRemoteAddr() 함수 사용시 IPv4 주소 반환 [내부링크]

Java는 OS에서 IPv4와 IPv6를 모두 사용 가능할 경우 IPv6를 우선적으로 사용하게 됩니다. 그래서 netstat 등의 명령어를 사용해서 네트워크 정보를 볼 경우나 Java에서 request.getRemoteAddr() 함수 호출 시 IPv6로 보이게 됩니다. IPv4 주소만 사용하는 방법 - java.net.preferIPv4Stack (default: false) 1. Java VM 구동 시 아래 옵션을 추가합니다. - eclipse 사용 시 eclipse.ini 파일에 추가 -Djava.net.preferIPv4Stack=true 2. linux에서 tomcat을 사용할 경우 bin/setenv.sh 에 아래 옵션을 추가합니다. #!/bin/sh JAVA_OPTS=" -Djava.net.preferIPv4Stack=true ${JAVA_OPTS} " 3. windows에서 tomcat을 사용할 경우 bin/setenv.bat에 아래 옵션을 추가합니다. @ECHO OF

[Spring, JPA] ID가 없는 DB뷰에 스프링 데이터 사용 [내부링크]

아래와 같은 VIEW가 있다고 가정합니다. CREATE OR REPLACE VIEW COMPANY_TO_PERSON AS SELECT COMPANY.NAME AS COMPANY_NAME, PERSON.NAME AS PERSON_NAME FROM COMPANY LEFT JOIN PERSON ON COMPANY.COMPANY_ID = PERSON.COMPANY_ID; 일반적으로 이런 경우 Java Entity에 mapping 하려면 Spring Data를 사용하면 됩니다. @Entity @Table(name = "COMPANY_TO_PERSON") // A view! public class Company2Person { // This won't work as the entity has no @Id! @Column(name = "COMPANY_NAME") private String companyName; @Column(name = "PERSON_NAME") private String pe

JPA 하이버네이트 자동 키 생성 - 테이블 전략 [내부링크]

DB에는 auto_increment라는 것이 존재하는데, 이것은 PK의 값을 자동 증가시키겠다는 것입니다. 대표적으로 게시판이나 history 테이블이 auto_increment를 사용하는 대표적인 테이블이라고 할 수 있습니다. 하지만 auto_increment를 사용하는 테이블을 JPA에서 사용할 때 큰 문제가 있습니다. JPA를 사용하는 가장 큰 이유는 DB 별로 쿼리를 따로 만들지 않겠다는 것인데, auto_increment를 사용하면 DB 별로 다른 전략을 사용해야 하기 때문입니다. 또한 각 DB 별로 sequence를 생성해야 하는 문제도 있습니다. 그래서 JPA를 사용할 경우 테이블 전략을 사용하는 것이 좋습니다. 테이블 전략을 사용한 History class는 아래와 같습니다. @Entity @TableGenerator(name="SEQ_TB_HISTORY", table="TB_SEQUENCES", pkColumnValue="HISTORY_SEQ", allocationS

[Spring Boot Error] Check your ViewResolver setup [내부링크]

Spring boot project 시작 시 아래와 같이 오류가 발생한다면 project 생성 할 때 thymeleaf 체크박스를 체크하지 않아서 입니다. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

[Spring] Controller에서 List<Object> 데이터 받기 [내부링크]

Spring MVC Controller에서 List<Object>를 받기 위해서 아래와 같이 사용합니다. public class User { private String name; private int age; // get, set } public class Param { private List<User> userList; // set, get } @RequestMapping("/user/saveUser") @ResponseBody public String saveUser(Param param) { for(User user : param.getUserList()) { log.info(user.getName()); } } 그리고 javascript에서 아래와 같이 서버로 전송합니다. var userList = []; var user1 = {name: 'yun', age: 19}; var user2 = {name: 'shin', age: 17}; userList.push(user1); u

[Spring] @Valid 예외를 전역 컨트롤러로 처리 [내부링크]

Spring을 사용하면 parameter를 받을 때 @Valid를 사용해서 검증을 할 수 있는데 아무 처리도 하지 않는다면 아래와 같이 복잡하고 긴 결과를 리턴 받게 됩니다. 이렇게 리턴을 받게 되면 traffic 문제도 있고, 불필요한 정보도 노출되게 됩니다. 이 문제들을 피하기 위해 아래와 같이 @ControllerAdvice를 이용해서 변경할 수 있습니다. * 참고 다른 블로그나 해외 사이트들을 검색했을 때 @ExceptionHandler(MethodArgumentNotValidException.class)를 사용하라고 되어있었으나 저 같은 경우는 BindException.class를 사용해야 정상 동작을 했습니다. import javax.validation.constraints.NotBlank; import lombok.Getter; import lombok.Setter; @Getter @Setter public class ApproveParam { @NotBlank priv

[spring boot] 다국어 [내부링크]

1. message.properties 파일 생성 위와 같이 message_국가코드.properties 파일을 생생성합니다. 2. MessageConfig 파일 생성 package com.wowsoft.api; import java.util.Locale; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ReloadableResourceBundleMessageSource; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servl

[JPA] 동적으로 schema, catalog 사용 [내부링크]

JPA에서 DB 스키마가 동적으로 변경되어야 할 때 @Table(schema=스키마명) 을 사용합니다. 그런데 만약 상황에 따라 자유롭게 schema 이름을 변경해야 한다면 어떻게 해야 할까요? 아래와 같은 Entity가 있다고 가정해봅시다. - GLOBAL 스키마에 TB_USER 테이블 import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import lombok.Getter; import lombok.Setter; @Setter @Getter @Entity @Table(catalog="global") public class TbUser { @Id private String userId; @Column private String userNameKr; @Column pri

[java] mybatis에서 boolean을 return [내부링크]

VO에서 받는 자료형이 boolean일 때 query의 결과가 1이면 true, 0이면 false입니다. 1. VO public class User { String userName; int age; boolean isAdult; } 2. mybatis SELECT USER_NAME AS userName ,AGE AS age ,CASE WHEN AGE <![CDATA[ >= ]]> 20 THEN 1 ELSE 0 END AS isAdult FROM TB_USER

select2 사용법 [내부링크]

select2 공식 사이트 https://select2.org/ Getting Started | Select2 - The jQuery replacement for select boxes Select2 The jQuery replacement for select boxes Forums GitHub IRC Chat Select2 gives you a customizable select box with support for searching, tagging, remote data sets, infinite scrolling, and many other highly used options. In your language Select2 comes with support for RTL environments , searchi... select2.org array를 이용한 select 생성 <select id="select2"></select> <script> var data = [ { id:

[spring boot] DB connection [내부링크]

apllication.properties 파일에 아래와 같이 입력 - 아래 예제는 mssql 기준 spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver spring.datasource.url=jdbc:sqlserver://127.0.0.1:1433 spring.datasource.username=root spring.datasource.password=1234

[spring boot] db log4jdbc [내부링크]

라이브러리 추가 - 메이븐 사용시 pom.xml에 아래 내용 추가 <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version>1.16</version> </dependency> resources/log4jdbc.log4j2.properties 파일 생성 log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator log4jdbc.dump.sql.maxlinelength=0 resources/logback.xml 파일 생성 <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%threa

Eclipse + GitHub 연동 [내부링크]

1. 연동할 GitHub repository 주소를 복사합니다. 제 주소는 아래와 같습니다. 2. Eclipse에서 [Window > Show View > Other ...] 메뉴를 클릭한 후 [Git > Git Repositories] 메뉴를 클릭합니다. 3. Clone a Git repository를 클릭합니다. 4. URI에 복사한 주소를 붙여넣기 하고 Next 버튼을 클릭합니다. - 정상적인 주소를 붙여넣기 했다면 Host, Repository path는 저절로 내용이 채워집니다. - User와 Password에는 GitHub의 ID와 Password를 입력합니다. 5. 기본 Branch master를 체크하고 Next를 클릭합니다. 6. 원격 저장소와 연결할 로컬 저장소를 설정한 뒤 Finish를 클릭합니다. 7. Git Repositories에 생긴 Repository에서 마우스 오른쪽 버튼을 클릭한 뒤 Import Projects...을 클릭합니다. 8. 저장장소를 설정

eclipse 프로젝트를 GitHub에 올리는 방법 [내부링크]

1. GitHub에 올릴 프로젝트에서 마우스 오른쪽 클릭 후 [Team > Share Project...] 메뉴 클릭 2. Git 클릭 후 Next 버튼 클릭 3. Use or create repository in parent folder of project 체크 4. Finish버튼 클릭 5. 프로젝트 목록에서 프로젝트 선택 6. Create Repository 버튼 클릭 7. Finish 버튼 클릭 8. GitHub의 주소를 복사 8. Git Repositories의 Remotes에서 마우스 오른쪽 클릭 후 Create Remote... 메뉴를 클릭 9. Create 버튼을 클릭 10. Change 버튼을 클릭 11. URI에 복사한 GitHub의 주소를 입력 후 Authentication의 User와 Password에 GitHub의 ID와 Password 를 입력한 후 Finish를 클릭 - 올바른 주소를 입력했다면 Host와 Repository path는 저절로 입력됩니다.

Running code after Spring Boot starts [내부링크]

Spring boot 시작과 동시에 코드를 실행하는 방법 @EventListener(ApplicationReadyEvent.class) public void doSomethingAfterStartup() { System.out.println("hello world, I have just started up"); } 출처 : https://stackoverflow.com/questions/27405713/running-code-after-spring-boot-starts

Spring MVC Controller에서 Date를 parameter으로 받는 방법 [내부링크]

아래와 같이 @RequestParam을 사용하여 Date를 parameter로 받으려고 시도 할 경우 400 오류가 발생합니다. @RequestMapping(value="/fetch" , method=RequestMethod.GET) public @ResponseBody String fetchResult(@RequestParam("from") Date fromDate) { //Content goes here } HTTP Status 400: The request sent by the client was syntactically incorrect. 오류 메시지 이 경우 @DateTimeFormat Annotation을 사용하면 해결됩니다. @RequestMapping(value="/fetch" , method=RequestMethod.GET) public @ResponseBody String fetchResult(@RequestParam("from") @DateTimeFormat(pa

[JPA] MSSQL에서 dbo 자동으로 넣기 [내부링크]

JPA에서 DB 스키마가 동적으로 변경되어야 할 때 @Table(catalog=스키마명) 을 사용합니다. [중요!] catalog에 스키마명을 사용해야 합니다. 그런데 catalog만 사용할 경우 MSSQL에서 dbo가 없어서 문제가 발생합니다. 이 경우 아래와 같이 Entity를 사용하면 모든 DB에 적용 가능합니다. @Setter @Getter @Entity @Table(schema="dbo", catalog = "global") public class TbUser { @Id private String userId; @Column private String userName; } 이와 같이 하면, MSSQL의 경우 자동으로 dbo를 추가해주고, MSSQL이 아닌 경우 dbo가 들어가지 않습니다.

[Spring boot] REST API 예외 처리 [내부링크]

https://www.baeldung.com/exception-handling-for-rest-with-spring Error Handling for REST with Spring | Baeldung Exception Handling for a REST API - illustrate the Spring 3.2+ recommended approach as well as earlier solutions . www.baeldung.com

json(jackson) 값이 null인 경우 직렬화 중에 필드를 무시하는 방법 [내부링크]

REST API 등을 개발할 때 트래픽을 줄이는게 성능 향상에 도움이 되는데, 가장 만만한것 중 하나가 값이 null일 경우 return을 하지 않는 방법일 것입니다. 예를 들어 아래와 같이 userId, userName, age 중 userName, age의 값이 null이라면 userId만 return하는 것이죠 public class User { private String userId; private String userName; private Integer age; // getter // setter } @RestController public class UserController { // @RestController를 사용할 경우 @ResponseBody를 하지 않아도 됨 @RequestMapping(value="/getUserInfo", produces="application/json;charset=UTF-8") public User getUserInfo(HttpServl

[Java] 날짜/시간 비교 [내부링크]

days 비교 방법 Method 1. - java 8 이후라면 ChronoUnit를 이용한 방법을 사용할 수 있습니다. - d2가 d1로부터 며칠 지났는지 확인합니다. public static Long diffDate(Date d1, Date d2) { return ChronoUnit.DAYS.between(d1.toInstant(), d2.toInstant()); }

[java] URLConnection, HttpURLConnection, http 대용량 파일 전송 [내부링크]

URLConnection class - URLConnection 클래스는 URL이 가리키는 리소스에 대한 활성화된 연결을 나타내는 추상클래스 - 사용자 인증이나 보안이 설정되어 있지 않은 웹서버에 접속하여 파일 등을 다운로드 하는데 많이 사용 - URLConnection은 리소스에 연결하기 전에 구성되어야 한다. - URLConnection 인스턴스는 재사용 될 수 없다. 각 리소스에 대한 connection마다 다른 인스턴스를 사용해야 한다. - 자세한 내용은 공식 홈페이지 참고 https://docs.oracle.com/javase/8/docs/api/java/net/URLConnection.html URLConnection (Java Platform SE 8 ) Direct Known Subclasses: HttpURLConnection , JarURLConnection public abstract class URLConnection extends Object The abstr

MSSQL 외부 접속 허용하기 [내부링크]

1. SQL Server 구성 관리자를 실행합니다. 2. SQL Server 네트워크 구성 > MSSQLSERVER에 대한 프로토콜 선택하고 TCP/IP를 사용으로 변경합니다. 3. TCP/IP 속성 찾을 닫지 않고 IP 주소 탭을 선택한 후 사용할 IP를 찾아서 사용을 예로 변경한 후 확인 버튼을 클릭합니다. 4. SSMS(Microsoft SQL Server Management Studio)를 윈도우 인증으로 접속합니다. 5. 서버 속성을 선택합니다. 6. 보안메뉴 선택 후 서버인증 항목에서 SQL Server 및 Windows 인증모드로 변경하고 확인 버튼을 클릭합니다. 7. 서비스를 재시작합니다.

[oracle 19c] listener 위치 [내부링크]

구버전 오라클의 경우 외부 접속을 위해 listener.ora를 수정했는데 보통 오라클설치경로/network/admin/listener.ora 였습니다. 그런데 19c를 설치했는데 오라클설치경로를 아무리 찾아봐도 listener.ora가 없어서 잘못 설치 한 줄 알고 몇번씩 재설치를 했는데 못찾았는데 나중에 알고보니 19c의 경우 설치된 경로가 아닌 설치파일이 있는 경로의 network/admin/listener.ora를 바라보게 되어있었습니다. oracle에서 19c install 파일을 다운받아서 C 드라이브에 압축을 풀면 아래 경로와 같습니다. C:\WINDOWS.X64_193000_db_home oracle 설치 경로는 아래와 같이 지정했습니다. C:\oracle 이와 같이 경로를 지정하고 오라클 설치를 진행하면 listener의 경로는 아래와 같습니다. 구버전) C:\oracle\network\admin\listener.ora 19c) C:\WINDOWS.X64_193000

[mssql] 현재 데이터베이스에 사용자 그룹 또는 역할이(가) 이미 있습니다. [내부링크]

MSSQL에서 DB 복원을 한 후 기존 DB에 있었던 사용자를 다시 추가하려고 하면 아래와 같은 오류가 발생합니다. 현재 데이터베이스에 사용자 그룹 또는 역할 <유저 이름> 이(가) 이미 있습니다 이 오류는 기존의 데이터베이스에 존재하는 유저의 이름과 새로 생성한 유저의 이름은 같지만 서로의 고유 번호인 SID가 서로 달라서 생기는 문제라고 합니다. 즉, 이름은 같지만 SID가 달라서 다른 유저로 인식하는데 새로 생성한 유저로 명령을 실행하려고 보니 기존에 똑같은 이름의 유저가 존재하여 위와 같은 오류를 발생시킵니다. 이를 해결하기 위한 쿼리는 아래와 같습니다. // MSDN에 따르면 sp_change_users_login은 언젠가 삭제될 예정이라고 합니다. EXEC sp_change_users_login 'update_one', '', '' 또는 ALTER USER TestUser WITH LOGIN = TestUser

VirtualBox 오류(Call to WHvSetupPartition failed), VMWare 오류 [내부링크]

요즘 Docker가 좋다고 해서 Docker를 설치했는데 그 이후 Virtualbox가 아래와 같은 에러를 표시하며 실행이 되지 않습니다. (찾아보니 Docker가 설치되면 VMware도 동작하지 않는다고 합니다.) 가상 머신 WIN 10 - 1의 세션을 열 수 없습니다. Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED). 결과 코드: E_FAIL (0x80004005) 구성 요소: ConsoleWrap 인터페이스: IConsole {872da645-4a9b-1727-bee2-5585105b9eed} 검색 결과 Docker에서는 아래와 같이 안내하고 있습니다. - Docker Desktop은 Hyper-V가 enable(활성화) 되어 있어야 함 - Hyper-V가 활성화 된 상태에서는 VirtualBox 사용 불가 https://docs.docker.com/do

[Node.js] 파일 다운로드 [내부링크]

먼저, 이번 예제를 실행하기 위해서는 Express가 설치되어 있어야 합니다. site https://expressjs.com/ko/ Express - Node.js 웹 애플리케이션 프레임워크 Black Lives Matter. Support the Equal Justice Initiative . Express 홈 시작하기 안내서 API 참조 고급 주제 자원 Express 4.17.1 Node.js 를 위한 빠르고 개방적인 간결한 웹 프레임워크 $ npm install express --save 웹 애플리케이션 Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크입니다. API 자유롭게 활용할 수 있는 수많은 HTTP 유틸리티 메소드 및 ... expressjs.com 설치 명령어 $ npm install express --save 예제 var express = require('express'); v

[Oracle] 오라클 관리자(system, sys) 계정 비밀번호 찾기/변경 [내부링크]

오라클 관리자 비밀번호를 잊어버렸을 경우 아래의 절차를 통해 변경할 수 있습니다. 1. cmd 명령어 프롬프트 창 2. sqlplus 실행 3. sys as sysdba 입력 후 비밀번호 입력하지 않고 그냥 enter 입력 - sys로 입력할 경우 ORA-28009: SYS(SYSDBA 또는 SYSOPER)로 접속해야 합니다. 에러 메시지 발생 4. sys 관리자 계정 비밀번호 변경 SQL> alter user sys identified by 1234;

Tomcat] 캐시 여유 공간 부족 [내부링크]

Tomcat 실행 시 xxx 위치한 리소스를 웹 애플리케이션 []을(를) 위한 캐시에 추가할 수 없습니다. 메시지가 발생하면 conf/context.xml에 아래 내용을 추가하면 됩니다. * <context></context> 태그 사이에 추가해야 함. <Resources cachingAllowed="true" cacheMaxSize="100000" />

Maven build 할 때 build path에 포함됐는데도 package does not exist가 뜨는 경우 [내부링크]

필자는 Oracle JDK로 build할때는 문제가 없었으나 Open JDK로 build path를 변경하니 이 오류가 발생했습니다. 프로젝트 환경에 따라 방법 1로 하면 되는 경우가 있고, 2로 해야 되는 경우가 있는데 차이는 아직 못찾았습니다. 방법 1. pom.xml에 추가 <properties> <webapp.lib>${basedir}/src/main/webapp/WEB-INF/lib</webapp.lib> </properties> <repositories> <dependency> <groupId>whatever</groupId> <artifactId>esapi</artifactId> <version>whatever</version> <scope>system</scope> <systemPath>${webapp.lib}/esapi-2.1.0.1.jar</systemPath> </dependency> <dependency> <groupId>whatever</groupId> <ar

Tomcat 실행 시 "둘 이상의 fragment들이 발견되었습니다. 이는 상대적 순서배열에서 불허됩니다." 에러 발생 [내부링크]

에러 메시지 발생한 환경 spring boot에서 maven install 후 생긴 war 파일을 tomcat 9에 배포 에러 메시지 Caused by: java.lang.IllegalArgumentException: 이름이 [org_apache_tomcat_websocket]인, 둘 이상의 fragment들이 발견되었습니다. 이는 상대적 순서배열에서 불허됩니다. 상세 정보는 서블릿 스펙 8.2.2 2c 장을 참조하십시오. 절대적 순서배열을 사용하는 것을 고려해 보십시오. 해결방법 1. 프로젝트 내의 web.xml 파일의 <display-name> 바로 밑에 <absolute-ordering /> 추가 - 일반적인 Spring MVC 프로젝트는 가능하지만 spring boot는 web.xml이 없기 때문에 불가능 2. maven clean - 프로젝트에서 마우스 오른쪽 클릭하여 [Run As > Maven Clean] 후 [Run As > Maven Install]

도커 설치 및 컨테이너 실행하기 on Windows [내부링크]

Docker 다운로드 1. 아래 URL에 접속합니다. https://docs.docker.com/docker-for-windows/install/ 2. Download from Docker Hub 버튼을 클릭합니다. 3. 오른쪽에 있는 Get Stable 버튼을 클릭합니다. 4. 저는 Windows container를 주로 사용할 것이기 때문에 "Use Windows ~"를 체크했습니다. (나중에 변경 가능) Hyper-V 설치 - Cannot enable Hyper-V service 오류가 발생할 경우 Hyper-V를 설치해야 합니다. 1. Windows 10에 Hyper-V 설치 - 관리자 권한으로 PowerShell 콘솔을 엽니다. - 다음 명령을 실행합니다. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All - 명령을 찾을 수 없다는 메시지가 나올 경우 PowerShell을 실행하고 있는지 확인

도커 이미지 만들기 [내부링크]

도커 이미지는 컨테이너를 실행하기 위한 모든 정보를 가지고 있기 때문에 용량이 큽니다. 새로운 이미지를 만들 경우 기존 이미지에 파일 하나 추가했다고 용량이 큰 파일을 다시 받는건 비효율적입니다. 도커는 이런 문제를 해결하기 위해 Layer라는 개념을 도입하고, 유니온 파일 시스템을 이용하여 여러 개의 레이어를 하나의 파일 시스템으로 사용할 수 있게 했습니다. 컨테이너를 생성할 때도 Layer 방식을 사용하여 기존의 이미지 레이어 위에 읽기/쓰기 레이어를 추가합니다. 이 방식을 통해 이미지 레이어는 변경 없이 컨테이너가 실행 중에 생성하는 파일이나 변경된 내용은 읽기/쓰기 레이어에 저장되기 때문에 여러개의 컨테이너를 생성해도 최소한의 용량만 사용합니다. Java 파일 이미지 만들기 1. image를 build할 폴더를 생성합니다. - 전 D:\ProgramData\Docker_build 로 생성했습니다. 2. Java 파일 생성 public class Test { public sta

도커 로그 확인 [내부링크]

도커(Docker)는 기본적으로 표준출력과 에러를 저장하여 이를 확인할 수 있는 명령어를 제공합니다. 컨테이너의 로그를 확인하기 위해서는 아래 명령어를 이용하여 내용을 확인 할 수 있습니다. docker log [컨테이너 이름] docker ps 명령어를 입력 했을 때 NAMES 항목이 이름인데, 컨테이터를 생성할 때 이름을 지정해 주지 않으면 아래 이미지와 같이 임의로 이름이 부여됩니다. docker logs 명령어에서 지원하는 옵션 옵션값 설명 -f 실시간으로 로그 출력 --tail string 마지막 한줄만 가져오기 --since string 특정 시간 이후의 log를 표시 --until string 특정시간 이전의 로그를 표시 --details logs에 제공된 추가 정보 표시 -t timestamp 표시 --timestamps timestamp 표시 도커 로그의 저장 위치 컨테이너 로그는 JSON 형태로 컨테이너ID 바로 아래 경로에 저장됩니다. [도커의 데이터 경로]/co

Docker Container commands [내부링크]

컨테이너 생성 및 시작하기 아래 명령어를 이용하여 컨테이너를 생성할 수 있습니다. run 명령어를 사용하면 사용할 이미지가 저장되어있는지 확인하고 없다면 다운로드(pull)를 한 후, 컨테이너를 생성(create)하고 시작(start) 합니다. $ docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 자주 사용하는 옵션은 아래와 같습니다. 옵션 설명 -d detached mode 흔히 말하는 백그라운드 모드 -p 호스트와 컨테이너의 포트를 연결 (포워딩) -v 호스트와 컨테이너의 디렉토리를 연결 (마운트) -e 컨테이너 내에서 사용할 환경변수 설정 --name 컨테이너 이름 설정 -rm 프로세스 종료시 컨테이너 자동 제거 -it -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 -link 컨테이너 연결 [컨테이너명:별칭] 상세 옵션은 공식 문서 참조 https://docs.docker.com/engine/reference/commandline/

[windows] docker에 mysql 설치 [내부링크]

* hyper-v가 지원되는 컴퓨터라면, windows에서도 linux container를 사용할 수 있습니다. mysql docker image 다운로드 - command 창에서 아래 내용 입력 docker pull mysql * 자세한 내용은 공식 페이지(https://hub.docker.com/_/mysql)참조 docker container 생성 docker run --name mysql1 -p 3333:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0.17 run 컨테이너를 생성하고, 실행 -p 3333:3306 local의 3333 port와 docker의 3306(mysql 기본 port)를 연결 -e MYSQL_ROOT_PASSWORD=password mysql의 비밀번호를 "password"로 설정 -d background 모드로 실행 mysql:8.0.17 mysql8.0.17을 설치 여기까지 되었다면 기본으로 접속이 가능해야

[유머] 교과서가 미쳤다... 피임방법 10가지나 소개.jpg [내부링크]

일단 부모부터 교육을 해야 하지 않을까...

이클립스 이전 버전 다운로드(eclipse old version) [내부링크]

https://wiki.eclipse.org/Older_Versions_Of_Eclipse Older Versions Of Eclipse - Eclipsepedia Jump to: navigation , search Navigation Main Page Community portal Current events Recent changes Random page Help Toolbox Page information Permanent link Printable version Special pages Related changes What links here Page Discussion View source History Older Versions Of Eclipse Need help with older... wiki.eclipse.org

[유머] 재평가된 호날두 근황 [내부링크]

https://tongtong-humor1st.tistory.com/21 [유머] 돌아온 우리형 근황 대한민국을 지킨 구국의 영웅 [유머] 돌아온 우리형 근황 결승골 어시스트 [유머] 돌아온 우리형 근황 명예한국인으로 tongtong-humor1st.tistory.com

[유머] 황희찬 의문의 1패 [내부링크]

https://tongtong-humor1st.tistory.com/22 [유머] 포르투갈전 결승골 주인공 황의찬 의문의 1패 tongtong-humor1st.tistory.com

[공유] 검단 신도시 왕릉뷰 아파트 1억원대 전세 등장!! [내부링크]

https://realestate.daum.net/news/detail/all/20221205061105083 [르포] 검단 왕릉뷰 아파트 1억원대 전세 등장… 함정은? [편집자주]속절없는 전셋값 폭락에 '세입자 모시기' 전쟁이 벌어지고 있다. 불과 2년 전 체결했던 고액의 보증금을 지키기는커녕 폭락한 금액만큼 전세금 중 적잖은 금액을 세입자에 반납할 수밖에 없는 상황이 됐다. 보증금 일부를 돌려주고도 모자라 매달 일정액을 세입자에 줘야 하는 역월세까지 발생하고 있다. 신규 입주단지들도 상황은 마찬가지다. 몇 달 새 전세 시세가 30~40% 이상 폭락했고 그마저도 세입자를 구하기도 힘들다. 3~4년 전 분양 당시만 해도 고액의 전세 보증금을 통해 손쉬운 갭투자를 노렸던 집주인들은 입주 시점에 날벼락... realestate.daum.net

아산 뚱보아저씨 수제돈까스 방문 후기 - 내돈내산 [내부링크]

안녕하세요. 이번에는 아산에 있는 "뚱보아저씨 수제돈까스"에 다녀왔어요. 뚱보아저씨 수제돈가스 충청남도 아산시 번영로234번길 30 아산에 단풍구경에 가는 김에 뭘 먹을지 검색을 하다가 아래 사진과 같이 "음식이 맛있어요" 후기가 많은 뚱보아저씨 수제돈까스에 방문하게 되었어요! 아산 뚱보아저씨 수제돈까스 전 치즈돈까스와 비빔국수를 주문했어요 "양이 많아요"라는 후기가 많았던 만큼 정말 양이 엄청나게 많았어요. 먼저, 비빔국수는 평범했어요. 쫄면같은 느낌도 났어요. 아산 뚱보아저씨 수제돈까스 방문 후기 아산 뚱보아저씨 수제돈까스 방문 후기 그 다음은 치즈돈까스 입니다. 치즈돈까스는 정말 최악이었어요. 돈까스는 크기는 큰데 고기가 너무 얇아서 고기보다 돈까스 튀김이 더 두꺼워서 별로였어요. 그리고 돈까스 소스, 치즈, 돈까스가 다 따로 놀아서 무슨 맛인지도 모르겠고 소스맛은 안느껴지고 치즈맛만 나는데 그 치즈도 맛이 없고.... 그냥 총체적 난국이었어요. 살면서 먹어본 돈까스 중에 제일

2022년 10월 온 가족 코로나 감염 후기 - 확진 2일차까지 [내부링크]

저희 집은 30대 부부와 6개월 아기 이렇게 세 가족이 살고 있어요. 저희 집은 아기가 먼저 코로나 걸리고 아기에게 저희 부부가 옮았는데요. 아기 데리고 마트밖에 갔다 온 적이 없는데 요즘 실외에서 사람들이 마스크를 안 쓰고 다니다 보니 그 사람들한테 감염되었다고 생각하고 있어요. 2022-10-27 목요일 저녁 5시 반쯤에 아기가 열이 난다고 해서 급하게 퇴근했어요. 퇴근하고 와서 열을 재보니 38.3도. #자가검사키트 로 검사를 해보니 단호박 두 줄이 나와서 다른 브랜드의 #자가키트 로 검사해 보니 역시 두 줄이었어요. 최대 39도까지 열이 올랐는데, 아기는 고열에 시달리면 뇌가 열에 녹는다고 해서 계속 젖은 손수건으로 계속 전신을 닦아줬어요. 해열제도 4시간 단위로 먹여줬어요. 아기가 아파서 그런지 밤새 잠을 못 자서 같이 밤새우며 계속 닦아줬어요 2022-10-28 금요일 아기 확진 1일차 아내 0일차 본인 0일차 아침이 되자마자 소아과에 가서 #전문가키트 로 검사해서 확진

2022년 10월 온 가족 코로나 감염 후기 [내부링크]

안녕하세요 오늘은 지난 글에 이어서 코로나 확진 후기입니다. https://blog.naver.com/yjhyjh5369/222922798821 2022년 10월 온 가족 코로나 감염 후기 - 확진 2일차까지 저희 집은 30대 부부와 6개월 아기 이렇게 세 가족이 살고 있어요. 저희 집은 아기가 먼저 코로나 걸리고 ... blog.naver.com 2022-10-31 월요일 아기 확진 4일차 부부 확진 3일차 아기는 회복이 빠르다는 소리가 있던데, 그래서 그런지 확실히 잔기침을 하는 것 말고는 컨디션이 정말 좋아 보였어요. 아프다가 안 아파서 그런지 기분이 더 좋아 보였어요. 아내는 여전히 후각 미각이 100% 상실된 상태였고, 목이 아파서 목소리도 여전히 나오지 않는 상태였어요. 저는 코막힘, 콧물이 있고 노란 가래가 너무 심해서 감당이 안 될 정도가 되었어요. 기존의 약이 안 듣는 것 같아서 코로나 환자도 진료 가능한 병원을 찾아서 다시 약을 지어왔어요. 2022-11-01 화요

[공유] "항체치료제 안 먹혀"…오미크론 BQ, 美 우세종 된다 [내부링크]

https://n.news.naver.com/article/215/0001065195 "항체치료제 안 먹혀"…오미크론 BQ, 美 우세종 된다 예방용 항체치료제가 듣지 않아 면역 회피력이 높은 코로나19 오미크론의 새 하위 변이 BQ.1과 BQ.1.1이 조만간 미국에서 우세종이 될 전망이다. 11일(현지시간) 미 질병통제예방센터(CDC) 자료에 따르면 현재 n.news.naver.com 저도 이번에 오미크론에 걸렸는데요. 새로운 오미크론 변이가 미국에서 우세종이 된다고 합니다. 델타, 감마, 오미크론 등 계속 이름이 변하더니 어느순간부터 오미크론 프로 맥스 뭐 이런것도 아니고 오미크론 내에서 계속 변이가 일어나네요. 모두들 코로나 조심하세요~

[공유] 트위치 한국에서 다시보기 서비스 종료 [내부링크]

http://news.heraldcorp.com/view.php?ud=20221111000581 “다음달부터 한국인만 못본다” 비난 쇄도, 무슨 일? “화질도 떨어뜨리더니 이제 ‘다시보기’까지 막는다” 세계 최대 게임 스트리밍 플랫폼 트위치(Twitch)가 또 다시 한국만 겨냥한 일방적인 서비스 축소 방침을 내놔 이용자들이 들끓고 있다. 앞서 한국에서만 라이브 방송 화질을 초고화질(1080p)에서 720p로 떨어뜨려 원성을 샀던 트위치의 두 번째 조치다. 트위치는 9일(현지시간) 본사 홈페이지에 한국 이용자들에게 중요한 업데이트라며 ‘VOD 콘텐츠에 관한 Twitch 코... news.heraldcorp.com 세계 최대 게임 스트리밍 플랫폼 트위치(Twitch)가 또 다시 한국만 겨냥한 일방적인 서비스 축소 방침을 내놔 이용자들이 이용자들이 분노하고 있습니다. 앞서 한국에서만 라이브 방송 화질을 초고화질(1080p)에서 720p로 떨어뜨려 원성을 샀던 트위치의 두 번째 조치입니다.

[공유] 사우디 빈 살만이 온다…‘710조원’ 네옴시티 프로젝트 본격 가동 [내부링크]

생활정보 [공유] 사우디 빈 살만이 온다…‘710조원’ 네옴시티 프로젝트 본격 가동 노루궁뎅이 2022. 11. 15. 22:01 이웃추가 본문 기타 기능 역대급 프로젝트인 미래도시인 네옴시티. The line. 본격 가동을 시작합니다. 출처by 한경비즈니스 | 네이버 뉴스 사우디 빈 살만이 온다…‘710조원’ 네옴시티 프로젝트 본격 가동 한미글로벌(56%), 코오롱글로벌(55.6%), 희림(51%) 등 사우디아라비아 네옴시티 관련 기업 주가가 한 달 새 50% 넘게 상승했다. 네옴시티는 서울의 44배 크기 도시를 짓기 위해 총 710조원 규모가 투입 n.news.naver.com 스크랩된 글은 재스크랩이 불가능합니다.

[공유] [단독]尹-빈 살만 17일 만난다…투자협약만 100조 추정 [내부링크]

생활정보 [공유] [단독]尹-빈 살만 17일 만난다…투자협약만 100조 추정 노루궁뎅이 2022. 11. 16. 22:05 이웃추가 본문 기타 기능 역대급 신도시 프로젝트 "네옴시티"가 본격적으로 시작되었습니다. 우리나라에서 최대한 계약을 가져왔으면 좋겠네요~ 출처by 서울경제 | 네이버 뉴스 [단독]尹-빈 살만 17일 만난다…투자협약만 100조 추정 윤석열 대통령과 사우디아라비아의 실권자인 무함마드 빈 살만 왕세자가 17일 회담한다. 이번 회담에서 사우디가 추진하는 ‘네옴시티’ 등 최대 1조 달러(약 1300조 원)에 이르는 프로젝트에 대한 한국 기업들의 진출과 n.news.naver.com 스크랩된 글은 재스크랩이 불가능합니다.

[재개발] 전기, 수도, 가스 폐전 후기 [내부링크]

재개발이 코앞에 다가오면 주민 이주가 시작되는데요. 저의 경우에는 이주 시작이 되기 전에 세입자가 이사를 가면서 빈집이 되었어요. 사람이 살지 않는 집에 전기, 수도, 가스 기본요금이 나가는 것도 마음에 안 들고, 특히 이제 곧 겨울이라 수도 동파가 무서워서 전기, 수도, 가스를 모두 끊었습니다. 전기 중단 먼저 전기는 다들 아시겠지만 한전, 즉 한국전력공사에서 관리합니다. 따라서 한전에 전화를 해야 하는데요. 한전 전화번호는 "지역번호-123"입니다. 제가 살고 있는 부천의 경우에는 "032-123"입니다. 전기 요금 고지서에 있는 고객번호가 있으면 제일 빠르지만 고객번호가 없어도 집 주소, 이름 등 확인만 하면 바로 전기를 끊어줍니다. 가스 중단 가스의 경우에는 지역마다 보급하는 곳이 다르기 때문에 그 지역의 가스 업체가 어딘지 알아야 하는데, 부천의 경우에는 "삼천리"였습니다. 마찬가지로 전화를 해서 끊을 수 있는데 제 경우에는 사람이 이사 나간 뒤 들어온 사람이 없기 때문에

기침, 가래에 특히 좋은 생강의 효능 [내부링크]

환절기가 되면서 감기 환자가 늘어나고 있습니다. 특히 요즘 같은 코로나 시대에는 기침을 하면 주변에서 눈치를 더 주는데요. 기침, 가래에 특히 좋은 생강차의 효능에 대해 알아보겠습니다. 기침, 가래에 특히 좋은 생강의 효능 1. 생강의 효능: 몸을 따듯하게 하는 데 도움 생강에 풍부하게 들어 있는 #진저롤 과 #쇼가올 성분은 몸속 차가운 기운을 밖으로 내보내 몸을 따뜻하게 하는 데 도움이 됩니다. 이로 인해 다음과 같은 효과를 기대할 수 있습니다. 소화기가 차서 생기는 소화불량, 메스꺼움, 설사 등을 개선 생리통을 완화하는 데 도움 수족냉증에 도움 면역력 증진에 도움 생강은 흑사병이 창궐하던 16세기 유럽에서 먹었다는 기록이 존재할 뿐만 아니라 영조실록에 의하면 조선시대 장수왕으로 유명한 영조 역시 생강차를 자주 마시며 감기를 다스렸다고 합니다. 2. 생강 효능: 세균으로부터 기관지 보호 생강의 진저롤과 쇼가올 성분은 강력한 항염증, 항산화 작용을 하여 감기나 기관지염의 원인이 되는

여의도 한우 코스요리 모도우 후기:룸 식당 [내부링크]

결혼기념일에 어디를 갈까 하다가 아기도 있어서 룸 식당으로 알아보던 중에 모도우를 발견했어요. 모도우는 여의도 파이낸스 센터에 있는 룸식당이에요. 놀랍게도 전 좌석 룸이랍니다. 모도우 여의도점 서울특별시 영등포구 국제금융로2길 32 여의도파이낸스타워 405, 406호 여의도 한우 코스요리 모도우 후기:룸 식당 저는 시그니처 코스를 주문해서 먹어보았어요. 첫 번째 메뉴인 참치 아보카도입니다. 여의도 한우 코스요리 모도우 후기:룸 식당 참치초밥 같은 느낌이었는데 밥 부분이 밥과 아보카도를 비벼놓은 듯한 느낌이었고 간장은 달콤하게 양념이 되어있어 자극적이지 않고 맛있었습니다. 두 번째 메뉴인 한우육회입니다. 여의도 한우 코스요리 모도우 후기:룸 식당 육회 위에 예쁜 꽃 모양의 배가 가장 먼저 눈에 들어왔는데요. 육회에 꼭 들어가야 할 과일인 배를 예쁘게 꽃 모양으로 만들어 놔서 보는 즐거움까지 더해주는 육회였어요. 그리고 잡내도 하나 없고, 쫄깃한 식감과 고소한 맛이 더해져 참 매력적인

고지혈증에 도움이 되는 채소 : 생명을 위협하는 고지혈증 [내부링크]

생명을 위협하는 고지혈증 1) 조금만 움직여도 종아리가 땅긴다. 2) 유독 땀 냄새가 많이 난다. 3) 피부에 트러블이 자주 발생한다. 4) 손과 발이 차고 저린다. 5) 변비에 시달린다. 6) 달고, 짜고, 자극적인 음식을 자주 섭취 이 중 4개 이상 해당할 시, 고지혈증을 의심해봐야 한다고 합니다. 고지혈증 환자는 매년 늘어, 200만 명을 돌파했을 뿐 아니라 젊은 층에서도 증가하는 추세입니다. 고지혈증이 우리 몸에 위험한 이유는 바로 혈관을 막는 죽음의 찌꺼기, 혈전을 만들어 내기 때문이라고 합니다. 고지혈증은 혈액 내 지방이 과도하게 많은 상태이기 때문에 혈액을 끈적하게 만들고 지방들끼리 서로 뭉쳐서 혈전을 생성해서 혈관을 좁아.......

혈당(당뇨) 완화에 도움을 주는 생강 [내부링크]

혈액 속에 지방이 쌓이게 되면 혈액이 끈적해지며 고혈당을 유발하고 혈관 벽이 점점 좁아지면서 고혈압을 유발합니다. 좁아진 혈관은 공간을 넓히기 위해 팽창하려 하고 혈관 밖에서는 그런 혈관에 대항하기 위해 압력을 가하다 결국 터져버려 돌연사까지 유발하는 것입니다. 보건복지부에 의하면 성인 3명 중 1명은 고혈압을 겪는다고 합니다. 대한이상지질혈증학회에 의하면 고지혈증은 65세 이상 두 명 중 겪고 있고, 심지어 10대 발병률까지 증가 중이라고 합니다. 또한 치명적인 후유증을 유발하는 당뇨는 무려 천만 명이 앓고 있다고 합니다. 3대 국민병인 고혈압, 고혈당, 고지혈증이 위험한 이유는 평소에 통증 같은 증상이 없기 때문입.......

가정용 초음파 세척기 추천 : 테코미트 울트라소닉 초음파 세척기 (내돈내산) [내부링크]

어느날 문득 이런 의문이 들었어요 내 몸에 닿는 악세사리, 물로만 씻는다고 깨끗할까? 반지는 크게 상관이 없지만 안경은 얼굴에 닿고 귀걸이는 귀에 걸고다니는데 너무 위생에 신경을 쓰지 않은 것 같은 생각이 들어서 한번 검색해 봤어요 그러다 결국 구매한 테코미트 울트라소닉 초음파 새척기! 초음파 세척기가 무엇인지 잘 모르는 분들이 있으실 수도 있을텐데요 초음파 세척기는 안경점에 가면 안경을 세척할때 쓰는 바로 그 기계에요 초음파 세척기는 초당 42,000번의 초음파 진동으로 기포를 생성하고 기포가 터지는 충격으로 물체 표면을 청소하는 원리라고 해요 테코미트 울트라소닉 미세 초음파 세척기를 구매한 이유는 아래와 같아.......

양주 맛집 파스타 맛집 까사338 / 내돈내산 [내부링크]

오늘은 우리 마나님께서 파스타가 먹고 싶다고 하셔서 폭풍 검색을 해본 결과 까사338을 발견했어요 까사338은 방문자 리뷰가 현재 시간(2021-05-23 23:04 기준) 356개 정도가 있는데요 사실 맛집 치고 영수증 리뷰가 많은 편은 아니라 좀 걱정했지만 요즘 영수증 리뷰 이벤트를 하는 곳이 너무 많아서 영수증 리뷰도 사실 믿을게 못 되는 세상에서 영수증 리뷰 이벤트로 쓴 것 같지 않은 정성스러운 찐 후기들이 많아서 선택하게 되었어요 결론부터 말하면 대성공이었어요 여태 먹어본 파스타 중 제일 맛있었던 것은 물론이고 우리 마나님께서 태어난 것에 감사한다는 말까지 했으니 말이죠 까사338의 정면 모습입니다. 기본적으로 분위기가 너.......

남양주 뷰 맛집 카페 대너리스 / 내돈내산 [내부링크]

남양주의 유명한 카페인 나인블럭이 없어지고 그 자리에 카페 대너리스가 생겼습니다. 대너리스에 가면 가장 먼저 놀라는 것이 담쟁이덩굴인데요 정말 신기할 정도로 건물 전체가 담쟁이덩굴로 덮여 있어요 (그런데 이거.. 겨울에는...?) 두 번째로 놀란 것은 주차장, 주차요원인데요 주차장도 엄청나게 넓은데 주차요원도 5-6명은 넘는 것 같았어요 대너리스의 최대 단점은 바로 가격인데요 진짜 가격이 사악할 정도로 비싸요 아이스 아메리카노가 7,500원인데 카페를 그렇게 많이 다녀본 것은 아니지만 7,500원짜리 아메리카노는 처음 봤어요 참고로 아메리카노에 산미가 있습니다 대너리스에는 케이크와 빵 종류가 있는데 마찬가지로 가격대가.......

가평 카페 방문 후기 - 라틴정원 [내부링크]

주말을 맞아 서울 근교 드라이브 코스로 찾은 가평 카페 라틴정원 높은 곳에 위치해 있어서 확 트인 전망의 마운틴뷰를 즐길 수 있는 카페였어요 가평 카페 라틴 정원 [영업시간] 평일 11시 ~ 19시 주말, 공휴일 10시 ~ 20시 (매주 목요일 휴무) 산길을 따라 엄청난 커브길을 연속으로 올라가다 보면 이렇게 라틴정원 간판이 있어요 라틴 정원 실내는 이렇게 생겼는데요 일단 라틴정원에서 가장 놀랐던 점은 바로 가격이었어요 그중에서도 라면 가격이 너무 하다 싶었는데요 라면 가격이 무려 5,500원이었어요 아이스 아메리카노가 6,500원인데 라면 세트(라면 + 음료)가 12,000원이라니요... 보이시나요.... 한강 라면 세트... 물론 제일 싼 아.......

아침고요수목원 - 가평 가볼 만한 곳 [내부링크]

이번에는 가평 하면 가장 먼저 생각나는 것 중 한 곳인 아침고요수목원에 다녀왔는데요 지금은 수국 축제 기간이에요 올해 수국 축제 기간은 6월 5일 ~ 7월 4일 까지라고 합니다 전 이번에 수국을 처음 봤는데요 수국이 이렇게 이쁜 꽃인지 처음 알았어요 꽃 색이 하나같이 파스텔 톤이고 싼 티 나지 않는 고급스러운 색이라고 해야 할까요 튤립 같은 경우는 꽃 속이 개인적으로는 좀 징그러운데 수국은 그런 것도 없고 너무 좋았어요 다만.. 수국 축제라고 해서 정말 기대 많이 하고 갔는데 생각보다 꽃밭의 규모가 너무 작았어요 이렇게 포토존도 두 군데 있더군요 그런데 제 개인적으로는 이렇게 찍는 것보다 꽃 바로 옆에서 접사를 찍는 게 더.......

검은 보양식 흑염소! :: 기력 회복 [내부링크]

예로부터 검은색은 기력 회복을 상징했는데요 대표적으로 오골계, 장어, 미꾸라지 등이 있는데요 오늘은 그중, 2020.11.21에 &#34;천기누설&#34;에서 방영된 흑염소를 소개하려고 합니다. 흑염소는 본초강목과 동의보감에 아래와 같이 설명하고 있습니다. 허약한 사람을 낫게 하고 활력을 증강시킨다 온몸을 따뜻하게 하여 기력 회복에 좋다 또한 &#34;마흔 살이 되기 전 흑염소 세 마리만 먹으면 잔병치레가 없다.&#34;라는 말이 있을 정도로 흑염소는 예로부터 널리 인정받은 대표 보양식입니다. 그럼 왜 흑염소가 기력 회복에 도움이 되는 것일까요? 흑염소는 영양학적으로 저지방, 고단백질의 육류로서 무기질 함량이 높을 뿐만 아니라 칼.......

시래기: 당뇨 예방을 돕는 식재료 [내부링크]

2020. 11. 20일 천기누설에서는 시래기에 대해 방영했습니다. 예로부터 시래기는 먹을 것이 부족한 겨울철 영양을 채워주던 건강식입니다. 실제로 성종실록에는 &#34;조선시대 흉년에 대비하는 중요한 식재료 역할을 했다&#34; 라는 기록이 있으며, 철종도 시래깃국을 보양식으로 여겼다고 합니다. 당뇨 완화와 예방을 위해서는 철분, 비타민, 칼슘, 식이섬유 같은 영양소가 꼭 필요한데 시래기는 이 모든 영양소가 골고루 함유되어 있을 뿐 아니라 신진대사를 돕는 강력한 항산화 성분인 베타카로틴이 풍부해 혈중 포도당 흡수와 콜레스테롤을 낮춰 당뇨 완화와 예방에 도움이 될 수 있다고 합니다. 또한 무청을 말려 시래기로 만들면 베타카.......

대장암에 특효::차가버섯 [내부링크]

소화 불량, 설사, 변비와 같은 증상들이 지속적으로 반복된다면 대장암을 의심해봐야 한다고 합니다. 우리나라는 대장암 발병률이 세계 1위라고 하는데요 해마다 발병률이 5.2%씩 증가한다고 합니다. 지난 10년 동안 대장암으로 인한 사망률이 73%나 급증하면서 위암 사망률을 추월하게 되었는데요 이처럼 대장암이 급격하게 증가하게 된 이유는 한국인의 식습관에서 원인을 찾을 수 있다고 합니다. 농경 사회였던 우리나라는 곡식과 채소가 주식인데, 곡물과 채소 속 식이섬유는 장에 오래 머무르기 때문에 음식물이 장에 오래 머무르는 유전적 특성을 지녔다고 합니다. 한편, 서양에서는 대장암을 고기 많이 먹는 사람이 걸린다고 해서 &#x27;귀.......

타트체리의 효능::수면과 염증 배출에 도움을 주는 [내부링크]

불면증(수면장애)는 겪어 본 사람만 아는 끔찍한 고통입니다. 건강보험심사평가원에 의하면 불면증에 시달리는 사람들이 한 해 약 63만 명이라고 하는데요 그로 인한 국가 생산성 손실액이 무려 연간 11조 원이라고 합니다.(출처: 경기연구원) 특히, 겨울철에 수면장애가 심해진다고 하는데요 수면의 질을 결정하는 것은 우리 몸에서 분비되는 멜라토닌 호르몬이라고 합니다. 그런데 겨울철에는 추운 날씨로 신진대사가 떨어지면서 운동이 부족해지는 경우가 많고 일조량도 줄어들기 때문에 수면 호르몬인 멜라토닌 분비에도 변화가 생겨 수면장애가 더 발생할 수 있다고 합니다. 그렇다면 불면증이 건강에 미치는 영향은 어떻게 딜까요? 체중 증.......

녹용의 효능::면역력 강화에 도움을 주는 [내부링크]

녹용이란? 녹용은 동물의 뿔 중에서 유일하게 피가 순환되는 사슴뿔입니다. 녹용의 효능 면역력 증가 녹용은 따뜻한 성질을 갖고 있습니다. 그래서 우리 몸을 따듯하게 데워서 면역력을 증진시켜주고 혈액순환과 신진대사를 원활하게 해주는 역할을 합니다. 여기서 우리 몸을 따뜻하게 데우는 것과 면역력이 무슨 상관이냐고 생각하는 분들이 있을 수 있는데요 체온은 면역력과 아주 밀접한 연관이 있다고 합니다. 왜 체온이 중요한 걸까요? 우리 몸이 움직이고 에너지를 만들기 위해서는 몸속 효소가 필요한데 이 효소는 체온이 36~37.5도에서 가장 활발하게 만들어지고 왕성하게 활동합니다. 다시 말해 적정 체온이 유지될 때 면역력에 핵심적.......

곶감의 효능 : 이 시국 호흡기 건강에 도움 [내부링크]

겨울철 영양간식으로 손꼽히는 것이 귤과 곶감이라고 할 수 있는데요 오늘 그중 곶감에 대해 알아보려고 합니다. 곶감은 각종 비타민과 무기질이 풍부해서 겨울 보양식으로 불리는데요 곶감은 위장을 튼튼히 해서 오래된 식체를 삭이기도 하고 어혈(몸속에 고여 있는 나쁜 피)도 없애 줍니다. 특히 기침이라든지 가래, 각혈을 멈추게 하는 효능이 있어서 몸을 편안하게 만들어 주는 호흡기에 도움이 되는 과일로 기록되어 있다고 합니다. 그렇다면 곶감이 호흡기에 어떻게 도움이 될까요? 후두염, 인후염, 기관지염, 폐렴 ... 이렇게 호흡기 질환에는 대부분 &#x27;염(炎)&#x27;자가 많이 붙는데요 다시 말해 호흡기가 염증에 걸리기 쉽다는 의미.......

관절 건강에 좋은 도가니 [내부링크]

예로부터 &#x27;관절이 안 좋으면 도가니 먹어라&#x27;라는 말을 많이 합니다. 그렇다면 도가니란 무엇일까요? 도가니란 보통 도가니 하면 소의 뼈를 생각하기 마련이지만 사실 도가니는 소의 무릎 쪽 뼈를 포함해 소의 연골 주변을 감싸고 있는 특수 부위를 합쳐서 도가니라고 부른다고 합니다. 동의보감에는 &#x27;유사한 것은 유사한 것을 보강한다&#x27;라는 기록이 남아있을 만큼 예로부터 관절 건강을 위한 식재료로 인정받아왔습니다. 도가니가 관절 건강에 도움이 되는 이유는? 도가니가 관절 건강에 도움이 되는 이유는, 도가니에 콘드로이친 성분이 풍부하게 함유되어 있기 때문이라고 합니다. 소 연골 속 콘드로이친 성분을 꾸준하게.......

차즈기의 효능 :: 노안 예방에 도움을 주는 [내부링크]

차즈기란? 쌍떡잎식물 통화식물목 꿀풀과인 한해살이풀 약재로 보랏빛을 띠는 것이 특징. 차조기, 자소엽, 자소, 소엽이라고도 한다. 차즈기의 효능 본초강목 중에는 비위를 따뜻하게 하고 통증과 기침을 멎게 하며 해열 작용이 있다고 되어 있습니다. 노안을 예방하려면 시야와 안압을 조절하는 모양체를 보호하는 것이 중요합니다. 모양체는 근육뿐 아니라 혈관으로도 이루어져 있어 영양성분의 꾸준한 공급이 필요한데요 차즈기 속에 풍부한 루테올린이 눈 건강을 지키는 핵심 성분입니다. 차즈기에는 루테올린이 풍부한데, 일반 초록 깻잎에 비하여 약 14배 이상 많다고 합니다. 루테올린은 식약처에서 눈 피로도 개선에 도움을 줄 수 있는 기.......

암 예방을 돕는 우엉 [내부링크]

우엉은 땅속 깊이 뿌리를 내려 각종 미네랄과 영양분을 흡수하는 대표적 뿌리채소로, &#34;뿌리 식물의 왕&#34;이라는 별명이 있다고 합니다. 동의보감에 따르면 우엉은 &#34;오장의 독소를 제거하고 천식과 피부질환에 효과가 있다&#34;라고 기록되어 있습니다. 우엉의 효능 우엉에는 암세포의 먹이인 포도당을 혈관 속에서 빼내는 데 도움을 주는 이눌린 성분이 풍부해서 우리 몸을 암세포가 살 수 없는 환경으로 만드는 데 도움을 줍니다. 또한 우엉에는 리그닌 성분도 풍부한데 리그닌은 종양 세포를 유발하는 사이클린 D1 단백질 억제를 유도한다고 합니다. 그 밖에 아래와 같은 효능이 있습니다. - 이눌린 성분은 신장 기능을 향상시켜.......

생로랑 루 미니 백 은장 언박싱 :: 내돈내산 [내부링크]

아내의 생일을 맞아 명품 백을 선물해 주기로 했어요 아무래도 첫 명품 백이니 만큼 네이버 블로그나, 너튜브 등의 후기들을 엄청 많이 검색해 보고 결국 생로랑을 구매하기로 결정해서 신세계백화점 타임스퀘어점을 방문했어요 사실... 루이비통, 샤넬, 에르메스를 제외한 명품은 백화점에서 사면 호구라는 소리를 들었지만 아무래도 처음이라 백화점에서 사기로 했어요 앞에 대기는 있었지만 사람이 많다기보다는 매장에 3-4 그룹 정도만 동시에 입장할 수 있어서 대기가 있는 것 같았어요 잠깐의 대기 후 한참의 고민 끝에 결정한 것은 바로!! 루 미니 백이었어요 루 미니 백으로 결정한 이유는 바로 수납력 때문인데요 &#34;미니&#34;라는.......

서울 분위기 좋은 레스토랑 63빌딩 워킹온더클라우드 런치 후기 :: 내돈내산 [내부링크]

결혼 2주년을 맞아 63빌딩 워킹온더클라우드에 다녀왔어요 이번에는 어딜 갈까 검색을 하던 중 63빌딩 워킹온더클라우드를 발견했는데요 이 어마 무시한 방문자 리뷰와 별점을 보고 여기로 결정했어요 (물론 가격이 좀 무서웠지만요) 63빌딩 주차장에 주차 후 (주차장은 3시간까지 무료입니다) 1층으로 올라오면 이런 안내판들이 보이는데 이것들을 따라가다 보면 이런 안내판 앞에 고층부 엘리베이터가 있어요 아무래도 요즘 코로나라서 입장할 때 발열 체크하고, 손 소독하고 입장을 했어요 입장을 해서 정말 놀라웠던 점은 창가를 쭉 둘러 테이블이 비치되어 있어서 어떤 자리던지 환상적인 뷰를 볼 수 있다는 점이었어요 정말 신기했던 점은.......

빅히트 사태 - 개미들의 절규 [내부링크]

https://news.naver.com/main/read.nhn?mode&#x3D;LSD&#38;mid&#x3D;sec&#38;oid&#x3D;009&#38;aid&#x3D;0004675436&#38;sid1&#x3D;001&#38;fbclid&#x3D;IwAR2X3tlqbCzEepeOkyXwo3SK4i_9sQdZWn-JmyO65fRaY0orxy3jYYwrQAQ 방탄소년단(BTS)의 소속사 빅히트의 주가가 이틀 연속 떨어지며 개인투자자의 눈물도 마르지 않고 있습니다. 상장 첫날인 2020년 10월 15일 공모가(13만 5천 원) 대비 2배의 시초가(27만 원)로 시작한 이후 약 2분 만에 30% 근처까지 상승 후 약 4% 하락으로 마감했고 이로써 따상 (시초가가 공모가의 두 배 기록 후 상한가 기록) 에 실패했습니다. 이틀 째인 16일에도 -22.29%로 마감되었기 때문입니다. 이는 최근 상장한 기.......

당뇨병에 도움이 되는 카무트 효능 [내부링크]

카무트는 6,000년 전 고대 이집트에서 재배됐던 밀의 종류로, 투탕카멘의 무덤에서 최초로 발견되었다고 합니다. 4,000년 전의 무덤에서 발견된 씨앗이 놀랍게도 살아 있었기 때문에 생명의 씨앗이라고도 불린다고 합니다. 겉모습은 현미와 비슷하지만 부드러운 식감, 고소한 맛이 특징으로 풍부한 영양과 항산화 효능을 가진 미국 타임지가 인정한(2015년) 건강식품입니다. 당뇨에 도움 카무트가 당뇨에 도움이 되는 이유는 바로 GI지수와 GL 지수 때문입니다. GI(곡물 혈당지수) 지수란 식품 섭취 후 소화돼 혈당이 상승하는 속도를 포도당을 기준으로 산출한 지수인데, 일반적으로 70 이상은 혈당지수가 높은 음식입니다. GL지수란 1인분의 식.......

굴의 놀라운 효능 및 부작용 [내부링크]

바다의 우유라고 불리는 굴은 동서양을 막론하고 완전식품으로 사랑받아왔습니다. 고대 로마의 황제들과 나폴레옹도 굴을 즐겨 먹었으며, 독일의 재상 비스마르크는 하루에 175개나 되는 굴을 먹었다고 합니다. 당뇨병 개선에 도움 굴에는 비타민 A와 B1, B2, C, 나이아신 등이 들어 있으며, 아연이 다량 들어 있어 당뇨병을 개선할 수 있습니다. 항산화 효과(암 예방 및 피부 건강에 도움) 굴에는 강력한 항산화 성분인 셀레늄이 많이 들어 있습니다. 이 셀레늄 성분은 비타민E보다 약 1,800배나 되는 항산화 능력을 갖고 있어 노화를 촉진하는 과산화지질의 생성을 방지하고 DNA가 손상되는 것을 막아 노화가 진행되는 것을 억제합니다. 또한 셀.......

로열젤리 효능 [내부링크]

로열젤리(royal jelly)는 여왕벌의 음식입니다. 로열젤리는 꿀벌 중 일벌이 유충을 기르는 시기에만 타선이 포육선으로 발달되어 분비되는 유상의 물질로 고대에서는 불로장생의 묘약으로 알려졌다고 합니다. 모든 꿀벌의 애벌레는 알에서 깨어나면 며칠 동안은 로열젤리를 먹고 자라는데 여왕벌이 될 애벌레는 끝까지 로열젤리를 먹고 성장한다고 합니다. 로열젤리 효능 피로회복 및 면역력 증진 로열젤리의 대표적인 효능 중 하나는 피로회복입니다. 비타민B가 풍부해 간을 튼튼하게 해줄 뿐만 아니라 일반 꿀에 비해 100~200배 정도 혈류량을 증가를 시켜준다고 합니다. 이로 인해 신진대사가 활발해지는데요. 생체 저항력과 면역력을 증진시.......

벽제역(벽제터널) 과태료 주의. 가지 마세요 [내부링크]

철길과 좁은 터널 너머로 보이는 북한산이 어우러지는 풍경. 바로 인생 사진의 명소로 알려진 고양시 &#x27;벽제 터널&#x27;입니다. 하지만 최근 인생 사진을 위해 벽제역(벽제 터널)을 찾았다가 과태료를 내는 사례가 부쩍 늘고 있습니다. 고양시 벽제 터널은 폐선부지가 아닙니다 2015년부터 2018년도까지는 단 한건의 과태료 부과도 없었으나, 2019년부터 국민신문고 등에 관련 사진에 대한 신고가 들어오면서 한국철도공사가 철도 특별사법 경찰대에 수사를 의뢰하게 됐다고 합니다. 고양시 벽제 터널은 폐선부지가 아니기 때문에 아래 법에 적용되게 됩니다. 선로 및 철도시설 안에 철도공사의 승낙 없이 통행하거나 출입하는 경우 철도안전.......

능이버섯:: 독 빼고 살 빼는 버섯 [내부링크]

독소는 우리 몸 안팎에서 생성되는데, 날씨가 추워질수록 활동량이나 물 섭취량이 줄어들기 때문에 신진대사가 떨어지고 반대로 체내 독소량이 급격히 증가하기 때문에 본격적으로 겨울이 시작되기 전에 독소를 꼭 비우는 것이 중요하다고 합니다. 미세먼지, 일상생활 속 화학물질 등으로 인해 우리 몸에는 계속 독소가 쌓이고 있습니다. 중금속은 독소로 전환되고 이 독소는 각종 질병의 원인이 됩니다. 특히, 3대 독소를 조심해야 한다고 하는데요 3대 독소 아래와 같습니다. 만성 염증 3만 6천 가지 질병의 원인으로 작용 지방 독소 독소가 축적된 지방 세포 당 독소 몸속 당과 단백질 찌꺼기가 결합 이 독소들을 제거하기 위해 적합한 음식은.......

히트2웨어 usb 스마트 발열조끼 온열 조끼 후기 :: 내돈내산 [내부링크]

안녕하세요 노루아부지에요 ㅎ_ㅎ 여러분들은 이번 겨울 어떻게 준비하고 계시나요? 저는 추위에 너무 약해서 5월까지 전기장판을 켜고 잠을 자기 때문에 매년 겨울이 지옥 같아요 (자랑은 아니지만요) 그러다가 우연히 발견해서 써봤는데 너무 좋아서 추천해 드리려고 해요 그 아이템은 바로 히트2웨어 USB 스마트 발열조끼 인데요 히트2웨어 USB 스마트 발열조끼는 겉보기에는 단순한 경량 조끼처럼 보이지만 총 4군데 (위 등, 중간 등, 앞쪽 배, 허리) 에 열선이 있어서 우리 몸을 따뜻하게 해주는데요 히트2웨어 usb 스마트 발열조끼는 아래와 같이 광고를 하고 있어요 참고하셔야 할 점은 이 제품은 배터리 내장 방식이 아닌 보조배터리를 주.......

우슬: 관절에 도움이 되는 뿌리 [내부링크]

관절염은 직립보행을 하는 인간에게 피할 수 없는 운명 같은 질환입니다. 우리나라 65세 이상 약 37.8% 정도가 퇴행성 관절염을 앓고 있을 만큼 흔한 만성 질환입니다. 관절 건강을 지키기 위해서는 염증을 예방하는 것이 중요한데요 관절에 생긴 염증은 연골을 파괴하며 다시 관절염이 진행되는 악순환으로 이어진다고 합니다. 2020. 11. 13일 방송된 천기누설에서는 &#34;우슬&#34;에 대해 소개했는데요 우슬은 줄기의 마디가 소의 무릎을 닮아 쇠무릎이라는 애칭으로도 불린다고 합니다. 동의보감에서는 다리와 무릎이 아프고 약해진 것을 다스린다고 되어 있고 본초강목에는 허리와 무릎에 힘을 실어 주고 피를 잘 통하게 해준다고 되어있.......

Lombok Annotation [내부링크]

val val은 실제로 변수 type을 작성하는 대신 지역 변수 선언의 type으로 사용할 수 있습니다. 이렇게 하면 initializer표현식에서 type이 유추됩니다. 지역 변수도 final 키워드가 붙어서 최종적으로 만들어집니다. 이 기능은 지역 변수와 foreach loop에서만 작동하며 필드에서는 작동하지 않습니다. val은 실제로는 일종의 type이며, lombok 패키지에 실제로 클래스로 존재합니다. 1) lombok을 사용한 코드 var var는 변수에 final 키워드가 적용되지 않는 점을 제외하면 정확히 val과 같습니다. var는 val과 다르게 final 키워드가 적용되지 않기 때문에 변수에 추가적인 할당이 가능합니다. 하지만, 처음 ㅊ초기화 표현식에만 타입 추론 기.......

[Maven] mvnw package (컴파일) 시 [ERROR] Run `spring-javaformat:apply` to fix. 오류 발생 [내부링크]

mvnw package 명령어 실행 시 아래와 같은 오류 메시지가 발생합니다.(요약) 이 경우 아래와 같이 명령어를 실행해 주면 됩니다.

아르간 오일의 효능 [내부링크]

아르간 오일은 아르가니아 스피노사(Argania spinose)라는 나무의 작은 열매의 씨앗으로 만들어지는데, 이 나무는 모로코 남서부 지역에서 자라는 나무입니다. 모로코에 사는 염소는 아르간 나무의 열매를 먹습니다. 염소들은 열매를 먹기 위해 나무를 타서 올라갑니다. 아르간 오일 생산자들이 이 염소의 배설물들을 수거하여 소화되지 않은 씨앗으로부터 아르간 오일을 생산한다고 합니다. 요즘에는 일부 생산자들은 염소들의 도움 없이 오일을 얻는다고 합니다. 아르간 열매 128kg당 단 1L의 기름만 생산된다고 합니다. 아르간 오일의 효능 튼 살 최소화에 도움 2016년의 한 연구에서는 아르간 오일 및 연화제 성분을 함유하고 있는 유상액이.......

마카 효능 및 부작용 [내부링크]

마카(학명 : Lepidium meyenii)는 페루의 안데스산맥이 원산지인 배추과 두해살이풀이다. 페루는 슈퍼푸드 최대 생산지입니다. 최근 들어 국내에서도 열풍을 불러온 사차인치나 브라질너트, 카카오닙스 등의 주요 생산지도 페루입니다. 페루가 슈퍼푸드 최대 생산지가 된 것은 각종 슈퍼푸드가 자라는데 가장 비옥하고 적합한 땅을 가졌기 때문입니다. 그중에서 마카는 페루를 슈퍼푸드 생산지로 알리는데 큰 영향을 미쳤습니다. 현재의 페루 슈퍼푸드 시장은 마카 가루의 유명세로 시작했다는 말이 나올 정도입니다. 마카는 페루의 산삼이라고 불릴 만큼 몸에 좋으며 특히 부부관계에 좋다고 합니다. 이 효과에 반해 애용하시는 분들이 많아서 최.......

가정용 칫솔 살균기 내돈내산 후기 [내부링크]

혹시 화장실 곰팡이 때문에 골치 아픈 분들 있으신가요? 저 같은 경우는 화장실에 환풍기가 없어서 항상 곰팡이와 전쟁을 하고 있는데 여름에는 특히 심해요 그러다가 문득 이 정도면 눈에는 안 보여도 분명 칫솔에도 곰팡이가 있겠다 라는 생각이 들었어요 그래서 급하게 칫솔 살균기를 검색을 했는데요 제가 구매한 제품은 유토렉스 퍼펙트케어 칫솔살균기에요 기존에 제가 알던 그리고 흔히 볼 수 있는 칫솔 살균기는 뚜껑을 닫았을 때 UV 램프를 통해 잠깐 소독을 하고 마는데 이 방식은 칫솔을 다시 쓸 때쯤이면 다시 곰팡이에 오염되어 있을 것 같아서 많이 찝찝했어요 반면에 유토렉스 퍼펙트케어 칫솔살균기는 세라믹 히팅 발열판으로 24.......

한글날 : 한글날의 유래와 역사 알기 [내부링크]

우리나라의 말이 중국말과 달라 한자와는 서로 통하지 아니하므로 이런 까닭에 어리석은 백성이 이르고자 하는 바가 있어도 마침내 그 뜻을 펴지 못하는 사람이 많으리라. 내가 이를 불상히 여겨 새로 스물여덟글자를 만드니 사람마다 쉽게 익혀 날로 쓰기 편하게 할 따름이니라 나랏말싸미 듕귁에 달아로 시작하는 말을 한번쯤 들어보셨을텐데요 그 말은 훈민정음 언해본에 쓰여 있는 글이고 위의 문장은 그 해석입니다. 오늘은 한글날입니다. 그래서 오늘은 한글날에 대해 알아볼까 합니다. 한글날이란? 한글날은 세종대왕님께서 훈민정음(訓民正音) 곧 오늘의 한글을 창제해서 세상에 펴낸 것을 기념하기 위한 국경일 입니다. 1926년에 음력 9.......

달팽이 효능 [내부링크]

식용 달팽이란? 달팽이는 연체동물 복족류(배가 발인 무리) 가운데 나선형의 껍데기가 있는 종류를 통칭하는 말입니다. 미식가의 천국 프랑스의 3대 진미 중 하나로 꼽히는 식재료가 바로 달팽이 입니다. 주의!! 꼭 식용 달팽이를 전처리 과정을 거쳐야 안정하게 섭취가 가능합니다. 한의학에서의 달팽이 우리에게 익숙한 식재료는 아니지만 우리 선조들 역시 약용으로 달팽이를 먹었습니다. 동의보감에 기록된 내용을 보면 열을 내리고 부종과 해독에 좋다고 되어 있습니다. 또한 중국의 본초 도경에 의하면 &#34;좋은 달팽이를 어린이의 약에 넣어 조제하면 발육부진에 더 좋은 것이 없다&#34;라고 했습니다. 콘드로이틴 황산(뮤신의 일종) 달.......

곰보배추(배암차즈기)의 효능 [내부링크]

곰보배추란? 잎의 생김새가 얼굴에 난 곰보를 연상케 해서 곰보배추라고 불린다고 합니다. 경상도 지방에서는 문디배추 또는 못난이 배추라고도 합니다. 곰보배추의 효능 폐, 기관지 건강에 도움 곰보배추에는 사포닌과 플라보노이드 성분이 다량으로 함유되어 있어 기침, 가래, 천식 등에 효과가 있으며, 비염과 만성 폐질환에 도움을 줍니다. Biological Research(2016)에 따르면 곰보배추 추출물 섭취 후 기관지 염증이 24% 감소했다고 합니다. 또한 폐의 염증을 줄여주고 염증으로 인해 망가진 면역체계를 안정화 하는데 도움을 준다고 합니다. 치통 완화 곰보배추잎을 깨끗이 씻어 잎을 자르거나 찧어서 아픈 부위에 물고 있으면 일시적으로.......

파주 운정 맛집 추천::피셔맨스키친 운정점::내돈내산 [내부링크]

오늘은 파주에 위치한 피셔맨스키친 운정점에 한번 더 다녀왔어요 일단 피셔맨스키친 운정점은 (다른 지점은 안가봐서 모르겠지만..) 주방이 오픈형이라 뭔가 위생적으로 더 깨끗할것 같은 기분이 들어요 먼저 피셔맨스키친의 메뉴판이에요 이 중에서 저는 프로슈토루꼴라 피자, 고르곤졸라 피자를 주문했어요 역시나 오늘도 에피타이저인 빵과 크림이 나왔는데요 개인적으로 저 빵과 크림은 별도 메뉴로 따로 팔면 꼭 사먹을 것 같아요 너무 맛있어요 그 이후에 메인 요리인 피자들이 나왔어요 먼저, 피셔맨스키친을 다시 온 이유인 프로슈토루꼴라 피자!! 역시 오늘도 너무 맛있었어요 단, 간이 좀 쎈 편이라 싱겁게 드시는분은 주의하셔야 할.......

애호박의 효능 [내부링크]

세균이나 바이러스 같은 외부 공격에 대한 방어 반응이 바로 염증이라고 합니다. 염증 물질이 쌓이면 미세혈관과 신경을 훼손 시켜 각종 질환을 불러올 뿐만 아니라 여러 가지 만성 질환을 악화시켜 결국 암으로까지 발전시킬 수 있습니다. 호박은 여러 가지 종류가 있는데 그중에 천 원의 보약이라고 불리는 호박이 있는데, 바로 애호박입니다. 애호박이란? 애호박은 한식에서 사용하는 덜 여문 어린 호박을 일컫는다. 여름 호박으로, 봄에 심어 늦봄~가을에 수확한다. 서양요리에서 쓰는 주키니 호박은 페포호박(Cucurbita pepo)의 재배종인 데 비해, 애호박은 호박(C. moschata)의 재배종이며, 품종으로 서울마디호박, 불암사철애호박, 미소호.......

exception loading sessions from persistent storage [내부링크]

Tomcat은 시작되지만 아래와 같은 메시지가 표시되는 경우가 있습니다. 이것은 Tomcat이 종료될 때 이전에 직렬화된 웹 세션을 로드 할 수 없는 것과 관련이 있습니다. Tomcat이 완전히 종료되지 않아 직렬화 중에 세션 개체가 손상되었기 때문일 수 있습니다. 해결방법은 다음과 같습니다. 1. Tomcat 재시작 시 세션 지속성을 비활성화 아래와 같이 conf/context.xml의 &#60;Manager&#62;의 pathname 속성을 빈 문자열로 변경합니다. 2. Tomcat의 work 폴더를 삭제하고 재시작 합니다. eclipse의 경우에는 Server &#62; Tomcat에서 &#34;Clean Tomcat Work Directory&#34;를 선택하면 됩니다. [출처] https://stackoverflow.com/questions/206227.......

고추의 효능 [내부링크]

매운맛은 중독성이 있다고 합니다. 스트레스를 받을 때 매운 음식이 먹고 싶었던 적이 한 번쯤은 있으셨을 텐데요 그래서인지 요즘 매운 음식 먹방이 크게 증가했습니다. 고추란? 고추는 가지과의 식물로서, 열매는 짙은 녹색이나 익어가면서 점점 빨갛게 되며 껍질과 씨는 캡사이신을 함유하고 있어 매운맛이 납니다. 한자 이름은 먹으면 맵다고 &#x27;괴로울 고(苦)&#x27;자를 쓰는 苦椒(고초)였으며, 이게 고추로 변했다고 합니다. 또한, 영어로는 chilli pepper라고 합니다. hot pepper라고도 하는데, 이는 후추를 대신하기 위해 도입했기 때문이라고 합니다. 고추의 효능 항암효과 고추에 함유되어 있는 캡사이신은 항암효과가 있습니다. - .......

오징어 효능 및 부작용 [내부링크]

오징어란? 오징어(영어: Octopus, 학명: Caribbean Reef Squid)는 십완상목의 해양 연체동물의 총칭입니다. 가장 작은 오징어는 꼬마오징어로 몸길이가 겨우 2.5cm이고, 가장 큰 오징어는 대서양에 사는 대왕오징어로 20m에 이른다고 합니다. 북한(조선민주주의인민공화국)에서는 낙지라 부르며, 대한민국에서 부르는 낙지를 북한에서는 서해낙지라고 부른다고 합니다. 오징어의 효능 면역력 향상에 도움 오징어의 껍질 부위에는 타우린이 풍부한데요, 마른 오징어의 표면에 붙어 있는 하얀 가루가 바로 타우린 성분인데요 이 타우린 성분이 면역력을 향상시키는 데 도움을 줍니다. 피로회복에 도움 오징어에 함유된 타우린 성분은 피로회복에 좋.......

SQL Server JDBC Driver(MSSQL)에서의 NVARCHAR, VARCHAR [내부링크]

MSSQL은 DataType에 대한 우선순위가 있습니다. nvarchar가 varchar보다 우선순위가 높기 때문에 index가 있는 varchar 컬럼에 nvarchar parameter가 mapping 된 경우, 우선순위에 따라 varchar 컬럼이 모두 nvarchar로 형변환이 일어난 후 조건을 비교하게 됩니다. 따라서 index가 무시됩니다. 예를 들어 아래와 같은 query가 있다고 가정합니다. 이 경우 WHERE 절을 만들기 위한 string 타입의 parameter는 SQL Server JDBC Driver에 의해 nvarchar로 mapping되어 query를 보내게 됩니다. 그럼 우선 순위에 의해 TB_USER 테이블의 모든 USER_NAME 컬럼들이 전부 nvarchar로 형변환이 일어납니다. 형변환이 일어나기 때문에 원래 설정된 index가.......

IntelliJ에 Eclipse 프로젝트를 import 하는 방법 [내부링크]

1. Import Project IntelliJ를 실행하면 아래와 같은 첫 화면이 나오는데, 여기서 Open or Import를 클릭합니다. 그 이후 import 할 프로젝트를 선택합니다. 그 이후 project 유형을 선택합니다. 중요!! Eclipse project를 선택해야 합니다. 2. 환경설정 성공적으로 Project가 Import 되었다면 오른쪽 하단에 Event Log라는 것이 생깁니다. Event Log를 클릭하면 아래와 같이 표시되는데요. 여기서 Add as Maven Project를 클릭합니다.

IntelliJ + Maven 환경에서 QueryDsl 사용하는 방법 [내부링크]

1. pom.xml 에 dependency 추가 2. pom.xml에 plugin 추가 3. 프로젝트에서 마우스 오른쪽 클릭 &#62; Maven &#62; Generate Sources and Update Folders 메뉴 클릭 - 이 메뉴를 클릭해야 Q클래스가 생성됩니다. 4. 에러 발생 시 분명히 QClass 파일이 존재함에도 불구하고 실행 시 Cannot resolve symbol &#x27;class명&#x27; 오류가 발생합니다. 이 경우 File &#62; Project Structure 메뉴를 클릭 한 후 generated 폴더를 Sources로 설정하면 됩니다.

Wireshark에서 localhost 패킷 보는 방법 [내부링크]

Wireshark에서 localhost의 패킷을 보기 위해서는 Adapter for loopback traffic capture를 체크해야 합니다. 1. 옵션 버튼 클릭 2. loopback 의 체크박스 선택 후 Start 버튼 클릭

IntelliJ에서 Maven Install 하는 방법 [내부링크]

1. IntelliJ 상단의 [view &#62; Tool Window -&#62; Maven Project] 메뉴 또는 아래 사진과 같이 오른쪽의 Maven을 클릭 2. [프로젝트 이름 &#62; Lifecycle] 하위 메뉴로 maven의 실행 명령들이 표시됩니다. - scApi가 프로젝트 이름입니다. 3. 다음과 같은 순서로 메뉴를 더블클릭합니다. - clean - compile - install

IntelliJ에서 Maven build/install tests를 skip하는 방법 [내부링크]

1. Maven Projects 창을 띄웁니다. (아래 두가지 방법 중 선택) - [View &#62; Tool Windows &#62; Maven Projects] 메뉴 선택 - IntelliJ 오른쪽 상단의 Maven 버튼 클릭 2. 아래 아이콘 클릭하여 활성화

javascript ajax 크로스 도메인 요청하기(CORS) [내부링크]

javascript에서 ajax 요청을 보내면 브라우저 콘솔에 아래와 같이 에러가 나면서 요청이 실패합니다. 1) 크롬 No &#x27;Access-Control-Allow-Origin&#x27; header is present on the requested resource. Origin ‘[요청한 도메인]&#x27; is therefore not allowed access. 2) 파이어폭스 교차 원본 요청 차단: 동일 출처 정책으로 인해 [요청한 도메인]에 있는 원격 자원을 읽을 수 없습니다. 자원을 같은 도메인으로 이동시키거나 CORS를 활성화하여 해결할 수 있습니다. 해결 방법 1. jsonp 사용 GET 방식 밖에 사용할 수 없기 때문에 길이의 제한이 있습니다. 2. 서버에서 CORS 컨트롤하기 서버 서버 설정으로 요청을 허용하는 방식입니다. .......

가지의 효능 및 부작용 [내부링크]

가지란? 속씨식물문 쌍떡잎식물강 가지목 가지과 가지속에 속하는 한해살이풀 채소. 열매를 빼면 전체적으로 회색빛 별 모양 털이 특징인 식물. 식용으로 많이 사용한다. 원산지는 인도이며, 한국에서는 신라 시대부터 재배되었다. 5~6월에 꽃이 피고 7~8월에 열매가 익는다. 한자로는 茄子(가자)인데 이것의 발음이 변해 &#x27;가지&#x27;가 되었다. 대개 가지라 하면 열매를 지칭하며, 검은 자줏빛의 외피와 흰 과육으로 이루어졌다. 신선한 가지는 열매꼭지 부분에 가시가 있어 취급에 주의를 요하기도 한다. 검은 빛깔의 껍질에는 안토시아닌이 많이 들어있다. 가지의 효능 심혈관 건강에 도움 가지에 풍부하게 함유된 칼륨은 체내의 나트륨.......

퀴노아의 효능 [내부링크]

퀴노아란? 남아메리카 안데스산맥의 고원에서 자라는 곡물이며 잉카어로 &#x27;곡물의 어머니&#x27;라는 의미를 갖고 있다. 원산지는 페루, 볼리비아, 에콰도르, 콜롬비아, 칠레의 안데스 지역이고 티티카카 호수 분지에서 식용을 목적으로 3000년~4000년 전부터 재배되었다. 해발 2,500~4,000m의 고산지대에서 자라며 적응력이 강해 기후환경을 크게 가리지 않고 토양이 건조해도 재배가 용이하다. 쌀보다 작은 좁쌀 크기의 원형이며 색은 흰색, 붉은색, 갈색, 검은색 등이 있다. 또한 퀴노아는 고단백 식품으로 나트륨이 거의 없고 글루텐 또한 없어 건강식품으로 주목을 받고 있다. 완전 곡물 퀴노아 퀴노아는 완전 곡물(퀴노아가 씨앗이긴 하.......

Maven Dependency에서 scope의 의미 [내부링크]

Maven2에서는 dependency를 가지는 대상에 대해서 다음과 같이 scope를 지정하고 있습니다. * compile - 기본영역으로 아무것도 지정되지 않은 경우 사용 - compile 의존관계에 있는 것은 프로젝트의 모든 클래스에서 사용 가능 - 이와 같은 의존관계는 의존관계에 있는 프로젝트에 포함 * provided - 실행 시 의존관계를 제공하는 JDK나 컨테이너에 대해서 적용 - 예를 들어, JEE에 대한 웹 애플리케이션을 만드는 경우, 웹 컨테이너가 서블릿 API와 Java EE API 관련 클래스들을 제공하기 때문에 provided 영역으로 의존관계가 세팅되어야 함 - 이 영역은 컴파일과 테스트의 클래스 패스 용으로 사용되며, 자동 영역임 * runtime - 의존관계가.......

Spring lazy Initialization [내부링크]

기본적으로 스프링 IOC는 애플리케이션을 시작할 때 모든 Bean을 초기화합니다. 이 과정에서 Bean 초기화에 실패할 수도 있는데 이로 인해 애플리케이션 실행 시점에 장애를 사전에 발견할 수 있습니다. 반면에, 시작할 때 모든 Bean을 초기화하는 경우, 애플리케이션의 설정이 많고 무겁다면, 애플리케이션을 초기화할 때 많은 시간이 걸립니다. 반면에, Lazy로 설정이 되어있다면 다른 Bean이 참조하거나 BeanFactory에서 명시적으로 검색할 때까지 Bean은 초기화되지 않습니다. Lazy Initialization 활성화하는 방법 1) Spring Boot application.properties에 spring.main.lazy-initialization 의 값을 true로 설정하면 모든 Bean이 Lazy Init.......

보스웰리아 효능 너무 만족해요. [내부링크]

여자분들은 출산을 한 다음 몸이 예전과 똑같지 않다는 걸 스스로 깨닫는다고 하잖아요? 아무리 산후조리를...

어골칼슘 흡수율 높은 게 좋더라고요. [내부링크]

저희 아파트가 이번에 엘레베이터 공사를 하기 시작했는데요. 집이 20층인지라 일주일 가량 걸어서 올라가...

임산부 뱃지 온라인으로 신청해서 받는 방법 [내부링크]

임신을 하게 되면 이것저것 챙겨할 것이 많은데요. 그 중 대표적인 것이 바로 임산부 뱃지를 받는 것인데요...

밀크씨슬 추천 좋은 거로 [내부링크]

잦은 야근과 회식으로 항상 피로가 쌓여 있는 아내의 간이 걱정되곤 했는데요. 간에 좋은 영양제의 필요성...

탈모약 부작용 _ Feat 아보다트 / (아보다트 부작용 성분, 피나스테리드 두타스테리드) [내부링크]

탈모로 인해 스트레스를 받는 사람들의 비율이 가면 갈수록 높아지고 있다. 그만큼 탈모환자의 비중이 높아...

프리바이오틱스 추천 선택의 기준은 [내부링크]

사춘기 때부터 심한 변비로 고생을 했는데요. 어릴 때부터 변비로 고생을 해서인지, 변비에 좋은 음식을 항...

비오틴 선택하실 때 신중히! [내부링크]

이제 점점 나이가 들수록 머리숱이 예전 같지 않다는 걸 실감하게 되는데요. 특히 스트레스를 받거나 하면 ...

루테인추천 함량에 집중하세요 [내부링크]

저는 어렸을 때부터 렌즈를 자주 착용했어요. 성인이 되고 더욱 착용할 일이 많더라고요. 그래서 다른 사람...

루테인효능 다 갖췄어요 [내부링크]

최근에 업무로 정말 피곤한 날들이 많았어요. 야근하는 날이 많아지면서 자연스럽게 모니터를 보는 시간도,...

모든 면에서 만족하고 싶다면 강남 전자담배 시가K! [내부링크]

흡연을 하시는 분들이시라면 누구나 금연을 생각하기도 하고 전자담배를 생각하기도 하는데요. 이번에 저 ...

예전부터 시작된 한쪽 눈 떨림 [내부링크]

예전부터 시작된 한쪽 눈 떨림 어느 날부턴 가 한쪽 눈 떨림이 심해졌어요. 피로해서 그렇겠지 생각하면서 ...

베이비유산균 걱정없이 [내부링크]

아가 키우는 재미에 푹 빠져있는 초보 아빠에요~ 친구 아이는 밥을 너무 안 먹어서 친구가 마음고생을 정말...

100억유산균 건강관리 제대로네! [내부링크]

안녕하세요 여러분들~ 최근 무더운 날씨가 이어지고 있는데 모두 건강하게 보내고 계신지요? 더위에는 정말...

20대 남자친구 200일 선물 서로 뿌듯했던 시간 [내부링크]

남자친구랑 200일을 앞두고 남자친구 200일 선물 챙겨주기에 돌입했어요. 다른 것보다 먹는 것을 너무너무 ...

청소년 유아홍삼 걱정 덜어내세요 [내부링크]

아이들의 건강은 부모들이 챙겨주는 것이라고 해도 과언이 아니죠. 물론 성장에 있어서는 본인들이 알아서 ...

감초추출물 효능 알고 먹어요 [내부링크]

여러분 감초추출물이 위 건강에 도움을 줄 수 있다는 사실 알고 계셨나요? 저는 옛날부터 위장질환을 오래 ...

여성질유산균추천 신경썼네요 [내부링크]

여성들은 한달의 한번 생리를 하는 것으로 보통 건강을 알 수 있다고 하는데요. 그런데 보통 한두 번 정도 ...

아기철분제 꽉 채우고 싶은 사람들은 무조건 필독! [내부링크]

아기철분제 꽉 채우고 싶은 사람들은 무조건 필독! 여성에게 아기철분제는 정말 중요한 것 같아요. 특히 임...

아연 효능 알아봤는데! [내부링크]

아연 효능 알아봤는데! 온종일 집에만 있는 시간이 많아져서 인지 부쩍 기운이 없어졌어요. 외출도 하며 활...

결혼식 하객선물, 후 답례품에 완전 감동 [내부링크]

친구의 결혼식이 있었던 날, 갑자기 저의 어린 딸이 열도 꽤 나고 너무 아파서 어딜 갈 수가 없게 됐어요.....

하루 단백질 섭취량 계산해봤어요 [내부링크]

하루 단백질 섭취량 계산해봤어요 우리 몸속에서 단백질이 부족하면 다양한 부작용이 나타난다고 할 수 있...

밥안먹는아이 찾고있던 해결방안 [내부링크]

밥안먹는아이들 보면 정말 엄마들의 속은 타들어가기 마련입니다. 게다가 면역성이나 성장에도 더욱 더 중...

배에 가스 쉽게 빼보자 [내부링크]

요즘 퇴근하고 너무 힘들어서 집 오자마자 저녁 먹고 바로 눕게 되는거 같아요ㅜ 저녁에 꼭 운동해야지 싶...

머리 영양제 먹어본 사람과 차이 [내부링크]

안녕하세요 너무 더운 여름철 우리의 피부는 물론이고 두피와 머리도 강력한 자외선으로부터 아주 고통받고...

밀크씨슬 효능을 제대로 느낄 수 있을까요? [내부링크]

밀크씨슬 효능을 제대로 느낄 수 있을까요? 요즘 들어 부쩍 아침에 일어나는 게 너무 힘이 들더라고요. 예...

술먹고 속안좋을때 도움 되는 방법 [내부링크]

술먹고 속안좋을때 경험해보신 적 다들 있으실 거예요. 저는 혼술을 참 좋아하는데 집에서 홀짝홀짝하다가 ...

관절 영양제 관리해요 [내부링크]

나이가 많이 들었다고는 할 수 없지만 몸이 점점 전과 달라지고 있다는 건 느껴져요. 20대 때는 새벽까지 ...

헬스 무릎보호대 도움 많이 돼요 [내부링크]

무리한 식단으로 급격히 감소한 몸무게가,, 요요가 와버려서 건강하게 살을 빼고자 피티를 등록했다.. 근육...

루테인지아잔틴 비율 보고 선택해요 [내부링크]

안녕하세요 여러분! 최근 들어 유독 눈 건강을 챙기는 일이 너무나 어렵다고 생각하고 있어요. 매일 같이 ...

대마종자유 효능 안심하고 챙겨요 [내부링크]

나이가 들면서 건강에 관심을 가지다 보니 때마다 좋다는 건강식품들에 자연스럽게 눈길이 가더라고요. 이...

30대 남자친구 선물 등산간편식으로 챙기라고 [내부링크]

제 남자친구는 등산을 굉장히 좋아해요. 그래서 동호회 같은 것도 요즘 꾸준하게 알아보고 있을 정도로 크...

키성장 영양제 대신 선택해야 하는 이유 [내부링크]

아이의 키성장 영양제를 알아보시는 분께 오늘은 제가 좋은 정보가 있어 한번 공유해 볼게요. 이번에 제가 ...

프로폴리스 효능 확실히 보려면? [내부링크]

저는 정말 염증을 달고 사는 사람이에요ㅠㅠ 손목을 많이 쓰는 직업을 가진 탓에 손목 관절 염증도 자주 생...

단백질보충제 아무거나 먹지마세요 [내부링크]

평소에는 건강관리에 신경을 쓰지 않았거든요. 젊은 20대에는 하루 굶어도 살이 쭉쭉 빠져서 별 고통 없이 ...

눈영양제 따져봐요! [내부링크]

주말에 휴식을 취하실 때나 tv시청을 하고는 하는데요. 저와 같은 분들이 많으실 거라 생각해요. 여기서 그...

퀄리티 있는 강남사무실임대 수수료 없이! [내부링크]

직접 알아보고 유용했던 점들을 공유해 보려고 해요. 강남에서 사무실을 구하기란 정말 하늘의 별 따기 보...

코큐텐 효능 여지껏 몰랐네요 [내부링크]

최근에는 야근도 별로 없었어요. 그럼에도 불구하고 컨디션이 좋지 않아 웬만하면 휴일에는 휴식을 취했고...

유산균복용시간 규칙적으로 정해서! [내부링크]

요즘은 하루종일 의자에 앉아서 업무를 하다 보니까 잠시 쉬려고 밖에 나가는 짧은 시간조차도 아까워서 컴...

임산부 엽산 권장량 채워야 돼요 [내부링크]

임신하면 필수적으로 먹어야 하는, 먹게 되는 영양소들이 있어요. 임산부가 아니더라도 웬만하면 다 알고 ...

눈영양제 따졌어요! [내부링크]

주말에 휴식을 취하실 때 TV 시청을 하시거나 스마트폰만 들여다보시는 경우가 많으신 것 같아요! 여기서...

연세 키즈텐042 가격 확실한 정보 드려요 [내부링크]

제가 이번에 정말 괜찮은 건강기능식품을 하나 발견했는데요. 바로 키즈텐042라고 하는 제품이에요. 너무나...

비오틴 부작용 걱정없이 챙겼어요 [내부링크]

요즘 회사에서 야근이 잦아지다 보니 점점 스트레스가 쌓이기도 했었어요 다들 이렇게 사는 거겠지 하면서 ...

하남 전자담배 최초 24시간 상시구매의 편안함! [내부링크]

저는 연초를 피우다가 어느 날부터 전자담배로 갈아타게 됐어요. 제가 액상을 구매하러 자주 다니는 하남 ...

어린이아연 참고해서 골라봐요 [내부링크]

아이의 아토피 증상에 도움을 주고 싶었어요 저희 집 아이의 경우에는 어려서부터 피부 질환을 앓는 경우가...

면역력 영양제 챙겨봅시다 [내부링크]

요즘에는 건강 관리는 물론이고 면역력 관리도 필수로 자리를 잡고 있는 시대인 만큼 저도 관심이 부쩍 더 ...

루테인 만족하고 꾸준하게 섭취! [내부링크]

루테인효능에 대해서 관심이 생겨서 요즘 들어 많이 찾아보고 있어요. 지난 두 달 정도간 제가 눈 건강을 ...

불포화지방산 체크 리스트 확인해요 [내부링크]

작년부터 꾸준히 집에만 있다 보니 자연스럽게 건강에 대한 관심도가 올라가기 시작했어요. 마침 제 나이 ...

속이 쓰릴때 미리미리 먹어요 [내부링크]

이번 포스팅에서는 건강 이야기를 해볼까 하는데요. 물론 지루하고 전문적인 내용은 아니에요. 다만, 순수...

든든한 엽산 추천 [내부링크]

제 지인이 임신 계획을 세우고 나서부터는 먹는 것 하나부터 열까지 신경을 많이 쓰기 시작하더라고요 특히...

유아유산균 늦지않게 [내부링크]

아이를 키우다 보면 정말 많은 일이 생기는데요. 육아전쟁이라는 말이 괜히 나온 것이 아니라는 것을 제대...

쏘팔메토 효능 신랑을 위해 [내부링크]

계속해서 유지하고 싶은 것 중 하나가 바로 젊음이 아닐까 싶어요. 하지만 시간은 저를 기다려주지 않더라...

어린이 평균키만큼은 지켜줘야 하니까 [내부링크]

흔히들 애들은 알아서 잘 큰다고들 하지만 엄마 마음이란 게 그렇지가 않잖아요. 괜히 또래 아이보다 아담...

침대 토퍼 허리 아픈 나를 위해 [내부링크]

벚꽃이 피던 봄이 어제 같은데 벌써 짧은 반팔과 반바지를 꺼내어 입는 더운 계절이 돌아왔네요 :) 옷차림...

양배추즙 포기하고 양배추환 먹은 리뷰 [내부링크]

요즘 부쩍 속이 안 좋아지는 걸 느끼는 것 같아요 ㅠㅠ 나이가 들어서 그런지 소화능력도 떨어지는 것 같고...

가래 없애는 방법 이게 제일 빠름! [내부링크]

안녕하세요! 잇님들~ 무더운 여름 건강관리 잘 하고 계신가요. 날은 더운데 이놈의 감기는 떨어질 줄 모르...

차량 햇빛가리개 여름 준비 끝 [내부링크]

운전을 하면서 가장 큰 걱정은 주차 문제에요. 특히 요즘 같은 무더운 여름날은 내부에 주차하기가 하늘에 ...

남자엽산 잘샀어요 [내부링크]

저는 평소에 건강식품에 관심이 많아서 하루에 서너 개씩도 챙겨 먹곤 하는데요 결혼하고 보니 저는 그런 ...

아기아토피 막막하다면 고민말고 선택! [내부링크]

“아기아토피 막막하다면 고민 말고 선택!” 다른 아이들보다 훨씬 피부가 약한 편이라서 피부 질환을 조심...

루테인효능 꾸준하게 따져봐요! [내부링크]

루테인 효능 꾸준하게 따져봐요! 안녕하세요 잇님들:) 요즘 늦게까지 처리하게 될 업무가 많아지다 보니까 ...

밀크씨슬 실리마린 제대로 비교하자! [내부링크]

밀크씨슬 실리마린 제대로 비교하자! 개인적인 사정으로 골머리를 앓고 있어서 그런가 더 두통이 심해지고 ...

홍대 전자담배 신제품 빠르게 만나볼 수 있는 시가K [내부링크]

많은 분들이 금연, 금주를 다짐하는데요. 저 같은 경우에는 매번 실패를 하다가 홍대 전자담배를 알고 난 ...

저분자콜라겐펩타이드 알고 골라요 [내부링크]

어릴 적부터 항상 주위에서 피부가 좋고 하 얀 편에 속해서 피부 좋다는 말을 많이 들 었어요. 하지만 저도...

화장실 환풍기 추천 - 곰팡이 방지 / 내돈내산 [내부링크]

여러분들 화장실 곰팡이 관리 어떻게 하시나요? 인터넷에 검색해보면 곰팡이 방지를 위한 여러 가지 방법이...

초유단백질 효능 먹고 건강챙겨요! [내부링크]

최근 저는 건강에 대한 관심이 늘어 잘 먹으려고 신경을 쓰는 편이에요. 직장 생활을 오래 하다 보니깐 건...

출산선물 고민 이걸로 끝장! [내부링크]

얼마 전 친한 동생이 출산을 했다는 좋은 소식을 알려 주었답니다 사실 임신하기 전부터도 준비기간이 워낙...

50대 선물, 남자친구 어머니 생신을 맞이하여 [내부링크]

저는 오래 만난 남자친구가 있어요. 이번에 남자친구의 어머니가 생신이시라고 하셔서 남자친구 어머니 생...

저분자콜라겐 추천 현명하게! [내부링크]

아이를 출산하고 나서는 머리카락도 많이 빠지고 피부도 안 좋아졌다는 게 확 느껴지더라고요. 아무래도 아...

아이폰12 홀로그램케이스추천 보호하기에 최적화된 스칼라케이스 [내부링크]

요즘 아이폰 쓰는 분들 많으시죠? 아이폰의 인기는 식을 줄 모르고 나날이 올라가고 있습니다. 핸드폰의 가...

출산선물 유산균을 선물해보세요. [내부링크]

안녕하세요 여러분~ 오늘은 출산선물 추천을 해드리려고 해요. 제가 이 주제를 고민하게 될 줄은 몰랐지만,...

프로폴리스,선택에 앞서 확인할 것 [내부링크]

평소 건강관리에 있어 기본적인 지식도 없는 저는 요즘 지난날들을 많이 후회하며 하루하루 보내고 있어요 ...

계속 설사할때 근본적인 원인부터 [내부링크]

학창 시절부터 덩쟁이라는 별명이 붙을 정도로 장트러블이 심했어요. 그때는 어린 마음에 숨기고 싶을 정도...

보리가루로 내 몸을 건강하게 만들어보자 [내부링크]

이웃님들 안녕하세요~ 요즘은 날이 너무 더워서 물을 자주 마셔줘야해요! 저는 요즘 새싹 보리가루를 타서 ...

루테인추천 리얼하게! [내부링크]

루테인 추천 리얼하게! 잇님들~! 안녕하세요. 어릴 적에는 몸매를 위해서 겉으로 보이는 것에만 집중을 많...

루테인효능 정확하게 골라요! [내부링크]

루테인 효능 확실하게 골라요 평소에 저는 눈 시림이 굉장히 심한 편이라 눈 관리가 항상 고민이었어요. 루...

PVC놀이방매트 아이들 놀이와 인테리어까지 [내부링크]

PVC놀이방매트 아이들 놀이와 인테리어까지 놀이방 매트 고르실 때 최근에는 층간 소음이 잘 잡히는지를...

에밀리아스타일 안산 본식스냅 이곳으로 예약 완료 [내부링크]

안산 본식 스냅을 알아보고 있었는데 마음에 드는 곳이 정말 하나도 없었어요. 나름 많은 업체를 비교도 해...

자동차 휠 철분제거제 정석 하이글로씨 아이언 프리 [내부링크]

신차를 구매하고 세차를 계속한다 해도 어느 순간 도장면이 거칠어지는 경험 다 있으실 텐데요. 이는 자동...

질건강유산균 나를 위한 아이템! [내부링크]

질건강유산균 이렇게 챙겨봐요! 최근 들어서 회사에 새로운 부서가 확장되면서 저희 부서까지 눈코 뜰 새 ...

황반변성 예방 눈 건강 지켜봐요 [내부링크]

저는 잠자는 시간을 제외하고는 컴퓨터와 스마트폰 화면 그리고 티비화면과 같은 시각적으로 피로한 화면에...

쏘팔메토 옥타코사놀 미리 챙겨요 [내부링크]

코시국이라 모든 사람들이 많이 지쳐있는 상태일 거예요. 이 시기에는 지친 에너지를 다시 충전해 주는 게 ...

저분자피쉬콜라겐 추천 너무 요긴해! [내부링크]

저분자 피시콜라겐 추천 너무 요긴해! 요즘 들어 피부 탄력감이 많이 줄어들게 되고 탱글탱글함도 이전보다...

비오틴 효과 체감한 후기 [내부링크]

전에는 남부럽지 않을 만큼 머리숱이 많은 편이었는데, 시험을 준비하면서 스트레스를 워낙 많이 받아서 그...

프리바이오틱스 추천 믿고 선택해요 [내부링크]

안녕하세요~ 요즘 회사 일이 너무너무 바빠져서 오랜만에 포스팅을 쓰게 되었어요. 휴가철이기도 해서 눈코...

성인 여드름 관리 전/후 (+tip) [내부링크]

잇님들~~안녕하세요! 오늘은 오랜 시간 고생했던 성인여드름을 관리했던 방법과 후기를 남기려 해요. 원래...

유아아연 편리하게 [내부링크]

오늘은 저희 집 쇼핑 물품 중에서 최근 한 달 전에 샀었던 유아아연 리뷰를 남겨보려고 해서 원래 유산균을...

철분부족증상 원인 해결방법! [내부링크]

영양제를 꾸준히 챙겨 먹는 편이였는데 회사를 이직하고 난 이후부터 바쁘게 지내다 보니, 몸 건강을 챙기...

프로바이오틱스 추천받아 선택했어요! [내부링크]

스트레스를 받아서 자주 변비 증상을 겪곤 했어요. 요즘에는 퇴사를 하고 건강 관리에 신경을 많이 써봐서 ...

밀크시슬 실리마린 따져보자 [내부링크]

최근 코로나로 인해 재택근무를 하게 되면서 부쩍 몸 건강이 안 좋아진 것 같았어요. 매일 집에서 활동을 ...

신생아영아산통 개선하는 꿀팁 [내부링크]

“한밤중 우는 아기 신생아영아산통 의심해보세요!” 이제 막 조리원을 나와서 본격적으로 육아에 참여하게...

여성갱년기영양제추천 올바른 선택 [내부링크]

안녕하세요 이웃님들 요즘은 어렸을 때를 자주 회상하게 되는 것 같아요. 10대 때는 어머니께서 어느 순간 ...

혈액순환영양제 챙겨야 할 시점 [내부링크]

“혈액순환 영양제 챙겨야 할 시점” 살이 찐 건지 부은 건지 언제부터인가 헷갈릴 정도가 된 것 같아요. ...

콜라겐 고르는 기준 똑똑하게! [내부링크]

안녕하세요. 노루궁뎅이입니다. 점점 나이를 먹어가는거에 따라서 노화가 진행되는 것을 가장 먼저 느끼게 ...

밀크시슬 간 영양제 먹어봐요 [내부링크]

밀크시슬 간보조제 추천드려요 요즘은 집에서 재택근무를 하고 있는 중인데 모니터 보는 시간이 많다 보니...

질유산균 질과 장을 케어 해요 [내부링크]

다이어트를 여름이라고 열심히 도전을 하기 시작을 했는데요 문제는 이로 인해서 면역력이 생각보다 많이 ...

프로폴리스원액 간편하게 골라보기! [내부링크]

올해로 들어서부터 예전만큼 체력적으로나 전반적인 몸의 컨디션이 떨어지고 있는걸 느끼고 있는데요. 이제...

루테인지아잔틴 고품질 비율로 [내부링크]

날씨는 날이 갈수록 더워지고 있는 것 같아요 습하기까지 하니까 기운이 쭉쭉 빠지는 것 같은 느낌이에요 ...

SK 매직 식기세척기 사용 후기 - 내 돈 내산 [내부링크]

안녕하세요 노루아부지입니다. 이번엔 SK 매직의 식기세척기 DWA-1812P 사용 후기입니다. 어느 날 갑...

LG 트롬 스타일러 - 코로나 시대 강력 추천! [내부링크]

안녕하세요 노루아부지 입니다. 코로나 시대에 바이러스 걱정 많으시죠? 그래서 오늘은 스타일러 추천을 하...

남해 가볼만한곳 경치 맛집 보리암 [내부링크]

안녕하세요 노루아부지에요 이번에는 남해 보리암에 다녀왔는데요 먼저 보리암이 어딘지 알아야겠죠? 남해 ...

백신 접종 인증 방법 [내부링크]

안녕하세요 노루 아부지 입니다. 요즘 우리나라도 백신 접종에 가속도가 붙고 있는데요 백신 접종자에 한해...

서울 근교 여행 대부도 대부광산 퇴적암층 [내부링크]

안녕하세요 노루아부지 입니다. 이번에는 대부도에 위치한 &quot;대부광산 퇴적암층&quot; 리뷰입니다. 대...

대부도 맛집16호원조할머니 칼국수 후기 / 내돈내산 [내부링크]

안녕하세요 노루 아부지 입니다. 이번에는 대부도 맛집이라는 16호원조할머니칼국수 집에 다녀왔어요 일단 ...

하남맛집, 미사맛집 스시이안(회전초밥) [내부링크]

안녕하세요 노루 아부지 입니다 이번에는 하남 미사에 있는 스시이안 회전초밥집에 다녀왔습니다 건물 지하...

부천 맛집 팽오리농장 본점 [내부링크]

안녕하세요 노루아부지 입니다. 이번에는 부천에 위치한 팽오리농장 본점을 리뷰하려고 합니다. 팽오리농장...

강화 게장 맛집 추천 일오삼 간장게장 / 내돈내산 [내부링크]

안녕하세요~ 노루 아부지 입니다. 오늘은 강화에 있는 게장 맛집! 일오삼 간장게장에 다녀온 후기 리뷰합니...

패브릭 소파 냄새 제거 방법 추천 [내부링크]

2021년이 된 것이 엊그제 같은데 벌써 여름이 거의 다가왔는데요. 여름철에는 습하고 눅눅해서 패브릭 소파...

경주 여행코스 - 경주 가볼만한 곳 [내부링크]

천년의 나라 신라! 그 신라의 수도였던 경주!우리나라 대표 관광지인 경주는 &#x27;벽이 없는 박물관&#x27;...

용인 분위기 좋은 안심 맛집 동백식탁 :: 내돈내산 [내부링크]

코로나가 장기화되면서 코로나 블루 때문에 너무 힘드시죠?이 시국에는 음식점 가기도 무서워서 사람 몰릴 ...

[부천/신중동 맛집] 스시하마 [내부링크]

부천에서 아직 정말 맛있는 초밥집을 못 찾았었는데이번에 찾아서 공유드려요!!바로 신중동 역 근처에 있...

샤오미 홍미노트9s (장단점) [내부링크]

기존에 삼성 갤럭시 s8을 사용 중인데, 서브폰을 알아보다가 결국 샤오미 홍미노트 9s를 구매했습니다.처음...

Java에서 날짜, 시간 제대로 사용하기(LocalDate, LocalTime, LocalDateTime) [내부링크]

사용하지 않는게 좋은 Calendar, Date 클래스Java를 처음 공부할 때나 단순하게 표현할 때는 Calendar,...

자색 옥수수의 효능 [내부링크]

2020.08.07일 방송된 천기누설에서는 자색 옥수수가 소개되었는데요그래서 이번엔 자색 옥수수가 무엇인지 ...

우유와 골다공증 [내부링크]

우유가 골다공증을 일으킨다?우유는 칼슘 함량만 봤을 때는 칼슘의 대명사로 손색이 없습니다. 하지만 우유...

뼈에 탁월한 MBP 가루 [내부링크]

2020. 07. 16일 JTBC의 건강 프로그램인 닥터홈즈에 MBP가 소개되었는데요. 그래서 이번엔 MBP에...

HikariCP Dead lock [내부링크]

API 개발 후 jMeter를 이용하여 성능테스트를 하던 중 아래와 같은 오류 메시지가 발생했습니다.hika...

파주 운정 맛집 추천::피셔맨스키친 운정점 [내부링크]

오늘은 파주에 위치한 피셔맨스키친 운정점에 다녀왔어요열씸히 맛집을 검색하다가 발견한 맛집이에요...

호랑이 콩(호랑이 강낭콩)의 효능 [내부링크]

건강에 좋은 음식을 소개해 주는 대표적인 프로그램 중 하나인 천기누설에서 2020년 7월 24일 호랑이콩이 ...

쿠첸 전기밥솥 자동세척하는 방법 [내부링크]

밥을 하고 난 뒤 밥솥에서 김이 나오는 부분이 찝찝했던 적 있으신가요?요즘에는 세상이 좋아져서 자동 세...

Tomcat실행 시 Looking up JNDI object with name [spring.liveBeansView.mbeanDomain] 로그 [내부링크]

[DEBUG] 2020-07-14 17:39:44.649 [o.springframework.jndi.JndiTemplate.lookup(155)] - Looking ...

Tomcat] 캐시 부족 (캐시에 추가할 수 없습니다.) [내부링크]

Tomcat 운영 중에 cache가 부족하면 아래와 같은 에러 메시지가 발생합니다.경고 [main] org.apache.c...

Spring boot Data JPA 2.0에서 auto_increment 문제 해결 [내부링크]

기존에는 회사에서 프로젝트를 진행할 때 mybatis를 사용했는데신규 프로젝트는 JPA 2.0을 사용하게 되...

한국이 코로나 사망률이 적은 이유는 김치? [내부링크]

프랑스 연구진, 식습관 영향 분석발효 배추가 코로나 결합 효소 억제발효 음식이 주식인 국가들도 사망 적...

Non ActiveX를 위한 Local Server와 HTTPS [내부링크]

ActiveX 방식의 문제점1. 멀티 플랫폼, 멀티 웹 브라우징 지원 되지 않음ActiveX는 MS의 Windows O...

마카의 효능 :: 정력에 좋은 음식 [내부링크]

마카 하면 잉카제국을 가장 많이 떠올릴 것입니다.남미의 원주민들이 세운 나라들은 서로 세력을 확장하기 ...

타트체리의 효능 [내부링크]

체리의 종류에는 크게 스위트 체리(Sweet Cherries)와 타트체리(Tart Cherries)로 구분됩니다. 스위트 ...

Windows에서 tail사용하기 - BareTail [내부링크]

개발을 하다보면 log를 봐야할 일이 많은데요 linux의 경우에는 tail명령어로 로그를 실시간으로 볼 수 있...

[javascript] 중복되는 배열 요소 제거 [내부링크]

1. jQuery를 이용한 방법* 참고 : jQuery.unique () 는 DOM 객체의 중복을 제거합니다.https://api....

PostgreSQL 설치 [내부링크]

1. CentOS 버전의 기본 설정된 Repository를 사용 할 경우 구 버전의 PostgreSQL이 설치 되므로 Y...

Maven] package does not exist [내부링크]

Maven build 또는 Maven install 시, WEB-INF/lib 폴더에 jar 파일을 놓고 build path에 추가까지 ...

에어프라이어로 냉동 항정살 굽기 [내부링크]

혹시 항정살이 너무 기름져서 잘 먹지 않았던 분들 계신가요?전 요즘 부쩍 기름진 것이 먹기 힘들어졌는데...

정력의 상징! 장어의 효능 및 주의사항 [내부링크]

이제 여름이 되었습니다. 올해 여름은 유난히 더울 거라고 예상하는 분들이 많은데요. 복날 음식을 이야기...

spring boot] 외부 경로 설정 [내부링크]

서버 운영 시에 이미지 등 파일 업로드 경로는 반드시 웹 어플리케이션 외부 경로로 설정해야 합니다.만약,...

햄프씨드(대마씨)의 효능과 부작용 [내부링크]

햄프씨드는 대마의 씨입니다. 아무래도 대마씨라고 하면 대마초와 연관되어 이미지가 좋지 않기 때문인지 ...

spring security] 중복 로그인 방지 [내부링크]

Spring security를 이용하면 옵션을 통해 손쉽게 중복 로그인 방지를 구현할 수 있습니다.해당 코드는 다...

Spring Boot] DB 접속이 매우 느릴 경우(Very slow Spring Boot Application startup) [내부링크]

application.properties 파일에 아래 내용 추가-&gt; 저는 이 옵션을 추가해서 148초 걸리던 것이 10초로 ...

Querydsl] null to empty string(nvl, isnull, ifnull) [내부링크]

각 DB 별로 null을 처리하는 함수가 있는데 Querydsl도 역시 존재합니다.coalesce를 쓰면 되는데요 사...

이케아 플랏사 폰네스(PLATSA/FONNES) 옷장 조립 후기 [내부링크]

기존에는 행거를 썼는데 수납공간이 필요해서 서랍이 있는 옷장을 사러 이케아에 갔습니다.이케아 광명...

Querydsl] Sub Query 사용하기 [내부링크]

환경 : Spring boot 2.3.1select 에서의 사용위의 코드에서 주의깊게 봐야 할 것은 ExpressionUtils...

마카 효능 및 부작용 [내부링크]

마카(학명 : Lepidium meyenii)는 페루의 안데스산맥이 원산지인 배추과 두해살이풀이다.페루는 슈퍼푸...

[oracle 12c+] ORA-65096 공통 사용자 또는 롤 이름이 부적합합니다. [내부링크]

문제 발생 프로세스1) oracle 설치2) CMD 창 실행3) sqlplus sys as sysdba 입력4) 사용자 생성에러...

[tomcat] javascript에서 보여주는 한글이 깨질 경우 해결방안 [내부링크]

1. tomcat/bin 폴더에 가서 tomcatw.exe를 실행2. Java 탭으로 이동3. Java Options: 항목 맨 아래에 다...

Windows에서 Oracle 19c를 삭제하는 방법 [내부링크]

Windows에서 Oracle 19c를 삭제하려면 모든 관련 Ora* 레지스트리 키, 파일 및 폴더를 수동으로 삭제 해...

쑥갓의 효능 및 주의사항 [내부링크]

쑥갓은 한국, 중국, 일본 등지에서 식용 채소로 널리 사용되면서 온실재배가 가능하기 때문에 언제나 섭취...

입냄새, 유발하는 음식, 막아주는 음식 [내부링크]

요즘 코로나19 때문에 마스크를 쓰고 다니다보니 입냄새 제거제의 판매량이 증가했다고 하는데요 오늘은 입...

매스틱 검 효능 및 부작용 [내부링크]

매스틱 검(학명 : Pistacia lentiscus)은 그리스 에게해의 키오스 섬에서만 자라는 매스틱 나무의 수액을 ...

무청시래기 효능 [내부링크]

보통 무청 말린 것은 시래기, 배춧잎 말린 것은 우거지라고 하지만, 표준국어 대사전에 따르면 무청 혹은 ...

양파의 효능 [내부링크]

양파는 수선화과 부추아과 부추속에 속하는 채소로 학명은 Allium cepa입니다.&#x27;식탁 위의 불로초&#x2...

아로니아의 효능 및 부작용 [내부링크]

아로니아(Aronia) 북미가 원산지인 장미과의 낙엽 관목의 열매로 &#x27;블랙 초크베리(Black Chokeberry...

임산부 필수 영양소! - 엽산의 효능, 부작용 [내부링크]

오늘 알아볼 건강식품은 임산부 건강에 좋기로 유명한 엽산입니다.임산부의 엽산 섭취가 왜 중요한지를 밝...

미역의 효능 [내부링크]

미역(학명: Undaria pinnatifida)은 바다에서 서식하는 미역과의 갈조류 입니다. 식물과 유사하지만, 분류...

정력에 좋은 흑마늘의 효능 및 부작용 [내부링크]

아침 공복에 먹는 마늘 한 쪽이 건강에 좋다는 이야기를 한 번쯤 들어봤을 것입니다. 그렇지만 마늘 냄새 ...

렌틸콩(lentils) 효능 [내부링크]

렌틸콩은 인도, 유럽, 캐나다 등 건조한 지역에서 재배되는 식물로 한국의 검정콩보다 약간 작으며 주황, ...

셀레늄의 왕 - 브라질너트의 효능 / 부작용 [내부링크]

브라질너트는 견과류의 일종으로. 아마존 밀림의 나무에서 주로 자랍니다. 이 나무는 꽤나 큰 나무로서 키...

프리바이오틱스 효능 [내부링크]

최근 프리바이오틱스에 대한 관심이 높아지고 있습니다. JTBC 알짜왕에서도 소개를 했었는데요.그런데 ...

화제의 게임 링피트 어드벤처 내돈주고 산 후기 [내부링크]

최근 품절 대란까지 났었던 링피트를 드디어 샀습니다.구성품은 &#x27;게임 타이틀&#x27;, 왼쪽 허벅지에...

카카두플럼 효능 [내부링크]

카카두플럼은 세계 유네스코에 등재된 카카두 국립공원에서만 자라는 슈퍼 푸르츠로, 양식 재배가 불가능하...

가르시니아 효능 및 부작용 [내부링크]

가르시니아는 &quot;가르시니아 캄보지아&quot;를 줄여부르는 이름으로써, 과일 이름입니다. 가르시니아는 ...

모링가의 효능 및 부작용 [내부링크]

모링가는 인도, 파키스탄, 아프가니스탄 등 히말라야 지역이 원산지인 식물로, 어느 곳에서도 잘 자라는 특...

저분자 어류 콜라겐 효능 및 부작용 [내부링크]

콜라겐이란?피부 탄력과 주름의 관여하는 진피의 70% 이상을 차지하는 단백질이 바로 콜라겐인데요. 어류 콜라겐은 주로 어류의 비늘이나 껍질에 풍부한 콜라겐을 추출한 물질을 말합니다.최근에 어류 콜라겐이 여러 방송에 소개됨에 따라 인기가 많아지게 되었는데요. 방송에서 공통적으로 콜라겐 흡수율에 대해 이야기합니다.육류 콜라겐의 경우 체내 흡수량이 2%에 그치지만 어류 콜라겐의 경우 84%의 흡수량을 가지고 있다고 합니다. 그 이유는 바로 분자 크기의 차이에 있다고 합니다.그러나 이것은 오역된 자료로서, 사실은 흡수율이 아니라 &#34;산가용성&#34; 으로서, 생선 콜라겐이 육류 콜라겐 보다 산에 더 잘 녹는다는 말이라.......

L-아르기닌 효능 및 부작용 [내부링크]

아르기닌(또는 아르 지닌 이라고도 불림)은 모든 생물체에 존재하는 필수 아미노산입니다. 아르기닌은 상피세포, 중성구, 산화질소 생성에도 반드시 필요합니다. 특히 혈압, 장운동의 조절, 혈소판의 응고, 식균세포의 기능에 관여하는 산화질소의 전구체로서 중요한 역할을 하고 있다고 합니다. L-아르기닌의 효능 근육생성 및 운동능력 향상아르기닌은 단백질합성에 필요한 아미노산입니다.실질적으로 단백실 합성이라는 역할을 하는 성분으로서, 직접적으로 근육 생성에 기여합니다. 또한 혈관 확장 및 혈류량 증가로 인한 운동능력의 향상을 기대할 수 있습니다. 모발 성장에 도움L-아르기닌은 머리카락의 성장에 필요한 질소화합물을 생.......

초록입홍합의 효능 및 부작용 [내부링크]

관절염이 만성화되면 가벼운 걷기마저 힘들어져 삶의 질이 떨어집니다. 관절은 한번 손상되면 원래 상태로 되돌릴 수 없기 때문에 평소 꾸준한 운동과 관절에 좋은 음식을 섭취해야 합니다. 초록입홍합이란?뉴질랜드에서 생성되는 초록입홍합은 일반 홍합과 달리 껍질에 초록빛을 띠는 것이 특징입니다. 이는 자외선에 대응하기 위해 항산화, 항염증 물질을 풍부하게 생산한 바닷속 플랑크톤을 가득 머금고 있기 때문입니다.초록입홍합에는 글루코사민, 콘드로이틴, 오메가3, 비타민 C와 E, 프로비타민 D의 함량이 높습니다.뉴질랜드 원주민인 마오리족 중 해안가에 사는 부족들은 노인이 되어서도 튼튼한 관절을 유지하는 것으로 알려져 있.......

피스타치오의 효능과 부작용 [내부링크]

피스타치오는 서아시아, 특히 터키 남동부가 원산인 견과류 입니다. 원래는 페르시아어로 &#x27;피스타&#x27;라고 불렸지만, 이것이 고대 로마로 전해지면서 피스타치오로 불리게 되었다고 합니다. 원산지와 로마의 영향으로 성경에 등장하는 몇 안되는 견과류 중 하나입니다. 피스타치오는 그 향과 맛이 좋아 일찍이 시바의 여왕도 즐겼다고 합니다. 당뇨 완화피스타치오는 과도한 당으로 인한 제2형 당뇨를 해소하는데 아주 좋은 식품입니다. 이것은 피스타치오가 단백질의 당합성을 줄여주기 때문이라고 하는데요. American Pistachio Growers에 따르면, 피스타치오는 혈당 관리에 탁월한효능을 보인다고 합니다. 심혈관 건강에 도움피스.......

피칸의 효능 및 부작용 [내부링크]

피칸은 북아메리카 원주민인 알골킨족 언어로 &#x27;파칸(paccan)&#x27;에서 그 이름이 유래하였으며, 아메리카 원주민들은 수천 년 동안 피칸을 먹어왔습니다.미국 농무부(USDA)는 277종의 견과류와 식품류에 대한 조사에서 항산화 성분이 가장 풍부한 것이 피칸이라고 언급한 바 있습니다. 피칸의 항산화 지수(ORAC)는 100g당 17,940이나 되는데, 그 뒤는 호두(13,542), 피스타치오(7,675), 아몬드(4,454) 등의 순입니다.또한 2014년에 &#x27;농업및식품화학저널(Journal of Agriculture and Food Chemistry)에 발표된 연구에서 피칸은 가장 높은 항산화 효능이 있는 식품 범주에 해당된다고 합니다.또한 피칸에는 불포화 지방이 90%나 함유되.......

새우의 효능 및 부작용 [내부링크]

새우는 십각목 갑각류에 속하며 우리나라에는 남해와 서해에 많이 서식합니다. 제철 시기가 9월에서 12월까지이기에 가을과 겨울철에 가장 맛있게 즐길 수 있는 새오는 찜이나 튀김, 전, 젓갈 등의 다양한 요리 재료로 두루 쓰이며 특히 제철 시기에 잡히는 대하를 소금으로 구워 먹는 대하 소금구이는 맛이 일품입니다.새우는 콜레스테롤이 높은 식품 중 하나입니다. 그래서 콜레스테롤 때문에 새우 섭취를 걱정하는 분들이 많습니다. 실제로 새우에는 동맥경화를 유발하는 LDL(나쁜) 콜레스테롤이 꽤 들어있습니다. 그러나 이것이 문제가 되지 않는 이유는 HDL(좋은) 콜레스테롤이 상대적으로 더 많이 들어 있기 때문입니다.미국의 심장질환 전.......

프로폴리스의 효능 및 부작용 [내부링크]

벌들이 인간에게 주는 귀한 선물로 꿀이 대표적이지만, 요즘 더욱 주목받는 것은 프로폴리스입니다.프로폴리스는 벌들이 번식과 생존을 위해서 각종 나무에서 모은 수액과 꽃가루에 꿀벌의 분비물이 더해져 만들어진 복합물질입니다.벌들은 세균, 바이러스로부터 벌집을 보호하기 위해 프로폴리스를 사용하는데, 벌집이 거의 무균상태를 유지하는 것은 벌들이 프로폴리스로 열심히 페인트칠하고 땜질하기 때문입니다.프로폴리스는 항균, 항바이러스, 항산화 작용이 있는 것으로 알려져 있습니다. 이러한 효과는 프로폴리스 내에 다양한 화합물에 의한 것인데, 실제 2012년까지 확인된 화합물만 500종이 넘습니다. 프로폴리스에는 플라보노이드, 테.......

칡의 효능 및 부작용 [내부링크]

여름이면 완성하게 자라는 칡은 우리나라 어디를 가던지 산기슭에서 쉽게 볼 수 있습니다. 덩굴식물이라 나무를 위감아 올라가기도 하고, 양지 바른 곳으로 사방으로 흩어지며 자라기도 합니다.칡은 다년생 콩과의 덩굴식물로 풀처럼 생겼지만, 줄기가 해마다 굵어져 나무로 분류됩니다. 뿌리를 약용으로 쓴느데 갈근이라 부릅니다. 칡의 효능 알코올 중독과 숙취 해소에 도움칡의 효능 중 가장 잘 알려진 것은 숙취 해소에 도움을 준다는 것입니다. 연구 결과 칡에 있는 다이진과 다이제인이 알코올 해독 작용에 기여하는 것으로 알려졌습니다. 사람이 술을 마시면 간에서 알코올을 분해하면서 찌꺼기인 할데히드가 생기는데 칡뿌리는 알데히드.......

호두의 효능 [내부링크]

호두의 원래 이름은 호도(胡桃)로, 생긴 게 복숭아 씨앗과 닮았는데 오랑캐(胡) 나라에서 들어온 복숭아(桃)라 하여 붙여진 이름입니다. 동의보감에 보면 &#34;호두는 몸을 튼튼하게 하며, 피부를 윤택하게 하고, 머리털을 검게 하며 기혈을 보하고 하초 명문을 보한다&#34;고 표현하고 있습니다. 하초는 신장, 방광 등을 포함하는 하복부이며, 명문은 인체에 절대 필요한 열에너지를 간직한 생명의 문을 의미합니다. 뇌 건강 - 기억력 증진, 추론 능력 향상, 치매 에방 효과호두 하면 가장 먼저 떠오르는 효능입니다. 뇌신경 세포의 60%를 구성하는 불포화지방산이 풍부한 호두는 뇌신경 세포 파괴를 막고, 활성을 유도하여 뇌의 노화를 억.......

흑염소의 효능 [내부링크]

흑염소에는 철분 함량이 소고기의 2배이기 때문에 빈혈로 고생하는 여성의 철분 보충식으로 제격입니다. 그래서 흑염소를 여성 보양식으로 부른다고 합니다. 하지만 흑염소야말로 살찔 걱정 없는, 남녀노소 모두를 위한 건강 보양식입니다. 어린이 성장에 도움흑염소는 소, 돼지, 닭보다 마그네슘과 칼슘의 함량이 10배 이상 함유되어 있고, 오메가 6등 성장에 필요한 필수 영양소가 많아 성장하는 아이들에게 좋은 보양식으로 알려져 있습니다. 골다공증 및 연골 연화증에 도움흑염소는 나이가 드신 분이나 뼈가 약한 사람의 뼈와 관절을 튼튼하게 하는 효능이 있어 골다공증 예방 및 골다공증으로 인한 2차적으로 발생할 수 있는 연골 연.......

팥 효능 [내부링크]

팥은 동아시아에서 집중적으로 재배되는 쌍떡잎식물 장미목 콩과의 한해살이풀입니다. 다소 달콤한 맛이 있기 때문에 예로부터 많은 요리에 첨가물로서 애용됐습니다.또한 옛날에는 화장품의 원료로서도 사용됐는데요 팥을 갈아 내부의 흰 부분을 체에 걸러 얼굴에 바르는 파우더용도를 하는 분을 만들 때 상용하기도 했고, 비누를 만들어 쓰기도 했다고 합니다. 팥의 효능 혈관 건강팥에 풍부하게 함유되어 있는 사포닌 성분이 혈관 내 콜레스테롤 수치를 감소시키고 혈액의 원활한 흐름 개선에 도움을 주어 혈관건강에 도움이 된다고 알려져 있습니다.또한 사포닌 성분은 혈관 내 중성지방이 쌓이는 것을 억제하는데도 도움을 주어 고혈압 및 동.......

해죽순(니파팜) 효능 부작용 [내부링크]

해죽순은 미얀마 서부 해안의 청정지역에서 자라는 야자수로 니파팜(nipa palm)이라고 하는데, 해죽순이라는 이름은 한 기업의 대표가 니파팜을 국내에 들여와 해죽순으로 상표등록을 해서 우리나라에서는 해죽순으로 많이 알려졌다고 합니다.해죽순은 바다의 산삼이라 부를 만큼 강력한 천연항생제인데요 항산화 성분(폴리페놀)이 6년근 홍삼의 75배, 생마늘의 225배, 블루베리의 40배가 함유되어 있는데요 지구상의 모든 식물을 통틀어 가장 높은 폴리페놀 함유량을 가지고 있다고 합니다. 또한 사포닌의 대표적인 식품인 인삼보다 사포닌이 2.5배가 높게 함유되어 있습니다.해죽순 효능잇몸 건강에 도움해죽순의 풍부한 폴리페놀 성분이 잇.......

표고버섯의 효능 [내부링크]

표고버섯이란?표고버섯은 느타리과에 속하는 버섯입니다. 봄부터 가을에 걸쳐 밤나무/떡갈나무 등의 죽은 나무에 기생하거나 저절로 자랍니다. 식용버섯 중에서도 가장 대표적인 버섯으로 재배가 쉬운 특징 때문에 인공재배도 많이 하고 있어서 시중에서 흔히 볼 수 있습니다. 표고버섯은 버섯류 중 가장 많이 사랑 받는 버섯 중 하나인데요 씹는 맛이 좋고 싱싱한 표고버섯은 살짝 익혀서 버섯만 먹어도 맛있습니다.표고버섯 효능성인병예방표고버섯에는 에르고스테롤이라는 성분이 풍부하여 혈중 콜레스테롤을 낮추어 주고 혈액의 흐름을 원할하게 해준다고 합니다. 그래서 성인병 예방에 도움이 된다고 합니다.면역력 개선표고버섯에 하유.......

연근의 효능 [내부링크]

연근은 연꽃의 땅속 뿌리줄기입니다. 단, 아무 연꽃의 뿌리나 먹을 수 있는게 아니며 이를 식용할 수 있는 품종은 3~4 종류뿐입니다. 보통 10월 말에서 11초에 수확하는 가을 연근이 가장 즙이 많고 맛이 좋다고 합니다.연근의 효능고혈압 예방연근에는 칼륨, 마그네슘, 엽산, 섬유질 등 혈압 안정을 돕는 다양한 성분이 들어있습니다. 이러한 성분들이 콜레스테롤을 낮춰주며 체내의 쌓인 나트륨의 배출을 도와 고혈압 예방에 도움을 줍니다.위 건강연근에 함유된 뮤신은 위벽을 보호하고 위염을 완화해주는 등 위장기능 강화에 도움이 됩니다.피로회복연근에는 비타민C가 풍부하고 케르세틴, 캠페롤 등과 같은 플라보노이드성분이 풍부.......

장 건강에 좋은 토란대의 효능 및 주의사항 [내부링크]

토란대는 인도, 인도네시아 등 열대 아시아 지역이 원산지인 여러해살이 풀인 토란의 줄기를 말합니다. 9월부터 10월까지가 제철 시기인 토란대는 아린 맛이 특징으로 나물을 먹기도 하고, 육개장과 같은 국이나 여러 탕 요리의 재료로도 많이 쓰입니다. 토란대의 효능 장 건강에 도움토란대에 풍부하게 함유된 식이섬유가 장내 유익균의 증식 및 장운동 활성화에 도움을 준다고 합니다. 또한 토란대에 함유된 뮤신과 갈락탄 등의 여러 성분들이 장내 불순물 배출과 함께 장내 염증을 완화하는 데 도 도움을 주기 때문에 장염과 같은 장 질환의 예방에도 큰 도움이 된다고 합니다. 마지막으로 펙틴 성분이 장염으로 인한 상처를 회복시켜 줍.......

[알콩달콤] 환절기에 좋은 100% 수제 배도라지꿀청 [내부링크]

안녕하세요 요즘 급격히 추워졌는데요. 그래서 그런지 요즘 제 주변에 감기걸린 사람이 부쩍 늘어났어요.그래서 겨울대비를 할 겸 배도라지꿀청을 알아보던 중 우리동네블로그에 선정되어서 좋은 기회로 맛볼 수 있게 되었어요 그래서 오늘은 환절기에도 좋고 겨울대비를 위한 필수 아이템! 배도라지꿀청을 소개합니다.먼저 배도라지꿀청에 포함된 재료들과 그 재료들의 효능에 대해 살펴볼게요 배의 효능 기관지질환 예방 및 치료배를 통해 가장 기대하는 효과가 바로 기관지의 건강일 것입니다. 배에 함유되어 있는 루테올린 이라는 성분과 폴리코사놀 같은 성분들이 만성 기침과 같은 호흡기 질환에 도움을 주고 가래, 천식, 인후통에도 도.......

몸속 독소를 배출하는 작두콩 효능 [내부링크]

열대아시아, 아프리카, 인도 열대지방 등을 원산지로 둔 콩과의 덩굴성 한해살이풀입니다. 콩깍지의 생김새가 작두와 닮았다하여 작두콩이라 합니다.고려시대의 왕실에서 약재와 식품으로 활용되었으나, 6.25 전쟁 이후로는 볼 수 없었던 식물인데, 이러한 작두콩이 국내에서 다시 재배된 것은 1990년대 말에 충청북도가 중국 헤이룽장성과 맺은 자매결연을 통해 작두콩을 선물 받으면서 국내에 종자가 보급된 것이 계기였습니다. 작두콩 효능 비염, 축농증에 도움작두콩의 대표적인 효능으로 알려진 비염과 축농증 치료입니다. 작두콩에는 히스티딘이라는 성분이 함유되어있는데 바로 이 성분이 콧물을 나는 것을 막아준다고 합니다. 작두콩은 기.......

다이어트와 장건강을 한번에! 모유유산균의 효능 [내부링크]

유산균은 체내에 해로운 세균과 대적하고 면역력을 증가시켜 건강을 유지할 수 있게 도와주는 균이라 알려져 있습니다. 그렇기 때문에 많은 분들이 유산균을 많이 챙겨드시는데요.오늘은 최근에 각광받고있는 모유유산균을 소개해보려고 합니다. 모유유산균은 TV조선 &#x27;내 몸 사용 설명서&#x27;에서도 소개되어서 화재가 되었는데요! 바로 며칠전 (9월 29일) 방송된 TV조선 &#x27;백세시대 프로젝트 위대한 유산&#x27;에서도 모유유산균으로 40kg 감량에 성공한 여성분의 이야기가 소개되었습니다.모유 유산균이란?미생물 샤워라는 말을 혹시 아시나요? 미생물 샤워란 엄마의 뱃속에서 처음 유산균을 접하는 태아에게 좋은 유익균을 주기 위.......

신의 열매, 암 저격수 - 노니의 효능, 부작용 [내부링크]

혹시 이유 없이 몸이 아프고 기운이 빠진다거나 활력이떨어지는 분 계신가요? 원인을 찾기 위해 병원에 가서 검사를 받아봐도 이상이 없다고 나오는데 이상하다고 생각하신 적 없으신가요?이는 만성 염증의 증상일 수도 있다고 합니다.이제부터 신이 내린 열매라 불리는 염증 사냥꾼 노니에 대해 알아보겠습니다. 노니란?노니는 용담목 꼭두서니과 노니속 식물입니다. 주산지는 동남아 베트남, 동말레이시아, 남태평양, 하와이, 타이티이며 학명은 모린다 시트리폴리아(Morinda Citrifolia) 입니다.약용으로 쓰이는 과일로, 대표성분으로는 프로제로닌, 산화질소, 질산염, 이리도이드, 슼코폴레틴, 담나칼탈 등 수많은 성분과 20여가지가 넘.......

국민 보양식 - 홍삼 효능 및 부작용 [내부링크]

홍삼은 한약의 일종으로 인삼의 뿌리를 찐 것입니다. 홍삼의 제조 역사가 1000년이 넘는 것으로 전해지고 있지만, 역사적으로 고려도경(1123, 고려 인종 원년)에 산삼을 증숙한 것과 날 것이 있다고 한 데서 유래됩니다. 특히, 백삼의 제조가 대부분이었던 조선시대에서 홍삼의 제조량이 급격히 늘어난 것은 조선 후기, 영/정조시대, 중국가와 인삼교역도중 백삼은 기름기 있는 음식을 많이 먹는 중국인에게는 복용 시에 위통을 일으킨다는 오해로 인하여, 그러한 오해를 불식시키기 위해서 인 것으로 알려졌습니다.* 참고 : 증기로 찌지 않고 그대로 햇볕에 말리기만 한 인삼을 백삼이라 합니다.홍삼의 효능항암효과홍삼은 항암제 치료를 받.......

여성의 과일 - 석류의 효능 및 부작용 [내부링크]

석류는 석류나무의 열매로써 지름 6~8cm에 둥근 모양으로 있고 단단하고 약간 반질반질한 느낌의 붉은 외피와, 내부의 노르스름한 껍질이가장 안쪽에 있는 종자(석류알)들을 감싸고 있습니다. 덜 익은 석류알은 분홍빛 즙이 조금 묻은듯한 투명한 과육이지만 잘 익은 석류알은 짙은 핏빛과도 같은 강하고 어두운 붉은 빛 입니다.과육속의 많은 종자는 먹을 수 있으며 이 때문에 예로부터 다산, 풍요의 상징입니다.석류는 특히 여성 미용에 좋기 때문에 여성의 과일로 불리기도 합니다.석류에는 비타민 A부터 E까지 다양한 비타민이 풍부하게 들어 있어 피부 노화를 방지하고 혈액순환을 원활하게 합니다. 실제로 중국 양귀비와 이집트의 클레오파.......

샤워기 필터 추천 - 닥터피엘 샤워기(내 돈 주고 사서 쓰는 후기) [내부링크]

안녕하세요 노루아부지에요이번에는 닥터피엘 샤워기 필터를 포스팅하려 합니다.얼마 전 우연히 인스타를 하다가닥터피엘 광고를 보고 혹해서 구매를 하게 되었어요그리고 이제 사용한 지 2주 되었습니다.원래 닥터피엘 샤워기 필터는아래 사진과 같이 하얀색이에요눈이 부실 정도로 하얗죠?아래는 사용 2주 후 사진입니다.좀 누렇게 된 것이 보이시나요?이것만 보면 꼭 효과는 있는 것 같지만그렇게까지 꼭 있어야 한다는 생각을 안 했었는데어느 날... 이런 것이 발견되었어요필터 가운데 보이시나요?사진으로는 잘 구분이 되지 않는데쇳가루처럼 보이더라고요이 쇳가루가 양치할 때 입으로 들어가거나또는 밥 먹을 때, .......

꽃송이버섯의 효능/부작용 [내부링크]

꽃송이버섯꽃송이버섯은 백색 또는 밤색으로 물결치는 꽃잎이 다수 모인 모양을 하고 있습니다. 꽃송이버섯은 버섯이지만 생긴 것이 꽃과 비슷해서 꽃송이버섯으로 불린다고 합니다.효능이 뛰어나서 인공 재배를 하기도 하는데 다른 버섯에 비해 실패 확률이 많으며 키우는 시간이 더욱 길다고 합니다. 꽃송이버섯은 뛰어난 항암효과로 인해 암 환자의 소비량이 늘고 있는데, 야생 꽃송이버섯은 고산지대에서 자라기 때문에 일반인은 거의 볼 수 없습니다. 그러기에 일본에서는 환상의 버섯이라고 합니다.꽃송이버섯은 균사체가 잡균을 퇴치하는 우수한 항균능력을 가지고 있는데 이 기능은 다른 버섯에서는 찾아볼 수가 없다고 합니다.꽃송이버.......

아티초크의 효능 및 복용법 [내부링크]

아티초크는 지중해 연안이 원산지인 엉겅퀴과의 다년생 식물로써 고대 이집트인들도 식용으로 썼다는 기록이 있을 정도로 굉장히 오래된 식용 식물 중 하나입니다. 아티초크는 채소지만 르네상스 시대 프랑스에서는 미각을 돋우기 위한 향신료로 취급했다고 합니다. 유럽에서는 보통 5월에서 8월 말까지 시장에 산더미처럼 쌓인 아티초크를 심심치 않게 볼 수 있습니다. 달짝지근하며 풀 향기와 비슷한 풍미가 있고 섬유질이 많아 죽순처럼 아삭아삭한 맛을 느낄 수 있습니다. 대부분 감자와 같은 전분질이기에 식감이 감자류와 흡사합니다.아티초크는 미국 농무부가 선정한 100대 항산화 식품 중 7위를 기록할 정도로 인정받는 음식입니다........

핑거루트 효능 및 부작용 [내부링크]

최근에 다이어트 효과가 탁월한 것으로 알려진 핑거루트에 대한 관심이 높아지고 있습니다.핑거루트는 인도네시아 등 열대우림이나 아열대 습지 지역에서 자라나는 뿌리작물인데 사람 손가락 모양을 닮았다고 해서 이름이 핑거루트라고 합니다. 핑거루트의 효능 위장 건강핑거루트에 함유된 플라보노이드 성분은 소화불량, 위염뿐만 아니라 헬리코박터 파일로리 박테리아의 감염을 억제합니다. 또한 피노스트로빈 이라는 성분이 함유되어 있어서 위 점액이 증가하여 위궤양 형성 면적이 감소하며 위벽에 백혈구가 침투하는 것을 막아주기 때문에 소화성 위궤양 치료에 효과적이라고 합니다. 면역력 강화핑거루트는 체내에 쌓여있는 독소와.......

혈관청소부 레드비트의 효능 [내부링크]

안녕하세요전 요즘 건강식품에 빠져서 이것저것 포스팅 하고 있는데요오늘은 제가 현재 복용중인 레드비트에 대해 소개해보려 합니다.레드비트란?레드비트는 서양에서 파프리카, 브로콜리, 샐러리와 함께 4대 대표채소 중 하나입니다.또 젊음의 묘약으로 불리는 뿌리 채소 중 더덕, 우엉과 함께 3대 뿌리채소로 불리고 혈관을 깨끗히 청소하는 3대 청소부라고 불리기도 한다고 합니다.레드비트의 원산지는 지중해 연안의 남부 유럽과 북아프리카가 원산지이고, 우리나라의 주요 생산지는 이천, 평창, 제주도 등이 있습니다.레드비트의 효능고혈압 예방레드비트에 함유되어 있는 베타인과 질산염이 고혈압에 도움을 줍니다. 베타인은 혈전이.......

카카오닙스의 효능, 부작용 [내부링크]

카카오닙스란?카카오닙스란 중남미 열대지역과 아시아, 서아프리카 지역에서 주로 자라는 카카오나무 열매인 카카오콩을 발표, 건조해 잘게 부순 것을 말합니다. 카카오빈은 초콜릿의 주 성분으로 잘 알려져 있듯이 카카오닙스를 곱게 갈아 설탕, 우유 등을 넣고 굳히면 초콜릿이 된다고 합니다. 초콜릿의 주 성분이지만 카카오빈 자체의 맛은 씁쓸하고 단맛이라고는 전혀 없기 때문에 칼로리도 낮은 편입니다.학명은 그리스어로 &#x27;신들의 음식&#x27;을 뜻하는 &#x27;THEOBTOMA CACAO&#x27;이며, 15세기에는 화폐로 유통될 정도로 진귀했습니다.카카오닙스 효능활성산소 억제(노화 예방)카카오닙스는 자연계 폴리페놀 중 가장 강력한 항산.......

다이어트 끝판왕 시서스 효능/먹는법/부작용 [내부링크]

시서스란?시서스는 인도를 비롯한 열대 아시아 및 아프리카,아라비아 등지에서 자라는 식물입니다.시서스는 인도 고대 의학 서적인 아유르베다에약용 식물로 등재됐으며이미 여러 나라에서 인정을 받고 약초입니다.또 영국 식품표준청과 캐나다 연방보건부 등에서는체중조절에 도움이 되는 식품으로공인을 받기도 했습니다.시서스가루 효능요즘 시서스가루가 핫한 이유죠 ^^시서스는 가짜식욕을 불러오는렙틴 호르몬을 조절해다이어트 효과를 높이는 것으로 알려졌습니다.또한 시서스가루는지방세포의 크기를 줄여허리둘레 감소 및 내장지방 빼는 음식, 뱃살 빼는 음식으로 효과를 보입니다.거기다가 췌장의 리파아제 활성을 억제하는 효능이.......

밀크씨슬 [내부링크]

피로는 일상의 최대 적입니다. 피로에는 수많은 원인이 있지만 &#x27;간이 나쁘면 피로하다&#x27;라는 말은 상식처럼 들립니다.그 유명한 &#x27;간때문이야~&#x27; 라는 노래도 있죠. 영양소와 단백질 합성, 해독작용, 면역기능, 영양소의 장흡수에 필요한 쓸개즙 생산과 같은 간의 역할을 생각하면 당연하다고도 할 수 있습니다.간에 좋다는 생약과 이를 이용한 민간요법은 많은데, 그 중에서 식품의약안전처(식약처)에서 건강기능식품원료로 인정받은 것은 밀크시슬이 유일합니다.밀크씨슬의 주성분은 실리마린입니다.실리마린의 간에 대한 유익한 작용은 주로 플라보노이드의 항산화 작용 덕분입니다. 즉, 실리마린은 활성산소를 제거하여 간.......

세계10대 슈퍼푸드 - 시금치 효능/부작용 [내부링크]

안녕하세요지난번에는세계 10대 슈퍼푸드 중 레드와인을 포스팅 했는데요이번엔 그 아홉번째인 시금치에요 ^^시금치란?시금치는 채소를 싫어하는 사람들이대표적으로 싫어하는 채소 중 하나인데요시금치 하면 떠오르는 대표적인 캐릭터로뽀빠이가 있습니다.덕분에 시금치를 먹으면힘이 쎄진다는 인식이 있는데요사실 여기에는 비하인드 스토리가 있습니다.뽀빠이의 작가가먹으면 힘이 세질만한 음식이 뭐가 있을까영양서적을 찾다가 우연히시금치를 봤는데엄청난 양의 철분이 포함되어 있어서시금치를 골랐다고 하는데요그런데 이 당시스위스의 생리학자Gustav von Bunge가실수로 철분을 10배나뻥튀기 했다고 합니다.시금치의 효능기억.......

세계10대 슈퍼푸드 - 토마토의 효능/부작용 [내부링크]

안녕하세요지난번에는세계 10대 슈퍼푸드 중 시금치를 포스팅 했는데요이번엔 마지막 열번째인 토마토에요 ^^토마토란?토마토는 인류가 가장 많이 소비하는 작물로한사람당 1년에 무려 15kg를 소비한다고 합니다.토마토의 원산지는 남미인데요스페인이 남미를 유럽으로 가져온 것이토마토가 알려진 시초라고 합니다.토마토가 처음 유럽에 들어왔을 때는식용이 관상용으로 키웠는데그 이유는 토마토가독성 식물인 벨라돈나와열매 모양이 너무 흡사했기 때문이라고 해요토마토는 과일일까요? 채소일까요?정답은 과채입니다과일 채소 둘다 된다는 말이죠. 이게 말이냐 방구냐 생각하시는 분도 있으시겠지만 토마토의 정체성을 둘러싼 의문은.......

크릴오일 효능/부작용/고르는법 [내부링크]

크릴오일이란?크릴오일은 남극해에서 서식하는크릴새우에서불소 성분이 함유된 껍질만 제외하고추출한 오일입니다.크릴 새우는 바닷속 먹이사슬의최하위에 속하는데요그렇기 때문에 중금속으로부터가장 안전하기 때문에미래 식량으로 주목받고 있습니다.크릴오일은 유럽연합에서노벨푸드로 선정한 식품이라고 합니다.이만큼 몸에 좋은 크릴오일은오메가3가 풍부하고불포화지방산이 풍부하며다른 오메가3 식품들과는 달리인지질이라고 불리는 분자의 형태로되어 있는 것이 특징입니다.인지질이란?또한 우리가 일반적으로 알고 있는어유 오메가-3 제품군과크릴오일을 섭취한 경우를 비교했더니크릴오일을 섭취한 실험군에서EPA, DHA 흡수율이 4.......

세계 10대 슈퍼푸드 - 아몬드 효능/부작용 [내부링크]

안녕하세요지난번에는세계 10대 슈퍼푸드 중 브로콜리를 포스팅 했는데요이번엔 그 일곱번째인 아몬드에요 ^^ 아몬드란?아몬드는 견과류의 한 종류인데아몬드 나무의 꽃과 열매는복숭아와 비슷하게 생겼습니다.그래서 한자로는 &#x27;복숭아나무 도(桃)&#x27;자를 써서 &#x27;편도&#x27;라고도 합니다.사실 이 둘은 친척으로 교잡도 가능하다고 합니다.아몬드는 보통 구운 것을 먹게되는데요아몬드를 굽는 아주 중요한 이유가 있다고 합니다.아몬드는 &#x27;쓴 아몬드(Bitter Almond)&#x27;와 &#x27;단 아몬드(Sweet Almond)&#x27;로 구분되는데&#x27;쓴 아몬드&#x27;에는 &#x27;아미그달린(amygdalin)&#x27;라는식물독이 함유되어 있는데.......

세계10대 슈퍼푸드 - 적포도주(레드와인) 효능/부작용 [내부링크]

안녕하세요지난번에는세계 10대 슈퍼푸드 중 아몬드를 포스팅 했는데요이번엔 그 여덟번째인 적포도주에요 ^^ 적포도주의 효능 혈관건강에 좋다적포도주를 마시면 동맥경화를 예방해줍니다.높은 항산화 효과를 가져다 준다. 또한 엔도 텔링이라는 성분이나쁜 콜레스테롤을 억제시킬뿐만 아니라혈관 내부를 두껍게 만들어주는 기능을 한다고 합니다. 우울증을 예방한다적포도주를 주마다 2-4회 정도 마시면엔돌핀이나 세트로닌과 같은 성분이 생성되는데이 성분들은 행복에 관련된 성분입니다.따라서 우을증을 예방하거나 완화시킬 수 있습니다. 체중조절에 도움이 된다적포도주에 있는 항산화성분은지방세포 형성을 방해하는 특.......

[틔움바이오] 세계10대 슈퍼푸드 브로콜리 쉽게 먹는 방법. 브로콜리 새싹분말 [내부링크]

안녕하세요이전에 세계 10대 슈퍼푸드 브로콜리에 대해포스팅 한적이 있는데요오늘은 브로콜리를 쉽게 먹는 방법에 대해소개하려고 해요브로콜리는 세계 10대 슈퍼푸드로 선정되만큼정말 좋은 음식인데요브로콜리를 먹으려면보통 쪄먹거나 데쳐먹는데이게 은근 귀찮은 일이죠거기다 보통 브로콜리를 먹을 때초고추장에 많이 찍어드시는데요놀랍게도 브로콜리는 초고추장과최악의 궁합이라고 합니다.브로콜리의 베타카로틴이란 성분이혈당 조절을 도와주는데초장과 함께 먹을 경우식초의 산 성분에 의해이 성분이 파괴되기 때문에다른 양념 혹은양념없이 먹는게 좋다고 합니다.그렇다면 어떻게 먹어야간편하고 좋은 방법일까요?혹시 요.......

세계 10대 슈퍼푸드 - 녹차의 효능, 부작용 [내부링크]

안녕하세요지난번에는세계 10대 슈퍼푸드 중 블루베리를 포스팅 했는데요이번엔 그 세번째인 녹차에요 ^^녹차란?녹차는 차 음료의 일종입니다.차는 보통 가공 방법과 발효 상태에 따라녹차, 백차, 청차, 청차, 황차, 홍차, 흑차로 나뉘는데녹차는 발효시키지 않은 찻잎을사용하여 만든 차를 말합니다.녹차의 효능항암효과녹차에 들어있는 폴리페놀 성분은발암물질과 결합하여 그 활성을 억제합니다.카테킨(Epigallocatechin gallate, EGCG)은암세포의 생성을 방해하고,증식을 억제하는 효능을 가지고 있습니다.체중관리(체지방 연소)녹차의 주 성분 중 하나인 카테킨은체지방 감소 및 콜레스테롤 개선 효과가 있다고알려져 있습니.......

세계 10대 슈퍼푸드 - 마늘 [내부링크]

안녕하세요지난번에는세계 10대 슈퍼푸드 중 녹차를 포스팅 했는데요이번엔 그 네번째인 마늘에요 ^^마늘이란?마늘은 예전부터 약으로 많이 사용해온 재료 중 하나입니다.마늘의 매운 냄새의 근원이자효능의 핵심인 알리신(Allicin)은강력한 항균, 살균작용으로 유해균의 증식을 막고,고지혈증과 동맥경화증 개선에 좋아심혈관 질환 예방 및 관리에 도움이 됩니다.또한 한 연구 결과하루에 마늘 반쪽씩 지속 섭취 시위암 발생 위험은 50%대장암 발생 확률은 30% 낮아지는 것으로보고되었습니다.생마늘을 바로 구워 먹는 스타일이라면알리신을 온전히 섭취 못합니다.구운마늘에서알리신을 제대로 섭취하기 위해서는마늘을 까거나 다신 후에.......

세계 10대 슈퍼푸드 - 연어 [내부링크]

안녕하세요지난번에는세계 10대 슈퍼푸드 중 마늘을 포스팅 했는데요이번엔 그 다섯번째인 연어에요 ^^ 연어란?연어는 성체가 되면 다시 강을 거슬러 올라와상류에서 알을 낳는 것으로 유명한 물고기 인데요연어는 분류상으로 흰살 생선에 해당하지만몸이 붉은 경우가 많은데그 이유는 주 먹이로 갑각류를 먹으면서갑각류의 붉은 색소가몸에 배이기 때문이라고 합니다.여기서 특이점은 양식연어인데요양식 연어는 흰살 생선을 먹이로 주기 때문에흰색이어야 하지만붉은 색 연어로 만들기 위해아스타잔틴을 이용한 사료를추가로 먹이기도 한다고 해요 연어의 효능 뇌 건강에 좋습니다.연어에는 오메가-3 지방산인 DHA와 EPA가풍부하게 함유되.......

세계 10대 슈퍼푸드 - 브로콜리 [내부링크]

안녕하세요지난번에는세계 10대 슈퍼푸드 중 연어를 포스팅 했는데요이번엔 그 여섯번째인 브로콜리에요 ^^ 브로콜리의 효능 항암효과글루코시놀레이트는암과 관련된 호르몬의 생성을 억제해발암 물질을 막고종양의 성장을 막는 항암제 역할까지하는 성분입니다.여기서 놀라운 사실은글루코시놀레이트가 장으로 흡수되면잔 내 미생물에 의해 분해되어인돌-3-카바놀(Indole-3-carbinol), 설포라판(Sulphoraphane) 등을 생성하는데이 중 인돌은 유방암 등의 암 위험도를 낮추고설포라판은 발암물질에 의해 유발된 위암 발병을막아주는 효과가 있다고 보고되고 있습니다.브로콜리 속의 셀레늄은몸속에서 항암인자를 만들어내는 효과가 있습.......

세계 10대 슈퍼푸드 - 블루베리 효능 [내부링크]

지난번에는세계 10대 슈퍼푸드를 포스팅 했는데요이번에는 각각 어떤 효능이 있는지자세하게 알아보는 시간을 가지려고 합니다.그 두번째인 블루베리에요 ^^블루베리의 효능[뇌 기능 향상]블루베리에 포함된 풍부한 항산화 성분은인지 능력을 떨어뜨리는 세포 손상을 감소시켜줍니다.블루베리의 화합물, 비타민, 미네랄은뇌 활동과 중추 신경계를 개선해줍니다.평소에 항산화 성분이 풍부한 음식을많이 섭취하면치매같은 노화성 질환 발병 위험도 낮아집니다.[암 예방]블루베리에 함유되어있는안토시아닌, 갈산, 레스베라스톨등의 성분은여러가지 암에 걸릴 위험을 낮춰줍니다.또한 이 성분들은 강력한 항염증제로써염증완화 효.......

생 유산균 추천 - 락토핏 (3개월 사용 후기) [내부링크]

안녕하세요생 유산균 추천으로락토핏 리뷰를 해볼까 해요전 과민성 대장증후군이 있는데요국내 유산균을 못 믿겠어서캐나다에서 직수입해서 먹고 있었어요거의 2년 가까이 먹었는데 효과가 없었지만바보같이 언젠간 효과가 있겠지너무 상태가 안좋아서 아직 효과가 없는걸거야라는 생각을 하며 먹고 있었어요제 아내는 반대로 심한 변비를 앓고 있었는데유산균도 먹어보고변비에 좋다는 여러가지를 먹어봤지만역시 효과가 없었어요그러다가 우연히 TV를 보다가어떤 건강프로그램에서락토핏을 먹고 좋아졌다는 사람을 보고락토핏을 먹고나서제 아내가 변비가 아예 없어졌어요저같은 경우는 아내처럼 좋아지진 않았지만어느정도 효과가 있.......

접이식 카트 추천 - 너무 편리한 팩앤롤(pack&roll) [내부링크]

다들 시장이나 대형마트에서장 보실 때 어떻게 들고 오시나요?저는 그동안 종량제봉투에 넣어 오거나박스에 담아서 들고 왔었어요그렇다고 아주머니들이 들고다니시는이런걸 쓰기는 싫었어요그러다가 어느날 고양이 박람회에 갔는데저는 여행용 캐리어를 들고가서하나 살때마다 지퍼를 열어서 낑낑대면서물건을 넣는데많은 분들이 처음보는 카트를 들고다니면서그냥 대충 놓으시더라구요너무나 좋아보여서 바로 검색을 시작했어요그 제품은 바로!PACK&#38;ROLL 의 접이식 카트였어요!!PACK&#38;ROLL의 접이식 카트는요접어서 보관이 가능하기 때문에공간을 차지하지 않아요사용을 할 때는양옆의 버튼을 열고이렇게.......

베개패드 추천 - 풍기인견 와플 피그먼트 베개패드 [내부링크]

안녕하세요이번에는 여름에 너무나 좋은 베게패드를 추천해드리려고 해요풍기인견 와플 피그먼트 베개패드혹시 자다가 일어났는데베개가 땀으로 축축해졌던적이 있으신가요?저는 땀이 너무 많아서여름이면 항상 베게가 땀으로 젖었는데요그렇다고 매일 베개커버를 빨수도 없고그래서 베게 위에 수건을 커버삼아펴놓고 잤는데요베개커버는 살렸지만뭔가 좋은 느낌은 아니었어요그러다가 최근에 지인의 추천으로풍기인견 와플 피그먼트 베개패드를 써보게 되었어요풍기인견 와플 피그먼트 베개패드는요땀 흡수가 빠르고 섬유 자체 온도가 낮아무더위에 안성맞춤인천연섬유 풍기인견으로 제작한 베개패드에요사실 섬유자체의 온도가 낮.......

세계 10대 슈퍼푸드 - 귀리 효능, 부작용 [내부링크]

지난번에는세계 10대 슈퍼푸드를 포스팅 했는데요이번에는 각각 어떤 효능이 있는지자세하게 알아보는 시간을 가지려고 합니다.그 첫번째 시간은 귀리에요 ^^ 귀리란?귀리는 곡식의 일종인데국내에서는 거의 수입을 했으나건강식품으로 각광을 받으면서국내에서도 재배를 한다고 해요또한 귀리는 식감이 좋지는 않아서오트밀로 많이 소비된다고 해요[오트밀]귀리를 껍질벗겨 볶아서 분쇄하거나증기압맥기로 가열, 압착한 것 귀리의 효능[다이어트]귀리는 식이섬유가 풍부함은 물론이고소화가 천천히 되기 때문에(복합탄수화물 덕분)포만감을 오래 유지시켜식욕을 억제해주는 효과가 있습니다.[콜레스테롤 조절]귀리에는 베타.......

에어프라이어 장점, 단점, 실사용 후기 [내부링크]

안녕하세요오늘은 요즘 매우 핫한 아이템인에어프라이어의 장점이 무엇이 있는지또, 단점은 무엇이 있는지알아보도록 하겠습니다.※ 제가 구매한 에어 프라이어는시메오 패밀리 DK-20 이에요 ^^ 에어프라이어란?에어프라이어는 섭씨 200도 정도의뜨거운 공기를 빠르게 순환시켜 재료를 익힙니다.기름을 추가하지 않고재료가 가지고 있는 지방을 이용하여재료의 수분을 빼앗아 바삭하게 만드는 원리입니다. 에어프라이어의 장점 섭취 지방 감소에어프라이어는 기름을 추가하지 않고재료가 가지고 있는 지방을 이용하여재료의 수분을 빼앗아 바삭하게 만드는 원리이기 때문에기름을 덜 사용하고도음식을 조리할 수 있는 것이 특징입.......

고양이 화장실 추천 - 굿똥 [내부링크]

고양이 화장실안녕하세요노루아부지에요오늘은 요즘 집사들 사이에서정말로 핫!한! 고양이 화장실인 굿똥을 리뷰해볼게요그전에 먼저!고양이 화장실의 이상적인 크기를 알고 계신가요?화장실의 크기는고양이 몸길의 1.5배이상이 바람직한 것으로알려져 있습니다.하지만 일반적인 화장실들은 그정도 크기가 되는것이 별로 없다고 해요그럼 이제부터 진짜로 굿똥 리뷰를 시작해 볼게요우리 노루가 기존에 쓰던 화장실이 작은지 불편해 하는게 눈에 보여서검색을 하다가 굿똥에 대해서 알게 되었어요!그런데 문제는 너무 비싸다는 사실....기존에 쓰던 화장실은 약 2만원 주고 샀는데-굿똥은 무려 87,000원....ㅠㅠ가격이 좀 있어서 고.......

세계 10대 슈퍼푸드 [내부링크]

슈퍼푸드란?슈퍼푸드는 인체 노화 분야의 세계적 권위자인슽티븐 프랫 박사가 2004년에 쓴&#x27;난 슈퍼...

규조토 발매트 장점, 단점, 사용후기 [내부링크]

마트에서 장을 보다가 너무너무 귀여운 발매트를 발견했어요!!그것은 바로 이름하야!!!! 규조토 발.매....

고양이 캣폴 추천 - 그린웨일 캣폴 후기 [내부링크]

안녕하세요 오늘은 그린웨일 캣폴 후기를 남겨볼까 합니다.집에 거실에 캣폴이 하나 있긴한데잘 때 저희집 ...

이케아 플뢰르트 리모컨 수납 주머니 리뷰 [내부링크]

여러분은 #리모컨 을 어디에 보관하시나요?전 #쇼파위에 던져놨었어요 바로 이렇게요이렇게하면 대충 던...

화장실(욕실) 습기제거 [내부링크]

화장실은 항상 물을 사용하는 공간이기 때문에습기에 노출되어있고 이 때문에 곰팡이가 생기기 쉬워요따...

콜레스테롤에 좋은 음식, 나쁜 음식 [내부링크]

건강검진을 하면 꼭 들어가는 항목이 &quot;콜레스테롤&quot; 입니다. 검사에서 이 수치가 높게 나오면 고...

보이차 효능 [내부링크]

중국전통차인 보이차는 다이어트 효과로 인기가 많습니다..다이어트에 좋아서 드시는 분도 있고 저같은 경...

새싹보리 효능 [내부링크]

안녕하세요 오늘은 요즘 SNS에서 핫한 새싹보리에 대해서 알아볼게요 새싹보리란?새싹보리란 식물의 발...