본문 바로가기

2018/04286

Windows용 MySQL 백업 배치 파일 만들기 Windows에서 MySQL 데이터베이스를 mysqldump 명령으로 백업하고, 오래된 백업 파일을 삭제하는 배치 프로그램을 만들어 봅니다. @ECHO OFFECHO MySQL 데이터베이스 백업 시작 FOR /F "tokens=1-3 delims=- " %%a IN ('DATE /T') DO (SET dt=%%a-%%b-%%c)FOR /F "tokens=1-4 delims=:." %%a IN ('ECHO %TIME%') DO (SET tm=%%a%%b%%c%%d)SET backupfilename=_%dt%_%tm%.sqlECHO 백업파일명: %backupfilename% mysqldump --routines -uusername -ppassword dbname > E:\data\backup\"dbname%.. 2018. 4. 20.
윈도우즈에서 포트를 점유하고 리스닝 중인 프로세스 알아내기 테스트용으로 Tomcat 을 실행하면 가끔 이미 포트가 사용중이라고 실행하지 못하는 경우가 있습니다. Tomcat이 사용하고자 하는 포트를 다른 프로그램이 이미 사용중인 경우가 대부분 입니다. 윈도우즈에서 포트를 사용중인 프로그램을 확인하는 방법을 알아보겠습니다. 1. netstat 사용 C:\> netstat -a -b -a : 모든 연결된 포드와 리스닝 포트를 보여줍니다. -b : 프로세스 정보를 보여줍니다.(관리자 권한으로 실행해야 함.) -n : 주소와 포트를 숫자 형식으로 보여줍니다. -o : 연결에 관련된 프로세스의 프로세스 ID를 보여준다. 2. resmon.exe 사용 Windows 키 + R 키 를 눌러 실행창에서 resmon.exe 를 실행합니다. 네트워크 탭의 수신대기포트 항목을 보면.. 2018. 4. 20.
Spring + Quartz 주기적으로 작업 실행하기 SpringFramework 4.3.4 버전에서 Quartz 2.3.0 라이브러리를 사용해서 주기적으로 작업을 실행하는 방법을 알아보겠습니다. 전체 소스는 하단에 첨부해 두었습니다. 앞에서 계속 사용해오던 소스라 DB 연결, 엑셀 다운로드 등의 소스가 같이 있는데 필요 없는 부분은 주석처리하고 테스트 해보시면 되겠습니다. 1. pom.xml 파일에 quartz 라이브러리의 의존성을 추가합니다. org.quartz-scheduler quartz 2.3.0 org.springframework spring-context-support 4.3.4.RELEASE 2. 주기적으로 실행될 서비스 메소드를 생성합니다. com.tistory.pentode.service.BoardService.java파일에 메소드 인터페.. 2018. 4. 20.
무료 텍스트 에디터 AcroEdit(아크로에디터) 개인, 기업, 공공기관 어디에서나 무료로 사용할 수 있으며 기능도 많이 쓰이는 유료 에디터인 Edit+(에디터플러스)나 UltraEdit(울트라 에디터) 못지 않은 에디터가 AcroEdit인것 같습니다. 개발일을 하기 시작한 초기부터 유용하게 사용하고 있습니다. http://www.acrosoft.pe.kr 에서 다운로드 받을 수 있습니다. 윈도우즈에 메모장이 있기는 하지만 아크로에디터와 같은 다양한 편집기능이 있는 에디터를 많이 사용합니다. 주로 사용하는 기능들중의 몇가지를 알아보도록 하겠습니다. 1. FTP 로 연결하여 직접 편집하기 메뉴에서 보기 -> 작업창 -> FTP 를 선택하면 FTP로 원격의 파일을 직접 편집할 수 있습니다. sftp가 지원되지 않아서 활용도가 좀 떨어지기는 하지만 급할때 유.. 2018. 4. 20.
Office 365 체험판 자동 갱신 해제 하기 Office 365 체험판을 설치하여 사용해보았습니다. 체험판은 설치시에 카드정보를 입력하고, 체험기간인 30일이 지나면 1년치 비용이 자동 결제 됩니다. 자동 갱신을 해제 하는 방법을 알아보겠습니다. 1. 서비스 및 구독 페이지로 이동합니다. https://account.microsoft.com/services?ref=officesupport 2. 로그인 합니다. 3. 구독한 리스트가 보입니다. 구독한 Office 365 체험판의 오른쪽의 "관리" 를 누릅니다. 4. 상세내용에서 자동 갱신 끄기를 선택합니다. 오른쪽의 변경을 클릭하여 나오는 메뉴에서 "자동 갱신 끄기" 를 클릭합니다. 5. "취소 확인"을 눌러 자동 갱신을 취소합니다. 이제 한달이 지나면 Office 365를 사용할 수 없고, 자동으로.. 2018. 4. 20.
오라클 MERGE INTO 문으로 있으면 UPDATE 없으면 INSERT 한번에 수행하기 테이블에 데이터가 이미 존재하면 업데이트 하고, 존재하지 않으면 입력을 해야 하는 경우가 종종 있습니다. 오라클에서 이런 작업을 한번에 할 수 있는 쿼리가 MERGE INTO 문 입니다. 현실적인 예는 아니지만 간단하게 성적 테이블을 생각해 보겠습니다. 과정코드과 학생코드가 주키이고, 성적 필드를 가지고 있습니다. CREATE TABLE TB_SCORE ( COURSE_ID VARCHAR2(10) NOT NULL, STUDENT_ID VARCHAR2(10) NOT NULL, SCORE NUMBER(5, 2) NULL, CONSTRAINT PK_SCORE PRIMARY KEY (COURSE_ID, STUDENT_ID) ); 1. 동일한 테이블 구조를 가지고 있는 TMP_SCORE 테이블로부터 데이터를 옮기.. 2018. 4. 20.
전자정부표준프레임워크 Tomcat + jndi로 dataSource 사용하기 전자정부표준프레임워크에서 Tomcat 을 사용할때 dataSource를 Tomcat에 설정된 dataSource를 jndi 로 가져와서 사용하는 방법을 알아 봅니다. 이 예는 전자정부표준프레임워크 비즈니스 템플릿에 MySQL을 사용한것 입니다. 1. Tomcat의 server.xml 파일의 Global 리소스 영역에 데이터베이스 연결을 정의합니다. ... 2. Tomcat 의 context.xml 파일에 를 정의합니다. ... 3. 전자정부표준프레임워크의 context-datasource.xml 파일에 기존의 데이터소스를 주석 처리하고, jndi 데이터소스를 지정합니다. 이제 모든 설정이 완료되었습니다. DBCP 의 각 설정 항목들에 대해서는 "전자정부 표준프레임워크 - dataSource (DBCP) .. 2018. 4. 20.
안드로이드 탭 이벤트 처리하기 안드로이드 앱은 다자인과 코드가 분리되어 있습니다. 디자인은 xml 파일로 작성되고 코드는 Java언어로 작성됩니다. 디자인된 위젯들이 사용자와 상호작용하려면 사용자가 화면을 탭하는 이벤트를 처리하여야 합니다. 디자인된 위젯과 코드를 연결하고 이벤트를 처리하는 방법을 알아보겠습니다. 1. 코드에서 다루고자 하는 위젯에 id 를 부여합니다. 이 id가 Java 코드에서 위젯을 찾는 키가 되는 것입니다. 레이아웃 디자이너에서 위젯을 클릭하고 오른쪽의 속성창에서 위쪽의 ID 에 입력하면 됩니다. 이 예제 에서는 버튼에 okBtn 이라는 아이디를 붙였습니다. 다른 방법은 디자이너 하단의 Text 탭을 클릭하여 xml 파일을 직접 수정하는 것입니다. 이때에는 로 적어줍니다. 2. 코드에서 Activity 객체와 .. 2018. 4. 20.
POI를 사용하여 엑셀 출력하기 스프링프레임웍에서 아파치 POI 라이브러리를 사용해서 엑셀을 출력해 봅니다. 이번 예제는 "스프링 프레임웍에서 MyBatis, Oracle 사용하기" 에서 사용한 게시판 목록을 출력하는 것을 이용하여 엑셀로 출력하도록 구성한 것입니다. 전체 예제소스를 글 하단에 첨부하였습니다. 테스트를 위한 데이터베이스 생성 관련해서는 이전 글을 참조하시기 바랍니다. 1. POI 라이브러리 의존성을 pom.xml 파일에 추가하기 - POI 3.17 버전을 사용합니다. org.apache.poi poi 3.17 2. 엑셀 출력 작성하기 - 컨트롤러에 엑셀 출력 부분을 작성합니다. @RequestMapping(value = "/excelDown.do")public void excelDown(HttpServletRespons.. 2018. 4. 20.
안드로이드 UI 만들기 ConstraintLayout 기본 사용법 화면내에 위젯을 배치하기 위해서 사용되는 것이 레이아웃 매니저 입니다. 전에는 Linear Layout, Relative Layout 등이 사용되었는데, 이제는 기본 레이아웃 매니저가 ConstraintLayout 입니다. 이러한 레이아웃 매니저가 사용되는 이유는 서로 다른 화면 크기를 가지는 기계들에서는 동일한 모양의 화면 구성을 유지하기 위하여 위젯들을 화면에서 상대적으로 배치하도록 해주는 것입니다. 안드로이드 스튜디오로 프로젝트를 생성하면 기본 레이아웃 매니저가 이제는 ConstraintLayout 입니다. 이번 글에서는 위젯의 크기를 지정하는 방법과 정렬하는 방법을 알아 보겠습니다. 1. 위젯의 크기 설정 - 리사이즈 핸들(Resize Handle) 이용하여 설정하기위젯을 클릭하면 네 모서리에 사.. 2018. 4. 20.
iPhone 5s iOS 11.2.1 업데이트 iOS11.2.1 업데이트가 나와서 업데이트 했습니다. iPhone 5s 에서는 용량이 57.6 MB 입니다. 수정된 내용을 홈앱에서 공유된 사용자의 원격 접근이 비활성화 되는 문제를 포함한 오류가 수정이 되었다고 합니다. 또한 iPhone X, iPhone 8, iPhone 8 Plus 사용자를 위한 카메라 흐림 버그 수정 사항이 포함되어 있다고 합니다. 애플 사이트에 나와 있는 보안 업데이트도 있는데 내용은 다음과 URL에서 확인할 수 있습니다. https://support.apple.com/ko-kr/HT208357 - 원격 공격자가 응용 프로그램 상태를 예기치 않게 변하끼 만들 수 있는 보안 취약점이 업데이트 되었다고 합니다. 자세한 내요을 설명이 없었습니다. 다른 사이트들을 보니까 공격자가 홈킷.. 2018. 4. 20.
Tomcat에 X-Frame-Options 헤더와 X-Content-Type-Options 헤더 적용하기 X-Frame-Options 헤더는 FrameSet이나 iframe 등에 의한 클릭재킹에 대한 보호를 제공하며 2009년에 IE8에서 추가되었고 얼마 후 다른 브라우저들에도 채택되었습니다. 이 헤더의 값은 DENY, SAMEORIGIN, ALLOW-FROM 중에 하나를 가지며 각각 외부 사이트에 대한 프레임 금지, 같은 사이트만 허용, 특정 사이트만 허용의 의미를 가집니다. "X-Content-Type-Options: nosniff" 응답 헤더를 보내면 브라우저는 script 및 style sheet요소의 MIME 형식이 잘못된 경우 응답을 거부합니다. 이는 MIME 형식 혼동을 기반으로 하는 공격을 차단하기 위한 보안 기능입니다. 보통 브라우저는 서버로부터 다운받은 이미지 등의 내용을 분석하여 MIME.. 2018. 4. 20.
오라클 문자열에서 숫자만 남기고 다른 문자 제거하기 오라클 데이터베이스에서 전화 번호와 같은 값에서 숫자만 남기고 ), - 등의 다른 문자는 제거하는 방법을 알아 봅니다. 1. 정규식을 사용하는 방법 REGEXP_REPLACE(source_char, pattern) 함수를 사용하는 방법 입니다. -- 전화번호에서 숫자외의 문자를 제거합니다.SELECT REGEXP_REPLACE('010-1234-5678', '[^0-9]+') FROM DUAL; -- 숫자를 자리수로 끊어서 분리합니다.SELECT REGEXP_REPLACE('01012345678','([[:digit:]]{3})\.([[:digit:]]{3})\.([[:digit:]]{4})','\1-\2-\3') FROM DUAL; 2. TRANSLATE(expr, from_string, to_stri.. 2018. 4. 20.
오라클 데이터베이스 링크 생성하기 오라클 데이터베이스는 서버들끼리 데이터베이스 링크를 만들어 하나의 데이터베이스 처럼 사용하는 것이 가능합니다. 데이터베이스 링크에는 모든 사용자가 사용할 수있는 PUBLIC 데이터베이스 링크와 링크를 만든 계정에서만 사용할 수 있는 PRIVATE 링크가 있습니다. 데이터베이스 링크를 만들고 사용하는 방법을 알아보겠습니다. 1. 데이터베이스 링크 생성 권한 SYSTEM 계정으로 로그인하여 권한을 줍니다. -- TESTDBADM 계정이 PRIVATE 데이터베이스 링크를 만들 수 있게 권한을 줌. -- PRIVATE 링크는 CREATE 권한만으로 생성과 삭제를 할 수 있습니다. GRANT CREATE DATABASE LINK TO TESTDBADM; -- TESTDBADM 계정이 PUBLIC 데이터베이스 링크.. 2018. 4. 20.
iPhone 5S 에 iOS 11.2 업데이트 iOS 11.2 를 업데이트했습니다. iPhone 8과 iPhone X 가 나오고 나서 iOS 업데이트가 아주 잦아진 느낌입니다. iPhone 5S에 iOS 11.2의 용량은 330.5MB 입니다. 업데이트 된 내용을 다음과 같다고 합니다. - Apple Pay Cash 기능이 추가되어 개인간 Apple Pay 로 결제가 가능하다고 하는데 미국에서만 되는 기능입니다.- 호환 가능한 타사 액세서리를 사용하여 iPhone8, iPhone 8 Plus 및 iPhone X에서 무선으로 빠르게 충전 가능- 3가지의 새로운 iPhone X용 Live 배경화면 출시- 비디오 카메라 안정성 향상- 팟캐스트에서 동일한 프로그램의 다음 에페소드를 자동 재생 가능- HealthKit에서 다운힐 스로 스포츠 거리를 데이터 유.. 2018. 4. 20.