Computer Science/etc.

구글이 리눅스 커널 패치를 통해 TCP 통신성능을 40%까지 향상할 수 있었다는 것을 알게 됐습니다. 어떻게 했길래 40%라는 수치가 나오는지 궁금해서 알아보았고 아주 단순하고 그냥 지나칠 수 있는 기본 지식을 실제로 적용하는 것이 성능에 크게 영향을 미칠 수 있다는 사실이 놀라워 글로 작성해 봅니다. 원본 아티클: Linux 6.8 Network Optimizations Can Boost TCP Performance For Many Concurrent Connections By ~ 40% 유튜브 영상: Google Patches Linux kernel with 40% TCP performance - Hussein Nasser 구글은 어떻게 성능을 향상했는가? 구글은 리눅스 커널의 TCP 성능을 향..
많은 프로그래밍 언어가 나머지 연산자를 제공합니다. 하지만 언어마다 결과가 다를 때가 있습니다. C언어, Java, Python, Javascript 네 가지 언어에 대해 나머지 연산자를 비교해 봅시다. 모듈러 위키 백과를 보면 `모듈러 산술(Modular Arithmetic)`를 다음과 같이 정의합니다. 💡 모듈러 산술 혹은 합동 산술은 정수의 합과 곱을 어떤 주어진 수의 나머지에 대하여 정의하는 방법이다. 임의의 정수 $a, b$가 있을 때, 정수 $n$에 대해 $a=b+kn$을 만족시키는 정수 $k$가 존재한다면 $a$와 $b$는 같은 동치류에 속하고 $n$에 대해 합동이라고 합니다. 기호로는 다음과 같이 씁니다. $a\equiv b\space(\text{mod}\space n)$ $n=3$일 때 ..
프레임워크를 사용하거나 공부하다 보면 의존성 주입, 제어의 역전과 같은 말을 많이 접하게 됩니다. 대충 이런 뜻이겠거니 하며 짐작은 가지만 정확히 무엇을 말하는지 모르겠습니다. 이번 글에서는 의존성 주입이 무엇인지 왜 이런 개념들이 등장했고 왜 사용하는지 알아보겠습니다. 의존성 의존성 주입을 알아보기 전에 먼저 의존성에 대해 알아봅시다. 프로그래밍에서 `의존성(Dependency)`는 변경 혹은 에러로부터 영향을 받는다는 의미로 이해할 수 있습니다. 즉, "A가 B에 대한 의존성을 갖는다."라는 말은 A가 B의 변경 혹은 에러로부터 영향을 받는다는 의미로 받아들일 수 있습니다. 예시 1 - 의존성 아주 간단한 예시를 들어보겠습니다. 사람이 음료수를 먹는 예시입니다. 이 글은 아래 예시 코드를 고쳐가며 설..
이번 글에서는 싱글톤 패턴이 무엇인지와 장단점을 알아보고 자바로 싱글톤 패턴을 구현하는 방법들을 살펴봅니다. 싱글톤이란? 싱글톤 패턴(Singleton Pattern)은 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 패턴입니다. 여러 개의 인스턴스를 생성하지 않고 처음 생성된 하나의 인스턴스를 공유하여 사용하기 때문에 메모리를 절약하고 성능을 향상할 수 있습니다. 데이터베이스의 커넥션 풀, 스레드 풀, 로깅, 캐시등 I/O 바운드 작업과 프로그램 전역에서 공유되는 자원을 관리할 때 주로 사용됩니다. 장단점 장점 1. 인스턴스 생성 비용과 메모리 절약 싱글톤 패턴은 인스턴스를 중복으로 생성하지 않고 한번 생성된 인스턴스를 여러 모듈에서 공유하여 사용하기 때문에 인스턴스 생성 비용과 메모리를 절약할 수..
thecloer
'Computer Science/etc.' 카테고리의 글 목록