본문 바로가기

분류 전체보기

"신입이 어떻게 대규모 트래픽 처리 경험을 쌓아요?"의 리뷰 JSCODE 박재성님의 유튜브를 보고 들었던 생각을 정리해 보았다. 영상에서는 경력이든 신입이든 백엔드 개발자 채용 공고에는 '대규모 트래픽 처리 경험 우대'라는 우대사항 항목이 어김없이 있는데, 신입이 이런 경험과 역량을 어떻게 채워야할 것인지에 대한 물음을 던지고 그에 대한 방향을 소개한다. 취준을 할 때, 그리고 지금도 여전히 고민스러운 부분을 이야기한다고 하니 흥미롭게 영상을 봤다. ‘대규모 트래픽 처리 경험’이라는 말 자체가 추상적이다.생각해보니 그렇다. 채용 공고에 나와있는 대규모가 얼마나 대규모라는 건지 기준이 명시되어 있는 경우는 드물었다. 영상에서는 개인의 주관적 기준이든 특정 기업의 자료든 어떤 기준을 두고 대규모를 정의하는 것을 먼저 선행하는 것이 좋을 것 같다라고 한다. '대규모 트..
[Docker] 도커 교과서 3장 - 도커 이미지 만들기 Dockerfile Dockerfile은 애플리케이션을 패키징하기 위한 간단한 스크립트 일련의 인스트럭션으로 구성되어 있는데, 인스트럭션을 실행한 결과로 도커 이미지가 만들어진다. 인스트럭션은 다음과 같다. - FROM : 이미지의 시작 지점을 선언 (모든 이미지는 다른 이미지로부터 출발함) - ENV : 환경 변수 값을 지정하기 위한 인스트럭션. [key]="[value]" 형식을 따른다. - WORKDIR : 컨테이너 이미지 파일 시스템에 디렉터리를 만들고, 해당 디렉터리를 작업 디렉터리로 지정하는 인스트럭션 - COPY : 로컬 파일 시스템의 파일 혹은 디렉터리를 컨테이너 이미지로 복사하는 인스트럭션. [원본 경로] [복사 경로] 형식을 따른다. - CMD : 도커가 이미지로부터 컨테이너를 실행했을..
[Docker] 자주 사용하는 Docker 명령어 모음집 Docker를 이용할 때마다 매번 번거롭게 명령어를 찾아다니는 비용을 줄이고자 정리하는 명령어 모음 (지속적으로 업데이트 예정) 컨테이너 전부 삭제 docker container rm -f $(docker container ls -aq) docker container rm --force $(docker container ls --all --quiet) Option: --force: 실행 중인 컨테이너 포함 삭제 이미지 전부 삭제 docker image rm -f $(docker image ls -aq) 컨테이너 실행 docker container run {이미지} Option: --interactive : 컨테이너에 접속된 상태 --tty : 터미널 세션을 통해 컨테이너를 조작하겠다는 의미 --detac..
[프로그래머스] 2022 KAKAO TECH INTERNSHIP - 두 큐 합 같게 만들기 (Java) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 큐를 이동시키기 전에 두 큐의 전체 합이 홀수이면 바로 -1을 리턴할 수 있다. 큐는 2개이지만 하나의 큐의 총합 == 전체 합 / 2 라면 원하는 값을 찾아낼 수 있기 때문에 한 개의 큐 값만 추적하면 된다. 한 가지 주의할 점이 있다면 원소를 몇 번까지 옮겨야 할 것인지에 대한 것이다. 일정 횟수를 초과하면 결국에는 반복이기 때문에 반복이 되기 전 탐색을 끊어내야 한다. 그 일정 횟수는 몇 번이어야 하는가? 1번 테스트 케이스의 실패 원인을 찾던 중 (큐의 크기) * 2 + 3 로 통과하긴 했지만, ..
[백준] 12919번 - A와 B 2 (Java) 12919번: A와 B 2 수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈 www.acmicpc.net 풀이 S와 T의 길이가 같아질 때까지 두 연산 중 하나를 수행해보고 같은 값이 되는 경우의 수가 있는지 확인한다. 브루트포스 문제로 dfs 형태로 구현하였다. 주의할 점. S의 길이를 늘리는 방식으로 하면 시간 초과가 발생한다. T의 길이를 S만큼 줄이는 방식으로 수행해야 한다. 코드 import java.util.Scanner; public class Main { public static void main(String[]..
[프로그래머스] 2024 KAKAO WINTER INTERNSHIP - 도넛과 막대 그래프 (Java) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제를 보고 유니온-파인드로 그룹을 찾아야하나 싶었다. 하지만 문제에서 조건으로 주어진 임의로 생성된 정점 때문에 해당 방식으로 접근하기가 쉽지 않았다. 모든 경로를 탐색해서 그래프의 형태를 파악하지 않아도 해결할 수 있는 방법이 있었다. 각 그래프에서 특징이 되는 노드 하나만 찾아내는 방식이다. 각 그래프들을 식별할 수 있는 노드의 특징은 다음과 같다. - 임의로 생성된 정점 : 모든 그래프를 연결하는 정점이기 때문에 들어오는 간선이 없고 나가는 간선만 존재한다. 문제에서 그래프 갯수는 2개 이상이라 ..
[프로그래머스] 2023 KAKAO BLIND RECRUITMENT - 택배 배달과 수거하기 (Java) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 핵심은 트럭 하나로 모든 배달과 수거를 마치고 돌아오는 최소 이동 거리를 구하는 것 트럭이 최소 이동 거리로 움직이려면 최대한 멀리 떨어진 집의 배달과 수거를 먼저 완료시켜, 멀리 올 일이 없게 만들어야 한다. - 주어진 배열을 뒤에서부터 찾도록 For문을 거꾸로 돌린다. - 먼 집부터 방문 시, 해당 집에 배달/수거할 박스가 없다면 다음으로 넘어가도 좋다. 트럭의 cap에 따라 한 집에 배달/수거 양을 한 번만에 수행할 수 없을 수도 있고, 오히려 트럭에 공간이 남을 수도 있다. - 여러 번 왔다갔다 ..
[프로그래머스] PCCP 기출문제 - 아날로그 시계 (Java) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 시작하는 시간부터 끝나는 시간동안 초침이 몇 번 분침과 시침을 지나치는지에 대한 문제다. (1) 시작시간과 끝시간 사이를 간격에서 횟수를 구하는 것 보다는 (0시0분0초~끝나는 시간동안 마주친 횟수)에 (0시0분0초~시작하는 시간동안 마주친 횟수)를 빼는 방법을 이용하면 문제를 훨씬 단순하게 해결할 수 있다. 주의할 점은 이렇게 차이를 계산하는 방법은 시작시간 자체가 알람이 울리는 시간이라면 이 횟수까지 제외해버린다. 때문에 마지막에 현재 시간 또한 알람이 울릴 수 있는지 체크해서 횟수에 반영해줘야 한다..