안녕하세요. 오랜만의 일상 글입니다. 최근 블로그에 개발 글만 올라와서 내가 봐도 재미가 없어 보이기도 하고 해서, 대회 알고리즘에 관해 제 생각을 조금 적어 두려 합니다. 우선 저는 대회 알고리즘을 접었습니다. 너까짓게 대회 알고리즘 접은 게 무슨 대수냐고 하실 수도 있겠지만..🤥여러 의견 중에 작은 생각 하나 보태려고 합니다. 알고리즘 대회는 정말 예전에는 카카오 코드 페스티벌도 있었는데 자취를 감춘 지 오래됐고 현재는 SCPC, ACM-ICPC, UCPC 정도가 메이저 대회겠네요. 접은 이유는 간단합니다. 어려워서. 정확히 말하면 투자 대비 효율이 정말 말도 안됩니다. 더 정확히 말하면 사람마다 절대 불가능한 경우도 있다는 겁니다. 제가 보기에는 PS판에서 이름 좀 날리려면 머리가 좋거나(뒤에서 자..
AWS와 같은 클라우드 인프라를 꽤 큰 규모로 구축해놓았는데, stage와 prodution으로 구성을 구분해야 하는 상황이 오거나, 사용 중인 계정이 사정상 곧 삭제되어 아예 인프라를 다른 계정으로 이동시켜야 하는 난감한 상황이 온다면 어떤 수가 있을까요? 그런 경우 IaaC 도구인 테라폼이 꼭 필요한 도구일 것입니다. 하지만 이제까지 테라폼으로 구성하지 않아서 tf, tfstate 파일이 존재하지 않고, 현재 구성중인 인프라 규모는 커져있다면, 정말 난감할 것입니다. 그래서 테라포밍(terraforming)이라는 github 오픈소스 프로젝트가 존재합니다. https://github.com/dtan4/terraforming GitHub - dtan4/terraforming: Export existin..
저희 학교 알고리즘 과목에 첫 번째 과제로 피보나치킨이 등장했습니다. 입력 제한이 3억일 때, 피보나치 배열을 어느 제한까지 구해야 하는지, 배열 인덱싱과 stringToint의 형 변환 등 다양한 요소가 포함되어 있습니다. 단순 구현으로 풀이해도 되지만, 다양한 풀이법이 존재하고 피보나치수열과 제켄도르프 정리는 상당히 흥미로운 내용이기 때문에 소개해 드리려고 합니다. 코드는 모두 올리진 않겠습니다. 학교 과제 내용이기도 해서.. 1. DP를 이용한 풀이 방법 가장 일반적인 방법입니다. f(n)=f(n-1)+f(n-2) 라는 간단한 점화식을 활용해 피보나치 수를 구한 다음, n보다 작지만 가장 큰 피보나치 수를 빼며 그 인덱스를 치킨 합에 더해주고 n에 피보나치 수를 빼고 n을 0으로 만들면 종료합니다...
마이크로 서비스 아키텍처(MSA)의 핵심 기술인 서버리스 환경 구성은 여러 장점도 존재하지만, 단점 역시 있습니다. 그중 Lambda의 고질적인 문제로 지적받는 콜드 스타트, 쓰로틀링을 제외하고서라도 복잡한 워크플로에 대한 처리가 있는데요. 병렬, 재시도, 동기화 등 다양한 플로우에 대해 Lambda만으로는 처리가 굉장히 복잡해지고 마이크로 서비스를 실천하기도 어려워집니다. 최근 프로젝트를 진행하면서 처음엔 비동기적이던 lambda 플로우를 처리하기 위해 다음과 같은 방법을 썼습니다. S3 trigger로 Lambda 실행하기 S3의 버킷에 파일이 올라가면 lambda가 실행되고, 그 lambda가 실행이 끝날때 또 S3에 더미 파일을 올리면서 트리거가 되는 식으로 플로우를 짰습니다. 파일이 올라갈 때 ..
최근 프로젝트 작업 중 팀원이 만든 Jupyter notebook을 AWS lambda로 옮겨 자동화를 시켜야 할 Task가 생겼습니다. Jupyter는 python코드로 변환해서 사용하면 되고, 다른 과정도 처음에는 대수롭지 않게 생각하고 작업을 진행했지만.. lambda로 이전하는 작업 중 꽤 고되고 힘든 과정이었습니다. Jupyter의 작업 내용은 무엇인가? 한 사이트를 켜고 musicXML파일을 올리고 사이즈를 적당히 줄인 뒤 svg형태의 파일을 저장하고 svg의 css_selector로 요소를 뽑아내서 txt 파일로 또 저장하는 작업. lambda로 이전 시 무엇이 문제인가? 로컬 환경에 저장된 musicXML을 이용해 로컬환경에 svg, txt를 저장하는 작업을 lambda로 어떻게 옮기는가,..
테라폼은 infrastructure를 코드로 관리할 수 있게 해주는 툴입니다. 보통 aws, azure, gcp 등 클라우드와 연계해서 사용하게 되는데, 자동화나 GIT처럼 버전 관리에도 사용할 수 있습니다. 정의만 보고서는 정확하게 개념이 와닿지 않을 수 있습니다. 간단한 aws ec2 인스턴스를 생성,삭제하는 과정을 따라 하며 익혀볼까요? 실습 환경 macOS(Big Sur, M1) Terraform v1.0.0 on darwin_arm64 먼저 테라폼 설치가 필요합니다. 테라폼은 홈페이지에서 다운로드 가능하며. 저의 실습 환경은 위와 같습니다. https://www.terraform.io/ Terraform by HashiCorp Terraform is an open-source infrastruc..
소마 예비과정을 시작한 지도 2달이 지났고, 그동안 정말 많은 일들이 있었고 시간은 너무 빠르게 지나갔습니다. 여러 배운 점들이 많았지만 그중에서도 이번에는 클라우드 얘기를 하려 합니다. 올해 3월까지만해도 AWS에 대한 지식은 거의 없었습니다. 건너 건너 알고 있는 건 서버를 AWS로 이용하면 공짜래! 같은 얄팍한 지식뿐이었던.. 그런데 멘토님의 권유로 AWS 중심으로 백엔드 아키텍처를 그리고 AWS 솔루션스 아키텍트 자격증을 따는 공부를 하며 실습한다는 느낌으로 백엔드 개발을 동시에 진행하면 어떻겠냐는 말에 그날 바로 두 책을 구매하고 공부에 들어갔습니다. AWS 공부는 재밌었습니다. AWS가 손을 안뻗친 분야가 없기 때문에 개발의 전체적인 분야의 개념을 공부한다는 느낌도 받았습니다. 특히 lambd..
어느 날 카뱅에서 결제 알림이 떠서 무심코 봤더니, AWS에서 63만 원 요금이 결제되었습니다... AWS 모든 책에서 실습 끝나고 삭제하세요... 블로그에서도 제발 프리티어 믿고 마구잡이로 쓰다가 폭탄 맞지 마세요... 했는데 말 귓등으로도 안듣다가 기어코 이 사달이 났습니다. 솔직히 뭐 55달러였으면 공부했다 치고 넘어갔을 것 같은데 555달러는... 다행히 저 같은 분이 많았고 블로그에도 요금폭탄 후기가 굉장히 많았습니다. 그렇게 안내센터로 가서 영어로 반성문을 쓰고.. 그 내용은 대충 "학생이고 프리티어로 연습하다가 555달러나 나왔어요ㅠㅠ 저번 요금만 환불이 가능할까요?"였고, 친절한 상담원이 4시간? 정도 걸려서 도착한 답변은 "~~ 이런 이유로 요금이 나왔고 지금 켜져 있는 Elasticac..
코테에서든, 자료구조에서든 정렬은 항상 빼놓지 않고 등장하는 중요 요소입니다. 또한 많은 알고리즘의 기본 base로 깔고 가는 개념이기도 하죠. 자료구조 수업에서도 정렬을 구현하는 수많은 방법을 배우고, 그 방법을 익히는 것도 중요하지만, 이 글에서는 정렬 방법에 대해서는 다루지 않습니다. 이번 포스트에서는 정렬 개념을 어떤 방식으로 문제에 적용시키는지, c++에서는 어떻게 정렬하는지 정도를 설명해 드리겠습니다. www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acm..
newdeal123.tistory.com/7 소마 12기 코딩 테스트 & 면접 후기 www.swmaestro.org/sw/main/main.do SW마에스트로 NEWS 제12기 온라인 과정설명회 Q&A 지원 자격 Q. 지원 서류 제출 기간에는 4대 보험에 가입되어 있는데 지원해도 되나요? 지원서 제출 기간에는 4대 보험 newdeal123.tistory.com 이전 글과 이어지는 내용입니다. 뭔가 합격, 본선 진출, 수상 뭐 이런 긍정적인 단어를 쓴 적이 없었는데, 드디어 처음으로 합격 후기를 써 볼 수 있게 됐습니다. 사실 지원할때까지만해도 반신반의하면서 자소서를 제출했습니다. 자소서를 쓰면 쓸수록 내 한계가 보였고, 크게 이뤄낸 것 도 없었고, 알고리즘 빼면 크게 내세울만한 게 없었거든요. 프로젝트 ..