Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
문제 https://leetcode.com/problems/maximum-element-sum-of-a-complete-subset-of-indices/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 난이도: Hard weekly contest의 최종 보스 문제. https://leetcode.com/contest/weekly-co..
문제 https://leetcode.com/problems/maximum-number-of-alloys/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 난이도: Medium 주간 Leetcode contest문제를 풀어보자~~ https://leetcode.com/discuss/general-discussion/4053842/wee..
원래 잘 실행되던 태스크가 갑자기 오류가 나기 시작했다. ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 3 time(s): RequestError: send request failed caused by: Post "https://api.ecr.ap-northeast-2.amazonaws.com/": dial tcp 54.180.184.245:443: i/o timeout. Please check your task network configur..
SAA를 준비한 이유 AWS 자격증에서 Foundational 단계는 전공자라면 따기 쉬운 편이다. 물론 따면 좋겠지만, AWS 자격증 시험 비용들이 상당하기 때문에 본인은 바로 Solutions Architect Associate(SAA) 단계에 도전하였다. Foundational는 Associate의 다음 단계로, 1년 이상의 실무 경험이 뒷받침해주어야 한다. (필수인 것은 아니다.) 본인은 AWS 서비스를 제대로 사용하기 시작한 지 2달이 안된다. 하지만, 제대로된 아키텍처 설계를 하기에는 AWS cloud 서비스를 너무 몰랐기 때문에 결국에 공부가 필요하다고 생각했다. 그렇다면 공부하는 김에 자격증까지 따보자! 하는 생각에 SAA를 준비하게 되었다. SAA 공부를 하기 전에는 EC2 밖에 쓸 줄 ..
github actions로 폴더마다 다른 도커 image를 build 하고 AWS ECR로 업로드해보자. 일단 레퍼지토리에서 단 하나의 docker image를 빌드한다면 다른 분이 만든 workflow를 이용하면 쉽다. https://github.com/jwalton/gh-ecr-push/tree/master GitHub - jwalton/gh-ecr-push: GitHub Action to push a docker image to Amazon ECR. GitHub Action to push a docker image to Amazon ECR. - GitHub - jwalton/gh-ecr-push: GitHub Action to push a docker image to Amazon ECR. gith..
Selenium 4.10 버전 Selenuim으로 작성한 크롤링 파일을 Docker로 build 하려 했는데, docker는 화면 자체가 없고 chrome driver도 따로 설치해 주어야 하기 때문에 그대로 코드를 동작시킬 수 없다. 문제는 Selenium이 최신 버전인 4.10 까지 지속적인 업데이트를 하면서, 기존의 docker 상에서 Selenium 동작시키는 정보들을 따라 하면 오류가 발생한다. (덕분에 트러블 슈팅에 개고생을...) 여러 사이트의 정보로 시행착오를 거치며 결국 build에 성공한 4.10 버전의 build 방식을 소개하겠다. Dockerfile 일단 Dockerfile의 작성은 아래의 게시글 작성자 분이 잘 설명해 주고 있다. https://velog.io/@ywoosang/a..
문제 https://www.acmicpc.net/problem/25760 25760번: 귀경길 교통상황을 알려드립니다 정현이가 살고 있는 나라에는 각 지역을 연결하는 도로망이 있다. 도로망은 총 $N$개의 지점과 두 지점을 연결하는 $N-1$개의 양방향 도로로 구성되어 있으며, 모든 두 지점 사이를 도로망으로 이 www.acmicpc.net 풀이 solved.ac 난이도: Gold 2 생각해본 풀이의 예외 케이스를 도저히 찾지 못해서 다른 분의 풀이를 참고해서 해결하였다. 틀린 풀이 일단 내가 생각해 본 풀이는 그리디 방식이다. N개의 노드에 N-1개의 간선이 있다면, 루프가 생길 수 없기 때문에 트리 형태가 된다. 1번 노드가 탈출구 이기 때문에 1번 노드를 루트로 선택하면 트리가 형성된다. 간선은 양..
다른 크롤러들과는 다르게 실제 user처럼 동작시키므로 원하는 데이터를 얻기 위해서는 일일이 조작시켜 주어야 한다. 이러한 방식은 귀찮지만, python의 request로 요청을 보내는 프로그램이 크롤링으로 감지되어 요청을 거절당한다면 사용할 수밖에 없는 대안이다. 설치하기 일단 공식 홈페이지에 들어가자. https://pypi.org/project/selenium/ selenium pypi.org 최신 버전은 Python 3.7이상을 요구하고 있다. Python 3.7+ 일단 pip 혹은 conda로 selenium을 설치해 주자. pip install -U selenium 이제 크롬 드라이버를 버전에 맞게 설치해야 한다. 크롬의 설정에서 정보창에 버전을 확인해 주자. 크롬 드라이버 링크 https:/..
문제 https://www.acmicpc.net/problem/1208 1208번: 부분수열의 합 2 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 40, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net 풀이 solved.ac 난이도: Gold 1 원소가 부분수열에 포함되는지 여부를 경우의 수로 생각해 보자. 포함되느냐 안되느냐인 두 가지 선택을 40개의 수에 적용하면 2^40 가지의 경우가 나온다. 2^40 = 1,099,511,627,776(약 1TB) 이므로 시간 안에 동작시킬 수 없다. 여기서 사용되는 기법이 양방향 탐색(Bidirectional..
이 글은 데이터 중심 애플리케이션 설계 서적(마틴 클레프만 저)를 읽고 정리한 내용입니다. 데이터 중심 애플리케이션 설계 : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 데이터 복제는 다음과 같은 이유로 필요하다. 1. 지리적으로 가깝게 복제본을 위치시켜 네트워크 지연시간을 줄인다. 2. 장애에 대처한다. 3. 읽기 질의를 제공하는 장비수를 확장해 처리량을 늘린다. 데이터 량이 작거나 복제 대상의 데이터가 앞으로도 변경되지 않는다면, 복제는 너무나 쉽다. 하지만 거대한 데이터이고 변경이 일어난다면? 최근은 데이터 량이 급증하면서 단일 노드로 구성된 데이터베이스에서 분산 데이터베이스로 넘어가고 있다. 노드 간 변경을 복제하기 위한 분산 데이터베이스의 세 가..