클라이언트에서 바이트 송수신 시, 아래처럼 간단하게 구현할 수 있도록 유틸을 만들어 봄 10.10.10.1:10090으로 요청 바이트 송신 후, 12바이트 수신 ClientSocketUtils.request("10.10.10.1", 10090, sendBytes, in -> in.read(12)); 10.10.10.1:10090으로 요청 바이트 송신 후, 헤더 5바이트 수신 후 헤더에 지정된 길이만큼 읽기 ClientSocketUtils.request("10.10.10.1", 10090, sendBytes, LENGTH_HEAD_RES_BODY_RECEIVER.apply(5)); 개선된 ClientSocketUtil public class ClientSocketUtils { private static f..
socket connection timeout 랑 read timeout 설정 가능한 클라이언트용 Socket util만들어보기 connection time => 접속 대기 시간 socket.connect(new InetSocketAddress(host, port), 3000); 3초간 접속안되면 SocketTimeoutException 발생 read timeout ==> 응답 대기 시간 socket.setSoTimeout(3000); 3초동안 응답(패킷수신)이 없을 경우 SocketTimeoutException 발생 ClientSocketUtil 기본 connectionTimeout 3초, readTimeout 3초 public class ClientSocketUtils { private static ..
spring boot 학습 & 세팅 5탄 (2.3.9 RELEASE docs.spring.io/spring-boot/docs/2.3.9.RELEASE/reference/html/) spring boot 레디스 설정 1편 1. 사전 작업 테스트를 위해 로컬에 redis서버를 설치하고 포트는 기본 포트(6379)로 띄웠습니다. (혹은 내장 redis서버를 이용해서 로컬환경을 구성할 수도 있습니다. ) 2. 의존성 추가 + redis서버 설정(application.yml) org.springframework.boot spring-boot-starter-data-redis spring: redis: host: 127.0.0.1 port: 6379 timeout: 3000 #ms connection timeout..
spring boot 학습 & 세팅 4탄 ~ 딱히 부트의 내용도 아니고 간단해서 정리안하려다 .... 간단해서 정리 1. CommandLineRunner CommandLineRunner 보다는 ApplicationRunner을 사용하자 2. ApplicationRunner ApplicationArguments를 인자로 받기 때문에 다른 방식에 비해 Arguments 처리가 수월한 장점이 있는 듯 @Component @Order(2) public class MyApplicationRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { System.out.println..
spring boot 학습 & 세팅 3탄 (2.3.9 RELEASE docs.spring.io/spring-boot/docs/2.3.9.RELEASE/reference/html/) 1. @Component 또는 @ServletComponentScan WebFilter) 임베디드 WAS의 경우, 자동 설정에 의해서 Filter를 구현할 클래스에 @Component만 붙여줘도 필터가 등록된다. @Component public class FirstFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws I..
spring boot 학습 & 세팅 2탄 - 2.3.9 RELEASE docs.spring.io/spring-boot/docs/2.3.9.RELEASE/reference/html/ 역시 기본적인 내용 정리는 .... 잘 되어있는 블로그 참고 ~ 갓대희 블로그 코딩 덕후님 블로그 YAML 문법 위키 문서 : https://ko.wikipedia.org/wiki/YAML YAML 문법 확인 : http://www.yamllint.com/ Spring boot 2.3.9 -Externalized Configuration spring boot 2.3.9 - Common Application properties 1. application.yml 통합 버전 spring.profiles와 --- 구분자로 applic..
spring boot 학습 & 세팅 1탄 ~ Spring boot 공식 was undertow 언더토우의 다른 was와 차이, 특징, 설치 방법은 다른 블로그들에 잘 정리되어 있으니 pass hyojaedev.tistory.com/32 👨🏻💻 Undertow 적용하기 (다른 WAS 적용해보기) 📌 서론 SpringBoot를 사용하면서 내장 WAS가 디폴트로 설정되어 있는 Tomcat 이외에 다른 WAS를 사용해보겠다는 생각이 다소 없었던 것 같다. SpringBoot 관련 스터디를 진행하면서 아래와 같은 피드백 hyojaedev.tistory.com undertow 옵션 spring-boot-starter-parent 2.3.9.RELEASE 스프링부트 2.3.9 RELEASE 버전에서 언더토우 2.1..
volatile은 멀티 스레드 프로그래밍에 사용되는 키워드입니다. 스레드는 실행되고 있는 CPU메모리 영역에 데이터를 캐싱합니다. 따라서 멀티 코어 프로세서에서 다수의 스레드가 변수 a를 공유하더라도 캐싱된(갱신) 시점에 따라 데이터가 다를 수도 있습니다. 그리고 캐싱된 데이터가 언제 갱신되는지 정확히 알수 없습니다. 멀티코어 환경에서 스레드1, 2가 변수a(counter 성격의 가변 데이터)를 공유하고 있다고 가정해 봅시다. 1번 스레드가 a=2를 할당한 이후에 2번 스레드가 a를 읽더라도 가장 최신값 2가 아닌 이전에 캐싱된 값을 읽어올 수 있습니다. 이런 경우 volatile키워드를 사용하여 CPU메모리 영역에 캐싱된 값이 아니라 항상 최신의 값을 가지도록 메인 메모리 영역에서 값을 참조하도록 할 ..
Hikari 소스를 까 보던 중 동기화와 관련된 좋은 코드가 있어서 소개합니다. 그전에 일단 DataSource에 대해서 좀 알아보겠습니다. DataSource를 사용하면 getConnection메소드를 통해 커넥션을 얻어 옵니다. public interface DataSource extends CommonDataSource, Wrapper { Connection getConnection() throws SQLException; .. 보통 DB당 DataSource 객체를 하나만 생성하기 때문에 DataSource는 다수의 스레드에 의해 공유됩니다. 따라서 커넥션을 얻기 위해 getConnection메소드를 호출할 때마다 스레드 간 경합이 발생하게 됩니다. 그런데 getConnection메소드에는 커넥션..
람다식이 일반화되면서 Optional을 사용한 코드를 많이 보게 됩니다. Optional을 사용하지 않으면 왠지 투박해보이고 레거시한 개발자가 된거 같습니다. ? 1. Optional은 기존의 null처리를 대체하기 위해 나온 것인가? 자바 API에 보면 다음과 같이 나옵니다. Optional is primarily intended for use as a method return type where there is a clear need to represent "no result,"...... "Optional은 주로 결과값 없음을 명확하게 표시할 필요가 있는 return 유형으로 사용하기 위한 것..." 즉, null이 리턴될 수도 있다는 것을 인지시키고 npe를 방지하기 위해 사용하는 것입니다. 이것..
- Total
- Today
- Yesterday
- 자바소켓
- 자바 소켓통신
- 바이트 기반 서버
- 상속과 구성
- 자바 TCP 서버
- 클라이언트 소켓
- 자바 tcp
- 소켓통신 프레임워크
- 소켓 유틸
- java socket util
- 자바 클라이어트 소켓
- 디자인 패턴
- RedisAutoConfiguration
- neso
- client socket util
- java socket
- socket connection timeout
- 사천성 게임
- 사천성 알고리즘
- socket readtimeout
- 자바 동기화
- 소켓통신
- 구성
- 자바 온라인 사천성
- 추상 팩토리 패턴
- 자바 전문통신
- 자바 사천성
- 클라이언트 소켓 유틸
- netty
- 자바 전문서버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |