개발이야기 118

Openapi API 사용시 ⚠️선결제하면 안되는 이유.. - 돈낭비..

2024년 8월에 개인 프로젝트도 할겸 겸사겸사 openapi platform에서 선결제를 했었다. 그 당시 생각으로는 당장 사용하지 않더라도 차차 api key를 활용하면서 안전하게 돈이 빠져나가면 되겠다는 생각에 50달러(당시 7만원 정도)를 결제했었다.그리고 어쩌다저쩌다 하다보니 2025년이 되었고, 다시 프로젝트를 할 일이 생겨서 예전에 충전했던 50달러 사용해야지~ 하고 들어갔더니 왠걸~ 내가 사용할 수 있는 금액이 0.00 달러로 찍혀있는게 아닌가;;;그래서 내가 이걸 어디 낭비해서 다썻나..? 하고 payment history 내역을 찾아봐도 아무리 쓴 내역이 없다. 그러다가 들어간 곳은 credit grants. 여기서 수상한 state를 볼 수 있었는데 EXPIRE 라는 글자가 있는게 아..

개발이야기 2025.09.10
[개발자를 넘어 기술 리더로 가는 길]읽고 정리

타냐 라일리 https://www.linkedin.com/in/tanyareilly/ 타냐 라일리는 중간급 엔지니어가 되었을 때 매니저가 되고 싶지 않았고 '스태프 엔지니어의 길'로 가고 싶었다. 기술 전략 수립, 조직을 성공적으로 이끌기 위한 방법에 대해 고민했고 이에 대한 내용을 정리했다. 두 가지 진로 개발자는 크게 두가지 진로가 있다. 1) 매니저 - 명확하게 소통 - 위기 상황에서 침착함 유지 - 동료들이 더 나은 일을 할 수 있도록 도움 - 많은 사례들이 나와 있음 2) 스태프 엔지니어(기술 리더) - 불분명한 길 타냐 라일리가 생각하는 스태프 엔지니어의 필요한 역할 3가지 1) 빅 픽처 관점의 사고력 : 현재 상황에 대해 인지하고 기업에 필요한 것이 무엇인지 파악하여 n년 단위 프로젝트 진행..

개발이야기 2023.06.19
sublime text4가 출시되었습니다.

무엇이 추가되었을까요? - GPU 렌더링 - 애플 실리콘(M1 시리즈), arm 지원 - 탭 멀티셀렉트 지원 - 오토 컴플릿트 지원(context-aware) - UI개선 - 타입스크립트 지원 - syntax 정의 지원 - 파이썬 api 개선 관련 내용 : https://www.sublimetext.com/blog/articles/sublime-text-4 Sublime Text 4 Meet the new Sublime Text - it's faster and smarter than ever with hardware acceleration, Apple silicon support, and more! www.sublimetext.com 다운로드 : https://www.sublimetext.com/ Sub..

개발이야기 2021.05.25
telegraf 에러 Metric buffer overflow; 3645 metrics have been dropped

Metric buffer overflow; 3645 metrics have been dropped 상기와 같이 오류가 나는 이유는 telegraf agent 내부에서 사용하는 버퍼가 모두 찼기 때문입니다. 아래와 같이 buffer를 늘려서 대응할 수 있습니다. [agent] metric_buffer_limit = 10000 관련정보 metric_buffer_limit: Maximum number of unwritten metrics per output. Increasing this value allows for longer periods of output downtime without dropping metrics at the cost of higher maximum memory usage. github..

개발이야기 2021.04.22
애드테크(ad-tech)에서 사용하는 용어 정리

DSP(demand side platforms) 광고 구매 플랫폼. RTB(real time bidding) 실시간 경매 시스템 SSP(supply side platforms) 공급자측 플랫폼 광고주 광고를 지면에 노출시키고 싶은 사업자 또는 개인 매체(또는 인벤토리) 광고를 노출시킬 수 있는 지면을 가지고 있는 플랫폼 CPM(cost per mile impression) 광고 노출 1천회를 기준 요금 부과 방식 CTR(click through rate) 100명 광고 노출당 클릭 횟수 지표 CVR(conversion rate) 광고 클릭 대비 전환율. 클릭 이후에 다운로드/구매 등의 행동이 일어났는지 지표 eCPM(effective CPM) CPM, CTR, CVR을 하나의 지표로 환산한것 ROAS(r..

개발이야기 2021.03.23
개발 서적을 집필을 시작하는 방법 2가지

최근에 개발 서적을 집필하면서 많이 물어보시는 질문 중 한가지가 집필을 어떻게 시작하게 되었느냐입니다. 책을 쓴다는 행위를 통해 책이 출판된다는 것이 알지만 어떻게 시작하는지 모르는 경우가 많아서 시작 조차 못하는 경우가 많습니다. 이 포스팅에서는 개발 서적을 집필을 시작하는 방법 2가지를 제 경험에 비추어 설명드리겠습니다. 첫번째 방법 - 관련 컨텐츠 제작 후 집필 제안 받기 저는 지난 3년 동안 데브원영 유튜브 채널(바로가기)과 개발 블로그(여기)를 통해 다수의 컨텐츠를 꾸준히 제작하였습니다. 카프카 관련 영상을 7개 가량 유튜브에 올렸었습니다. 그리고 개발 블로그에는 카프카 관련 개발을 진행하면서 트러블 슈팅했던 내용들과 어려웠던 내용들, 새로배운 내용을 글의 퀄리티나 문장의 길이에 상관없이 올렸습..

AWS CDK 명령어 사용시 auto approve 사용하기

AWS CDK를 로컬에서 테스트를 하다보면 deploy시 change에 대한 y/n 선택이 나오게 된다. ....│ └───┴─────────────────────────────────────────┴─────┴────────────┴─────────────────┘ (NOTE: There may be security-related changes not in this list. See https://github.com/aws/aws-cdk/issues/1299) Do you wish to deploy these changes (y/n)? y 이 선택을 건너뛰려면 다음 옵션을 사용하면 된다. $ cdk deploy --all --require-approval never cdk 명령어는 --reqire-ap..

개발이야기/AWS 2021.02.04
AWS IAM 정리 - 사용자, 역할, 그룹, 자격 증명 공급자, 고객 관리형 정책

참고영상 : IAM 정책을 잘 알아야 AWS 보안도 쉬워진다. 이것은 꼭 알고 가자! - 신은수 솔루션즈 아키텍트(AWS) IAM이란? AWS 서비스 및 리소스에 대한 액세스를 안전하게 관리하기 위한 수단. 서비스와 리소스란 S3에 대한 접근, ECR의 이미지에 대한 접근과 같은 AWS내 서비스를 사용할 수 있는 권한을 뜻한다. IAM Policy 종류와 사용 목적 - AWS SCP(Service Control Policies) : 어카운트 내의 특정 Principal에 대한 서비스 제어 - AWS IAM(Permission Policies, Permission Boundaries) : IAM Principal(Users, Roles)에 대한 상세 권한 설정 및 사용 가능 권한 경계 - AWS STS(S..

개발이야기/AWS 2021.01.15
퍼블릭에서 접속가능한 EC2 인스턴스 만들기(VPC, 서브넷, IGW, 라우트 테이블 설정)

퍼블릭에서 EC2에 접속하기 위해서는 VPC생성, 퍼블릭 서브넷이 필요합니다. 위 내용을 실습하는 내용을 진행해보겠습니다. 주의해야하는 부분은 강조체, 붉은글씨로 변환하였습니다. 1. VPC 생성 특정 CIDR 블록을 포함한 형태로 이름을 작성하고 VPC를 생성합니다. VPC생성이 완료되면 처음에는 DNS 호스트 이름이 비활성화됨 으로 설정되어 있습니다. 변경을 위해 작업>DNS호스트 이름 편집으로 이동합니다. DNS 호스트 이름을 활성화 선택하고 변경 사항을 저장합니다. 2. 서브넷 생성 생성한 VPC에 속한 서브넷을 생성합니다. 3. IGW 생성 인터넷 게이트웨이를 생성합니다. 생성한 인터넷 게이트웨이는 반드시 VPC에 연결합니다. 작업>VPC에 연결 로 이동합니다. 4. 라우트 테이블 생성 및 설정..

개발이야기/AWS 2020.11.11
VPC 엔드포인트란?

AWS를 벗어나지 않고 EC2 인스턴스를 VPC 외부서비스와 프라이빗 하게 연결하기 위해서 사용됩니다. 이 경우 퍼블릭으로 해당 서비스를 노출하지 않더라도 연동할 수 있습니다. 즉, IGW, VPN, NAT, 프로시 등을 사용할 필요없이 연결할 수 있습니다. 여기서 외부 서비스란 AWS의 서비스를 뜻합니다. 예를 들어 VPC에 있는 EC2(프라이빗 서브넷)가 존재하고 S3가 존재한다면 EC2와 S3를 연동할때 퍼블릭으로 열지 않아도 됩니다. VPC 엔드포인트를 활용하여 연결할 수 있습니다. 특징 - 인터넷을 통해 통과할 필요가 없습니다. - 동일한 리전에 있어야 합니다. - 가용성이 뛰어나고 중복적이고 수평적으로 확장됩니다.

개발이야기/AWS 2020.11.11
VPC 피어링이란?

docs.aws.amazon.com/ko_kr/vpc/latest/peering/what-is-vpc-peering.html VPC 피어링이란? - Amazon Virtual Private Cloud 이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오. docs.aws.amazon.com AWS는 VPC의 기존 인프라를 사용하여 VPC 피어링 연결을 생성합니다. 이는 게이트웨이도, VPN 연결도 아니며 물리적 하드웨어 각각에 의존하지 않습니다. 그러므로 통신 또는 대역폭 병목에 대한 단일 지점 장애가 없습니다. 특징 - 인터넷 게이트웨이 또는 가상 게이트웨이가 필요없음 - 고 가용성 연결, SPO..

개발이야기/AWS 2020.11.11
EC2 인스턴스 실행시 스크립트 자동 실행하기

EC2 인스턴스를 실행할 때 사용자가 스크립트를 작성하고 실행하기 전에 지정한 스크립트를 자동으로 실행하도록 설정할 수 있습니다. 사용자 데이터의 설명은 다음과 같습니다. 시작 시 인스턴스를 구성하거나 구성 스크립트를 실행할 때 사용할 사용자 데이터를 지정할 수 있습니다. 한 번에 두 개 이상의 인스턴스를 시작하는 경우 해당 동일 시작 인스턴스의 모든 인스턴스에서 사용자 데이터를 이용할 수 있습니다. 즉, 스크립트를 넣으면 실행이 되는 것입니다. 예를 들어 wget으로 카프카 바이너리 파일을 다운받거나 java를 설치하고 싶다면 아래와 같이 코드를 추가하면 됩니다. #!/bin/bash yum install -y java-1.8.0-openjdk-devel.x86_64 wget https://downlo..

개발이야기/AWS 2020.11.11
가용영역별 지원 EC2인스턴스 확인하는 방법

Your requested instance type is not supported in your requested Availability Zone 에러는 해당 가용영역에 ec2인스턴스를 지원하지 않기 때문입니다. 이 경우에는 ec2인스턴스가 가용영역에서 지원하는지 확인해야하는데 아래 단계를 거치면 됩니다. t2.micro는 4개 가용영역에서 지원하지 않는 것을 알 수 있습니다. t3.nano, t3.micro를 비롯한 여러 인스턴스가 4개 가용영역 모두에서지원하는 것을 확인할 수 있습니다.

개발이야기/AWS 2020.11.10
EC2 에 있는 파일 로컬로 다운로드 받기

EC2에 있는 파일을 로컬에 다운받기 위해 아래와 같은 절차를 진행합니다. 준비물 - EC2 가상서버 - pem파일(접속 키) 1. 파일 확인 EC2에 접속해서 다운로드할 파일을 확인합니다. $ ll test.log $ pwd /tmp 2. 파일 권한 변경 권한을 변경하여 로컬에서 가져갈수있도록 합니다. $ chomod 777 /tmp/test.log 3. scp를 사용하여 다운로드 파일이 있는 경로를 지정하여 다운로드 진행 합니다. $ scp -i genesis-test.pem centos@13.125.173.119:/tmp/test.log . test.log 100% 78MB 21.2MB/s 00:03

개발이야기/AWS 2020.10.27
EMR 노트북에서 secret manager의 비밀키 조회하기

EMR 노트북에서 pyspark를 실행하는데 암/복호화를 위해 secret manager에 암호화 키를 저장하고 조회해야하는 니즈가 있었습니다. 이를 해결하기 위해 secret manager를 사용하였고 어떤 방식으로 진행했는지 알아보겠습니다. 암호화 키를 코드에 직접 hard coding하는 방식은 보안에 매우 취약합니다. AWS를 사용하는 이상 AWS관련 컴포넌트를 활용하여 비밀 키/값을 관리하고 이를 EMR notebook에서 활용하는 방법을 알아보겠습니다. 관련 AWS 컴포넌트 - EMR - EMR notebook - AMI - secret manager EMR 생성시 EC2 인스턴스 프로파일 설정 EMR notebook은 서버리스 주피터/주피터랩입니다. EMR notebook에서 pyspark,..

개발이야기/AWS 2020.07.30
AWS EMR사용시 사용자 지정 파이썬 라이브러리 설치 및 pyspark 사용

AWS EMR은 하둡관련 패키지를 AWS를 통해 설치하고 프로비져닝하는 도구입니다. 이 도구를 활용하면 매우 빠르게 hadoop, spark 등의 빅데이터 클러스터를 구축할 수 있는데요. 오늘은 이렇게 만든 EMR 클러스터에서 3rd party python library사용을 위한 설치 스크립트를 적용해보겠습니다. 저같은 경우는 pyspark를 자주 사용하는데요. pyspark사용할 경우 추가 pip3라이브러리를 사용해야할 때가 있습니다. pip3 라이브러리를 pyspark로 실행할 경우 스파크가 배포되는 모든 인스턴스에 해당 라이브러리가 설치되어 있어야합니다. EMR에는 bootstrap action이라고 하는 인스턴스 생성할때 실행할 수 있는 스크립트를 지정할 수 있습니다. 여기에 스크립트를 추가하여..

개발이야기/AWS 2020.07.29
AWS VPC지정을 위한 CIDR 형식 주소값 계산 방법

AWS에서 VPC지정을 위해 내부 사설 IP주소대역을 CIDR방식으로 지정합니다. CIDR방식을 이해하지 못하면 내부에 지정되는 사설 IP값이 어떻게 지정되는지 알지 못합니다. 이번 포스팅에서는 CIDR계산방법을 알아보겠습니다. CIDR 사이더(Classless Inter-Domain Routing, CIDR)는 클래스 없는 도메인 간 라우팅 기법으로 1993년 도입되기 시작한, 최신의 IP 주소 할당방법입니다. IPv4를 내부적으로 효율적으로 사용할 수 있도록 지정할 수 있습니다. /를 기준으로 앞은 host ID, 뒤는 network ID가 됩니다. 그런데 주의할 점은 CIDR의 / 뒤쪽 숫자를 잘못 적으면 올바른 CIDR이 아닐 수 있으므로 주의해야합니다. 예제 10.0.1.0/24 앞쪽 24비트를..

개발이야기/AWS 2020.07.28
AWS EMR클러스터에서 사용할 수있는 주피터 생성하기(EMR 노트북)

EMR노트북은 이미 생성된 EMR클러스터를 활용할 수 있게 만든 주피터 노트북입니다. EMR클러스터에 직접 인스턴스 접속하여 각종 빅데이터 처리를 해도되지만 주피터를 사용한다면 좀더 편리한 환경에서 R, Python 등을 사용할 수 있습니다. 오늘은 이전에 생성한 스파크 EMR클러스터에 노트북을 연결하여 사용해보는 시간을 가지도록 하겠습니다. 스파크만 가지고 있는 소규모 EMR클러스터 생성은 아래 링크에서 확인하실 수 있습니다. https://blog.voidmainvoid.net/351 소규모 스파크 사용을 위한 AWS EMR 클러스터 생성하기 AWS에는 EMR이라고 불리는 빅데이터 플랫폼이 있습니다. EMR을 통해 스파크, 하이프, HBASE, 플링크 등 다양한 오픈소스 도구 셋트를 생성할 수 있습니..

개발이야기/AWS 2020.07.09
소규모 스파크 사용을 위한 AWS EMR 클러스터 생성하기

AWS에는 EMR이라고 불리는 빅데이터 플랫폼이 있습니다. EMR을 통해 스파크, 하이프, HBASE, 플링크 등 다양한 오픈소스 도구 셋트를 생성할 수 있습니다. 온프로미스로 직접 구축하는 것에 비해 매우 빠른 속도로 구축할 수 있으며 AWS에 따르면 온프로미스에서 구축하는 비용에 50%로 사용할 수 있다고 합니다. 오늘은 S3에 저장된 데이터를 스파크로 처리하기 위해 소규모 스파크로만 구성된 EMR클러스터를 생성해보겠습니다. 준비물 - AWS계정 S3 저장소 생성 S3 저장소를 생성하는 것은 쉽습니다. S3 콘솔화면으로 가셔서 버킷을 신규로 생성하면 됩니다. EMR 클러스터 생성 emr클러스터는 aws의 emr콘솔 화면에서 생성할 수 있습니다. 콘솔로 가셔서 아래와 같은 단계를 따라 하시면 됩니다. ..

개발이야기/AWS 2020.07.09
'아파치 카프카 입문' 5시간 기술 강의 회고, 느낀점, 아쉬운점 정리. 기술강의를 준비하는 분들이 봐야할 글.

지난 6월 19일(금) SK플래닛 T아카데미(서울대연구공원 단지 내 SK연구동)에서 '아파치 카프카 입문과 활용'이라는 제목으로 카프카강의를 수행하였습니다. 총 강의 시간은 5시간으로서 오후 1시부터 시작하여 오후 6시에 끝나는 꽤나 긴 시간의 강의였습니다. 오늘 포스트에서는 제가 기술 강의를 수행하기 위해 어떤 준비를 했는지, 어떤 과정을 거치고 어려운점은 무엇이었는지, 마지막으로 느낀점에 대해서 정리하겠습니다. 강의를 제안받다 제가 초청받은 강의는 토크ON세미나입니다. SK플래닛 T아카데미에서 주최하는 이 세미나는 ICT분야의 커리어 설계를 준비하는 대학생을 위한 Interactive세미나로서, 다양한 ICT주제로 매달 세미나를 열고 있습니다. SK플래닛의 사내/외 전문가를 초청하여 세미나를 열고 있..

개발이야기 2020.06.29
Tab delimiter(\t)이 포함된 파일 grep으로 매칭/검색하기

아래와 같이 tab이 포함된 파일의 경우 grep으로 특정 row만 데이터를 추출하기 위해 grep의 옵션을 사용할 수 있습니다. 예시 데이터(tab delimiter로 구분됨) test-data.log 2019seoulkorea0809 2020newyorkusa3251 2021brisbaneaustralia23222 만약 위 데이터에서 2020\tnewtork을 검색하고 싶다면 아래와 같이 grep명령어를 활용합니다. $ test-data.log | grep -e $'2020\tnewyork' -e 옵션을 통해 확장된 정규 표현식패턴으로 검색이 가능합니다. 추가로 $(달러표시)를 함께 활용하면 bash에서 tab escape를 interprete하여 검색에 활용할 수 있습니다. 위 명령어의 결과물은 아..

개발이야기 2020.06.23
aws ec2에 openJDK 1.8 설치하기 실습 예제

AWS EC2에서 Amazon Linux 2 AMI를 사용할 경우 java가 설치되어 있지 않아 진행하는데 어려움을 겪으시는 분들이 많습니다. 이번 포스팅에서는 EC2(Amazon Linux 2 AMI) 사용시 1.8 openJDK를 설치하는 실습을 보여드리겠습니다. 1. EC2 발급 가장 기본적인 EC2 발급입니다. 기본 AMI를 사용해서 openJDK 설치하는 방법을 보여드릴것이므로, Amazon Linux 2 AMI를 선택합니다. 2. openjdk yum 설치 설치가 완료되고나면 pem을 통해 ec2로 ssh 접속을 시도합니다. $ ssh -i local-test.pem ec2-user@52.79.140.222 Last login: Mon Jun 1 03:48:09 2020 from 210.211..

개발이야기/AWS 2020.06.01
EC2 SLA(서비스 계약 수준) 에 따른 uptime, downtime 시간 계산

EC2는 amazon에서 제공하는 인스턴스(서버) 단위입니다. AWS를 사용하는 가장 기본적인 단위라고 볼 수 있는데요. EC2는 아래와 같이 SLA(서비스 수준 계약)을 제공하고 있습니다. SLA(서비스 수준 계약) Q: Amazon EC2 서비스 수준 계약에서 보장하는 내용은 무엇입니까? SLA는 리전 내 Amazon EC2 및 Amazon EBS에 대해 최소 99.99%의 월간 가동률을 보장합니다. Q: SLA 서비스 크레딧 자격에 부합하는지 어떻게 알 수 있습니까? 운영 중인 지역의 월간 가동률이 매월 결제 주기 동안 99.95% 미만일 경우 Amazon EC2 또는 Amazon EBS(둘 중 하나가 사용 가능하지 않은 경우 또는 둘 다 사용 가능하지 않은 경우)에 대해 SLA 크레딧이 제공됩니다..

개발이야기/AWS 2020.05.28
elasticbeanstalk + route53 으로 SSL(443) 접속 flask application 생성하는 가장 간단한 방법

elasticbeanstalk와 route53을 통해 443이나 SSL 설정을 하지 않은 Flask application을 route53을 통해 접속할 수 있도록 설정 할 수 있습니다. 준비물 - AWS 계정 - route53으로 등록된 DNS 1개 1. ACM 인증서 등록 ACM(AWS Certificate Manage)을 통해 aws에서 무료 ssl 인증서를 등록할 수 있습니다. 2. elasticbeanstalk 설정 443 ssl 설정을 하지않은 flask에 ssl을 연동하기 위해서는 아래와 같은 형태로 작업할 수 있습니다. 굳이 application에 ssl을 붙이는 힘든 과정이 없더라도 load balancing 앞단에서 443을 받도록 하는 것입니다. 이제 아래와 같이 elasticbeans..

개발이야기/AWS 2020.05.15