ACT 실행 단계

LLM 모델 버전 관리 실무: 종료일 확인부터 교체 시험·운영 배포까지

LLM 모델 버전 관리 실무: 종료일 확인부터 교체 시험·운영 배포까지

LLM 모델 버전 관리는 서비스에서 호출하는 AI 모델의 종료 일정을 확인하고, 종료 전에 교체 모델을 시험해 운영에 반영하는 일입니다.

한눈에 보기

  • API로 쓰는 AI 모델은 공급사가 정한 날에 종료됩니다. 종료일은 모델 목록 API로도 확인할 수 있습니다. 1
  • 공식 대체 모델이 늘 최선은 아닙니다. 기능마다 품질·비용·속도 가운데 무엇을 우선할지 정하고, 실제 입력으로 비교해 선택합니다. 12
  • 모델 이름만 바꾸면 오류가 나는 곳이 있습니다. 호출 옵션을 확인하고, 배포 전에 운영 키로 한 번 호출합니다.

이런 상황을 떠올려 보세요. 쇼핑몰 상담 챗봇이 어느 월요일 아침부터 답변하지 않습니다. 원인은 챗봇이 호출하던 AI 모델의 서비스 종료였습니다. 종료 안내 메일은 반년 전에 왔지만, 가입할 때 쓴 담당자 메일함에 그대로 남아 있었습니다. 이 글에서는 젠아이랩스(GenAI Labs)가 2026년 11월 블로그 서비스의 AI 모델을 교체한 과정을 바탕으로, 이런 일을 막는 방법을 정리합니다.

API 모델의 종료 일정

API로 쓰는 AI 모델은 지원 기간이 정해져 있습니다. 공급사는 새 모델을 출시하고 일정 기간이 지나면 이전 모델을 종료합니다. OpenAI는 정식 모델을 종료하기 최소 6개월 전에 공지하고, 해당 모델을 쓰는 고객에게 메일을 보냅니다. 이름에 preview가 붙은 시험판 모델은 약 2주 전에 공지합니다. 1

다음은 2026년 11월 기준 OpenAI가 공지한 종료 일정 가운데 일부입니다. 1

종료일 모델 공지일 공식 대체 모델
2026-10-23 gpt-image-1, gpt-4.1-nano 2026-04-22 gpt-image-2.5 계열, gpt-5.6-luna
2026-12-01 gpt-image-1.5, gpt-image-1-mini 2026-06-02 gpt-image-2.6-sunburst · flare
2026-12-11 gpt-5, gpt-5-mini, o3 2026-06-11 gpt-5.6-sol, gpt-5.6-terra
2027-01-14 gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini 2026-10-14 gpt-6-luna

공지가 6개월 전에 나와도 놓치는 일은 생깁니다. 젠아이랩스 블로그는 매주 AI 동향 글에 생성형 AI로 만든 표지 이미지를 붙입니다. 2026년 10월 23일 gpt-image-1이 종료되자 표지 생성이 실패했고, 표지 없이 발행된 글을 보고서야 원인을 알았습니다. 종료 안내 메일은 한 사람의 메일함에만 도착했습니다. 어느 코드가 그 모델을 호출하는지 대조하는 절차도 없었습니다.

종료일 확인 방법

OpenAI의 모델 목록 API는 모델마다 종료일(shutdown_date)을 함께 알려 줍니다. 종료가 정해지지 않은 모델은 이 값이 비어 있습니다. 1 조회에는 비용이 들지 않습니다. 호출 예시는 글 끝 「개발자를 위한 심화」에 있습니다.

조회한 종료 예정 모델을 저장소의 설정·코드와 대조하면 바꿀 곳을 바로 찾을 수 있습니다. 젠아이랩스가 사내 저장소 12개를 이 방법으로 대조한 결과, 11개 저장소에서 종료됐거나 종료 예정인 모델 이름이 나왔습니다. 이미 종료된 모델을 설정에 그대로 둔 저장소도 있었습니다. 가격표나 과거 기록에만 이름이 남은 경우도 섞여 있어, 실제 호출 여부는 저장소마다 다시 확인했습니다.

한 번 대조해서는 다음 종료 공지를 놓칠 수 있습니다. 그래서 두 가지 장치를 운영합니다.

  • 저장소 테스트: 설정에 적힌 모델의 종료일이 30일 안으로 다가오면 CI 테스트가 실패합니다. 홈페이지 저장소에 먼저 적용했습니다.
  • 정기 조회: 주 1회 모델 목록을 조회해 90일 안에 종료되는 모델을 사내 메신저로 알립니다. 회사 전체 저장소에 적용할 공통 과제로 등록했습니다.

교체 모델 선택 기준

종료 공지에는 공식 대체 모델이 적혀 있습니다. 그대로 따르면 간편하지만, 그 모델이 해당 기능에 가장 적합하다는 보장은 없습니다. 공지 이후 더 새로운 모델이 출시되기도 하고, 공식 대체 모델의 단가가 기존보다 크게 오르기도 합니다.

현재 모델 입력 / 출력 단가(100만 토큰당) 공식 대체 모델 입력 / 출력 단가
gpt-5 1.25 / 10달러 gpt-5.6-sol 4 / 20달러
gpt-5-mini 0.25 / 2달러 gpt-5.6-terra 2 / 12달러

GPT-5 mini를 공식 대체 모델로 바꾸면 출력 단가가 6배가 됩니다. 같은 시기 목록에는 출력 단가가 0.50달러인 gpt-6-luna와 1.20달러인 gpt-5.6-luna도 있습니다. 2 반대로 단가만 보고 가장 싼 모델을 고르면 해당 기능의 품질이 떨어질 수 있습니다. 그래서 후보를 3~5개로 좁힌 뒤 기능마다 실제 입력으로 비교합니다.

기능별 비교 시험

비교 방법은 기능의 유형에 따라 다릅니다. 정답이 있는 작업과 사람이 결과물을 보고 판단하는 작업은 측정 방법이 다릅니다. 이번 교체에서는 기능을 생성·검증·판정 세 유형으로 나누고, 유형마다 측정 항목과 기준선을 먼저 정했습니다.

기능 유형 예 측정 항목 방법 기준선
생성 표지 이미지, 로고 콘셉트 결과물 품질, 시간, 비용 같은 입력으로 생성해 나란히 비교 현재 모델의 결과물
검증 글의 사실 검증 오류 검출 수, 정상 문단 수정 수 위치와 내용을 아는 오류를 일부러 넣음 넣은 오류 전체
판정 관계 승인·반려 기존 판정과의 일치율, 틀린 항목 검출 과거 판정에 틀린 항목을 섞음 현재 모델을 다시 실행했을 때의 일치율

모든 시험은 운영과 같은 지시문·근거·호출 옵션으로 실행했습니다. 지시문을 시험용으로 바꾸면 운영에서 모델이 어떻게 동작하는지 알 수 없기 때문입니다.

블로그 표지 이미지

운영에서 gpt-image-1.5로 만든 최근 표지 3장의 프롬프트를 그대로 사용해 gpt-image-1.5·gpt-image-2.5-flare·gpt-image-2.6-flare로 각각 다시 생성했습니다. 크기(1536×1024)와 품질(high) 설정도 운영과 맞췄습니다. 아래 그림의 gpt-image-1.5 표지는 운영에서 쓴 원본입니다. 표의 생성 시간과 토큰 수는 2026년 11월 7일 같은 프롬프트로 다시 생성해 측정했습니다.

같은 프롬프트로 생성한 블로그 표지 비교. 왼쪽부터 gpt-image-1.5(운영 원본), gpt-image-2.5-flare, gpt-image-2.6-flare

gpt-image-1.5 gpt-image-2.5-flare gpt-image-2.6-flare
한 장 생성 시간(3장 평균) 44.1초 23.8초 13.5초
장당 이미지 출력 토큰 6,208 1,372 1,353
장당 비용 0.20달러 4 약 0.043달러 약 0.043달러

같은 크기의 이미지를 만들 때 새 모델이 쓰는 출력 토큰은 gpt-image-1.5의 약 4.5분의 1입니다. 비용 차이는 대부분 여기서 나옵니다. 새 모델의 이미지 출력 단가는 100만 토큰당 30달러이므로 한 장(약 1,370토큰)은 약 0.041달러이고, 프롬프트 입력 비용을 더하면 약 0.043달러입니다. 3 생성 시간도 gpt-image-1.5의 절반 이하입니다.

세 모델의 구도와 분위기는 비슷했고, 새 모델의 이미지가 더 선명했습니다. 다만 새 모델은 잡지 표지처럼 작은 영문 글자를 더 많이 넣었습니다. 로고 GENAILABS의 A를 Λ로 표기한 이미지도 두 장 나왔습니다. 세 장만으로 모델의 우열을 가리기는 어렵지만, 새 모델로 만든 표지는 글자와 로고 표기를 따로 점검해야 한다는 점을 확인했습니다.

AI 동향 글 사실 검증

젠아이랩스 블로그의 AI 동향 글은 Claude가 작성하고, OpenAI 모델이 근거 기사와 대조해 검증합니다. 같은 회사의 모델끼리는 약점도 비슷하기 때문에, 검증은 다른 회사의 모델에 맡깁니다. 이 검증 단계에서 쓰던 모델이 GPT-5였습니다.

검증 모델은 오류 검출 능력으로 비교합니다. 이미 검증을 통과한 최근 글 2편에 틀린 문장 12개를 일부러 넣었습니다. 넣은 오류는 숫자 변경(30분 → 3분), 회사 이름 변경, 근거 없는 주장 추가, 과장, 숫자 자리 바꿈(17.3% → 13.7%), 앞뒤가 맞지 않는 숫자 등입니다. 이 오류를 넣은 글로 후보 모델마다 검증을 실행했습니다.

모델 검출한 오류 수정한 정상 문단 글 1편 비용 시간
gpt-5(현재) 12 / 12 14개 중 3개 0.142달러 171초
gpt-6.1-sol 12 / 12 14개 중 13개 0.088달러 63초
gpt-5.6-sol 12 / 12 14개 중 9개 0.190달러 53초
gpt-6.1-sol + 수정 범위 규칙 12 / 12 14개 중 5개 0.085달러 50초
gpt-5.6-sol + 수정 범위 규칙 12 / 12 14개 중 1개 0.185달러 42초
gpt-5.6-terra + 수정 범위 규칙 12 / 12 14개 중 1개 0.092달러 35초
gpt-5.6-luna + 수정 범위 규칙 12 / 12 14개 중 2개 0.009달러 44초

오류 검출 능력은 모든 후보가 같았습니다. 차이는 수정 범위에서 났습니다. 새 모델은 검증 과정에서 오류가 없는 문단까지 다시 썼습니다. gpt-6.1-sol은 정상 문단 14개 가운데 13개를 수정했고, 근거 기사의 내용을 1천 자 넘게 추가했습니다. 추가한 내용은 대부분 사실이었습니다. 그러나 검증을 마친 글은 그대로 발행됩니다. 결국 작성 모델이 쓴 문장과 문체가 검증 모델의 것으로 바뀝니다.

검증 지시문에 수정 범위 규칙을 추가하자 불필요한 수정이 크게 줄었습니다. 규칙의 핵심은 "근거와 맞는 문장은 한 글자도 바꾸지 마세요. 근거에 있는데 초안이 빠뜨린 내용은 본문에 넣지 말고 메모에만 적으세요"입니다. 최종적으로 gpt-5.6-terra를 골랐습니다. 오류를 모두 검출했고, 정상 문단은 한 곳에서 세 글자만 바꿨습니다. 비용은 35% 줄었고 처리 시간은 5분의 1로 줄었습니다.

지식그래프 관계 판정

블로그에서는 기사에 나온 회사·제품 사이의 관계를 추출해 지식그래프로 보여 줍니다. 추출한 관계를 다른 회사의 모델로 한 번 더 판정하는 단계에서도 GPT-5를 쓰고 있었습니다. 이 단계에서는 GPT-5가 이미 판정한 관계 51개에 틀린 관계 6개를 섞은 뒤, 후보 모델마다 다시 판정하게 했습니다.

모델 기존 GPT-5 판정과 일치 틀린 관계 검출 15개당 비용 시간
gpt-5 재실행 46 / 51 6 / 6 0.042달러 58초
gpt-5.6-luna 45 / 51 6 / 6 0.0026달러 19초
gpt-5.6-terra 44 / 51 6 / 6 0.023달러 14초
gpt-5.6-sol 43 / 51 6 / 6 0.048달러 19초

같은 GPT-5도 다시 실행하면 51개 중 5개의 판정이 달라집니다. 그래서 후보 모델의 일치율은 GPT-5를 다시 실행했을 때의 일치율(46/51)과 비교합니다. gpt-5.6-luna는 그 수준에 가깝고 비용은 16분의 1입니다. 로고 데모의 콘셉트 제안 단계에서도 같은 방식으로 브리프 3개를 비교했습니다. gpt-5.6-luna로 바꾸자 비용은 5분의 1, 처리 시간은 절반으로 줄었습니다.

모델 선택의 트레이드오프

항목마다 가장 좋은 모델이 달라서, 비교 결과표만으로는 하나를 고를 수 없습니다. 품질·비용·속도가 모두 가장 좋은 모델은 드뭅니다. 기능마다 우선할 항목도 다릅니다. 이번 교체에서 따진 기준은 다음과 같습니다.

  • 호출량: 하루 호출 횟수에 따라 단가 차이가 실제 비용으로 얼마나 커지는지가 달라집니다. 글 한 편에 한 번 호출하는 단계는 단가가 10배 차이 나도 월 비용 차이가 작습니다.
  • 틀렸을 때의 피해: 결과가 틀리면 누가 얼마나 피해를 보는지 따집니다. 발행 직전의 마지막 검증은 품질을 우선하고, 다른 단계에서 한 번 더 걸러지는 작업은 비용을 우선할 수 있습니다.
  • 기다리는 사람: 사용자가 화면 앞에서 결과를 기다리면 속도가 중요하고, 정해진 시각에 실행되는 배치 작업이면 속도는 덜 중요합니다.
  • 사용 가능 여부: 운영 키로 쓸 수 있는 모델인지 확인합니다. 운영에서 호출할 수 없는 모델은 시험 결과가 가장 좋아도 쓸 수 없습니다.

이 기준으로 기능마다 다음과 같이 선택했습니다.

기능 선택 포기한 것 이유
블로그 표지 gpt-image-2.5-flare gpt-image-2.6-flare의 빠른 생성 속도(13.5초) 2.6-flare는 운영 키로 쓸 수 없었습니다. 비용이 같고 배치 작업이라 10초 차이도 문제가 되지 않습니다
글 사실 검증 gpt-5.6-terra gpt-5.6-luna의 10분의 1 비용 발행 직전의 마지막 단계입니다. 글 한 편에 한 번만 호출하므로 비용 차이가 작습니다. 정상 문단 수정도 가장 적었습니다
관계 판정 gpt-5.6-luna 더 큰 모델(terra·sol) 한 번 실행할 때 관계를 최대 200개까지 15개씩 묶어 여러 번 호출하므로 단가 차이가 크게 쌓입니다. 큰 모델은 일치율도 오히려 낮았습니다
로고 콘셉트 제안 gpt-5.6-luna 기존 gpt-5-mini 방문자가 화면 앞에서 기다리는 데모라 속도를 우선했습니다. 세 브리프 모두 정상 결과가 나왔습니다

시험에서 확인한 점이 하나 더 있습니다. 더 크고 새로운 모델이 모든 기능에서 낫지는 않았습니다. 관계 판정에서는 gpt-5.6-sol의 일치율이 gpt-5.6-luna보다 낮았습니다. 사실 검증에서는 gpt-6.1-sol이 근거에 있는 내용을 덧붙이며 정상 문단을 가장 많이 수정했습니다. 그래서 후보에는 상위 모델과 하위 모델을 함께 넣고, 기능마다 따로 비교합니다.

모델 교체 시 함께 확인할 항목

설정 파일의 모델 이름만 바꿔서는 교체가 끝나지 않습니다. 이번 교체에서 확인한 항목은 다음과 같습니다.

  • 호출 옵션: 새 추론 모델은 일부 호출 옵션 이름이 바뀌었고, 예전 옵션을 보내면 오류를 반환합니다.
  • 옵션 값: GPT-5에서 쓰던 추론 강도 값 중 일부를 새 모델이 지원하지 않습니다. 관리자 테스트 화면에서 이 값을 쓰고 있었습니다.
  • 수정 범위 차이: 앞의 검증 사례처럼 같은 지시문에도 모델마다 수정 범위가 다릅니다. 모델을 바꿀 때 지시문도 함께 고쳐야 할 때가 있습니다.
  • 응답 형식 조건: JSON 응답을 강제하는 옵션은 메시지 안에 "JSON"이라는 단어가 있어야 동작합니다. 지시문을 고칠 때 이 단어가 빠지지 않게 합니다.

따라서 교체 작업에는 실제 코드 경로로 한 번 호출해 확인하는 단계까지 포함해야 합니다.

개발 키와 운영 키의 모델 목록 차이

이번 교체에서 가장 위험했던 일은 개발 키와 운영 키의 모델 목록이 달랐던 것입니다. 비교 시험은 개발용 키로 진행했고, 이미지 모델을 gpt-image-2.6-flare로 바꾸는 코드를 병합했습니다. 운영 배포 직전에 운영 서버의 키로 모델 목록을 조회하자, 그 키에는 gpt-6 계열과 gpt-image-2.6-flare가 없었습니다.

같은 OpenAI 계정이라도 프로젝트마다 쓸 수 있는 모델을 따로 정할 수 있습니다. 개발용 키와 운영 키가 서로 다른 프로젝트에 속해 있으면 사용할 수 있는 모델 목록도 다릅니다. 그대로 배포했다면 다음 주 표지부터 생성이 실패했을 것입니다. 그래서 운영 키로 쓸 수 있는 모델(gpt-5.6 계열, gpt-image-2.5-flare) 중에서 다시 골랐습니다. 배포 전에는 운영 서버 다섯 곳에서 그 키로 목록 조회와 실제 호출을 확인했습니다.

비교 시험은 개발 키로 해도 됩니다. 다만 배포 전에는 운영 키로 모델 목록을 조회하고 한 번 호출해 확인합니다.

코드 관리 원칙

  • 모델 이름은 설정 한 곳에만 둡니다. 이번에 점검한 저장소 중에는 모델 이름이 설정 파일과 코드 기본값 12곳에 흩어진 경우가 있었습니다. 한 곳을 바꿔도 다른 곳에서 이전 모델을 계속 호출합니다.
  • 코드 기본값에 모델 이름을 적지 않습니다. 기본값을 두면 설정이 빠져도 오류가 나지 않고, 이미 종료된 모델을 그대로 호출합니다. 설정이 없으면 바로 실패하게 합니다.
  • 실패를 알림으로 받습니다. 표지 생성이 실패하면 표지 없이 발행하지 않고 운영자에게 알립니다.
  • 호출마다 모델·토큰·비용을 기록합니다. 기록해 두면 교체 뒤 비용이 실제로 줄었는지, 다시 늘지 않는지 확인할 수 있습니다.
  • 종료일 검사를 테스트로 둡니다. 종료일 표를 코드에 두고 30일 전부터 테스트가 실패하게 하면, 공지를 놓쳐도 CI에서 확인할 수 있습니다.

LLM 모델 버전 관리 점검표

flowchart TD
    A["종료일 확인
모델 목록 API · 공지"] --> B["사용처 대조
설정·코드 검색"] B --> C["후보 3~5개
공식 대체·최신 모델"] C --> D["같은 입력으로 비교
품질·비용·시간"] D --> E["코드 경로로 호출
옵션·형식 확인"] E --> F["운영 키로 확인
목록 조회·한 번 호출"] F --> G["배포 후 측정
비용·실패 알림"]
  1. 공급사의 종료 공지와 모델 목록 API의 종료일을 정기적으로 확인합니다.
  2. 종료 예정 모델을 호출하는 곳을 설정·코드에서 모두 찾습니다. 가격표·기록에만 남은 곳은 따로 분류합니다.
  3. 후보를 선정합니다. 공식 대체 모델과 그 이후에 출시된 모델을 함께 놓고 단가를 비교합니다.
  4. 기능마다 실제 입력으로 비교합니다. 이미지는 같은 프롬프트로, 검증은 오류를 넣은 글로, 판정은 기존 판정과의 일치율로 비교합니다.
  5. 바꾼 모델을 실제 코드 경로로 한 번 호출해 호출 옵션과 응답 형식을 확인합니다.
  6. 운영 키로 모델 목록을 조회하고 한 번 호출합니다.
  7. 종료일 한 달 전까지 배포를 마칩니다.
  8. 배포 뒤 비용과 실패 여부를 다시 측정하고, 비교 결과를 이슈에 기록합니다.

자주 묻는 질문

공식 대체 모델로 바꾸면 안전하지 않나요?

공식 대체 모델은 호환성 면에서 무난한 선택입니다. 하지만 이번 사례처럼 단가가 몇 배로 오르기도 하고, 공지 이후 출시된 모델이 더 저렴하면서 품질도 나을 때가 있습니다. 후보에는 넣되, 최종 선택은 비교 시험 결과로 합니다.

비교 시험에 비용이 많이 들지 않나요?

이번 교체에서 이미지 8장, 검증 글 2편, 관계 판정 57개, 로고 브리프 3개를 여러 모델로 몇 차례 실행한 비용은 모두 합쳐 5달러 미만이었습니다. 교체 뒤 줄어드는 비용과 장애 예방 효과에 비하면 작은 금액입니다.

종료일 전에 미리 바꾸면 손해 아닌가요?

새 모델이 더 저렴한 경우가 많아, 대체로 일찍 바꿀수록 유리합니다. 이번 교체에서도 표지 한 장 비용이 5분의 1로 줄었습니다. 무엇보다 종료일 직전에 바꾸다 문제가 생기면 대응할 시간이 없습니다.

정리

API로 쓰는 AI 모델도 소프트웨어 라이브러리처럼 관리해야 합니다. 버전과 지원 기간이 있고, 바꾸면 동작이 달라집니다. 어디서 어떤 모델을 쓰는지 한 곳에 기록하고, 종료일은 자동으로 확인합니다. 교체할 때는 같은 입력으로 비교하고, 운영 환경에서 한 번 더 확인합니다.

이번 교체로 젠아이랩스 블로그의 표지 생성·사실 검증·지식그래프 판정 비용이 줄었습니다. 종료일 테스트도 추가해 다음 종료 공지는 CI에서 먼저 확인할 수 있습니다. 서비스에서 쓰는 AI 모델의 교체 절차와 운영 방식을 점검하려면 AI 도입 컨설팅으로 문의해 주세요.

개발자를 위한 심화

아래는 코드와 호출 옵션 세부 내용입니다.

종료일 조회: 모델 목록 API(GET /v1/models)의 응답에서 shutdown_date가 있는 모델만 날짜순으로 출력합니다. 1

curl -s https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  | jq -r '.data[] | select(.shutdown_date) | "\(.shutdown_date)  \(.id)"' | sort

호출 옵션 변경

항목 이전 모델(GPT-4o 등) 새 추론 모델(gpt-5.6·gpt-6 계열)
최대 출력 길이 max_tokens max_completion_tokens만 지원
temperature 0~2 기본값 1 외에는 오류
top_p 지원 오류
reasoning_effort GPT-5는 minimal 지원 minimal 미지원, none부터

로고 데모는 모델 이름이 gpt-5로 시작할 때만 새 옵션으로 호출하도록 작성돼 있었습니다. gpt-6 계열로 이름만 바꿨다면 바로 400 오류가 났을 것입니다. 모델 계열을 판별하는 함수를 한 곳에 두고, 새 계열이 나오면 그 함수만 고치도록 정리했습니다.

코드 기본값 예시: config.get('model', 'gpt-image-1.5')처럼 기본값을 두면 설정이 빠진 경우 종료된 모델을 호출합니다. config['model']로 읽어 설정이 없으면 기동 단계에서 실패하게 합니다.

JSON 응답 강제: response_format={"type": "json_object"}를 쓰면 메시지 어딘가에 "json"이라는 단어가 있어야 합니다. 없으면 요청 단계에서 오류를 반환합니다.


글쓴이 박수현(젠아이랩스 대표) with AI (Claude Opus 5.5). 모델 교체 방침과 이 글의 관점은 필자가 정했고, 비교 시험 설계와 실행, 근거 자료 조사, 문장 정리는 Claude Opus 5.5와 함께했습니다. 인용한 종료일·단가는 OpenAI 공식 문서와 대조했고, 비교 수치는 2026년 11월 7일 직접 측정한 값입니다.

출처

  1. Deprecations
  2. Pricing
  3. GPT Image 2.5 Flare
  4. GPT Image 1.5
뉴스레터로 매주 받아보기 기술 블로그 목록