백엔드10 Java Thread & Runnable 정리 Java에서 스레드를 사용하는 것은 멀티태스킹을 구현하는 중요한 방법이다. 이전 포스팅에 이어서 이번에는 Java 에서 스레드를 활용하는 아주 기본적인 방법을 공유해보고자 한다. Thread 스택 영역 OS의 원리와 유사하게, 프로세스는 코드 영역, 데이터 영역, 스택 영역, 힙 영역으로 구성된다. 이때 각 프로세스의 스레드는 자신만의 스택 영역을 가지며, 힙, 데이터, 코드 영역은 공유하여 사용한다. 자바 또한 JVM 아래에서 이러한 구조를 유지하며, 각각의 스레드는 독립적인 스택 영역을 갖는다. Java 에서 Thread 클래스public class HelloThread extends Thread { @Override public void run() { System.out.p.. 2025. 2. 7. Process & Thread 역할 정리 이번 포스팅에서는 개발할 때 항상 등장하는 기초 개념인 Process & Thread 를 정리해보고자 한다. Java 에서 멀티 쓰레딩 프로그래밍에 대해 소개하기 전, 큰 맥락에서 개념을 정리하기 위해 포스팅하는 것이라 Java 탭에 추가했으니 오해 없길 바란다.멀티 태스킹 A라는 인간이 두 대의 모니터를 활용하여 업무를 수행하는 모습을 상상해보자. 오른쪽 모니터에는 공부 자료가 열려 있고, 왼쪽 모니터에서는 YouTube 영상이 재생되고 있다. 필기노트를 통해 필요한 내용을 적으면서, 좌우의 모니터 간에 시선을 이동시켜가며 정보를 처리하고 있다. 이렇게 한 개인이 여러 작업을 동시에 수행하는 것을 우리는 '멀티태스킹'이라고 정의할 수 있다. 컴퓨터의 멀티태스킹도 이와 유사한 원리로 작동한다. CPU .. 2025. 2. 7. Java 8, 11, 14 이후 에서 나온 신규 문법들 소개 각 자바 버전들 릴리스 이후 언어와 플랫폼에 추가된 새로운 기능들을 정리해보고자 한다.각 버전에 모든 문법들은 정리하는 것을 목적으로 하는 문서는 아니고, 알아두면 좋을 것들을 기록해보고자 한다. Java 8함수형 프로그래밍Java 8에서는 함수형 프로그래밍을 지원하기 위해 여러 기능이 추가되었다. 이로 인해 더 간결하고 효율적인 코드를 작성할 수 있다.특히 아래에서 소개할 람다식과 함께 사용해서 더 이상 익명 클래스를 사용하지 않아도 되게 되었다.import java.util.Arrays;import java.util.List;public class FunctionalProgrammingExample { public static void main(String[] args) { List.. 2025. 1. 22. FFmpeg 소개 및 Transcoding Flow 이번 시간에는 FFmpeg의 트랜스코딩 아키텍처와 흐름에 대해 알아보겠다. FFmpeg는 미디어 파일을 변환하고 조작하는 데 매우 강력한 도구이며, 이번 포스팅에서는 그 내부 구조와 흐름에 대해 자세히 살펴보겠다. FFmpeg의 기본 트랜스코딩 흐름트랜스코딩 과정은 기본적으로 다음과 같은 흐름을 갖는다Source File: 파일(예: MKV) 또는 네트워크 프로토콜(예: HTTP, FTP)로부터 입력이 된다Demultiplexing(= Unpacking, Demuxing): 입력된 미디어는 먼저 언팩킹(자주 사용되는 용어인 'demuxing')을 통해 비디오와 오디오가 분리된다Decoding(= DeCompress): 언팩된 비디오와 오디오는 각각 압축 해제(디코딩)되어 원시 데이터(비디오 프레임 픽셀과.. 2025. 1. 22. 미디어 Codec & Container 개념 FFmpeg 을 사용하거나 미디어 서버를 개발하다보면 "오디오 코덱은 무엇을 사용했는지?", "영상에 컨테이너는 어떤 형태인지" 와 같은 이야기가 오고 간다. 이번 포스팅은 Codec & Container 에 대한 개념을 소개해보고 해당 도메인에 종사하는 사람들에게 작은 도움이 되기를 바란다. 컨테이너 포맷(= Container Format) ?? 이전 포스팅에서 이미지, 비디오, 오디오에 대해서 배웠었다. 여기서 추가로 하나 더 이해하면 좋은 개념은 Stream 이다.스트림(Stream)은 데이터, 패킷, 비트 등 일련의 연속성을 갖는 흐름/데이터를 의미하는데 한다. 이러한 스트림(Stream)을 하나 이상 가지고 있는 보관함 역할을 하며 이를 컨테이너 포맷(Container Format) 혹은 래.. 2025. 1. 21. Image, Audio, Video 기초 개념 미디어 플랫폼을 개발하거나 동영상을 다루다 보면 기초 용어들이 익숙치 않으면 이해가 어려울 수 있다. 이번 포스팅에서는 정말 기초 개념들을 먼저 소개해보고자 한다.Basic Image terminology픽셀 (Pixels)픽셀은 2D 공간에서 점을 나타내는 이미지의 가장 작은 구성 요소이다. 한 이미지는 많은 픽셀의 집합으로 이루어져 있다.예를 들어, 이미지가 1920x1080 해상도를 가질 경우, 이는 총 2,073,600 픽셀로 구성되어 있음을 의미한다.해상도 (Resolution)해상도는 이미지의 퀄리티를 표현하며, 픽셀의 수로 나타낸다. 일반적으로 '너비 x 높이' 형태로 표기된다.예를 들어, HD 해상도는 1920x1080, Ultra HD는 3840x2160 등으로 표현된다. 가로세로 비율 .. 2025. 1. 20. 이전 1 2 다음 반응형