전체 글

Data Engineer를 거쳐 커머스 서비스를 개발하는 Backend Engineer로 커리어를 이어나가고 있습니다 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
Critical Section Problem n개의 프로세스가 공유데이터를 동시에 사용하기를 원하는 경우 발생하는 문제 각 프로세스의에서 공유 데이터를 접근하는 코드를 critical section 이라고 한다. 하나의 프로세스가 critical section 에 있을 때 다른 모든 프로세스는 critical section에 들어갈 수 없어야 한다. 임계 구역 문제를 'Software' 적으로 해결하는 방법 Mutual exclusion (상호 배타) : 한 프로세스가 critical section 부분을 수행하고 있다면, 다른 프로세스들은 그들의 critical section 에 들어가지 않는다. 즉, critical section에 꼭 하나의 프로세스만이 진입할 수 있다는 조건이다. Progress ..
·Algorithm (PS)
https://www.acmicpc.net/problem/28305 28305번: 세미나 배정 DEVOCEAN은 SK그룹의 대표 개발자 커뮤니티이자, 내/외부 개발자 간 소통과 성장을 위한 플랫폼이다. DEVOCEAN의 콘텐츠로는 SK 개발자들이 직접 작성한 최신 개발 관련 글과 기술을 공유하고, 테크뉴 www.acmicpc.net 위의 문제인데... 참고할 문제로는 강의실 배정, 공유기 설치 문제가 있다. https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net https://www.acmicpc...
·Algorithm (PS)
https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 규칙에 대해 이해를 해야 풀 수 있는 문제이다 사전은 한글자 (알파벳) 로 모두 초기화 시킨다. word_dict = {chr(i): (i - 64) for i in range(65, 91)} 현재 입력 인덱스가 w, 다음 글자 인덱스가 c라고 하면, KAKAO 예시를 봤을 때 word = KAKAO index = 0 1 2 3 4 현재 입력 다음 글자 w c 등록 여부 answer = [] K ..
실제 프로덕션 환경에서는 유저 데이터 등 유출되면 치명적인 데이터가 있다. 이러한 보안 문제를 해결 하기 위해, Databricks Workspace를 구성할 때 인터넷을 거치지 않는 private link 구성을 활용했다. 위의 그림처럼, Control Plane 과 Data Plane 간의 통신을 구성하기 위해서 AWS Private Link 를 사용하여 구성했다. 크게 2가지로, Secure Cluster Connectivity 를 위한 VPC endpoint 와 REST APIs 를 위한 VPC endpoint 를 생성해주면된다. 참고로 Front-end VPC endpoint 는 따로 생성해주어도 괜찮지만, 사실 Backend REST API와 동일한 서비스이므로 같은 VPC endpoint 를..
데이터의 접근 데이터가 저장되어 있는 위치에서 읽어와서 연산을 함. 연산결과를 다시 원래 위치에 저장. Race Condition - 경쟁상태 Storage-Box (Memory, Address Space)라는 것을 여러 Excution Box(CPU, Process)가 공유한다면 생기는 문제 Multiprocessor system 이나 공유 메모리를 사용하는 프로세스들, 커널 내부 데이터를 접근하는 루틴들 간 경쟁 상태의 가능성이 있다. OS에서의 Race Condition 1. Kernel Mode 경쟁상태 발생 : Kernel Mode 중 인터럽트가 발생해서 인터럽트 처리 루틴이 수행되는 경우에, 양쪽 다 커널 코드이므로 kernel address space를 공유하게 된다. 이렇게 kernel 에..
·Algorithm (PS)
예전에 풀었었는데, 재채점 이후에 틀렸다고 그래서 다시 풀게 되었다. https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고, www.acmicpc.net 1차 시도 # https://www.acmicpc.net/problem/17142 import sys from collections import deque from itertools import combinations input = sys.stdin.readline dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] n..
https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위의 프로세스 문제를 풀다가 좋은 풀이라고 하는 코드에서 any()함수가 등장해서 정리! any() 함수 list 의 원소를 필터링하거나 조건 검사하는데 사용한다. 어떠한 조건을 만족하는 어떠한 원소가 현재 리스트에 있는지 없는지를 Bool 값으로 반환한다. test = [2,5,3,6,7,8,9,1,10] check = any(x > 5 for x in test) print("5보다 큰 어떠한 ..
스케줄링 알고리즘은 크게 non-preemptive / preemptive 방식으로 나뉘게 된다. Scheduling Criteria 성능 척도 CPU utilization (이용률) : 전체 시간중에서 CPU 가 일한 시간. CPU 는 가능한 busy 해야 한다. - CPU 는 비싼 자원이기 때문에 효율적으로 활용하기 위해서는 CPU 는 항상 일을 해야 한다. Throughput (처리량) : 주어진 시간동안 몇개의 프로세스들을 완료 했는가 Turnaround time (소요시간, 반환시간) : 특정 process를 실행하는데 걸리는 시간 Waiting time (대기 시간) : 프로세스가 ready queue에서 대기하고 있는 시간 Response time (응답 시간) : 요청이 왔을 때 처음으로 ..
minjiwoo
minji's engineering note