예전에 작성했던 블로그 글들은 다 특정 서식을 만들어 놓고 그 서식대로 작성하려고 노력했었다. 근데 서식만을 맞추다 보니 서식은 맞지만 뭔가 퀄리티가 떨어지는 것 같아 아래와 같이 서식도 변경하고 조건도 변경하여 블로그 글을 작성해보고자 한다. 서식과 조건개요에는 내가 왜 이 글을 작성하게 되었는지에 대한 설명을 담으려고 한다. 그래야 글을 읽는 독자로 하여금 더 정확한 상황에서의 사용을 할 수 있을 것 같아서이다.본문은 이전과 거의 비슷하게 진행될 것 같다. 제목을 대주제로 두고 해당 제목에 대한 소주제를 분류해 해당 소주제를 기반으로 작성할 것이다. 그러나 내용을 작성하는 과정에서 WHY, WHAT, HOW를 중점으로 작성하여 읽는 이로 하여금 더 명쾌하고 올바른 설명이 될 수 있도록 할 것이다.후기..
전체 글
올해 2024는 참 스스로의 질책을 많이 한 시기였던 것 같다.프로젝트도 이렇다 할만큼 제대로된 성과를 얻지도 못했고, 회사 내외부적으로 얻은 지식이 되돌아보니 많이 없던것 같다. 한거는 꽤 많은 것 같은데 말이다... 그래서 분기 별로 회고를 꼭 하려고 했었는데 그 마저도 하지 않았던 것 같다. 동년배거나 동년차인 잘하는 엔지니어들과 비교하며 스스로 위축되기도 했던 것 같다.계속 상황을 탓하게 된 것은 아닌지 왜 노력하지 않았는지 분석하지 않고 당장 놓여있는 업무와 왜 하는지도 모르는 것들을 급급히 처리하기 바빴던 것 같다. 굉장히 반성하는 부분이다.업무를 할때 왜 하는지가 가장 중요하면서 정작 나한테는 그 부분을 신경쓰지 않았으니 말이다. 뭐 그래도 CKA나 SOA 자격증 취득하면서 넓은 범위의 지..
개요오늘은 현재 코드에서 AI를 활용해 이미지 분석을 진행 해보겠다. 일단 코드 구조의 반영은 나중으로 미루고 직접 AI를 사용해보자. AI를 사용하기 위해서 구글 Cloud Vision API에서 예시 코드를 받아 작성해보자개요오늘은 현재 코드에서 AI를 활용해 이미지 분석을 진행 해보겠다. 일단 코드 구조의 반영은 나중으로 미루고 직접 AI를 사용해보자. AI를 사용하기 위해서 구글 Cloud Vision API에서 예시 코드를 받아 작성해보자먼저 Vision API를 사용하기 위해서는 권한을 요청하고 승인을 받아야 한다. 링크로 접속해서위와 같이 Vision AI 무료로 사용해 보기를 클릭하면 요렇게 가입할 수 있는 창이 뜨는데 하위 서비스 약관 체크 박스를 모두 체크하고 넘어가면 된다. 그럼 개..
개요현재 코드는 모듈화가 진행되어 있지 않다. 모듈화는 기능적인 분리를 통해서 다른 프로그램을 개발할 때에도 유지보수와 코드 재사용성을 높여 소프트웨어를 설계하는 기법을 일컫는다고 한다.사실 모듈화를 왜 해야 하는지에 대한 이해가 먼저일 것 같긴한데 따로 기술해보도록 하겠다.먼저 내가 작성해야 할 코드가 어떤 기능을 제공해주어야 하는지 정리하는 것이 먼저일 것이다. 그래서 함수 별로 정리하기 전에 러프하게 먼저 정리를 했다.네이버 맵 접속키워드 입력키워드 입력 후 스크롤 최하단 까지스크롤 다 내려가면 특정 Store 클릭Store 클릭 후 iframe 이동상세 정보 가져와 변수에 할당이미지 탭으로 이동이미지 탭에서 이미지 개수 60개 초과할 때까지 스크롤이미지 url 60개 가져오기AI 기반의 이미지 분..
개요회사에서 개발하고 있는 크롤러가 있다. 이 크롤러를 이용할때 이미지에 대해 음식 사진인지 아닌지 판별하는 용도(1) 음식에 대한 특정 키워드를 뽑아내는 용도(2) 로 사용하고자 한다.해당 작업을 하기위해 프롬프트를 짜야되는데 프롬프트 짜는 법과 파이썬에서 해당 프롬프트를 이용해서 원하는 변수를 얻는 것까지 해보고자 한다.시작하기 전에 정리해야될 게 몇개 있다.토큰 수 제한AI를 사용할 때 사용자가 과도하게 사용하지 않게 하려고 API에서 특정 개수 만큼의 토큰에 대한 제한을 설정해 놓는다. AI에서 이미지의 경우 기본적으로 텍스트보다 토큰을 많이 사용하는 것으로 알고 있다. 이 부분을 찾아봐야한다.AI 모델 결정무료로 사용할 수 있는 AI 모델은 제한 적일 것으로 생각이 들고, 유료의 경우 어떻게 사..
개요오늘은 Terraform 코드를 작성할 때 output for 반복문을 이용한 문제 해결을 작성해보려 한다. 문제문제는 아래와 같다.현재 서브넷은 environment 별로 다른 변수를 넣어주기 위해서 tfvars 파일을 이용해 cidr와 az를 지정해주고 있음이 과정에서 for_each를 이용하게 되는데 다른 모듈에서 생성된 subnet의 id를 참조해야 할 경우가 생김. 이를 output으로 전달하고자 했음output에서 for_each문을 사용할 수 없어서 혹시 해당 for_each로 생성된 리소스의 id를 동일하게 반복적으로 한 output으로 불러올 순 없는지 확인이 필요했음 처음 접근을 할 때는 output 리소스 블록에서 for_each 를 사용할 수 있는데 내가 코드를 잘못 작성해서 p..
개요테라폼 구조를 어떻게 잡았는지 또 문제들을 어떻게 해결했는지 정리해보면 좋을 것 같아 글을 작성한다. 테라폼에 대한 이해도가 굉장히 적어서 공부를 더 꼼꼼히 다시 하고, 코드를 즉시 변경 해야겠다고 느꼈던 순간이다. 현재 테라폼 구조현재 테라폼 구조는 아래와 같은 구조로 구성되어 있다.$ tree ..|-- README.md|-- environment| |-- dev| | |-- backend.tf| | |-- dev.tfvars| | |-- main.tf| | |-- terraform.tfstate| | `-- variables.tf| `-- prod| |-- backend.tf| |-- main.tf| |-- prod.t..
개요Terraform plan과 apply를 수행하기 위해서 GitHub Workflow를 작성하는 과정을 정리 해보았다. Terraform plan공식문서인 링크에서 예시로 제공해주는 yml 파일을 확인하면 Terraform Cloud를 사용하는 것을 알수 있었다. 나는 Terraform Cloud를 사용하지는 않기 때문에 다른 예시를 찾았다. 예시에서는 plan과 apply를 하나의 워크플로우로 관리하는데 나는 plan과 apply를 나눌것이기 때문에 별개의 yml 파일로 구성해주었다.[기존 버전]name: Terraform dev planon: # 수동 실행 포함 workflow_dispatch: push: # dev branch의 경우에만 push branches: - ..
개요테라폼을 사용할 때 자격 증명을 Access Key 방식을 사용하려고 했었는데, 여간 찜찜한 일이 아닐수 없었다. 그래서 검색 중 OIDC를 설정해서 AssumeRoleWithWebIdentity를 이용해 Role을 Assume 해주는 방식이 있다는 것을 알았다. 가이드는 Github 제공 가이드와 AWS 제공 가이드가 있다.OIDC(OpenID Connect)를 사용하면 클라우드 공급자에게 직접 수명이 짧은 액세스 토큰을 요청하도록 워크플로를 구성하여 다른 접근 방식을 취할 수 있습니다. 또한 클라우드 공급자는 OIDC를 지원해야 하며, 액세스 토큰을 요청할 수 있는 워크플로를 제어하는 트러스트 관계를 구성해야 합니다. 현재 OIDC를 지원하는 공급자로는 Amazon Web Services, Azu..