-
7. 쉬어가는 코너: 확장을 위한 구조로 코드 리팩토링하기(+ go, linux, container)
Go로 "컨테이너스러운" 프로세스를 만들어보자. 순조롭게 PID, UTS, Mount, Network 네임스페이스를 격리한 여러분이 자랑스럽다. 이번 챕터는 직접 만든 containerM 프로젝트를 확장 가능한 구조로 리팩토링하면서 한숨 돌리고 가려고 준비했다. main.go의 코드를 모듈화하여 분리하고 필요에 따라 Linux, go의 개념도 정리해보자. ✅ 목표지금까지는 기능 구현에 집중했기 때문에 하나의 main.go 파일에 모든 로직이 들어있었다. 하지만 이제 1. cgroup, 이미지 시스템, 런타임 관리 등이 추가될 예정이고, 2. 스크립트가 늘어나고, 컴포넌트 간 의존성도 커져서 더 이상 모놀리식 구조로는 유지보수가 힘들어질 것이다. 따라서 컴포넌트 단위로 코드를 구조화하고, 기능별로 디렉토리..
개발일기/Docker
2025. 7. 1.
-
[알고리즘, BOJ] 11066 파일 합치기 - java
문제소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 소설의 여러 장들이 연속이 되도록 파일을 합쳐나가고, 최종적으로는 하나의 파일로 합친다. 두 개의 파일을 합칠 때 필요한 비용(시간 등)이 두 파일 크기의 합이라고 가정할 때, 최종적인 한 개의 파일을 완성하는데 필요한 비용의 총 합을 계산하시오.예를 들어, C1, C2, C3, C4가 연속적인 네 개의 장을 수록하고 있는 파일이고, 파일 크기가 각각 40,..
알고리즘
2025. 6. 16.