수달의 IT 세상

[C#] TcpClient Class에서 Nagle 알고리즘 적용 해제하기 포스트 Teaser

[C#] TcpClient Class에서 Nagle 알고리즘 적용 해제하기

카테고리:

최대 1 분 소요

TcpClient C#에서의 TcpClient 클래스는 TCP/IP 프로토콜을 사용하여 네트워크 통신을 수행하는 데 사용된다. 이 클래스는 클라이언트 측 TCP 연결을 만들고 관리하는 기능을 제공하는데, 주로 네트워크 기반 응용 프로그램에서 서버와의 통신 또는 다른 클라이언트와의 통신에 사용된다. https://learn.microsoft.com/ko-kr/dotnet/api/system.net.sockets.tcpclient?view=net-8.0 Nagle 알고리즘? https://syudal.kr/post/Network-Nagle알고리즘과-TCPNODELAY/ Nagle 알고리즘 적용 해제하기 TcpClient client = new TcpClient(ip, port) { NoDela

[C#] .NET 8 부터 적용된 제품 버전 접미사 제거하기 포스트 Teaser

[C#] .NET 8 부터 적용된 제품 버전 접미사 제거하기

카테고리:

1 분 소요

소스 링크 빌드 도구 .NET 8부터 도입된 Source Link는 개발자가 라이브러리의 소스 코드를 디버깅할 때 더 쉽게 따라갈 수 있도록 도와주는 기능이다. 이 기능을 사용하면 라이브러리 제공자는 라이브러리를 빌드할 때 소스 코드 파일과 함께 컴파일러가 해당 파일이 정의된 위치를 나타내는 정보를 생성한다. IDE나 디버거는 NuGet 패키지에서 제공되는 Source Link 정보를 사용하여 필요한 경우 소스 코드 파일을 자동으로 다운로드하고 불러오는데, 이는 개발자가 외부 라이브러리의 소스 코드를 보다 쉽게 이해하고 디버깅할 수 있도록 도와준다. https://github.com/dotnet/sourcelink 문제 상황 빌드한 결과가 아래 사진과 같이 제품 버전에 접미사가 붙어서 빌드된다. 사

[Ubuntu, Shadowsocks] Shadowsocks 서버 구축하기 포스트 Teaser

[Ubuntu, Shadowsocks] Shadowsocks 서버 구축하기

카테고리:

1 분 소요

Shadowsocks Shadowsocks는 SOCKS5 프록시 프로토콜을 기반으로 하는 인터넷 트래픽을 안전하게 전송하기 위한 프록시 소프트웨어이다. 암호화 및 터널링 기술을 사용하여 사용자의 인터넷 트래픽을 안전하게 전달하는 만큼 인터넷 검열이 심한 중국에서 주로 사용된다. 이처럼 사용자가 개인 정보를 보호하고 인터넷 검열을 피하기 위해 사용하지만 기업에서 원격 액세스 및 보안 터널링에도 활용된다. https://github.com/shadowsocks ※ 본 게시글은 Ubuntu 24.04 LTS 버전을 기준으로 작성되었습니다. 설치 방법 apt 리포지토리에서 shadowsocks-libev 패키지를 설치한다. sudo apt-get update sudo apt install shadows

[Ubuntu, OpenVPN] 특정 아이피 대역 빼고 라우팅하기 포스트 Teaser

[Ubuntu, OpenVPN] 특정 아이피 대역 빼고 라우팅하기

카테고리:

1 분 소요

문제 상황 OpenVPN을 사용하면 모든 연결을 VPN 서버를 통해서 접속하고자 하는 서버로 연결된다. 여기서 문제가 발생하는데, 모든 연결을 VPN 서버를 통함으로써 VPN 서버에서 해당 사이트가 차단된 경우 혹은 내부망에서만 접근 가능한 경우에는 접속이 불가능하다. 해결 방안 아래와 같은 내용을 .ovpn 파일에 넣고 저장한다. 이후 해당 프로파일을 이용하여 연결하면 해당 대역에 있는 ip는 VPN을 통과하지 않고 바로 연결된다. route 아이피 서브넷마스크 net_gateway .ovpn에 ip : 192.168.0.0, subnetmask : 255.255.0.0을 적용한 예제는 아래와 같다. client dev tun proto tcp remote [OPENVPN_SERVER_IP]

[Java, SLF4J] org.slf4j.impl.StaticLoggerBinder 에러 해결하기 포스트 Teaser

[Java, SLF4J] org.slf4j.impl.StaticLoggerBinder 에러 해결하기

카테고리:

3 분 소요

SLF4J SLF4J는 “Simple Logging Facade for Java”의 약자로, 자바 애플리케이션에서 사용되는 로깅 인터페이스이다. SLF4J는 로깅 시스템에 대한 추상화 계층을 제공하여 애플리케이션 코드가 특정 로깅 프레임워크에 종속되지 않도록 하며, 애플리케이션 코드에서 로깅을 위한 API를 호출할 때 어떤 구현체를 사용할지 결정할 수 있다. 문제 상황 HikariCP를 프로젝트에서 사용하기 위해 Maven을 통해 라이브러리를 추가하자 발생한 오류로 아래와 같이 출력되었다. SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logg

[Java, Netty] Nagle 알고리즘 적용 해제하기 포스트 Teaser

[Java, Netty] Nagle 알고리즘 적용 해제하기

카테고리:

2 분 소요

Nagle 알고리즘? https://syudal.kr/post/Network-Nagle알고리즘과-TCPNODELAY/ Nagle 알고리즘 적용 해제하기 아래는 Netty EchoServer 예제에 TCP_NODELAY 옵션을 true로 적용하여 Nagle 알고리즘의 적용을 해제 하는 방법이다. EchoServer.java public final class EchoServer { static final int PORT = Integer.parseInt(System.getProperty("port", "8007")); public static void main(String[] args) throws Exception { // C

개발자 기술 면접 노트 포스트 Teaser

개발자 기술 면접 노트

카테고리:

3 분 소요

개발은 알지만 면접은 잘 모르는 주니어 개발자와 시니어 개발자 모두에게 면접관의 입장에서 알차게 작성한 취업 및 이직이라는 대장정에 등대가 되어주는 책 필요한 선수 지식 요구 학력 : 관련학과 대졸 이상(취업 및 이직에 관련된 내용) 예제 코드 : X 난이도 : ★☆☆☆☆ 책의 구성 중 마음에 들었던 주제 Chapter 03 취업과 이직을 위한 첫 걸음, 이력서와 자기소개서 이력서를 관리하는 방법과 꼭 챙겨야 할 항목, 경력사항을 작성하는 방법 및 해당 언어의 숙련도를 표현하는 방법, 심플하면서도 매력적인 자기소개서를 작성하는 방법들을 사례 연구를 통해 설명한다. Chapter 04 시선을 사로잡은 커리어, 경력기술서 포트폴리오에서의 기본적인 유의 사항과 적어야 할 내용인 트

[Network] Nagle알고리즘과 TCP_NODELAY 포스트 Teaser

[Network] Nagle알고리즘과 TCP_NODELAY

카테고리:

1 분 소요

Nagle 알고리즘 Nagle 알고리즘은 1984년에 발표된 RFC 896 “Congestion Control in IP/TCP Internetworks” 문서에서 제안된 것으로, Van Jacobson에 의해 소개되었다. 이 알고리즘의 주요 목적은 TCP 네트워크에서 소형 데이터 패킷을 최소화하여 헤더가 붙음으로 인한 오버헤드를 줄여 대역폭을 효율적으로 사용하는 것을 목적으로 제시되었다. Nagle 알고리즘의 동작 원리 1. 작은 패킷의 조합 작은 데이터 조각을 여러 개의 패킷으로 나누어 전송하는 것을 방지하기 위해 TCP 세그먼트에 작은 데이터를 모아서 조합한 후 한 번에 전송한다. 2. ACK 지연 ACK 패킷의 전송을 고의적으로 늦춰 전송함으로써, TCP 연결에서 발생하는 오버헤드를 감소시