본문 바로가기

분류 전체보기47

ExecutorService Java의 ExecutorService 클래스는 비동기 모드에서 작업 실행을 단순화하기 위해 Java 5에 도입된 java.util.concurrent 패키지에 제공되는 프레임워크입니다. 이는 Java 동시성 유틸리티의 필수 부분이며 기본 Thread 클래스에 비해 상당한 발전을 나타냅니다. ExecutorService 이해 목적: ExecutorService는 작업을 비동기적으로 관리하고 실행하도록 설계되었습니다. 이는 각 작업이 실행되는 방식의 메커니즘에서 작업 제출을 분리하여 보다 유연하고 효율적인 작업 관리를 가능하게 합니다. 스레드 풀 관리: ExecutorService는 스레드 풀을 효율적으로 처리하고 작업을 할당합니다. 이 풀링 된 접근 방식은 특히 단기 작업이 많은 애플리케이션에서 각 작업.. 2023. 12. 27.
동기와 비동기, 블로킹과 논블로킹 동기(Synchronous)와 비동기(Asynchronous) 그리고 블로킹(Blocking)과 논블로킹(Non-Blocking)은 소프트웨어 개발, 특히 웹 개발과 관련하여 중요한 개념입니다. 이들은 프로그램의 실행 흐름을 제어하는 데 핵심적인 역할을 합니다. 이해를 돕기 위해 각각의 개념을 자세히 설명하고, 이들이 어떻게 상호 작용하는지 살펴보겠습니다. 1. 동기(Synchronous)와 비동기(Asynchronous) 1.1 동기(Synchronous) 정의: 동기 처리 방식에서는 한 작업이 끝나야 다음 작업이 시작됩니다. 즉, 작업들이 순차적으로 실행되며, 어떤 작업이 수행 중일 때는 다른 작업이 대기 상태에 있어야 합니다. 예시: 웹 서버에서 데이터베이스 쿼리를 동기적으로 실행할 경우, 쿼리가 .. 2023. 12. 27.
객체지향 프로그래밍 '묻지 말고 시켜라' 객체지향 프로그래밍에서 '묻지 말고 시켜라(Tell, Don't Ask)'는 객체 간의 협력 관계를 설명하는 중요한 원칙 중 하나입니다. 이 원칙은 객체의 상태를 직접 조회하여 로직을 수행하는 것이 아니라, 객체에게 행동을 요청함으로써 객체의 캡슐화를 유지하고, 더 유연하고 관리하기 쉬운 코드를 작성하는 데 도움을 줍니다. '묻지 말고 시켜라' 원칙의 중요성 객체지향 프로그래밍에서 각 객체는 자신의 데이터와 행동을 캡슐화하고, 다른 객체와 메시지를 통해 협력합니다. '묻지 말고 시켜라' 원칙은 이러한 캡슐화를 강조합니다. 객체의 내부 상태를 외부에서 직접 조회하고 결정하는 것이 아니라, 객체에게 원하는 행동을 요청함으로써 객체 스스로 자신의 상태를 관리하게 합니다. 이로 인해 객체 간의 결합도가 낮아지고.. 2023. 12. 26.
PostgreSQL 데이터 타입 안녕하세요, 오늘은 PostgreSQL에서 사용할 수 있는 다양한 데이터 타입에 대해 알아보겠습니다. PostgreSQL은 유연하고 강력한 데이터베이스 시스템으로, 다양한 데이터 유형을 지원합니다. 이러한 다양성은 데이터를 보다 정확하고 효율적으로 저장하고 검색하는 데 도움이 됩니다. 주요 데이터 타입에는 숫자형, 문자형, 날짜/시간형, 불리언, JSON 등이 있습니다. 1. 숫자형 데이터 타입 INTEGER: 정수 값을 저장하는 데 사용됩니다. 예를 들어, 사용자의 나이나 순서 번호 등을 저장할 때 사용합니다. SERIAL: 자동으로 증가하는 정수입니다. 주로 기본 키에 사용되며, 새로운 레코드가 추가될 때마다 자동으로 고유한 값이 할당됩니다. NUMERIC/DECIMAL: 고정 소수점 숫자를 저장합니.. 2023. 12. 26.