* JSch 라이브러리를 사용하여 SFTP 접속 및 파일 업로드
(http://www.jcraft.com/jsch/)
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpATTRS;
import com.jcraft.jsch.SftpException;
JSch jsch = new JSch();
Session session = null;
ChannelSftp channelSftp = null;
/**
* SFTP 접속
* @param ip 아이피
* @param port 포트
* @param id 로그인아이디
* @param pw 로그인비밀번호
*/
public void connect(String ip, int port, String id, String pw)
{
// 연결 시도
session = jsch.getSession(id, ip, port);
session.setPassword(pw);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
// 방식 설정
Channel channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
}
/**
* SFTP 접속 종료
*/
public void disconnect()
{
if (channelSftp != null)
channelSftp.disconnect();
if (session != null)
session.disconnect();
}
/**
* 폴더 확인 및 생성
* @param dir 폴더명(경로포함)
*/
public void checkDir(String dir)
{
SftpATTRS attrs = null;
// 폴더 체크
try
{
attrs = channelSftp.stat(dir);
}
catch(Exception e)
{
attrs = null;
}
// attrs가 널이면 폴더 존재 X
if (attrs == null)
{
channelSftp.mkdir(dir); // 폴더 생성
}
}
/**
* 폴더 이동
* @param dir 폴더명(경로포함)
*/
public void moveDir(String dir)
{
// 폴더 이동..
channelSftp.cd(dir);
}
/**
* 파일 업로드.
* @param fileName 파일명(경로포함)
* @param fileData 파일내용
* @return
*/
public boolean fileUpload(String fileName, byte[] fileData)
{
OutputStream os = channelSftp.put(fileName);
os.write(fileData);
os.flush();
os.close();
}
Java - 문자열로된 날짜 유효성 체크하기
* java.text.DateFormat.setLenient(boolean lenient)를 활용하여 체크.
lenient를 false로 설정하면 유효한 날짜가 아닐 경우 ParseException이 발생.
import java.text.SimpleDateFormat;
/**
* 문자열로 된 날짜 형식이 유효한지 체크
* @param dateStr
* @return 유효하면 true, 아니면 false
*/
public static boolean checkDateYYYYMMDD(String dateStr)
{
try {
SimpleDateFormat sdfYYYYMMDD = new SimpleDateFormat("yyyyMMdd");
sdfYYYYMMDD .setLenient(false);
sdfYYYYMMDD .parse(dateStr); //ex) dateStr="20201232"이면 ParseException 발생
return true;
} catch(ParseException e) {
return false;
} catch(Exception e) {
return false;
}
}
lenient를 false로 설정하면 유효한 날짜가 아닐 경우 ParseException이 발생.
import java.text.SimpleDateFormat;
/**
* 문자열로 된 날짜 형식이 유효한지 체크
* @param dateStr
* @return 유효하면 true, 아니면 false
*/
public static boolean checkDateYYYYMMDD(String dateStr)
{
try {
SimpleDateFormat sdfYYYYMMDD = new SimpleDateFormat("yyyyMMdd");
sdfYYYYMMDD .setLenient(false);
sdfYYYYMMDD .parse(dateStr); //ex) dateStr="20201232"이면 ParseException 발생
return true;
} catch(ParseException e) {
return false;
} catch(Exception e) {
return false;
}
}
스프링 프레임워크에서 HttpServletRequest, HttpSession 객체 직접 가져오기
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
ServletRequestAttributes sra = (ServletRequestAttributes)RequestContextHolder.currentRequestAttributes();
// HttpServletReqeust 객체
HttpServletReqeust httpServletReqeust = sra.getRequest();
// HttpSession 객체
HttpSession httpSession = sra.getRequest().getSession();
윈도우10 Windows 업데이트 끄기
*** 윈도우10 프로 ***
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 gpedit.msc 입력하여 실행
2. 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> Windows 업데이트 -> 자동 업데이트 구성 항목으로 이동
3. 사용 안 함으로 설정
4. 재부팅
*** 윈도우10 홈 ***
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 services.msc 입력하여 실행
2. Windows Update 항목의 시작 유형을 사용 안 함으로 설정
3. 재부팅
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 gpedit.msc 입력하여 실행
2. 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> Windows 업데이트 -> 자동 업데이트 구성 항목으로 이동
3. 사용 안 함으로 설정
4. 재부팅
*** 윈도우10 홈 ***
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 services.msc 입력하여 실행
2. Windows Update 항목의 시작 유형을 사용 안 함으로 설정
3. 재부팅
윈도우10 Windows Defender 끄기
*** 윈도우10 프로 ***
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 gpedit.msc 입력하여 실행
2. 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> Windows Defender -> Windows Defender 끄기 항목으로 이동
3. 사용으로 설정
4. 재부팅
*** 윈도우10 홈 ***
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 regedit 입력하여 실행
2. HKEY_LOCAL_MACHINE -> SOFTWARE -> Policies
-> Microsoft -> Windows Defender 폴더로 이동. 없으면 생성
3. DisableAntiSpyware 항목의 값을 1 으로 설정. 없으면 DWORD(32비트) 값으로 새로만들기.
4. 재부팅
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 gpedit.msc 입력하여 실행
2. 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> Windows Defender -> Windows Defender 끄기 항목으로 이동
3. 사용으로 설정
4. 재부팅
*** 윈도우10 홈 ***
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 regedit 입력하여 실행
2. HKEY_LOCAL_MACHINE -> SOFTWARE -> Policies
-> Microsoft -> Windows Defender 폴더로 이동. 없으면 생성
3. DisableAntiSpyware 항목의 값을 1 으로 설정. 없으면 DWORD(32비트) 값으로 새로만들기.
4. 재부팅
윈도우10 코타나 끄기
*** 윈도우10 프로 ***
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 gpedit.msc 입력하여 실행
2. 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> 검색 -> Cortana 허용 항목으로 이동
3. 사용 안 함으로 설정
4. 재부팅
*** 윈도우10 홈 ***
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 regedit 입력하여 실행2. HKEY_LOCAL_MACHINE -> SOFTWARE -> Policies
-> Microsoft -> Windows -> Windows Search 폴더로 이동. 없으면 생성
3. AllowCortana 항목의 값을 0 으로 설정. 없으면 DWORD(32비트) 값으로 새로만들기.
4. 재부팅
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 gpedit.msc 입력하여 실행
2. 컴퓨터 구성 -> 관리 템플릿 -> Windows 구성 요소 -> 검색 -> Cortana 허용 항목으로 이동
3. 사용 안 함으로 설정
4. 재부팅
*** 윈도우10 홈 ***
1. 작업표시줄 or 윈도우키 + S 로 검색창을 띄운 후 regedit 입력하여 실행2. HKEY_LOCAL_MACHINE -> SOFTWARE -> Policies
-> Microsoft -> Windows -> Windows Search 폴더로 이동. 없으면 생성
3. AllowCortana 항목의 값을 0 으로 설정. 없으면 DWORD(32비트) 값으로 새로만들기.
4. 재부팅
MySql - 문자열 합치기 (CONCAT)
* CONCAT 함수 사용
* CONCAT (문자열1, 문자열2, .....)
문자열1, 문자열2 ...을 합쳐서 반환.
ex)
SELECT CONCAT('abc', 'def'); => 'abcdef'
SELECT CONCAT('abc', 'def', 'ghi') => 'abcdefghi'
* CONCAT (문자열1, 문자열2, .....)
문자열1, 문자열2 ...을 합쳐서 반환.
ex)
SELECT CONCAT('abc', 'def'); => 'abcdef'
SELECT CONCAT('abc', 'def', 'ghi') => 'abcdefghi'
피드 구독하기:
글 (Atom)