💻 프로그래밍
-
백엔드 개발자가 만들어 본 App 테스트 자동화 (feat. Appium, Jenkins, AWS DeviceFarm)💻 프로그래밍/Python 2024. 1. 7. 17:39
안녕하세요! QA엔지니어(?) Jay입니다 ㅋㅋㅋㅋ ~는 아니고 저는 백엔드 개발자입니다. 오늘 이렇게 시작을 한 이유는 최근 회사에서 했던 과제 중 하나가 앱로그 QA 자동화입니다. "갑자기 왠 QA?"라고 하신다면...ㅋㅋ 해당 과제가 중요하기도 했고 저희팀이 플랫폼 전반적인 과제들을 하고 있기 때문에 저희팀에서 과제를 가져와서 진행하게 되었습니다. 게다가 단순히 앱 UI 테스트 자동화는 아니고, 앱에서 어떤 액션을 할때마다 정상적으로 로그가 남는지까지 확인하는 End-To-End 테스트라서 백엔드 영역의 핸들링도 필요하기 때문에 저희 쪽에서 진행하게 된 이유도 있습니다. 이런저런 이유로 제가 진행했던 과제에서 App 테스트 자동화를 어떤 식으로 했고 어떤 기술들을 이용했는지 정리 및 소개를 하려고 ..
-
AWS Secret Manager그리고 Lambda Extension💻 프로그래밍/AWS 2023. 11. 30. 23:47
안녕하세요! 이번 포스팅에서는 AWS Secret Manger 그리고 Lambda extension 사용에 대해서 정리해보려고 합니다. 회사에서 사용 중인 Lambda 서비스에서 하드코딩으로 관리되고 있던 값들을 정리하기 위해 AWS Secret Manager를 사용하기로 논의가 되었습니다. 해당 서비스가 자주 업데이트 되는 서비스가 아니었어서 유지보수 하기 어려운 형태였는데요. 시간이 지나고 보니 생각보다 중요한 레거시(?)가 돼서 지금이라도 유지보수를 위해 정비를 하게 되었습니다. 1. 하드코딩 된 값들을 제거함으로써 dev, stg, prd 환경에서 동일한 코드로 관리 2. 이런 값들을 Secret으로 빼서 보안성 높이기 크게 위 두가지 목표를 가지고 작업을 시작했습니다. 1. AWS Secret ..
-
[AWS Lambda] Nodejs 16.x 지원종료, 18.x 버전업 대응 요약(feat.s3)💻 프로그래밍/node 2023. 10. 4. 22:16
안녕하세요! 제이입니다! 오늘은 사내에서 사용 중인 AWS Lambda의 Nodejs runtime 버전을 변경하면서 그 과정에 대한 요약과 어떤 점을 수정했는지 일부 요약 해보려고 합니다! 1. 버전관리 기본적으로 우리가 사용하고 있는 언어, 라이브러리, 프레임워크에 대한 지원종료에 대해서 인지하고 있어야 합니다. 저는 백엔드 센터 소속으로서 최근 백엔드에서 사용 중인 기술들에 대한 버전관리 및 업데이트를 진행(중)했습니다. 첫 번째로 저희가 사용 중인 AWS Lambda의 node버전을 체크했습니다. 버전 지원 종료에 대한 내용은 https://endoflife.date/nodejs 에서 쉽게 확인할 수 있습니다. (참고: https://endoflife.date/ 에는 다양한 언어, 제품에 대한 수..
-
Serverless Framework로 AWS Lambada 배포하기💻 프로그래밍/AWS 2023. 4. 1. 22:57
안녕하세요! 오랜만에 돌아온 개발자 JAY입니다! 요즘 좀 업무에 집중하고 이것저것 하다 보니 글을 진짜 오랜만에 쓰네요 ㅋㅋ 오늘은 신규업무를 하면서 알게 된 Serverles Framework에 대해서 설명해보려고 합니다. 1. What is Serverless Framework Severless Framework 홈페이지에 들어가게되면 대문짝만 하게 위와 같은 설명이 나옵니다. AWS 람다 앱 auto-scaling을 위한 all-in-one 개발 솔루션이라고 하네요 ㅋㅋ serverless framework는 람다 배포를 야믈(yaml) 파일 형태로 배포할 수 있게 해주는 솔루션 입니다. 보통 람다는 AWS 콘솔에 들어가서 직접 수정할 수도 있지만 serverless framework를 이용하면 ..
-
[SQLAlchemy] async_scoped_session과 context-local💻 프로그래밍/Python 2022. 10. 1. 20:42
안녕하세요! 개발자 Jay입니다! 오늘은 지난번 Session vs scoped_session에 이어서 async_scoped_session에 대해서 정리해보려고 합니다! async_scoped_session이 나오게 된 배경 async_scoped_session은 1.4.19 release에서 추가된 클래스입니다. 그럼 async_scoped_session은 왜 추가되었을까요? 릴리즈 내용을 먼저 확인해 보겠습니다. scoped_session과 AsyncSession 사이의 비호환성을 해결하기 위해 async_scoped_session이 구현되었다고 합니다. 그리고 async_scoped_session.remove()와 함께 사용되어야 한다고 하네요. 그럼 어떤 비호환성이 있었을까요? #6584 이슈를..
-
[SQLAlchemy] Session vs scoped_session💻 프로그래밍/Python 2022. 10. 1. 02:23
안녕하세요! 개발자 Jay입니다! 블로그에 말하지는 않았지만 퇴사한지 거진 한 달쯤 다되어가네요 ㅋㅋㅋ 입사 전 이것저것 해볼 계획은 많았는데... 생각보다 많이 못해서 아쉽지만... 여하튼ㅋㅋㅋ 토이 프로젝트 프레임워크로 FastAPI를 사용하면서 SQLAlchemy를 사용했었습니다. 그때는 막상 구현하는데 급급해서 자세히 알아보지 못했던 부분들이 있었습니다. 이번에 repository 쪽 코드를 리팩토링 하면서 Session과 scoped_session에 대한 내용을 제대로 파보았습니다. Session이란? SQLAlchemy에서 말하는 Session은 DB Session과는 전혀 다릅니다.(혹시나 헷갈릴 수도 있으니) SQLAlchmey의 Session은 일종에 ORM 버퍼라고 보면 되며 ORM 매..
-
RabbitMQ 톺아보기 2부 (feat.pika)💻 프로그래밍/Python 2022. 9. 17. 20:47
RabbitMQ 톺아보기 1부에 이어서 2부를 시작하겠습니다! RabbitMQ 톺아보기 1부 안녕하세요! 개발자 Jay입니다! 최근에 저의 관심사는 Event-driven, MSA입니다. 아무래도 MSA의 문제가 서비스가 잦은 호출로 인한 네트워크 과부하, 데이터 정합성, 트랜잭션 등에 문제가 있다 보니 E jay-ji.tistory.com 2부에서는 실제 python application으로 RabbitMQ를 활용하는 방법에 대해 알아보려고 합니다. pika라는 라이브러리를 활용할 예정이에요! pika는 RabbitMQ 공식 홈페이지 듀토리얼에서도 사용되는 라이브러리입니다! 공식홈페이지에 보면 다양한 언어에 대해 친절하게 예제들이 만들어져 있습니다! RabbitMQ 듀토리얼과 pika공식문서가 진짜 잘..
-
RabbitMQ 톺아보기 1부💻 프로그래밍/Python 2022. 9. 12. 22:33
안녕하세요! 개발자 Jay입니다! 최근에 저의 관심사는 Event-driven, MSA입니다. 아무래도 MSA의 문제가 서비스가 잦은 호출로 인한 네트워크 과부하, 데이터 정합성, 트랜잭션 등에 문제가 있다 보니 Event-driven에 관심을 가지지 않을 수가 없었습니다. 이전 회사에서는 MSA 서비스간의 잦은 호출들은 gRPC를 통해 어느 정도 해결했으나 데이터 정합성과 트랜잭션에 대해서는 여전히 고민이 많았던 것 같습니다. 이런 점을 저 스스로 완벽하게 해결해 보지 않았고 이론, 실무적인 부분들에 대해 확실하게 알지 못하고 있어서 이번에 쉬면서 한번 스터디해보려고 마음을 먹었습니다! 그 첫번째가 RabbitMQ를 톺아보는 것입니다! RabbitMQ는 비동기 처리를 위해 Celery와 함께 자주 써보..