수달의 IT 세상

[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 연결에서 발생하는 오버헤드를 감소시

[Java] Rhino Engine, Nashorn Engine, GraalVM 포스트 Teaser

[Java] Rhino Engine, Nashorn Engine, GraalVM

카테고리:

3 분 소요

자바스크립트 인터프리터 엔진 Rhino 엔진, Nashorn 엔진, 그리고 GraalVM은 모두 자바스크립트를 인터프리팅하고 실행하는데 사용되었거나 사용하는 엔진들이다. Java의 버전이 올라감에 따라서 자바스크립트를 인터프리팅하는데 사용하는 엔진들이 바뀌었는데, JDK 버전에 맞추어 각각을 간단히 설명하고자 한다. Rhino Engine (~ Java SE 7) Rhino는 Mozilla Foundation에서 개발한 자바스크립트 인터프리터 엔진이다. 자바 가상 머신(JVM)에서 실행되며, 자바스크립트 코드를 자바 바이트 코드로 변환하여 실행한다. Rhino는 자바 애플리케이션에서 자바스크립트를 사용하는 데 주로 사용되었으나, 성능 면에서 한계가 있어 Java 표준 라이브러리에서 제공하는 공식적인 J

게임 AI를 위한 탐색 알고리즘 입문 포스트 Teaser

게임 AI를 위한 탐색 알고리즘 입문

카테고리:

2 분 소요

게임 AI라고 하면 머신러닝을 생각하겠지만, 또 다른 핵심요소인 ‘탐색’에 집중한 책 필요한 선수 지식 요구 학력 : 관련학과 대졸 이상(자료구조와 알고리즘의 심화 및 응용) 예제 코드 : C++ 난이도 : ★★★☆☆ 책의 구성 중 마음에 들었던 주제 Chapter 05 교대로 두는 2인 게임에서 사용하고 싶은 탐색 알고리즘 미니맥스 알고리즘, 알파-베타 가지치기, 몬테카를로 탐색과 같은 전통적 트리 탐색과 관련된 알고리즘과 필자가 만들었다는 Thunder 탐색 알고리즘을 설명한다. Chapter 07 더 좋은 탐색을 하는 기법 탐색에서 중요한 가중치를 설정하는 법, 탐색의 고속화를 위해 동일한 게임판을 저장하고 빨리 연산하는 법, 비트열을 이용하여 게임판 표현하는 방법을 설