GitHub 에서 특정 소스코드 라인의 링크를 보기 좋게 링크하기
테스트 코드를 작성하다 재활용 될 수 있는 코드가 보여서 별도의 메서드로 분리했다. 단순하게 두 개의 시간을 비교하는 메서드인데 어느 정도 차이(밀리초)가 나도 같은 시간으로 판단하는 epsilonMillis 라는 파라미터를 입력 받는다. 그런데 커밋을 하려고 하니 I
특정 외부 시스템을 제어할 일이 생겼는데 C++/CVisual Studio에서 Class Library (.NET Framework) 템플릿 프로젝트를 생성하고 DLL 파일을 생성합니다. File > New > Project 메뉴를 선택합니다.‘Create a new
이전 글에서 Java 코드에서 JNA(Java Native Access)를 활용해 C먼저 C해당 상태 값을 획득하여 반환하는 함수입니다. 최종적으로 DLL에서 Export 되는 합수입니다.Java에서 DTO를 정의합니다. C이제 DLL을 로드하고, 연결된 DLL 함수
Java Stream을 사용해 이렇게 작성된 코드를 보며 의문점이 생겼습니다. 제 생각에는 코드가 다음과 같이 동작할 것 같았습니다.filter 연산에서 스트림의 모든 항목을 순회하며 3보다 작은 항목을 추출한다. findFirst 연산에서 추출된 항목 중 첫 번째 항
몇 년 전까지만 해도 직접 쓰레드를 생성하고 해제 해야하는 책임을 가지는 플랫폼에서 주로 개발을 했습니다. 자바 언어로 넘어오면서 쓰레드 풀이라는 개념을 접하게 되었는데, 처음 쓰레드 풀을 접하고 사용 상의 문제는 없었지만 내부 동작을 모르니 어딘지 모르게 찝찝한 부분
자바의 인터럽트 기능(Thread.Interrupt())을 사용하면 Blocking 동작이 있는 대상 쓰레드의 동작을 안전하게 중단시킬 수 있다. 그러나 인터럽트 기능은 요청자 주도로 대상 쓰레드 실행을 임의로 중단시킬 수 있는 기능이 아니다. 인터럽트는 단지 대상 쓰
아래와 같은 코드에서 try 블럭 내에서 생성되어 BufferedInputStream에게 전달되는 FileInputStream 인스턴스는 try-with-resources 문에 의해 자동으
Stream의 parallel() API를 사용하면 쉽게 병렬 작업을 구현할 수 있습니다. 병렬 스트림은 내부적으로 common ForkJoinPool을 사용하고 디폴트로 CPU 코어 개수만큼의 쓰레드를 생성합니다. CompletableFuture을 사용해서 병렬
분산형 버전관리 시스템인 Git을 활용하면 제품 코드의 변경사항을 안정적이고 효율적으로 관리할 수 있습니다. 이 글은 Git을 활용한 개발 프로세스가 정착되어 있지 않은 팀의 팀원들을 대상으로 쓰여졌습니다.
Maven은 소스코드 빌드를 돕는 도구이다. 그런데 소스코드는 우리가 직접 개발하는 것 외에 수 많은 외부 라이브러리에 의존한다. 따라서 Maven이 빌드 도구로서 수행하는 중요한 역할 중 하나는 우리 프로젝트에서 의존하는 외부 라이브러리 패키지를 다운로드하고 관리하는
IntelliJ에서 Maven을 기반으로 하는 프로젝트를 처음 열었을 때 다음과 같이 외부 라이브러리 참조를 찾지 못하는 경우를 만납니다. (”Cannot find declaration to go to”) 이는 현재 프로젝트가 의존하는 외부 라이브러리 패키지 목록들이
멀티쓰레드 환경에서 발생하는 동기화 문제를 해결하는 가장 확실한 방법은 락(lock)을 통해 크리티컬 섹션(critical section)이 원자적(atomic)으로 실행되도록 보장하는 것이다. 다시 말해 특정 코드 영역의 시작 부분에 문을 걸어 잠그고 반드시 한 번에