본문 바로가기

반응형

분류 전체보기

(654)
[ Java ] Factory Pattern 팩토리 패턴이란? 팩토리 패턴이란?팩토리 패턴(Factory Pattern)은 객체 생성 로직을 캡슐화하여 코드의 확장성과 유지 보수성을 높이는 디자인 패턴 중 하나입니다. 팩토리 패턴은 객체 생성을 위한 인터페이스를 정의하고, 실제 인스턴스 생성을 하위 클래스에서 처리하도록 합니다. 이를 통해 클라이언트 코드에서 객체 생성 방식을 숨기고, 코드의 유연성을 높일 수 있습니다.팩토리 패턴의 주요 특징객체 생성 로직을 캡슐화: 객체 생성을 클라이언트 코드에서 분리하여 관리할 수 있습니다.확장성: 새로운 객체 타입을 추가할 때 기존 코드를 수정할 필요 없이 확장할 수 있습니다.유지 보수성: 코드가 복잡해지더라도 생성 로직이 캡슐화되어 있어 유지 보수하기 쉽습니다.자바로 팩토리 패턴 예제예제로, 다양한 타입의 Car 객체(예: ..
[ Airflow ] Task Status 상태의 종류와 의미 Apache Airflow에서 Task의 상태(Task Status)는 작업의 진행 상황을 추적하는 데 매우 중요한 요소입니다. Airflow의 Task 상태는 여러 가지로 나뉘며, 각 상태는 특정한 의미를 지닙니다. 아래는 Airflow의 주요 Task 상태와 그 의미에 대한 설명입니다.1. Success (success)설명: Task가 정상적으로 완료된 상태입니다. 모든 작업이 오류 없이 실행되었고, 정의된 모든 조건을 충족한 경우입니다.의미: Task가 성공적으로 실행되었으며, DAG 내에서 다음 단계로 진행할 수 있습니다.2. Running (running)설명: Task가 현재 실행 중인 상태입니다.의미: Worker에서 Task가 할당되어 실행되고 있으며, 아직 종료되지 않은 상태입니다.3...
[ Python ] sleep() 딜레이(delay) 하기 Python에서 코드 실행을 지연시키는 방법은 여러 가지가 있습니다. 주로 time 모듈의 sleep 함수를 사용하여 간단하게 딜레이를 구현할 수 있습니다. 아래는 Python에서 딜레이를 구현하는 다양한 방법입니다.1. time.sleep() 사용가장 기본적이고 간단한 방법으로, 특정 시간만큼 코드를 일시 중지시킬 수 있습니다.import time# 5초 동안 딜레이time.sleep(5)위 코드는 5초 동안 프로그램의 실행을 멈춥니다.2. threading 모듈과 함께 사용멀티스레딩 환경에서 특정 스레드만 딜레이 시키고 싶을 때 time.sleep()을 사용할 수 있습니다. 이 방법은 다른 스레드가 중단 없이 실행될 수 있게 합니다.import timeimport threadingdef print_m..
[ Python ] -menv 가상 환경을 사용하는 이유 - 개념 Python에서 Virtual Environment(가상 환경)을 사용하고 안 하는 것의 차이점은 주로 프로젝트 간의 의존성 관리와 충돌 방지에 관련이 있습니다. 구체적인 차이점은 다음과 같습니다.1. 의존성 관리가상 환경을 사용하는 경우: 프로젝트별로 Python 패키지를 독립적으로 관리할 수 있습니다. 각 가상 환경은 별도의 디렉토리에서 Python 인터프리터와 패키지를 관리하므로, 하나의 프로젝트에서 사용하는 패키지 버전이 다른 프로젝트에 영향을 주지 않습니다.가상 환경을 사용하지 않는 경우: 모든 프로젝트가 시스템 전역에 설치된 Python 패키지들을 공유하게 됩니다. 이 경우, 특정 프로젝트에서 요구하는 패키지 버전이 다른 프로젝트에서 충돌을 일으킬 수 있습니다.2. 패키지 버전 충돌 방지가상 ..
[ Airflow ] Airflow + sqlite 설치하기 Apache Airflow는 워크플로우 자동화 및 스케줄링을 위한 오픈소스 툴로, 주로 데이터 엔지니어링 및 파이프라인 작업에서 많이 사용됩니다. Airflow를 설치하는 방법은 여러 가지가 있지만, 일반적으로 가장 많이 사용하는 방법은 pip을 이용한 설치입니다. 아래는 Python 환경에서 Airflow를 설치하는 방법입니다.1. Python 및 pip 설치 확인Airflow는 Python으로 작성된 도구이기 때문에 Python 3.7 이상이 필요합니다. 먼저, Python 및 pip가 설치되어 있는지 확인하세요.python --versionpip --version2. 가상환경 생성 (권장)다른 Python 패키지들과의 충돌을 방지하기 위해 가상환경을 사용하는 것이 좋습니다.# 가상환경 생성pytho..
[ Windows ] 원격 데스크탑 연결 시 파일 가져오기 Windows 원격 데스크톱 연결(RDP)을 통해 파일을 가져오는 방법은 다음과 같습니다. 이 방법은 원격 데스크톱 세션을 시작할 때 파일 전송을 가능하게 하는 설정을 사용하는 방식입니다.원격 데스크톱 연결을 통한 파일 가져오기 방법원격 데스크톱 연결 시작하기:시작 메뉴에서 원격 데스크톱 연결을 검색하고 실행합니다.옵션 확장:원격 데스크톱 연결 창이 뜨면, 하단의 옵션 표시 버튼을 클릭합니다.로컬 리소스 설정:로컬 리소스 탭으로 이동합니다.하단의 더 보기… 버튼을 클릭합니다.로컬 장치 및 리소스 선택:나타나는 창에서 드라이브 항목을 체크합니다. 이 항목을 체크하면 현재 PC의 드라이브를 원격 PC에서 사용할 수 있게 됩니다.특정 드라이브만 선택하려면 해당 드라이브만 체크할 수 있습니다.연결 설정:설정을 ..
[ Spring ] IntelliJ IDEA/bootRun 실행 하는 방법 IntelliJ IDEA에서 Spring Boot 프로젝트를 bootRun으로 실행하는 방법은 다음과 같습니다:1. Gradle 프로젝트의 경우:Gradle 플러그인 확인: 먼저 build.gradle 파일에 Spring Boot 플러그인이 설정되어 있는지 확인하세요. 보통 다음과 같이 설정되어 있습니다:plugins { id 'org.springframework.boot' version '2.x.x' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java'}Gradle 탭 열기: IntelliJ 우측의 Gradle 탭(코끼리 아이콘)을 클릭합니다.bootRun 실행:Gradle 탭에서 Tasks > applicati..
[ Spring ] Spring 핵심 개념인 DI, AOP에 대해서 간략하게 알아보기 스프링의 DI(Dependency Injection)와 AOP(Aspect-Oriented Programming)는 스프링 프레임워크의 핵심 기능 중 두 가지로, 각각 의존성 관리와 관점 지향 프로그래밍을 통해 코드의 유지 보수성과 재사용성을 높여줍니다. 각 기능에 대해 자세히 설명하겠습니다.1. DI (Dependency Injection, 의존성 주입)DI는 객체 간의 의존성을 스프링 컨테이너가 관리해 주는 방식입니다. 이를 통해 객체 간의 결합도를 낮추고, 코드의 유연성과 테스트 용이성을 높일 수 있습니다. DI의 주요 특징은 다음과 같습니다:객체 주입 방식: 생성자 주입, 세터 주입, 필드 주입 등 다양한 방법으로 객체를 주입할 수 있습니다.결합도 감소: 객체가 직접 다른 객체를 생성하지 않기 때..

반응형