본문 바로가기

Python20

카카오페이증권 춘시리 이번에 새롭게 합류한 카카오페이증권에서,운이 좋게도 재밌는 프로젝트를 할당받아 즐거운 시간을 보냈습니다.(그동안 개인블로그가 뜸했던 이유.. ㅋㅋ)amazon bedrock을 활용해 ai지식이 없는 엔지니어도 쉽게 ai챗봇을 개발할 수 있었습니다.그리고 춘식이가 너무 귀여워서 개발할 맛이 났습니다.https://tech.kakaopay.com/post/choonsiri/ 페이증권의 업무도우미 AI봇을 소개합니다! 근데 이제 춘식이를 곁들인 | 카카오페이 기술 블로아마존 베드락을 활용하여 사내 지식저장소를 구축하고, AI챗봇 및 코드리뷰봇을 개발한 경험을 공유합니다.tech.kakaopay.com많관부✌️ 2025. 1. 23.
[Github Runner/Python] Offline 상태의 러너들 일괄 삭제 한번씩.. 러너 실행기 버전이 deprecate되었다던가 할 때, 러너들이 몇백개씩 새로 생성되며실행 실패(?)된 러너들이 삭제되지도 않고 오프라인 상태로 남아있었다.물론 시간이 더 지나면 알아서 없어지는것같긴 하다. 근데 난 성격이 급하니까 일괄로 지우는 스크립트 돌렸다. import requestsimport timemax_retries = 3retry_delay = 5# GitHub Organization과 Personal Access Token 설정organization_name = 'suminhong'token = '' # admin:org 권한이 있는 Classic Token 필요# GitHub API 엔드포인트api_url = f'https://api.github.com/orgs/{organ.. 2024. 8. 4.
[Django] admin에 keycloak login 붙이기 # 이미 존재하는 것 장고 프로젝트 (with django-admin-interface) 연동할 키클락 # 원하는 것 장고 어드민의 기본 로그인 화면은 아래와 같다. (admin_interface를 사용하는 경우) LOG IN 버튼 밑에 Keycloak용 로그인 버튼을 만들고, 키클락 유저로 로그인 가능하도록 만들겠다. # 시작! 🚀 1) social auth 세팅 social-auth-app-django 설치 pip install social-auth-app-django settings.py에 social_django 추가 # settings.py INSTALLED_APPS = [ ... 'social_django', # 추가 ] migration 수행 python manage.py migrate 여기.. 2024. 3. 30.
[Lambda/Python/Slack] 가볍게 슬랙 메세지 보내기 Slack App을 만들고, Incoming Webhook을 원하는 채널에 생성해둔다. import json import urllib3 SLACK_URL = "https://hooks.slack.com/services/.../.../..." MESSAGE = "Lambda Trigger Test" def lambda_handler(event, context): message = { 'text': MESSAGE } http = urllib3.PoolManager() response = http.request('POST', SLACK_URL, body=json.dumps(message).encode('utf-8'), headers={'Content-Type': 'application/json'}) if re.. 2023. 5. 30.
[Python] 파이썬 실행 & 메모리 관리 방식, mutable & immutable 객체, 깊은 복사 (deep copy) # Ref https://yomangstartup.tistory.com/105 https://pro-jy.tistory.com/38 https://wikidocs.net/91520 https://cjh5414.github.io/about-python-and-how-python-works/ http://irakla.egloos.com/v/7444165 https://crackerjacks.tistory.com/14 # 컴파일러와 인터프리터 고급 프로그래밍 언어를 어셈블리어로 번역해주는 방식의 차이 컴파일러 (complier) 전체 파일을 스캔하여 한번에 번역 -> 한 번 실행 파일이 만들어지고 나면 빠름 기계어 번역 과정에서 더 많은 메모리 사용 전체 코드를 스캔 후 오류를 출력하기 때문에 실행 전에 오류.. 2022. 12. 4.
[AWS] ElastiCache RI API로 구매하기 (AWSCLI, Python boto3) AWS Console에서 ElastiCache RI 구입 시엔 아래와 같이 Engine, Node type, Term, Offering Type만 지정해주면 된다 (node ID : 그냥 이름 정할거면 정하라는 것) 그러나 CLI나 SDK로 다량구매를 하고싶어 찾아보니,,,, https://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/red-ug/reserved-nodes-purchasing.html 예약 노드 구입 - Amazon ElastiCache for Redis 예, 구매를 선택하면 선택한 예약 노드에 요금이 부과됩니다. 요금이 부과되지 않도록 하려면 [Cancel]을 선택합니다. docs.aws.amazon.com engine이나 node type.. 2022. 5. 29.
[boto3/paginator] EC2 Name Tag를 포함한 엑셀 뽑기 boto3 client는 한번에 뽑을 수 있는 양이 정해져 있기 때문에, 모든 값을 한꺼번에 뽑으려면 nextToken 인수를 이용해 반복을 돌려야 한다. -> paginator를 사용하면 자동으로 반복이 돌려지며, 한 page씩 묶음으로 출력된다 따라서 paginator를 사용할 땐 page를 반복시키는 반복문이 필요하다 import boto3 from openpyxl import Workbook from datetime import datetime data_list = [] # profile name 지정 session = boto3.Session(profile_name='') client = session.client('ec2') paginator = client.get_paginator('desc.. 2022. 5. 13.
[AWS S3] API Call로 S3 Access Logging 설정 시 유의할 점 (boto3) 상황 : 계정 내의 모든 버킷들에 access log 설정을 해두려고 한다 -> python boto3로 진행 1. 먼저 access log를 받을 버킷을 만든다 => access log는 cross region이 지원되지 않는다 https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html 따라서 계정 내 버킷의 리전 종류가 여러개라면, 각 리전별로 액세스로그용 버킷을 만들어야 한다 2. ACL 설정 ACL 의 S3 로그 전달 그룹에 대해 객체 쓰기/버킷 ACL 읽기 권한을 부여해야 한다 만약 ACL 수정이 불가하다면 위의 객체 소유권을 수정해줘야 한다 3. boto3 활용 1) 계정 내의 모든 버킷 리스트 담아오기 : client.list.. 2022. 2. 23.
[Python] Python to Slack 2 : Slack Bot Message 보내기 + 쉽게 Formatting하기 (Block Kit Builder) 이전 글 : [Python] Python to Slack 1 : Slack Bot 만들고 설정하기 📌 Slack Python SDK 설치부터! pip install slack_sdk * python3 이상이 있어야 하며, 버전이 여러개 있는 경우 pip 대신 pip3를 사용하자 📌 MAC SSLCertVerificationError: slack_sdk를 사용할 때 자꾸 아래 글에서와 동일한 에러가 났었다 (SSLCertVerificationError) https://blog.minamiland.com/551 Python3 - SSL 문제는 Certificates.command 파일로 해결하세요 #2052 Mac에서 책을 따라 하면서 공부 중인데 SSL 문제에 봉착했었습니다. 스크레이핑을 하는 도중에 생.. 2022. 1. 22.
[Python] Python to Slack 1 : Slack Bot 만들고 설정하기 들어가면서 최근에 Cloud(AWS) SA -> DevOps Engineer로 직무 전환 이직을 했다 그래서...바빴다. 진짜 너무 바빠서 블로그 글도 한 달 넘게 못썼다 그리고 DevOps, 즉 개발자로서의 업무도 꽤 낯설었어서...좀 많이 헤맸다 ㅋㅋ 따라서 가장 처음에 헤매게 됐던 Slack Message Formatting에 대해 글을 쓰려한다...막상 해결하고 나니 굉장히 쉬운건데 왜그렇게 헤맸었는지;; 일단...해보자! 🎯 Slack Bot 만들기 우선 API를 받아서 Message를 보내줄 Bot을 만들어야 한다 -> 참조한 글 : https://wooiljeong.github.io/python/slack-bot/ https://api.slack.com/apps Slack API: Appli.. 2022. 1. 22.
[AWS] CodeCommit 사용법 AWS CodeCommit이란? + GRC AWS에서 호스팅하는 버전 관리 서비스 AWS에서 관리하는 GitHub이라고 생각하면 쉽다 CodeCommit Repository를 만들고 사용하는건 Git으로 하는거라 어렵진 않지만, HTTPS 방식이나 SSH 방식이 아닌 HTTPS (GRC)라는 git-remote-codecmmit이란 유틸을 사용하는 새로운 방식이 있다 이는 아마존에서 권장하는 방법이며, Git 자격 증명 설정 필요 없이 IAM 또는 SSO 사용자로 바로 접근할 수 있다 자세한 내용 : https://docs.amazonaws.cn/en_us/codecommit/latest/userguide/setting-up-git-remote-codecommit.html GRC (git-remote-c.. 2021. 9. 17.
[Python] CSV 파일 읽기/쓰기 1. CSV 파일 읽기 먼저 아래와 같은 CSV 파일을 만들어놓았다 이를 읽어서 콘솔에 출력하기 위해 아래와 같은 파이썬 파일을 만들었다 import csv path = 'C:/sample.csv' try: f = open(path, encoding='euc-kr') csv_f = csv.reader(f) for line in csv_f: print(line[0], '\t', line[1], '\t', line[2], '\t', line[3], '\t', line[4]) except Exception as e: print(e) csv를 import 하면, reader 함수로 지정한 경로의 CSV 파일을 읽을 수 있다 try/except 구문은 예외처리를 위한 것으로, 아래 글을 참조하자 wayhome25.. 2021. 4. 30.
[AWS] Lambda로 EC2 Start/Stop + CloudWatch 규칙으로 트리거 >> Lambda 코드만 모아둔 GitHub 0. 기본 구성 기본 VPC에 EC2 2개 만들어놓고 진행하겠다 EC2 인스턴스 id들은 복사해두자 1. IAM 정책 생성 Lambda 함수에서 EC2를 시작/중지 시킬 수 있는 role을 만들어야 하기 때문에 정책을 먼저 만들어주겠다 IAM > 정책 > 정책 생성 > JSON으로 들어가 아래의 코드로 변경 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow".. 2021. 1. 19.
[AWS] AWS의 무료 IDE인 Cloud9 사용해보기 AWS Cloud9은 브라우저만으로 코드를 작성, 실행 및 디버깅할 수 있는 클라우드 기반 IDE(통합 개발 환경)이다 같이 사용되는 ec2나 이를 이용해 만드는 리소스의 비용을 제외하고는 cloud9 자체는 무료이다 직접 사용해볼건데, 시작하기 전에 VPC와 Subnet이 먼저 준비되어있어야 한다 난 그냥 기본 VPC로 진행했다 aws console에서 서비스 > cloud9 > Create environment 를 누른다 이름을 대충 정해주고 Next step을 누른다 Configure Setting은 그냥 기본값 그대로 가도 되겠지만, Instance type만 t3.small로 바꾸고 진행하겠다 나머진 모두 기본값 그대로 두고 다음을 계속 눌러 생성을 시작하겠다 참고로 새 ec2가 생성되며, 그 .. 2020. 12. 4.
[Boto3] 윈도우에서 Python으로 AWS 리소스 프로비저닝하기 먼저 python 3을 다운받고 설치하자 (이미 있으면 생략) www.python.org/downloads/windows/ Python Releases for Windows The official home of the Python Programming Language www.python.org 잘 설치되었는지 확인하기 위해 cmd에서 python과 pip버전을 확인 python --version pip3 --version aws cli를 설치하고 최신 버전으로 업그레이드하자 pip3 install awscli pip3 install --user --upgrade awscli --user : 사용자 설치 디렉토리에 설치 --upgrade, -U : 지정된 모든 패키지를 최신으로 업그레이드 이제 환경 변수를.. 2020. 10. 22.