본문 바로가기
반응형

<개인공부> - IT/[Python]40

의존성 주입(Dependency Injection) 완벽 가이드 - Python 편 회사에서 지원을 받아서 DEVCORE 시험을 준비중이다. 이미 DEVNET 자격증이 나왔을 때 취득을 했지만 만료가 되어서 요즘 다시 공부중이다. 대충만 이해하고 있는 것 같아서 기억의 확장을 위해서 따로 정리를 한다. 소프트웨어 개발을 하다 보면 "의존성 주입(Dependency Injection, DI)"이라는 용어를 자주 접하게 된다. Django, FastAPI와 같은 Python 웹 프레임워크를 사용하는 개발자라면 더욱 친숙한 개념인데 의존성 주입이 무엇인지, 왜 필요한지, 그리고 Python에서 어떻게 구현하는지 자세히 정리해보려 한다.의존성(Dependency)이란? 의존성 주입을 이해하기 전에 먼저 "의존성"이 무엇인지 알아야 한다. 프로그래밍에서 의존성이란, 한 객체가 다른 객체를 .. 2025. 6. 13.
Facade Pattern (퍼사드 패턴) Facade Pattern 이란?Facade Pattern은 소프트웨어 디자인 패턴 중 하나로, 복잡한 서브 시스템을 일련의 인터페이스에 대한 통합된 인터페이스를 제공하는 디자인이다. Facade는 High-level 인터페이스를 정의하여 서브 시스템을 더 쉽게 사용할 수 있도록 만든다. 다시 말해서, 서브 시스템이 어떻게 구현되고 동작하는지는 몰라도 된다.Facade Pattern의 구조Facade 패턴은 크게 3가지 요소로 구성됩니다.Facade: 클라이언트에서 사용될 high-level 인터페이스를 제공하는 클래스.Subsystems: 실제 기능을 구현하는 클래스. Facade에서 여기서 구현된 세부 기능을 제공하기 위해 이 클래스들을 사용.Client: Facade를 사용하는 클래스.클래스 다이어.. 2025. 4. 25.
Python (pass, continue, and break) 어느 프로그래밍 언어를 사용하더라도 반복문의 필요성은 두말하면 잔소리다. 반복문을 사용하다 보면 조건에 따라서 즉시 반복문을 종료할 경우, 단순히 현재 반복문을 skip할 경우, 그리고 설정된 조건을 무시할 경우로 나눠 볼 수 있다. 1. Continue: 특정 조건에 부합하면 현재 실행하는 loop을 빠져나가 다음 loop을 실행한다. 간략하게 순서도를 보면 아래와 같다. a = "12345" for elem in a: if elem == "3": print("Continue!") continue print(elem) for elem in a: if elem == "3": print("Break!") break print(elem) for elem in a: if elem == "3": print("P.. 2021. 7. 20.
Subprocess 모듈이용하기 회사 업무를 진행하면서 업무에 필요한 다양한 스크립트를 작성한다. IPAM system에서도 조회가 가능한 정보이지만 나는 Python 스크립트에서 shell을 실행하여 원하는 정보를 처리하는 방법을 택했다. nslookup IP address (e.g - nslookup 10.0.0.1) 형태의 명령어를 통해서 조회하는 IP와 연계된 DNS 레코드를 추출했다. 검색을 통해서 가장 처음 알게된 방법은 os.system('nslookup ' + '10.0.0.1') 하지만 위와같이 코드를 수행하게 되면 해당 프로세스를 실행하여 출력해줄 뿐 output을 capture 할 수 없다. 이 문제를 해결하려면 subprocess를 이용하면 가능하다. import subprocess import openpyxl f.. 2021. 4. 15.
반응형