본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Java(자바)85

Nio 패키지 TCP 서버 종료 이벤트(Selector, ServerSocketChannel) TCP 서버를 nio 패키지의 클래스를 활용하여 개발하던 중 만난 이슈 입니다. 물론, 서버채널(ServerSocketChannel)은 비동기(configureBlocking 값이 false)인 상황 이였습니다. 네트워크가 끊어진 경우에는 셀렉터의 키 값을 반환(cancle) 하고 체널을 종료(close)를 해 주어야 합니다. 그렇지 않으면 해당 채널은 계속해서 iterator를 통해서 나오기 때문 입니다. 대략 아래처럼 코드를 작성 하였습니다. //생략.. Selector selector; { Iterator it = selector.selectedKeys().iterator(); while (it.hasNext()) { SelectionKey key = (SelectionKey) it.next(); .. 2023. 2. 15.
ServerSocketChannel, SocketChannel read write 메소드 사용시 주의해야 할 점 Java에서 TCP 소켓 서버를 구현하기 위해 사용되는 클래스 중 ServerSocketChannel 클래스가 있습니다. 해당 클래스는 nio 패키지의 일부이며, 해당 클래스를 통해서 TCP 서버를 쉽게 구현 할 수 있습니다. 아래 샘플코드는 데이터를 받기 위해서 사용하는 프로세스의 일부분을 간략하게 표현한 코드입니다. read 메소드를 통해서 데이터를 받을 수 있습니다. import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; import java.nio.ByteBuffer; { ServerSocketChannel serverSocket = ServerSocketChannel.open(); while(ser.. 2022. 12. 15.
Java ArrayBlockingQueue 기본 메서드 정리 ArrayBlockingQueue는 배열(Array)로 구성된 큐(Queue) 입니다 가장 먼저 들어온 요소가 가장 먼저 빠지는 FIFO(선입선출) 형태로 이루어져 있습니다. 다중 스레드 환경에서 따로 동기화나 제어를 하지 않아도 블럭효과를(blocking, non - blocking) 보장 합니다. * synchronized 키워드를 사용하지 않아도 됩니다. 기본적으로 new 연산자를 통해서 생성하며, 이때 큐 사이즈(크기)를 받습니다. import java.util.concurrent.ArrayBlockingQueue; { /** 아래 큐 크기는 3이며, 3개 이상의 데이터를 넣을 수 없습니다. 제네릭을 통해 원하는 자료형을 지정할 수 있습니다. */ ArrayBlockingQueue queue = .. 2022. 12. 2.
Java String format 정리(자바 문자 형식 정리) 자주 사용되는 String format 형식에 대한 간단한 내용정리 입니다. 매번 잊어먹고 찾기가 힘들어서 아래 내용으로 간단하게 정리 해 보았습니다. : - ) 표기 내용 설명 s, S 문자열 String 값을 받습니다 c, C 문자 Character 값을 받습니다 %% 퍼센트 퍼센트를 표시 합니다 b, B 논리값 Boolean 값을 받습니다 d 정수 Integer 값을 받습니다 h, H 16진수 Integer, Double, Float 값을 16진수를 표시 합니다 x, X 정수 Integer 값을 16진수 값을 정수로 표시 합니다 o 정수 Integer 값을 8진 정수로 표시 합니다 f 부동 소수점 Double, Float 값을 받습니다 e, E 부동 소수점 Double, Float 값을 10진수(가.. 2022. 11. 28.
Java List Map 객체 정렬하기 너무 쉬운 기능, Comparator를 얼마나 이해하고 잘 쓰냐에 따라 달려있습니다. 스트림(stream)으로 풀면 아래와 같습니다. import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.List; public class SortItem { public static void main(String[] args) { List list = new ArrayList(); HashMap item = new HashMap(); item.put("index", 1); item.put("text", "abcd"); list.add(item); item = new HashMap(); item.pu.. 2022. 9. 5.
Mybatis jdbctype(마이바티스 Jdbctype) 마이바티스(Mybatis)에서 사용되는 JDBC TYPE 모음 입니다. jdbcType 값은 반드시 대문자로 사용해야합니다! SQL Server 형식 JDBC 형식(jdbcType) Java(JavaType) bigint BIGINT long binary BINARY byte[] bit BIT boolean char CHAR String date DATE java.sql.Date datetime TIMESTAMP java.sql.Timestamp datetime2 TIMESTAMP java.sql.Timestamp datetimeoffset(2) microsoft.sql.Types.DATETIMEOFFSET microsoft.sql.DateTimeOffset decimal DECIMAL java.math.. 2022. 7. 18.