기본 콘텐츠로 건너뛰기

gsjava 프로그래밍시 내가 가장 많이 조회 하는 내용

퓨쳐텍정보통신 보안 연구소  (마지막 검색이 맨 위로 온다.)

현재 개발중(MFC/JAVA/JAVASCRIPT/안드로이드 등)....

1은 참(true)이고, 0은 거짓(false)으로 처리됩니다
Visual Studio Code에서 자동으로 코드 정렬하기

ctrl + k + f 

 - 컨트롤에 있는 값을 변수로 넣어 갱신하고 싶을 때에는 UpdateData(TRUE) 사용

  - 변수에 있는 값을 컨트롤에 넣어 갱신하고 싶을 때에는 UpdateData(FALSE) 사용


Active Directory MFC 소스 다운

코드 프로젝트

Simple Active Directory Browsing

https://www.codeproject.com/Articles/15324/Simple-Active-Directory-Browsing

*. 타이머 사용

    *.***. javascript

function sayHi() {
  alert('안녕하세요.');
}
*1초에 한번씩 함수 실행
timerId = setTimeout(sayHi, 1000);

* 완료시 타이머 종료

clearTimeout(timerId);


*. 문자열 자르기

     *.**. java 

//사용법
String.substring(start) //문자열  start위치부터 끝까지 문자열 자르기
String.substring(start,end) //문자열  start위치 부터 end전까지 문자열 발췌
		

//예제
String str = "ABCDEFG"; //대상 문자열
/*A=0 B=1 C=2 D=3 E=4 F=5 G=6의 index를 가진다.*/
		
str.substring(3); 
/*substring(시작위치) 결과값 = DEFG*/

str.substring(3, 6); 
/*substring(시작위치,끝위치) 결과값 = DEF*/


*. 문자열 포함 확인하기

    *.*. MFC

     int nIndex = 0;
     CString strDate( "2013-12-16" );

     nIndex = str.Find( '0' );
     printf( "%d\n", nIndex );

     *.**. java 

// contains를 이용한 방법(true, false 반환)
if(txt1.contains("나다")) {
    System.out.println("문자열 있음!");
} else {
    System.out.println("문자열 없음!");
}

    *.***. javascript

  - indexOf 이용

var stringVal = "javascript",
    substring = "java";
stringVal.indexOf(substring) !== -1;

javascript의 기본객체인 string의 indexOf를 이용하는 방법


포함하고 있는 문자의 인덱스를 반환한다.


만약 문자를 가지고 있지 않으면 -1을 반환한다.


*. UI 값 얻기
MFC Edit 박스 아이로 값 가져오기
SetDlgItemText(IDC_ADDR_EDIT,strHost);
GetDlgItemText(IDC_ADDR_EDIT,strHost);


*. 변수 초기화

    1.1. javascript

- 배열 초기화
let arr = [1, 2, 3];

arr = [];

*. 형변환

 -2.1 MFC

* 이렇게 하면 CString 문자열을 알어서 변환해준다.
CStringA strA = CStringA(strChHost);
char *pChar = strA.GetBuffer();

//CString => wstring
std::wstring wstr = L"wstring문자열";
wstr = cstr.operator LPCWSTR();


- wstring to wchart_t 
std::wstring wStr;
const wchar_t *input = wStr.c_str();

- CString -> char *

CString str;
str = "test";
char* st = LPSTR(LPCTSTR(str));

- char * to std::string

char c[256] = "Hi there";

std::string str(c);  // OR std::string str = c;

- unsigned char* to string

unsigned char* dec_outputKey2;

std::string strData( reinterpret_cast< char const* >(dec_outputKey2) ) ;

- std::string  to char *

std::string str = "string";
char* chr = str;

* 제일 중요한 내용 wstring로 저장한 변수는 char로 변경할 경우 
std::wcstombs(buffersessionKey, inputsessionKey, size); 이렇게 한번더 변환이 필요하다 ㅠ.ㅠ


3. 암호화

    3.1. java 

- sha-256
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SHA256 {

    public String encrypt(String text) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        md.update(text.getBytes());

        return bytesToHex(md.digest());
    }

    private String bytesToHex(byte[] bytes) {
        StringBuilder builder = new StringBuilder();
        for (byte b : bytes) {
            builder.append(String.format("%02x", b));
        }
        return builder.toString();
    }

}
 - 파일을 읽어서 sha-256
public static void sha(String a) throws Exception{
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        FileInputStream fis = new FileInputStream(a);
        
        byte[] dataBytes = new byte[1024];
     
        int nread = 0
        while ((nread = fis.read(dataBytes)) != -1) {
          md.update(dataBytes, 0, nread);
        };
        byte[] mdbytes = md.digest();
     
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < mdbytes.length; i++) {
          sb.append(Integer.toString((mdbytes[i] & 0xff+ 0x10016).substring(1));
        }
 
        System.out.println("SHA-256 : " + sb.toString());
        
    }

3. 시간차 구하기

  3.1. java 

SimpleDateFormat f = new SimpleDateFormat("HH:mm:ss", Locale.KOREA); Date d1 = f.parse("01:05:10"); Date d2 = f.parse("01:05:07"); long diff = d1.getTime() - d2.getTime(); long sec = diff / 1000; System.out.println(sec);
1000밀리초는 1초니까, getTime()으로 구한 값을 1000으로 나누면 초를 얻습니다.

4. For 문


6. 문자열 저장하기

  6.1. MFC

std::vector<std::string> v;
v.push_back( "Some string" );

      or

v.insert( v.end(), "Some string" );

7. 문자열 공백제거

    6.1. javascript

    let str1 = " 문자열의 앞 뒤 공백 제거하기    ";

    document.write(str1.trim());

7. 문자열 길이

    7.1. javascript

  - let str1 = 'abc';
- document.write(str1.length);
-결과 : 3

8. 문자열 비교

    8.1. java

    str1.equals(str3) : true 

    8.2. javascript

'=='와 '==='의 차이 

  • '=='는 비교하는 두 개의 값(피연산자)을 강제로 같은 형으로 변환한 후, 비교를 수행합니다.
    즉, 두 값의 타입이 다르더라도, 형 변환된 값이 같다면 true를 리턴합니다.
  • '==='는 비교하는 두 개의 값(피연산자)의 타입과 값이 모두 같을 경우에만, true를 리턴합니다.

9.배열 선언

9.1. javascript

let arr1 = [];
let arr2 = new Array();


10.변수 선언

10.1. javascript

 - var, let, const 차이

var name = 'bathingape'
    console.log(name) // bathingape

    var name = 'javascript'
    console.log(name) // javascript

var는 선언이 중복되도 오류가 없이 실행이 된다. 이래서 중간에 중복 선언이 되면 값이 왜 바뀌는지 알수가 없다. 테스트 용으로만 사용할것

let는 중복 선언이 되지 않지만 값을 바꾸어서 저장 가능하다.

const는 중복 선언이 되지 않고 값도 바꿀 수 없다.  

코딩시 적절한 선택이 필요한다.

8. 문자열 형변환

 8.1 C++ 형변환

CString cstring(_T("CString::CStringT")); 

std::string str("std::string"); 

std::wstring wstr(_T("std::wstring")); 

// std::string <-- CString

str = std::string(CT2CA(cstring.operator LPCWSTR())); 

// std::wstring <-- CString

wstr = std::wstring(cstring.operator LPCWSTR()); 

// CString <-- std::string

cstring = CString::CStringT(CA2CT(str.c_str())); 

// CString <-- std::wstring

cstring = CString::CStringT(wstr.c_str()); 

// std::string <-- std::wstring

str = std::string(CT2CA(wstr.c_str())); 

// std::wstring <-- std::string

wstr = std::wstring(CA2CT(str.c_str())); 


 

11. mysql 접속하기


12. log 출력 on/off

12.1. javascript

var orgConsole = console;
var orgLog = console.log;    
console.off = function() {      
    this.log = function() {}
}
console.on = function() {      
    this.log = orgLog    
}
전역으로 선역하고 
console.off()
하면 더이상 로그 출력이 되지 않는다. 다시 출력 하고 싶으면
console.on()

댓글

이 블로그의 인기 게시물

톰캣 세션 타임 아웃 설정

web.xml 파일이 있습니다. 이 파일을 열어서 session이라고 검색해 보십시오. <session-config>   <session-timeout>360</session-timeout> </session-config> 위 단락을 찾을 수 있습니다. session-timeout 시간 360이 바로 자동로그아웃 세션 시간입니다.  단위는 분이고요. 30분으로 하고 싶으시면 30으로 바꿔서 저장해주시면 되는 것이죠~ Tomcat 내에서 Session Timeout 를 설정하는 우선 순위가 존재 한다. session.setMaxInactiveInterval() 프로그램내에서 time out 를 설정했을 경우 Web application 내의 WEB-INF/web.xml Tomcat 내의 conf/web.xml 실제로 Tomcat(conf/web.xml)내에 Default 로 설정되어 있는 것은 다음과 같다. < HttpSession 메서드 > getCreationTime() - 세션 생성 시간 getLastAccessedTime() - 마지막 요청 시간 setMaxInactiveInterval() - 최대허용시간 설정 (초) getMaxInactiveInterval() - 최대허용시간 invalidate() - 세션 제거 < 타임아웃 설정하기 > - 일정 시간 동안 요청이 없으면 세션을 제거한다  1. DD에서 전체 세션 타임아웃 설정       web.xml 1. DD에서 전체 세션 타임아웃 설정       web.xml <web-app ... >     <servlet>        ...

java 특정 디렉토리에 있는 파일 목록을 읽어내기, 정렬해서 가져오기

폴더 리스트 가져오기 String path="C:\"; File dirFile=new File(path); File []fileList=dirFile.listFiles(); for(File tempFile : fileList) {   if(tempFile.isFile()) {     String tempPath=tempFile.getParent();     String tempFileName=tempFile.getName();     System.out.println("Path="+tempPath);     System.out.println("FileName="+tempFileName);     /*** Do something withd tempPath and temp FileName ^^; ***/   } } 정렬해서 가져오기 import java.io.FileFilter; import java.io.IOException; import java.util.Arrays; import java.util.Date; import org.apache.commons.io.comparator.LastModifiedFileComparator; import org.apache.commons.io.filefilter.FileFileFilter; public class LastModifiedFileComparatorTest { public static void main(String[] args) throws IOException { File directory = new File("."); // get just files, not directories File[] files = directory.listFiles((FileFilter) FileFileFilter.FILE); System.out.println("Defaul...

dmesg 메시지 실시간으로 보기

참조사이트 http://imitator.kr/Linux/556 # tail -f /var/log/messages # tail -f |dmesg //기본 2초 단위로 갱신 된다. # watch "dmesg | tail -f" //1초 단위로 갱신하면서 보여준다. # watch -n 1 "dmesg | tail -f" // 보여주는 줄을 20으로 늘린다. (기본 10줄) # watch -n 1 "dmesg | tail -f -n 20"