분류 전체보기 26

Amazon S3 파티셔닝으로 성능 최적화하기

S3는 대학생 때 처음 개발을 공부하던 때부터 클라우드 분야에서 일하고 있는 현재까지도 항상 편리하게 사용해온 AWS 서비스이다. 사실상 거의 무한에 가까운 양의 데이터를 저장할 수 있고, 가용성도 일레븐 나인(99.999999999%)을 제공하기 때문에 많은 회사들에서도 대량의 데이터를 저장할 때 많이 사용하는 것으로 보인다. 스타트업에서 일할 때 대량의 데이터를 읽어오면서 버킷 내 파일 개수가 늘어날 수록 성능이 점점 느려지는 것 같다는 느낌적인 느낌을 받곤 했는데, 최근 파티셔닝(Partitioning) 이라는 개념을 접하게 되면서 S3 성능을 개선하는 방법에 대해 공부하고 포스팅을 쓰게 되었다. 이 포스팅에서는 S3 파티셔닝을 이용해 어떻게 성능을 올릴 수 있을지에 대해 짧게 정리해볼 예정이다. ..

Cloud 2024.02.04

개발자들의 영어 발표 스터디를 마치며

글또 9기에 참여하게 되었다. 마침 AUSG에서 재밌게 진행해온 영어 스터디를 마무리하고 있는 시점이라, 이 스터디에 대한 회고로 글또 활동을 시작해보려 한다. 갑자기 웬 영어 스터디? 수능 영어를 제외하고는 생전 단 한 번도 영어에 관심을 가져본 적 없다가, 작년에 대학교 졸업 요건을 채우기 위해 생애 처음으로 토익을 공부하다 처참한 실력에 "영어 좀 잘 해보고 싶다"는 생각이 처음 들었던 것 같다. 그 외에도 외국계 회사에 입사하는 게 목표이기도 했고, 여행 가서도 영어를 잘 하면 친구도 사귀고 좋은 점이 많을 것 같다는 간단한 이유에서였다. 그래서 나름 작년 한 해동안 링글도 하고 6개월 간 주5일 전화영어도 하고, 겨울에 말레이시아로 한달살이를 다녀오면서 외국인 친구들도 사귀어보려고 노력하곤 했다..

일상 2023.12.10

쿠알라룸푸르 한달살이 노마드 후기

올해 1월에 쿠알라룸푸르로 한달살이 여행을 다녀왔었다. 정말 좋았던 기억인데 어디에도 기록을 남겨두지 않았더니 벌써 기억이 가물가물해져서.. 1월에 다녀왔으니 벌써 7개월이 다 돼가는 이야기지만, 조금이라도 기억이 생생할 때 짧게나마 기록을 남겨보고자 한다. 어쩌다가? 작년 1학기에는 인턴십을 하면서 바빴고, 2학기에는 정규학기를 다녔었다. 다른 사람들이 "회사 다니다가 학교 다니면 엄청 심심할거다"라고 얘기를 해줬었는데 아니나 다를까 진짜로 복학하고나니 학교만 다니는 일상이 지루했었다. 특히나 1학년 때 못 들은 전공 필수(확률과통계, 물리학) 과목을 들어서 그런 것일수도.... 아님 동기 친구들이 다 휴학을 해서 학교를 혼자 다녀서일 수도... ㅠㅠㅠ 하여간 기말 시험 공부를 할 때부터 의욕도 없었고..

일상 2023.07.19

2022년 회고

2022년 회고를 써보려고 한다. 올해는 작년보다 코로나 제한도 완화된 덕에 여행도 다녀오고 전반적으로 재밌는 한 해를 보낼 수 있었던 것 같다. 5월부터는 AWS에서 인턴십도 하고, 인턴십이 끝나고 학교로 돌아가 졸업을 위한 준비들을 하고, 1년 간 운영해왔던 GDSC 활동을 마무리하고 비슷한 시기에 새로운 커뮤니티 AUSG에 들어가게 되었다. 간략히라도 회고해보도록 하겠다. GDSC 커뮤니티 활동 먼저, 지난 1년간 커뮤니티 활동을 재밌게 했는데 그 첫 시작이었던 GDSC 활동으로 회고를 시작해봐야겠다. GDSC Lead로 활동했던 것은 대학생활 중 가장 잘한 일이었다. 덕분에 학교 안/밖 개발자 친구들도 많이 사귀고, 많은 사람들을 만나면서 자극도 받고 시야를 많이 넓힐 수 있었다. 기억에 남는 ..

일상 2023.01.08

AWS Lambda Layers 기능으로 python 라이브러리 import 하기

aws lambda로 개발할 때 selenium, openpyxl 과 같은 python 라이브러리들을 import 해주려고 하는데, No module named ... 오류가 떴다. AWS 환경이 아니라 평소 내 컴퓨터에서 개발할 때에는 터미널을 열고 pip install 명령어를 이용해서 라이브러리를 설치해주면 되지만, lambda에는 터미널이 없다. 이런 경우 라이브러리를 어떻게 lambda 환경에 미리 설치해줄 수 있을까? AWS Lambda의 Layers 는 2018 AWS Re:Invent에서 발표된 기능이다. 위와 같은 상황에서 외부 패키지를 미리 설치해서 세팅해주기 위해 사용된다. Lambda Layers를 이용해 서버리스에서 외부 패키지를 활용하는 방법과 개념에 대해 알아보자. Lambda..

Cloud 2022.12.02

AWS API와 Step Functions로 빠르게 비즈니스 기능 개발하기

* 2022 AWS Community Day Seoul 발표(Step Functions로 30분 만에 서버리스 서비스 개발하기)에서 진행한 실습의 Full 가이드입니다. 계속 업데이트 됩니다. 들어가며, AWS가 제공하는 서비스들을 이용해서 애플리케이션을 개발하기가 점점 쉬워지고 있다. 는 AWS에서 서버리스 애플리케이션을 개발할 때, 로직들 간 관계를 정의하고 연결하는 데에 편리한 오케스트레이션 서비스이다. 이를 이용하면 여러 기능의 Lambda들을 원하는 순서로 연결하는 것뿐 아니라 SDK(Software Development Kit)로 제공되는 다양한 AWS의 서비스 API들을 간편히 연결해서 하나의 애플리케이션을 만들 수 있다. 이 서비스를 이용하면 AWS의 다양한 서비스를 통합하기가 쉬워서 개인..

Cloud 2022.10.28

AWS IAM과 친해지기

AWS Builders 온라인 시리즈를 듣고 정리한 내용입니다. Youtube IAM은 AWS 사용자라면 끊임없이 사용하게 되는 아주 중요한 요소이다. AWS 리소스를 사용하기 위한 모든 요청은 Identity and Access Management, 즉 IAM을 통해 이루어진다. 따라서 IAM은 가장 기본적이면서도 핵심적인 도구이며, 사용자의 보안을 위해 꼭 알아야 하는 요소이다. IAM 이란? Identity and Access Management 으로, AWS 전체의 권한 통제 시스템이다. 💡 Root Account vs IAM 어떤 걸로 로그인 해야 할까? 루트 어카운트는 거의 모든 권한을 가지고 있기 때문에 AWS 작업을 이 계정으로 하는 것은 보안에 좋지 않다. 루트 어카운트보단 IAM 유저를..

Cloud 2022.04.26

Java JSONObject에서 키 값이 없는 경우 파싱하기

Github API를 사용해서 한달간의 commit 수를 나타내는 json 값을 파싱해와야 하는 일이 있었다. 그런데 key값이 없어서 값을 다루는 데 삽질하다가 JSONArray로 접근해서 해결한 내용을 포스팅하려 한다. 아래는 내가 가져올 JSON 값이었다. key값이 하나도 지정돼있지 않고, value의 배열이 나열되어 있었다. 각 배열의 3번째값이 그 날의 Commit 수를 나타내고 있었기에, 나는 각 배열의 3번째 값들 (3, 10, 8)만 get해와서 더해주고자 했다. [ [ 0, 0, 3 ], [ 0, 1, 10 ], [ 0, 2, 8 ] ] 그런데 key값이 없어서 값을 get 해올 수가 없었다. //참고 --- 일반적인 JSON 형식 (key값 존재) { "age":22, "name":"..

기술 2021.07.18