김주무관 AI일대기폐쇄망 연구소 개발팀의 AI 코딩 혁명

제1편

폐쇄망 연구소 개발팀의 AI 코딩 혁명

2026년 10월 1일

폐쇄망 연구소 개발팀의 AI 코딩 혁명

김전산 주무관, Mac Studio로 ○○연구소 개발 생산성을 높이다


프롤로그: 금요일 밤 10시의 야근

"또 CRUD1입니다... 이번 주만 벌써 세 번째..."

김전산 주무관(7급)은 모니터를 멍하니 바라봤다. 금요일 밤 10시, 정보시스템팀 사무실엔 아직도 5명이 남아 있었다.

창밖으로 보이는 연구소 본관 건물의 불빛은 하나둘 꺼져가고 있었다. 다른 연구실도 대부분 퇴근했지만, 정보시스템팀은 오늘도 야근이었다.

"김 주무관, 언제까지 남아있을 거야?"

옆자리 이코딩 주무관이 물었다.

"이번 주에 환경연구부에서 요청한 안전교육 이수 시스템... 월요일까지라고 했습니다."

"또 CRUD야. 왜 매번 똑같은 걸 새로 만들어야 하지?"

"그러게요..."

김전산 주무관도 지쳐있었다. 5년차 연구소 개발자. 매일 반복되는 업무에 지쳐가고 있었다.

  • 등록 화면 만들고
  • 조회 화면 만들고
  • 수정 화면 만들고
  • 삭제 기능 만들고
  • 엑셀 업로드/다운로드
  • 내부 전자결재 연동
  • 권한 체크

5년째 똑같은 패턴.

그때, 문득 떠올랐다.

"AI가 이걸 대신 코딩해줄 수 있지 않을까?"

얼마 전 뉴스에서 본 ChatGPT2. 코드를 자동으로 만들어준다는 그 AI.

하지만 연구소는 폐쇄망3이었다. 인터넷 자체가 없었다.

'불가능한 걸까...'

김전산 주무관은 한숨을 쉬며 다시 키보드를 두드리기 시작했다.

그 한숨이, 모든 것의 시작이었다.


제1장: ○○부 ○○연구소의 현실

1.1 정보시스템팀의 일상

월요일 아침 9시.

○○부 ○○연구소 별관 3층, 정보시스템팀.

"출근하셨습니까?"
"예, 출근했습니다."

아침 인사가 오갔다.

정보시스템팀 사무실. 여섯 명이 자리에 앉았다.

  • 7급 주무관: 4명
  • 6급 사무관: 1명
  • 팀장: 1명

대부분 20대 후반에서 30대 중반. 컴퓨터공학을 전공하고 연구소에 들어온 사람들이었다.

"주간 업무 회의 시작하겠습니다."

박개발 사무관이 화이트보드 앞에 섰다.

[2026년 10월 첫째 주 개발 현황]

■ 진행 중 (3건)
1. 연구원 안전교육 이수 관리
   - 요청: 환경연구부
   - 담당: 김전산 주무관
   - 진행률: 80% (3주차)
   - 마감: 이번 주 금요일

2. 현장조사 차량 예약
   - 요청: 조사연구부
   - 담당: 이코딩 주무관
   - 진행률: 60% (2주차)
   - 마감: 다음 주 금요일

3. 연구과제 현황 대시보드
   - 요청: 데이터연구부
   - 담당: 정시스템 주무관
   - 진행률: 40% (1주차)
   - 마감: 2주 후

■ 대기 중 (5건)
4. 연구장비 예약 (연구지원부)
5. 시료 반출입 기록 (환경연구부)
6. 연구비 정산 보조 (연구지원부)
7. 보고서 성과 관리 (데이터연구부)
8. 실험실 출입 기록 (안전관리)

■ 유지보수 (긴급 3건)
9. 급여 호봉 계산 오류 (★긴급)
10. 4대보험 요율 변경 (법 개정)
11. 내부 전자결재 연동 오류 (★장애)

■ 특별 요청 (1건)
12. 연구소장 - 연구비 집행 현황
    → 오늘 오후 운영회의까지 (★★초긴급)

최정보 팀장이 한숨을 쉬었다.

"총 12건... 인력은 여섯인데, 계산이 안 맞습니다."

"팀장님, 그래도 해야죠..."

이것이 일상이었다.

1.2 끝없이 쏟아지는 개발 요청

같은 날 오후 2시.

김전산 주무관은 코딩에 집중하고 있었다.

[전화벨]

"네, 정보시스템팀 김전산 주무관입니다."

"아, 김 주무관? 환경연구부 김환경 부장입니다."

"예, 부장님. 안녕하십니까?"

"안전교육 이수 시스템 진행 상황이 어떻습니까?"

"예, 80% 완료되었습니다. 이번 주 금요일까지 개발 완료 예정입니다."

"그게... 목요일 운영회의에서 부서별로 보여 드려야 해서요."

"예? 목요일이요?"

"네, 내일까지 가능할까요? 죄송한데 좀 부탁드립니다."

"...네, 알겠습니다."

[전화 끊김]

3일 일정을 하루로 줄이라는 얘기였다.

김전산 주무관은 한숨을 쉬었다.

[전화벨 - 5분 후]

"네, 정보시스템팀 김전산입니다."

"조사연구부 이조사 부장입니다. 현장차량 예약, 진행 상황 좀 알려주시겠어요?"

"예, 부장님. 이코딩 주무관이 담당하고 있는데... 잠시만요."

옆자리 이코딩 주무관에게 물었다.

"이 주무관, 차량예약 시스템 진행률?"

"60%요."

"60% 완료되었다고 합니다."

"그게... 다음 주 수요일에 현장조사를 나가는데, 그 전에 시연이 필요합니다. 이번 주 안에 완성이 가능하겠습니까?"

"원래 일정이 다음 주 금요일인데..."

"위에서 일정을 당겨 달라고 하시는데 어쩔 수가 없네요. 죄송합니다."

[전화 끊김]

이코딩 주무관이 한숨을 쉬었다.

"일정이 또 당겨졌어요?"

"미안..."

[전화벨 - 10분 후]

"네, 정보시스템팀..."

이번엔 데이터연구부였다.

오후 한 시간 동안 전화 7통.

모두 일정 단축 요청이거나 긴급 추가 개발 요청이었다.

1.3 레거시 시스템의 늪

화요일 오전 10시.

김전산 주무관은 또 다른 골칫거리와 씨름하고 있었다.

10년 된 인사급여 시스템.

/*
 * 급여 계산 시스템
 * 작성일: 2014-03-15
 * 작성자: 퇴직
 * 최종 수정일: 2017-08-20
 */

public class SalaryCalculator {
    
    // 변수명이 a, b, c, d...
    // 주석 하나 없음
    
    public int calc(int a, int b, String c, int d) {
        int result = 0;
        
        if (c.equals("A")) {
            result = a * b + 50000;
        } else if (c.equals("B")) {
            result = a * b + 30000;
        } else if (c.equals("C")) {
            // 이게 무슨 로직인지 모르겠음
            result = (a + b) * 12 / 365 * d + 20000;
            if (d > 10) {
                result += 10000;
            }
        } else {
            // 이건 또 뭐지?
            int temp = a;
            for (int i = 0; i < d; i++) {
                temp = temp + (temp * 5 / 100);
            }
            result = temp + b;
        }
        
        // 이 숫자는 어디서 온 거지?
        if (result > 5000000) {
            result = result - 123456;
        }
        
        return result;
    }
    
    public void processPayroll() {
        // 500줄짜리 메서드
        // 중첩 if문 10단계
        // ...
    }
}

"이게 대체 뭘 계산하는 거야..."

김전산 주무관은 머리를 싸맸다.

4대보험 요율이 법 개정으로 바뀌어서 수정해야 하는데:

  • 국민연금: 4.5% → 4.75%
  • 건강보험: 3.545% → 3.595%

문제는 코드 어디에 이 요율이 있는지 찾을 수가 없었다.

원래 개발자는 5년 전에 퇴직했고, 인수인계 문서는 "급여계산로직.hwp" 1장이 전부였다.

그마저도 내용은:

급여 계산 로직

1. 기본급을 호봉표에서 조회
2. 수당을 더함
3. 4대보험을 뺌
4. 소득세를 뺌

끝.

"이걸 어떻게 분석하지..."

박개발 사무관이 조언했다.

"김 주무관, 그 코드는 손대지 말고, 차라리 새로 만드는 게 나을 거야."

"그럼 6개월은 걸릴 텐데요..."

"6개월이 걸려도 그게 나아. 저거 잘못 건드렸다간 직원 급여가 전부 잘못 나가."

한 달에 한 번씩 이런 상황이 반복되었다.

1.4 연구소 개발자의 고충

수요일 점심시간.

연구소 구내식당. 정보시스템팀 동료들이 모여 앉았다.

"하아... 오늘도 야근이네."

이코딩 주무관이 한숨을 쉬었다.

"우리가 매일 만드는 시스템이 뭡니까? 전부 똑같잖아요."

박개발 사무관이 밥을 먹으며 고개를 끄덕였다.

"등록, 조회, 수정, 삭제... 12년째 이것만 만들고 있어요."

"그리고 엑셀 업로드, 엑셀 다운로드, 전자결재 연동, 권한 체크..."

"패턴이 똑같은데 왜 매번 새로 만들어야 하는지 모르겠어."

정시스템 주무관이 입을 열었다.

"저는 이번에 과제 현황 대시보드4 만들고 있는데, 3년 전에 만든 시료 현황이랑 완전히 똑같아요. 테이블명만 다르고."

"복사해서 쓰면 되잖아?"

"그렇게 하고 싶은데, 프레임워크5 버전이 달라서 안 돼요."

김전산 주무관이 말했다.

"제가 계산해봤는데요, 우리가 하루 8시간 중에서 실제 새로운 개발은 30%도 안 됩니다."

"그럼 나머지는?"

"반복 작업이죠."

김전산 주무관은 노트를 펼쳤다.

연구소 개발자의 하루 8시간 분석

새로운 개발: 2시간 (25%)
- 비즈니스 로직 설계
- 복잡한 알고리즘

반복 작업: 6시간 (75%)
- CRUD 코드: 2시간
- 엑셀 처리: 1시간  
- 권한 체크: 0.5시간
- 전자결재 연동: 0.5시간
- 디버깅: 1시간
- 테스트: 1시간

"6시간이 반복 작업이라고요?"

"네, 매일 똑같은 코드를 복붙하고 변수명만 바꾸는 거죠."

"그걸 AI가 해줄 수 있으면 좋겠다."

누군가 던진 말이었다.

그 말이 김전산 주무관의 마음에 깊이 박혔다.

1.5 폐쇄망이라는 장벽

목요일 오후 3시.

김전산 주무관은 "NullPointerException6" 에러와 씨름하고 있었다.

예전 같으면 구글에 에러 메시지를 검색했을 것이다.

하지만 연구소 컴퓨터는 인터넷이 차단되어 있었다.

폐쇄망(Air-gapped Network).

보안을 위해 연구소 내부망과 인터넷은 물리적으로 완전히 분리되어 있었다.

[인터넷망]  ✗✗✗ 물리적 차단 ✗✗✗
      ↓
[연구소 내부망] ← 업무용 PC
      ↓
[행정정보 시스템]

연구소에서 쓰는 업무용 컴퓨터는 절대 인터넷에 연결할 수 없었다.

  • GitHub7? 접속 불가
  • Stack Overflow8? 접속 불가
  • ChatGPT? 접속 불가
  • 구글 검색? 접속 불가

개발자에게 인터넷이 없다는 것은 한쪽 팔이 없는 것과 같았다.

"에러 메시지를 검색할 수도 없어..."

예전에는 개인 핸드폰으로 검색했지만, 작년부터 사무실 내 핸드폰 사용도 제한되었다. 보안 카메라가 핸드폰 사용을 감지하면 경고가 왔다.

외부에서 자료를 가져올 수 있는 유일한 방법은 USB.

하지만 USB 반입도 까다로웠다.

USB 반입 절차:

1. 반입 신청서 작성
2. 부서장 결재
3. 보안팀 제출
4. 바이러스 검사 (2~3일)
5. 승인 후 사용
6. 사용 후 보안팀 회수 (반출 불가)

최소 3일이 걸렸다.

긴급한 자료는 가져올 방법이 없었다.

"폐쇄망에서 AI를 쓴다는 건... 불가능한 걸까?"

김전산 주무관은 창밖을 바라봤다.

1.6 한 주의 끝

금요일 밤 10시 30분.

결국 이번 주도 야근이었다.

김전산 주무관은 교육이력 관리 시스템을 겨우 완성했다. 하지만 테스트는 월요일에 해야 했다.

시계를 봤다. 10시 30분.

"오늘은 11시 버스 타야겠네..."

사무실을 나서며 생각했다.

"이렇게 계속 살 수는 없어."

5년째 반복.

  • 매주 야근
  • 똑같은 CRUD
  • 해결되지 않는 레거시9
  • 인터넷도 없는 폐쇄망

"분명 방법이 있을 거야."

엘리베이터를 기다리며 생각했다.

"AI... 폐쇄망에서도 쓸 수 있는 방법이 분명 있을 거야..."


제2장: 집에서의 실험

2.1 ChatGPT를 써본 충격

토요일 오전 11시. 김전산 주무관의 집.

업무용 PC는 연구소에 두고 왔다. 집 노트북은 인터넷이 됐다.

김전산 주무관은 금요일에 씨름하던 급여 계산 코드를, 변수명까지 그대로 붙여 넣었다.

이 메서드가 무엇을 계산하는지 설명해 줘. 4대보험 요율이 바뀌면 어디를 고쳐야 하는지도.

답은 10초 만에 왔다.

기본급과 수당을 더하고, 직급 코드에 따라 가산하고, 상한선을 넘는 금액은 임의 상수로 깎는 구조. 요율은 메서드 안에 숫자로 흩어져 있고, 123456은 주석 없는 임시 보정으로 보인다는 설명이었다.

"……이걸 5년 동안 사람이 읽고 있었네."

이번에는 교육이력 화면을 주문했다. 등록, 조회, 수정, 삭제, 엑셀, 결재 연동. 평소 이틀 걸리던 뼈대가 한 화면 분량으로 떨어졌다. 그대로 쓸 코드는 아니었다. 그래도 빈 파일 앞에서 기다리던 두 시간이 사라졌다.

김전산 주무관은 노트북을 덮지 못했다.

2.2 폐쇄망으로 돌아오면 사라지는 답

일요일 밤.

기쁨은 금방 식었다.

그 답은 클라우드10 너머에 있었다. 연구소 업무망에는 그 너머가 없었다. 월요일에 사무실로 들어가면, 토요일의 대화는 흔적도 없이 지워진 것과 같았다.

'모델을 안으로 들여올 수는 없을까.'

검색창에 그는 몇 단어를 더 넣었다. 로컬 LLM11. 폐쇄망. 그리고 얼마 전 개발자들 사이에서 보이기 시작한 이름, MLX12.

설명은 짧았다. 애플 실리콘13 위에서 도는 배열 프레임워크. GPU14에게 메모리를 따로 떼어 주지 않는다. 칩 안의 CPU15와 GPU가 같은 메모리를 본다.

그는 그 문장을 노트에 옮겨 적었다.

2.3 서랍 속의 M2 견적서

월요일 오전 9시 40분.

박개발 사무관 책상 서랍에는 2년 전 견적서가 아직 있었다.

Mac Studio M2 Ultra
통합 메모리 192GB
수량 1
약 700만 원

"사무관님, 이거 아직 유효합니까?"

박개발 사무관은 종이를 보고 웃었다.

"M2도 여전히 쓸 수는 있어. 다만 새 장비를 도입한다면 최신 세대와 성능, 메모리, 지원 기간을 비교해 봐야겠지."

김전산 주무관이 말했다.

"M5 Max와 M5 Ultra를 탑재한 새 Mac Studio가 나왔습니다. 밖에 말하면 사람들이 깜짝 놀랄 겁니다. 우리는 아직 M2 견적서로 회의를 하고 있으니까요."

박개발 사무관은 종이를 접어 서랍에 넣었다.

"그럼 오늘 오후에 이야기하자. 팀장님도 장비 이야기를 기다리고 계셨어. 다만 미리 말해 두는데, 테이블 위에는 맥만 올라오지 않을 거야."


제3장: 네 가지 길

3.1 GPU 서버를 짤까

월요일 오후 4시. 소회의실.

화이트보드에는 최정보 팀장이 네 줄을 적었다.

1. GPU 서버를 직접 구축
2. NVIDIA GPU 서버 군
3. 일반 서버나 PC + RTX 5090
4. H100

이코딩 주무관이 먼저 말했다.

"정석은 1번 아닙니까. 서버실에 GPU 서버를 하나 짜는 거죠. 랙16 올리고, 전원 따고, 모델 올리면 끝입니다. 개발자 PC는 지금처럼 두고, 추론17만 서버로 보내면 됩니다."

정시스템 주무관이 고개를 저었다.

"서버 '하나'로는 안 됩니다. 팀이 여섯 명입니다. 한 사람이 70B18짜리 모델을 붙잡는 동안 나머지는 기다려야 해요. 그러면 2번입니다. NVIDIA19 GPU 서버를 여러 대 묶는 거죠. 서버 군으로요."

최정보 팀장이 마커를 멈추고 물었다.

"대수는."

"동시 사용자만 봐도 네 대는 생각해야 합니다. 모델이 커지면 그 이상이고요."

박개발 사무관이 계산기를 두드리다 멈췄다.

"서버 군은 장비값으로 끝나지 않습니다. 전원, 냉각, 랙, 이중 전원. 폐쇄망이면 반입 절차까지. 수억 원으로 열려요. 우리 연구소 예산에서 그 줄을 만들 수 있습니까?"

아무도 바로 답하지 않았다.

3.2 NVIDIA 서버 군, RTX 5090, 그리고 H100

이코딩 주무관이 화이트보드의 3번을 가리켰다.

"그럼 일반 서버나 업무용 PC에 RTX 509020을 꽂는 게 현실적입니다. 카드가 싸고, 수급도 되고, 고장 나면 카드만 바꾸면 됩니다. 네 대면 서버 군보다 훨씬 작습니다."

김전산 주무관이 물었다.

"그 카드 메모리 용량이 어떻게 됩니까?"

"5090이면 32GB입니다. 그래픽 메모리, 따로 있는 거요."

"32GB 안에 모델이 들어가야 한다는 뜻이죠. 시스템 메모리에 128GB가 있어도, GPU는 그 128GB를 모델 자리로 쓰지 못합니다. 넘치면 카드를 여러 장 묶거나, 모델을 쪼개야 합니다. 속도는 떨어지고, 장애 지점은 늘어납니다."

정시스템 주무관이 4번 옆에 물음표를 그렸다.

"그럴 바에는 H10021을 사는 게 깔끔하지 않습니까. 80GB짜리를 서버에 여덟 장. 큰 기관 세미나 자료에도 그 그림이 나옵니다. 규모가 있는 곳은 그 급이라고."

박개발 사무관이 낮게 말했다.

"H100 서버 한 대 견적을 받아 본 적 있습니다. 수억입니다. 전기는 서버실 공조를 다시 짜야 하고, 소음은 사무실에 둘 기계가 아닙니다. 우리는 모델 학습 공장이 아니라, 여섯 명이 코드를 짜는 팀입니다."

최정보 팀장이 보드를 바라봤다.

"정리하면 이렇습니다. GPU 서버는 작아 보이고, 서버 군은 맞고, 5090은 싸고, H100은 확실하다. 그런데 어느 것도 우리 예산과 우리 방에 맞지 않는다."

3.3 회의가 막힌 자리

침묵이 길어졌다.

이코딩 주무관이 중얼거렸다.

"그럼 클라우드를 예외로 여는 건요. 코딩 보조만."

최정보 팀장의 답이 짧았다.

"소스와 개인정보가 나갑니다. 그 문은 열지 않습니다."

김전산 주무관은 노트를 펼쳤다. 토요일에 옮겨 적은 문장이 거기 있었다.

"한 가지만 더 보겠습니다. 장비 이름이 아니라, 왜 그 장비가 싼지에 대한 이야기입니다."


제4장: MLX, 그리고 M5 Ultra 탑재 Mac Studio

4.1 MLX라는 이름

김전산 주무관이 화이트보드 옆에 한 줄을 더 적었다.

5. M5 Ultra 탑재 Mac Studio × 3
   MLX

"MLX는 애플이 애플 실리콘을 위해 연 프레임워크입니다. 파이썬에서 배열을 다루는데, 그 배열이 맥의 GPU 위에서 돌아갑니다. 새 이름이라 생소할 수 있습니다. 저도 토요일에 처음 제대로 읽었습니다."

이코딩 주무관이 끼어들었다.

"맥으로 개발 서버22를 하자고요? 우리는 자바23입니다. 리눅스 서버에 익숙하고요."

"모델을 돌리는 기계와, 우리가 짜는 서버는 다릅니다. 자바는 지금처럼 남습니다. 맥이 하는 일은 하나예요. 폐쇄망 안에서 모델을 켜 두고, 에디터24가 그걸 부르는 겁니다."

박개발 사무관이 물었다.

"왜 하필 MLX입니까. 맥에도 다른 실행기가 있지 않습니까."

"있습니다. 다만 MLX가 나오면서 이유가 분명해졌습니다. 이 기계는 GPU 카드를 꽂는 구조가 아닙니다."

4.2 CPU 안의 GPU, 하나의 메모리

김전산 주무관은 보드에 두 그림을 나란히 그렸다.

[일반 서버 + RTX 5090 / H100]

CPU ── 시스템 메모리 128GB
 │
 └── PCIe ── GPU ── 그래픽 메모리 32GB 또는 80GB
              GPU 연산 부분은 주로 이 메모리에 올라간다
              부족하면 시스템 메모리로 일부 오프로딩 가능


[M5 Ultra 탑재 Mac Studio]

ARM 칩 하나
 ├── CPU
 └── GPU
      └── 통합 메모리 (둘의 공용)
           모델은 이 메모리에 한 번만 올라간다

"M5 Ultra 탑재 Mac Studio는 하나의 Apple Silicon SoC 안에 CPU와 GPU가 함께 들어 있습니다. 그래픽 카드를 따로 꽂지 않고 CPU와 GPU가 통합 메모리25를 함께 씁니다."

그가 5090 쪽을 톡 쳤다.

"NVIDIA GPU는 일반적으로 모델을 VRAM에 최대한 올리는 것이 성능상 유리합니다. VRAM이 부족하면 CPU와 시스템 메모리로 일부 오프로딩할 수 있지만, 데이터 전송이 늘어 추론 성능이 크게 낮아질 수 있습니다."

이번에는 맥 쪽을 가리켰다.

"M5 Ultra 기본 모델은 96GB 통합 메모리를 CPU와 GPU가 함께 사용합니다. MLX는 그 전제를 활용합니다. 큰 모델을 검토할 때도 별도 VRAM만이 아니라, 이 기계의 통합 메모리에 모델과 실행 여유 공간이 들어가는지를 함께 따지게 됩니다."

정시스템 주무관이 한참 그림을 보다 말했다.

"그럼 카드를 네 장 묶지 않아도, 스튜디오 한 대가 큰 모델 한 개를 품는군요."

"네. 그리고 우리가 필요한 건 학습용 공장이 아닙니다. 이미 만든 모델을 폐쇄망에서 돌려, 코드를 돕는 일입니다. 그 일에는 이 구조가 맞습니다."

4.3 2,847만 원부터

박개발 사무관이 이미 숫자를 적고 있었다.

M5 Ultra 탑재 Mac Studio × 3대
합계 2,847만 원부터 (대당 949만 원부터)

비교
- RTX 5090 장비 여러 대: VRAM이 부족하면 시스템 메모리 오프로딩에 따른 성능 저하 가능
- NVIDIA GPU 서버 군: 수억, 전원과 냉각 별도
- H100 서버: 수억, 서버실이 전제

"3대인 이유가 있습니다." 김전산 주무관이 이었다. "한 대는 큰 모델, 두 대는 자동완성26과 짧은 질의. 여섯 명이 한 줄을 기다리지 않게, 역할을 나눕니다. M2 Ultra도 작업에 사용할 수 있지만, 이번 신규 도입안에서는 M5 Ultra의 성능과 지원 기간을 기준으로 비교했습니다."

이코딩 주무관이 아직도 미심쩍은 얼굴이었다.

"전력은요. GPU 서버는 여름마다 서버실이 난리입니다."

"스튜디오는 사무실 책상 옆에 둘 수 있는 소음과 전력입니다. 랙을 새로 짜지 않아도 됩니다. 모델 파일은 지금처럼 USB로 반입합니다. 인터넷 문은 열지 않습니다."

최정보 팀장이 마커 뚜껑을 닫았다.

"선택 이유가 단순히 '맥이라서'는 아닙니다. GPU가 칩 안에 있고 CPU와 GPU가 메모리를 공유하는 구조가 우리 추론 용도에 맞기 때문입니다. MLX는 그 구조를 활용하는 도구이고, 이번 구성에서는 별도 GPU 서버안보다 초기 도입 비용이 낮다는 판단입니다."


제5장: 세 대의 결정

5.1 팀장의 결론

최정보 팀장이 말했다.

"H100은 우리 일이 아닙니다. NVIDIA 서버 군은 다음 해 본예산으로도 어렵습니다. 5090은 VRAM이 부족하면 시스템 메모리로 오프로딩할 수 있지만, 우리가 원하는 응답 속도를 내기 어려울 수 있습니다. GPU 서버를 우리가 직접 짜는 안은, 만들다가 한 계절이 갑니다."

그는 5번 옆에 동그라미를 쳤다.

"M5 Ultra 탑재 Mac Studio 세 대. 기본 구성 2,847만 원부터를 기준으로 저장 장치와 조달 조건을 포함한 견적을 다시 받으세요. 반입 문서는 내가 올립니다. 김 주무관은 MLX로 모델을 한 번 깨워 보고, 우리 에디터에서 호출되는 것까지 금요일에 보여 주세요."

이코딩 주무관이 웃었다.

"실패하면 제가 5090 안을 다시 가져오겠습니다."

"실패하면 같이 봅니다." 박개발 사무관이 말했다. "단, 이번 신규 도입 검토에서는 M2 견적서를 제외합니다."

5.2 첫 번째 코드

이틀 뒤. 아직 장비는 발주 전이었다.

김전산 주무관은 개인 장비로 먼저 경로만 확인했다. 같은 계열의 애플 실리콘 위에서 MLX로 작은 모델을 올리고, 프롬프트27 하나에 급여 요율 설명을 물어봤다. 클라우드만큼 길지는 않았다. 그러나 답은 기계 안에서 나왔다. 패킷28은 나가지 않았다.

그는 금요일에 보여줄 화면을 한 장 적었다.

폐쇄망 PC의 에디터
    → 내부망
        → M5 Ultra 탑재 Mac Studio (MLX)
            → 통합 메모리에 올라간 모델
    ← 코드 초안

모니터 너머로 박개발 사무관이 말했다.

"김 주무관. 사람들이 놀랄 겁니다. 맥 프로가 나왔다는 사실보다, 우리 견적이 H100이 아니라는 사실에."

김전산 주무관은 노트를 덮었다.

세 대의 기계는 아직 현관에 도착하지 않았다. 하지만 회의실의 네 가지 길은, 이미 하나로 접혀 있었다.


COMMENTS · 제1편

폐쇄망 연구소 개발팀의 AI 코딩 혁명 댓글 0

아직 댓글이 없습니다. 읽다가 궁금한 점이나 보탤 내용을 남겨 주세요.