개인적으로 지인분의 소개를 받아서 외주 비슷한 프로젝트를 진행하게 됐다. 서비스 종료가 예정된 웹사이트의 데이터를 아카이빙하는 작업이었는데, 작업을 맡기신 분이 웹 관련으론 전혀 아시는 바가 없었기 때문에 여러 고민이 있었다.우선 의뢰자분께서 부탁하신 것은 해당 사이트
전날 배포에 이어서 이번에는 CI/CD를 적용해보고자 한다. CI/CD는 개인 프로젝트 수준에서는 굳이 안 해도 되겠지만 하면 편리하다. CI/CD 툴은 많이 존재하지만, 일단 GitHub를 이용해 협업을 하고있으니 GitHub에서 무료로 제공하는 GitHub Acti
프로젝트를 할 때마다 매번 AWS 서버를 올리는데, 세팅 과정을 매번 찾아보면서 하기보다도 정리해두는 게 좋을 것 같아서 포스팅을 한다.인스턴스 생성은 AWS 페이지에서 EC2-인스턴스-인스턴스 시작 누르면 된다.이름 설정해주고, 애플리케이션 및 OS 이미지, 인스턴스
재귀문제를 풀다보면 sys.setrecursionlimit()을 사용하는 경우가 많다. 파이썬의 기본 재귀 깊이 제한이 1000으로 매우 얕은 편이기 때문에, 코딩테스트 환경에서 파이썬으로 재귀 문제를 풀이할때는 해당 구문을 이용해서 재귀 깊이 제한을 풀어줄 수 있다.
알고리즘 문제를 풀다보면 exit를 사용하게 되는 경우가 있다.이때 exit(0)은 성공적으로 프로그램 종료, exit(1)은 성공적으로 프로그램 종료를 하는 것이 아닐때 쓰인다.exit는 sys.exit()와 exit() 두 가지가 있는데, stackoverflow,
개인적으로 공부하고 작성하는 글이므로 틀린 부분이 있을 수 있습니다. 만약 틀린 부분이 있다면 댓글로 알려주시기 바랍니다. Spring boot로 로그인/로그아웃 구현하기 spring boot로 로그인 및 로그아웃을 구현하는 방법은 다양한데, 나의 경우는 spring
2022.09.01 - 2022.12.30, 4개월간의 인턴 기간이 종료됐다. 인턴 기간동안 배운 점에 대해서 회고 글을 정리해보자 한다. 각 일자별로 TIL을 작성하기는 했었는데, 기간이 길었기 때문에 모든 일자의 회고를 올리기 보다는 간략하게만 정리하려고 한다.내가
백준 2566번을 풀면서 오랜만에 최댓값/최솟값 찾기에 대해서 복습했다.python은 최댓값과 최솟값을 매우 쉽게 찾을 수 있는데,python에 max, min 내장 함수가 있어서 이걸 이용하면 된다.이다. 이렇게 하면 max, min 값을 바로 구할 수 있다. (물론
*<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 을 참고하여 작성한 게시물입니다. 웹 크롤러는 로봇 또는 스파이더라고도 부른다. 검색 엔진에서 널리 쓰는 기술로, 웽에 새로 올라오거나 갱신된 콘텐츠(웹 페이지, 이미지, 비디오, pdf 파일...)을 찾아내는 것
*<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 을 참고하여 작성한 게시물입니다.URL 단축: 주어진 긴 URL을 훨씬 짧게 줄인다.URL 리디렉션: 축약된 URL로 HTTP 요청이 오면 원래 URL로 안내높은 가용성과 규모 확장성, 그리고 장애 감내가
*<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 을 참고하여 작성한 게시물입니다.분산 시스템에서는 auto_increment 속성으로 유일 ID를 생성할 수 없다. DB 서버 한 대만으로는 그 요구를 감당할 수 없으며, 여러 DB 서버를 쓰면 지연 시간을
*<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 을 참고하여 작성한 게시물입니다.키-값 저장소는 키-값 데이터베이스라고도 불리는 비관계형 데이터베이스다. 이 저장소에 저장되는 값은 고유 식별자(identifier)를 키로 가져야한다. 키와 값 사이의 이런
*<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 을 참고하여 작성한 게시물입니다.수평적 규모 확장성 달성을 위해, 요청 또는 데이터를 서버에 균등하게 나누도록 할때 보편적으로 사용하는 기술. 이 해시 기술이 풀려고 하는 문제는 다음과 같다.modular
백준 5430번을 풀면서 python의 입/출력 형식과 관련하여 정리를 한 번 해야겠다고 생각했다. 알고는 있지만 오랜만에 쓰려고 하면 헷갈릴 때가 있기 때문이다.입력의 경우 input()으로 받을 수 있고, 여러 개를 따로 따로 입력 받을때는 n, m = map(자료
*<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 을 참고하여 작성한 게시물입니다.처리율 제한 장치(rate limiter)는 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)를 제어하기 위한 장치다. HTTP를 예로들면 특정 기간 내에 전송되는
*<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 을 참고하여 작성한 게시물입니다.1단계 : 문제 이해 및 설계 범위 확정바로 답하지 말것. 속도를 늦추고 깊이 생각하고 질문하여 요구사항과 가정을 분명히 할 것.구체적으로 어떤 기능을 만들어야 하나? 제품
\*<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 을 참고하여 작성한 게시물입니다.개략적인 규모 추정(back-of-the-envelope estimation)은 보편적으로 통용되는 성능 수치상에서 사고 실험을 행하여 추정치를 계산하는 행위로서, 어떤 설계
백준 15828번을 풀면서 deque를 사용했다.deque는 알고리즘 풀이를 하면서 자주 쓰게 되는데, 오랜만에 쓰다보면 사용법이 종종 헷갈릴 때가 있어서 정리해두고자 한다.deque는 O(1)의 속도로 매우 빠르며, popleft()와 같은 메서드 등을 제공하기 때문
*<가상 면접 사례로 배우는 대규모 시스템 설계 기초> 을 참고하여 작성한 게시물입니다.가장 처음으로는 단일 서버를 사용한다. 사용자 단말은 도메인 이름을 이용하여 웹 사이트에 접속하며, 도메인 이름은 DNS를 통해 IP 주소로 변환된다. 그러면 해당 IP주소로
백준 1753번을 풀면서 djikstra 알고리즘(다익스트라 알고리즘) 개념에 대해서 다시 한 번 정리해봤다. djikstra 알고리즘은 최단 경로 탐색 알고리즘 이다. 시작 정점에서 모든 정점으로 가는 최단 경로를 알려주는데, 전체적인 로직은 다음과 같다.1.출발 정