분류 전체보기
-
OSTEP 중간 후기os 2025. 8. 23. 21:28
operating system three easy pieces 라는 책이다.운영체제를 이루는 세 가지 큰 기둥을 중심으로 설계 원칙을 설명한다. 기둥1 - Virtualization기둥2 - Concurrency기둥3 - Persistence 1. Virtualization옛날 옛적엔 하나의 머신에서는 동시에 단 하나의 프로그램만 수행했다.그러다가 머신 하나에서 여러 개의 프로그램을 돌려야 할 필요성이 생겼고, 이를 이루기 위해서는 아래 문제를 해결해야 했다.문제: 어떻게 하나의 CPU로 여러 개의 프로그램을 돌리지?(mechanism)-> 프로그램들을 번갈아 가면서 돌리자(context switching). 다시 돌아올 때 필요한 정보를 저장해두자(process). 근데 어떤 프로세스한테 CPU를 줘야..
-
수학공부 시작math 2025. 8. 1. 11:35
Concrete mathematics -> How to prove it -> Linear algebra done right -> Introduction to probability -> Understanding analysis -> Contemporary abstract algebra 사실상 concrete mathematics만 해도 최소 반년 이상은 걸린다. 앞으로의 개발자 여정에 있어서 수학을 놓지 않으려고 이렇게 여러 권의 책을 커리큘럼화해봤다. 왜 수학공부 하는지?1. 세상의 수많은 뛰어난 고학력 고학벌 개발자들은 학석박 기간동안 어려운 문제를 붙들고 연구를 하며 사고력을 키웠다. 하지만 나는 그러지 못했다. 그래서 지금이라도 수학을 공부하며 사고력, 논리력을 키우고자 한다. 2. 그리고 최근 발..
-
생각이 많아지는 요즘이다ETC 2025. 8. 1. 10:43
개발도 잘해지고 싶고 똑똑해지고 싶고 투자 공부도 하고 싶고 운동도 꾸준히 하고 싶고 글도 쓰고 싶고 일도 잘하고 싶고 사회생활도 잘하고 싶고...욕심이 많아지는 요즘이다. 그래서 생각을 의도적으로 비우려고 한다. 그리고 자기객관화가 되면 내 능력의 불확정성을 두려워하지 않게 된다. 얼마전에 회사에서 전 직원 대상으로 발표를 했었다. 수 백명의 청중 앞에서 발표하는 것은 내 인생에서 처음 있는 일이었다.처음에 내가 이걸 해야한다는 것에 매우 떨렸다. 그날이 오지 않기를 바랐다.그래서 발표 피피티를 만들면서도 스트레스를 많이 받았다. 어쨌든 꾸역꾸역 초기버전의 미완성 피피티를 만든 후 팀 내에서 리허설을 했다.당연히 발표 내용을 잘 숙지하지 못해 발표 도중에 끊기거나 자신감이 떨어지는 모습을 보였다.그래서..
-
리트코드 Top Inteview 150 후기Coding Test 2024. 7. 7. 00:28
리트코드는 알고리즘 문제 사이트이다.그중 좋은 문제 150개를 엄선해서 모아놓은 분류가 있는데 이게 Top Interview 150이다.이거를 생각날 때마다 하나씩 풀다보니 어느새 다풀었다. 누구는 알고리즘이 현업에서 쓸 데 없다고도 하고누구는 알고리즘 잘하는 사람이 현업 개발 못하는걸 본 적 없다고 한다. 현업 개발을 많이 겪진 못했지만 지금까지 경험으로 보면일단 도메인을 많이 아는게 중요하다. 선임 개발자분들을 보면 개발 40 디버깅 40 회의 20의 비중을 두고 있다.디버깅 비중이 크다.예상치 못한 예외케이스가 발생할 수 있다는걸 알기 위해서는 일단 도메인에 대한 지식이 필요하다. 그리고 미처 처리하지 못한 예외케이스가 발생해 디버깅을 해야하는 경우에도 문제 발생 원인을 파악할 때 도메인 지식이 필..
-
정렬 알고리즘 및 자료구조 구현algorithm 2024. 4. 11. 23:57
정렬 알고리즘1. 버블 정렬def bubbleSort1(arr): for i in range(len(arr)): for j in range(len(arr) - 1): if arr[j] > arr[j + 1]: temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp def bubbleSort2(arr): idx = 0 temp = 0 while idx < len(arr): for i in range(len(arr) - 1): if arr[i + 1] < arr[i]: temp = arr[i] arr[i] = arr[i + 1] arr[i + 1] = temp idx += 1 arr = [3, 1, 5, 2, 4] bubbleSort2(arr) print(arr) 2. ..
-
99클럽 코테 스터디 17일차 TIL - 중복, 연속적으로 계산할 땐 누적합Coding Test 2024. 4. 10. 19:42
문제 - 우박수열 정적분 문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 우박수열 만드는법 양의 정수 k가 주어지고, k에서 시작하는 우박수열을 만듭니다. 이후, 우박수열을 y값으로 하고 x값은 0부터 각 수열 생성시마다 x = 1, x = 2 이런식으로 1씩 증가하도록 해서 (x, y)가 정해지며, 그래프를 그릴 수 있습니다. 마지막으로 넓이를 구해야 하는 x의 범위들이 주어지는데, 이때 해당 x 범위와 x축, y축, 그래프가 형성하는 영역의 넓이를 구하면 됩니다. 제한 사항 k: 1만 이하 ranges 길이: 1만 이하 풀이 과정 이..
-
99클럽 코테 스터디 16일차 TIL - 비슷한 문제가 생각날 때Coding Test 2024. 4. 9. 23:52
문제1 - 부대 복귀 문제링크 문제 설명 양방향 그래프가 주어지고 출발지 노드들과 목적지가 주어질 때, 각 출발지에서 목적지 노드까지의 최단경로 거리를 구하는 문제입니다. 목적지에 도달할 수 없다면 -1입니다. 제약조건 노드n: 최대 10만개 간선roads: 최대 50만개 출발지sources: 최대 500개 풀이 과정 처음엔 그래프상에서 최단경로 길이를 구하는 문제라서 다익스트라를 사용해서 출발지 노드에서 목적지 노드까지의 최단경로거리를 구했습니다. 시행착오1(다익스트라, 실패) import heapq def solve(graph, dists, src, dest): q = [] dists[src][src] = 0 heapq.heappush(q, (0, src)) while q: curDist, curPo..