전체 글1653 [Python] hasattr() 함수로 객체 속성 안전하게 확인하기 안녕하세요. 오늘은 파이썬에서 안전하게 객체 속성을 확인할 수 있는 함수인 hasattr() 에 대해 알아보겠습니다. hasattr() 코드를 작성하다 보면 특정 객체가 사용하려는 속성(attribute)이나 메서드(method)를 가지고 있는지 확신할 수 없을 때가 있습니다. 다양한 소스에서 데이터를 받아 처리할 때, 어떤 객체에는 name 속성이 있지만 다른 객체에는 없을 수도 있습니다. 이럴 때 무작정 object.name처럼 접근하려다 AttributeError 예외를 만나게 됩니다. 이런 상황을 방지할 수 있는 파이썬 내장 함수가 바로 hasattr()입니다. hasattr() 함수는 객체가 특정 이름의 속성을 가지고 있는지 확인해 주는 파이썬 내장 함수입니다. 결과를 True 또는 Fals.. 2025. 11. 16. [Python] Prefect 워크플로우 자동화 툴 안녕하세요. 오늘은 워크플로우 자동화 툴 Prefect 에 대해 알아보겠습니다. 개발 과정에서 데이터 수집, 모델 학습 등 쥑적으로 실행해야 하는 복잡한 작업들이 많습니다. 이런 작업들을 효율적으로 관리하기 위해 Prefect 를 사용할 수 있습니다. Prefect Prefect는 "파이썬 기반의 워크플로우 오케스트레이션(Orchestration) 툴"입니다. 단순한 '스케줄러'가 아니라, 여러 단계로 이루어진 복잡한 데이터 파이프라인 전체를 지휘하고 관리하는 역할을 합니다.- 안정성 (Resilience): 특정 작업(@task)이 실패했을 때, 자동으로 **재시도(retries)**하도록 설정할 수 있습니다. - 가시성 (Visibility): 강력한 **웹 기반 대시보드(UI)**를 제공합니.. 2025. 11. 13. [PHP] foreach 없이 두 배열의 '차이'와 '교집합' 찾기 array_diff(), array_intersect() 안녕하세요.오늘은 foreach 없이 두 배열의 '차이'와 '교집합' 을 찾아보도록 하겠습니다. 두 배열 간의 차이나, 교집합을 찾으려고 할 때 가장 단순한 방법은 foreach를 중첩해서 돌리는 것이지만,이 방법은 코드가 10줄 이상으로 길어지고 데이터가 많아지면 성능이 급격하게 나빠집니다. PHP는 '집합' 연산을 단 한 줄의 함수로 처리할 수 있는 내장 함수를 제공합니다. array_diff($arr1, $arr2) (차집합) - $arr1에는 있지만 $arr2에는 없는 요소들을 반환합니다. - 주의: 순서가 중요합니다! array_diff(A, B)와 array_diff(B, A)는 완전히 다른 결과를 반환합니다. array_intersect($arr1, $arr2) (교집합) - $arr1과.. 2025. 11. 12. [Python] enum.Enum으로 상수 깔끔하게 관리하기 enum은 “Enumeration”의 약자로,의미 있는 이름으로 정해진 고정값(상수)을 관리할 수 있게 해주는 내장 모듈입니다. 예를 들어,프로젝트에서 상태를 “대기 / 진행 / 완료”로 다룬다고 할 때,status = "WAITING" # 문자열 실수로 오타나면 바로 버그! 이전엔 이렇게 썻지만, Enum을 사용하면,from enum import Enumclass Status(Enum): WAITING = 1 RUNNING = 2 DONE = 3이제 문자열 실수도 없고, IDE에서 자동 완성까지 지원됩니다 전체 코드입니다 main.pyfrom enum import Enum, auto# 기본 Enum 정의class Status(Enum): WAITING = 1 RUNNING.. 2025. 11. 11. [PHP] Secure Password Hashing - password_hash()로 비밀번호 저장 개념 설명 사용자의 비밀번호를 데이터베이스에 그대로 저장해서는 안 됩니다. 만약 데이터베이스가 유출되면 모든 사용자의 계정이 탈취되기 때문입니다. 이를 방지하기 위해 비밀번호는 해시된 형태로 저장해야 합니다. 해싱??임의의 길이 데이터를 고정된 길이의 데이터로 매핑하는 단방향 함수입니다. 해시 함수는 다음과 같은 특징을 가집니다.1. 단방향성: 원본 데이터(비밀번호)로 해시 값을 계산하기는 쉽지만, 해시 값으로 원본 데이터를 알아내는 것은 거의 불가능해야 합니다. md5()나 sha1() 같은 오래된 해시 함수는 이 원칙이 깨졌으므로 절대 비밀번호 저장에 사용하면 안 됩니다. 2. 솔팅 : 동일한 비밀번호라도 해싱할 때마다 결과가 달라져야 합니다. 이는 '레인보우 테이블' 공격(미리 계산된 해시 값 목록.. 2025. 11. 10. [PHP] array_merge와 + 연산자로 두 배열 합치기의 차이점 안녕하세요, 오늘은 array_merge와 + 연산자로 두 배열 합칠때의 차이점을 알아보도록 하겠습니다. PHP에서 두 배열을 합쳐야 할 때, array_merge() 함수와 + (배열 합집합 연산자) 를 사용할 수 있습니다. 그러나 이 둘은 키(Key)를 다루는 방식에서 차이가 있습니다.특히 숫자 키(Numeric Key)를 만났을 때 완전히 다르게 동작하니 주의해야 합니다. array_merge():배열을 뒤에 덧붙이고, 겹치는 문자열 키는 덮어씁니다.숫자 키는 전부 무시하고 새로 색인(re-index)합니다.+ (합집합):먼저 나온 키를 무조건 유지합니다.겹치는 키(숫자든 문자열이든)는 나중에 나온 값을 그냥 무시합니다.예제 1 - 숫자 키(Numeric Key) 처리 방식 차이 두 배열 모두.. 2025. 11. 9. [PHP] usort()로 '사용자 목록'을 '나이 순'으로 정렬 안녕하세요.오늘은 usort()로 '사용자 목록'을 '나이 순'으로 정렬해보도록 하겠습니다. PHP의 기본 sort() 함수는 [5, 1, 3] 같은 단순한 1차원 배열을 [1, 3, 5]로 정렬해줍니다. 하지만 여러 정보를 담고 있는 2차원 배열(혹은 객체 리스트)을 '나이(age) 순'이나 '이름(name) 순'으로 정렬할 때는 sort() 함수로 정렬하기 어렵습니다. 이런 경우 usort() (User-defined Sort)로 비교 규칙을 주어 정렬할 수 있습니다. usort()- 콜백 함수와 우주선 연산자 ()가 핵심입니다. - usort는 function($a, $b) { ... } 형태의 콜백 함수를 받습니다.- 이 함수는 배열의 두 요소($a, $b)를 받아서, 누가 더 큰지 알려주는 .. 2025. 11. 6. [PHP] NumberFormatter로 '2000000'을 '이백만'으로 변환하기 안녕하세요. 오늘은 NumberFormatter로 '2000000'을 '이백만'으로 변환해보도록 하겠습니다. PHP에서 숫자에 쉼표(,)를 찍을 때, 우리는 보통 number_format(1000000) -> 1,000,000을 사용합니다. 하지만 만약 이 숫자를 '₩1,000,000'처럼 그 나라의 통화 기호를 붙여서 표시하거나, '일백만'이라는 한글 단어로 변환해야 한다면 PHP의 intl 확장 기능에 포함된 NumberFormatter 클래스를 활용할 수 있습니다.이 클래스는 'ko_KR'(한국)이나 'en_US'(미국) 같은 '로캘(Locale)'을 인식하여, 해당 국가의 규칙에 맞게 숫자를 변환해 줍니다. NumberFormatter 클래스는 mbstring처럼 별도의 intl 확장 기능이 .. 2025. 11. 5. [Python] os.environ 으로 환경변수 관리하기 안녕하세요오늘은 os.environ 활용해서 환경변수를 안전하게 관리하는 방법에 대해 알아보도록 하겠습니다. 환경 변수란,운영체제에 저장된 설정값으로비밀번호, API 키, 데이터베이스 주소처럼 보안상 중요한 정보를 코드에 직접 적지 않고 외부에서 불러올 수 있게 해주는 방법입니다. api_key = "sk-xxxxxx" 와 같은 방법 대신, 환경변수로 저장해두고api_key = os.environ.get("API_KEY") 처럼 불러오게 되면, 보안과 관리가 훨씬 안전해집니다. 전체 코드입니다. main.pyimport os# 환경 변수 설정 (테스트용)# 실제 운영 환경에서는 터미널이나 .env 파일에서 설정하는 게 일반적입니다.os.environ["API_KEY"] = "my_secret_api_.. 2025. 11. 4. 이전 1 2 3 4 5 ··· 184 다음