그 외 ... (정리해야함)

eclipse.ini을 통해 이클립스를 최적화해보자 이클립스를 처음 설치하고 실행하다보면 Heap 메모리 사이즈가 적게 설정이 된다. 그렇기 때문에 이클립스를 사용하다보면 시스템 과부하나 메모리 부족현상을 경험할 수 있을 것이다. 이클립스를 사용할 때 메모리를 충분히 늘려주고 사용하는 것이 정신겅강에 좋다. eclipse 메모리 설정방법 eclipse가 설치된 폴더에 eclipse.ini 이라는 파일이 존재한다. 이 파일의 용도는 eclipse 툴의 설정파일이라고 생각하면 된다. 힙사이즈를 늘려주려면 이 eclipse.ini 파일 끝에 옵션을 추가하면 된다. (-Xms204m -Xmx5096m) eclipse.ini (내이클립스 설정 파일) -startup plugins/org.eclipse.equino..
JVM 메모리 구조 참조 2018/06/29 - [프로그래밍 노트/JAVA] - [JAVA] JVM 메모리구조 2020/12/19 - [프로그래밍 노트/JAVA] - [JAVA] JVM 가상머신 메모리 구조 2021/01/22 - [프로그래밍 노트/JAVA] - [JAVA] 가비지 컬렉터(GarabageCollector,GC) 애플리케이션을 실행하다가, outOfMemoryError 가 발생하였다면 우리는 JVM의 메모리 설정을 다시해 줄 필요가 있다. java.lang.OutOfMemoryError : Java heap space Heap size의 부족으로 Java Object를 Heap에 할당하지 못한 경우 발생하는 에러 java.lang.OutOfMemoryError : PermGen space ..
네트워크 프로그래밍(TCP 소켓) 스레드 병렬 처리 연결시, ServerSocket의 accept()를 실행하거나, 서버 연결 요청을 위해 Socket 생성자 또는 connect()를 실행할 경우 해당 작업이 완료되기 전까지 블로킹(blocking)된다.데이터 통신시에도 InputStream, OutputStream의 read(), write() 메소드는 작업이 끝날 때 까지 블로킹된다. => 결론적으로 ServerScoket과 Socket은 동기(블로킹) 방식으로 구동된다. 이렇게 동작할때의 문제점은, 서버 애플리케이션은 지속적으로 클라이언트의 연결 수락 기능을 해야하는데, 입출력에서 블로킹되면 이 작업을 할 수 없게된다. 또한 클라이언트1과 입출력하는 동안 클라이언트2와 입출력을 할 수 없게된다. 그..
Convert with Plain Java(String을 InputStream으로 변환) public void convertToStreamTest(){ String text = "test"; InputStream is = new ByteArrayInputStream(text.getBytes()); } 문자열을 Byte Array로 변환 후, ByteArrayInputStream을 사용하여 InputStream으로 변환한다.
Jtds driver를 다운받아서 SQL Developer에 등록하면 ms-sql-server에 접속 가능 1. https://sourceforge.net/projects/jtds/files/jtds/ 에서 jtds-x.x.x-dist.zip을 다운2. Oracle SQL Developer를 실행 후, 도구 -환경설정 - 데이터베이스 - 타사JDBC 드라이버 페이지로 이동3. 압축을 푼 파일안에 jtds-x.x.x.jar 파일 등록4. 파일등록 후 접속을 하게되면 SQLSever 패널이 생기므로 정보 입력 후 접속
Map의 Value데이터 기준으로 정렬하기 TreeSet을 이용하면 Key 기준으로 쉽게 정렬할 수 있으나, Value로 정렬해주는 컬렉션은 존재하지 않는다. Value로 map을 정렬을 하려면 Comparator 인터페이스를 이용해야 한다. 밑에 예제는 Value를 기준으로 내림차순으로 정렬을 하고, Value가 같다면 Key를 기준으로 오름차순으로 정렬하는 예제이다. package sort; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedList; im..
데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질(ACID)Atomicity(원자성)모두 실행되던지 모두 실행되지 않도록 하던지 보장하는 특성트랜잭션과 관련된 작업들이 부분적으로 실행되더가 중단되지 않는 것을 보장하는 능력 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 헎는 작업을 실패해서는 안됨. 원자성은 이와 같이 중간 단계까지 실해오디고 실패하는 일이 없도록 하는 것 Consistency(일관성)트랜잭션이 성공했다면, 데이터베이스는 그 일관성을 유지해야 한다.트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태를 유지하는 것을 의미 Isolation(독립성)트랜잭션 수행 중에 다른 연산작업이 끼어들지 ..
Base64 인코딩Base64 인코딩은 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식이다. (64개의 문자를 이용하여 바이너리 데이터를 아스키 텍스트 데이터로 표현하기 위해 사용)(이미지 출처)8bit의 데이터를 6bit의 크기로 표현하기 때문에24bit 단위로 하여 3개의 문자에서 4개의 문자를 얻게 된다.위의 예를 보면 이해하기 쉬운데, abc의 문자열을 base64인코딩을하면 YWJj의 문자열을 얻을 수 있다.=> 8bit를 6bit로 쪼개서 Base64색인표를 참고하여 문자열을 보여준다. 만약에 인코딩할 문자가 24bit단위가 아닌 경우에는, '='이라는 문자를 사용한다.'='는 bit 수를 맞추기 위한 특수한 문자이며, bit수를 맞춰주기 위해 0으로 채워지는 패딩을 ..
블록 암호 운용 방식(block cipher modes of operation)암호학에서 블록 암호 운용 방식은 하나의 키에서 블록 암호를 반복적으로 안전하게 이용하게하는 절차를 말한다. 블록암호는 특정한 길이의 블록 단위로 동작하기 때문에, 가변 길이 데이터를 암호화하기 위해서는 먼저 이들을 단위 블록들로 나누어야 하며, 그 블록들을 어떻게 암호화할지 정해야 하는데, 이때 블록들의 암호화 방식을 운용 방식이라 부른다. 초기화 벡터IV(Initialization vector)첫 블록을 암호화할 때 사용되는 값(1단계 앞의 암호문 블록이 존재하지 않으므로 대신하는 비트 블록을 의미) => CBC모드에서 사용암호화 때마다 다른 랜덤 비트열을 이용하는 것이 보통 패딩(padding)마지막 블록이 블록의 길이와..
스트림 암호(Stream Cipher)스트림 암호는 대칭키 암호의 구조 중 하나로, 유사난수를 연속적(스트림)으로 생성하여 암호화하려는 자료와 결합하는 구조를 가진다.일반적으로 스트림 암호는 유사난수를 1비트 단위로 생성하고, 생성된 값과 암호화하려는 각 값을 XOR 하여 1비트의 암호화된 자료를 얻는다.하드웨어 구현이 간편하며 속도가 빠르기 때문에 무선통신의 환경에서 주로 사용된다.대표적인 알고리즘으로는 RC4가 있다.※ 유사난수 : 난수를 흉내내기 위해 알고리즘으로 생성되는 값을 가리킨다. 이때 유사난수를 생성하는 알고리즘을 유사난수 생성기(PRNG)로 부른다. 종류난수열을 암호화할 입력값과 독립적으로 생성하는 경우를 동기식(synchronous)스트림 암호입력값이 난수열 생성에 영향을 끼치는 경우 ..
깡냉쓰
'그 외 ... (정리해야함)' 카테고리의 글 목록 (6 Page)