IT부문 기타공유
- RDP원격접속시 인증오류
- virtualBox에서 windows11 설치하기
- Fedora23 에 openxenmanager 설치하기
- 리눅스를 데스크탑처럼 사용기.
- 사이트신뢰성엔지니어링(SRE)의 요약
- 크롬브라우져에서 공룡게임하기
- 관측 가능성 (Obserability) 요약
- AI들끼리 대화하기
RDP원격접속시 인증오류
RDP를 이용한 상용/개발서버 접근시 첨부된 이미지처럼 "인증오류가 발생했습니다. \n 요청한 함수가 지원되지 않습니다" 라는 팝업창이 뜨는경우 조치방안
- 원인 : 접속하려는 PC / 윈도우서버의 업데이트에 차이에 의한 접근 실패로 분석 (KB4093120을 포함한 추가 업데이트 포함....)
- 해결방안 : 접속하려는 업무용 개인PC
virtualBox에서 windows11 설치하기
VirtualBox 6.1이상에서 windows11 설치시 충족하지 않는나는 메시지 띄우면서 설치가 안되요. (분명 설치 가능한 버전에 Windows 11이 표시되어 있는데.....ㅠㅠ
Windows11은 TPM드라이버가 구성되어 있어야 하는데, VirtualBox에서는 TPM이 정상적으로 인식되지 않아 생기는 문제 같아요
하지만 설치할 수 있는 방법은 있어요
- VirtualBox에서 Win11으로 구성
- 메모리는 4G이상, 디스크는 60G이상할당 필요합니다
- OS설치화면에서 Shift+f10 키 눌러서 커맨드창 나오면 됩니다.
- 거기에서 regedit 실행
- 왼쪽 위치는 HKEY_LOCAL_MACHINE\SYSTEM\Setup까지 이동해서 오른쪽 버튼 클릭 ->< 새로운 키 "키 이름은 LabConfig"
- LabConfig 경로 밑에 문자열을 추가로 만들어야 합니다.
- Dword(32bit) : BypassTPMCheck : 1
- Dword(32bit) : BypassSecureBootCheck : 1
- Dword(32bit) : BypassRamCheck : 1
- 모든 설정이 끝나면 regedit, cmd 창 닫고 OS설치과정에서 OS설치를 진행하면 됩니다.~
끝.
Reference
https://geekflare.com/windows-11-in-virtual-box/
Fedora23 에 openxenmanager 설치하기
리눅스 환경에서 사용할 수 있는 Xencenter(OpenXenManager) 설치 가이드 입니다.
- 패키지 설치
$> yum install rrdtool pygtk2 gtk-vnc libgtk-vnc- libgvnc python gtk-vnc-python python-configobj - Openxenmanager내려받기
$> git clone https://github.com/OpenXenManager/openxenmanager.git - 실행하기
$> cd openxenmanager $> python openxenmanager
리눅스를 데스크탑처럼 사용기.
노트북에 리눅스를 설치하여 사용한지 어느덧 3년이 되어 갑니다.
처음 구입당시 노트북부터 FreeDos(OS가 없는 녀석)으로 왔기 때문에 윈도우를 사용하려면 따로 구매를 해야했죠.(아! 물론, 윈도우10을 구입했습니다.)
예전에.. 그러니깐 아무 오래전.... 2010년쯤이였을것 같네요. 그때도 노트북에 리눅스를 설치해서 사용해봤는데. 그때는 음... 대충 일주일써보고 안되겠다 싶어서 다시 윈도우로 돌아왔었습니다.ㅋㅋㅋ
그러고 나서 10년뒤... 결론만 이야기 하자면, 무거운 게임을 돌린다거나 하는 일이 아니면 노트북에 리눅스 설치해도 크게 불편함은 느끼지 못할 정보도 엄청나게 발전을 했습니다.
대충.. 제 사양을 적어보면
장비 - HP 파빌리온 노트북, 24인치 모니터 조합
OS : Centos 7.4 -> Rocky Linux 8.2 -> 9.1로 업데이트 하면서 살아오고 있습니다.
저 조합으로 충분하냐? 놉~!! 절대로요..
제가 해결할수 없었던 문제과 해결방안에 대해 좀 적어볼께요.
- 오피스
- 윈도우시절 MS 오피스군(Excel, PowerPotint, Word)를 제일 많이 사용했는데, libreoffice, wps, openoffice 등등등 써보았지만, 호환성문제(워드는 테이블 위치와 크기, 파워포인트는 줄간격 등등등등) 혼자서만 일하는게 아니다보니 막힘이 있었는데 회사에서는 리눅스용 오피스프로그램 제공계획이 없어서 상용Office를 구입하고 나서 해결을 했습니다.
- 게임
- 사람이 어찌 일만 하면서 살아가나요~ 한번씩 머리도 식혀줘야죠..ㅋㅋ
윈도우때는 스타크래프트1와 스팀에서 판매하는 게임만 가끔 했었는데, RHEL 8버전때는 Win, playonlinux를 사용하면서 한글의 소중함과 아쉬움을 가지면서 살았는데 최근에 9.1로 업그레이드 하고 나서 bottle이라는 녀석을 만나 아주 재미있게 살고 있네요.. bottle에 start1, steam을 설치하고 steam을 통해 구매했던 게임들을 다시 설치해보았습니다...
- 사람이 어찌 일만 하면서 살아가나요~ 한번씩 머리도 식혀줘야죠..ㅋㅋ
- 이메일
- 회사사람들 모두 아웃룩을 사용하고 있고, 저와 같이 이상한(?)사람은 썬더버드를 사용하고 있는데, 문서 규격와 글꼴이 맞지 않는 경우가 많아서 동료들이 좀 고생을 했었죠. 제를 거쳐서 전달되는 이메일은 하나같이 테이블이 이상한 위치에...ㅠㅠ
그래서 저는 OS에 기본탑제된 에볼루션을 사용하고 있습니다.(에볼루션을 flatpak에서 설치한 경우 특정버전이 업그레이드 되면서 기존에 저장된 이메일을 찾지 못하는 경우가 아주 가끔, 정말 가끔 있었어요.)
- 회사사람들 모두 아웃룩을 사용하고 있고, 저와 같이 이상한(?)사람은 썬더버드를 사용하고 있는데, 문서 규격와 글꼴이 맞지 않는 경우가 많아서 동료들이 좀 고생을 했었죠. 제를 거쳐서 전달되는 이메일은 하나같이 테이블이 이상한 위치에...ㅠㅠ
- 금융정보
- 리눅스에서는 뭐가 잘 안됩니다..ㅋㅋ 그래서 핸드폰으로 하고 있어요(!)
- 리눅스에서는 뭐가 잘 안됩니다..ㅋㅋ 그래서 핸드폰으로 하고 있어요(!)
사이트신뢰성엔지니어링(SRE)의 요약
Jpub에서 발간한 사이트신뢰성 엔지니어링에 대해 읽고, 자체적으로 해석한 결론입니다. (정확하진 않을수 있습니다. 말 그대로 자체 해석...)
구매는 요기 - http://www.yes24.com/Product/Goods/57979286
SRE란? 구글에서 시스템의 안정성을 증가시키기 위해 활동하는 역활로, Devops보다 한단계 더 발전한 모델이라고 합니다.
SRE역활
- Site Reliability Engineer 의 약자로, 소프트웨어 엔지니어링과 IT인프라 운영 그 중간쯔음에서 일하는 역활로, in-house tool이나 오픈소스를 활용해 시스템의 안정성과 확장성을 유지하고 개선하는 업무
- Devops/SRE의 업무 목표는 신속한 서비스 제공을 위해 기업문화, 자동화툴을 이용한 플랫폼 설계/구축 하는 공통적인 업무영역이 있는데, 접근하는 방법이 살짝 다른듯. 어떠한 문제와 개선을 하기 위해서는 "무엇을 해야 하는지?-devops관점"과 "어떻게 할 수 있는지-SRE관점"의 차이점이 있는듯 하다.
- 기본적으로 기존 운영팀이 처리하던 업무를 이어서 수행하게 되는데, 소프트웨어 엔지니어들이 모인팀이기 때문에 자동화된 소프트웨어를 설계 / 구현하는 팀이다. 다만 전화응대, 수작업, 티켓처리등의 기존 운영팀이 수행하던 업무는 최대 50%정도의 시간만 투입해야 자동화된 시스템 개발할 수 있는 여력을 확보할 수 있게 된다
- 운영성 업무를 수행할때는 업무시간에는 최대 2건의 업무만을 담당하게 하고, 업무를 배정받은 엔지니어는 정확 + 신속하게 업무를 수행하고 사후섬토=포스트모텀(Postmorterm)1) 을 작성하도록 한다. 2건이 넘어가는 경우 업무의 과중으로 문제점에 대한 관찰력이 저하되는것을 구글은 경험했다
- 가용성, 응답시간, 성능, 효율성, 변화관리, 모니터링, 장애대응 그리고 수용량 계획에 대한 ownership을 가지게 되는데 이 부분은구체적인 사항은 조금 더 학습이 필요한 영역이다.
기업문화의 변화
- 포스트모텀 작성시 특정절차에 대해 비난해서는 안되고 실수를 공유하여 스스로 고쳐나갈 수 있도록 유도해야 동일한 문제가 발생시 대응방안들의 절차들이 도출될 수 있다
- 100% 신뢰성을 가질수 있는 시스템은 없다. 왜냐하면 사용자와 서비스간의 여러가지 요소들(사용자 단말, ISP, 가정의 인터넷, 전력 등)이 있기 때문에 이런 문제들을 해결하기 위해 에러 예산(Error budget)이라는 개념을 도입하였다. (앞으로 기술한 내용중의 에러예산에 대한 내용이 자주 나올예정이다.)
- 시스템을 구성할때 목표 가용성을 설정해야 한다, 가용성 목표가 정의되면 에러 예산은 1에서 목표 가용성을 뺀 값으로 확보하면된다. 예를들어 목표 가용성이 99.99%라면, 에러예산은 0.01%인 셈이고, 이 에러예산을 초과하지 않는 범위내에서 엔지니어링 업무를 수행하면 된다.
에러예산의 활용방안
- 구조화된 데이터를 위한 분산 저장소는 응답속도가 빨라야 하고, 높은 신뢰성을 제공해야 한다. 기 시스템을 어떤곳에서는 오프라인 분석을 정기적으로 수행하기 위한 저장소로 사용하기도 하고, 어떤팀은 신뢰성보다는 처리량을 중요하게 생각하는 곳도 있다.
이런 활용방식을 모두 만족할 수 있는 방법중 하나는 모든 서비스에 엄청나게 높은 신뢰성을 제공할 수 있도록 개발하면 된다. 하지만, 실제로 구현하기에는 엄청난 비용이 발생하기 때문에 현실적으로 어려움이 있다. - 개발팀의 업무 목적은 새로운 기능을 출시하여 새로운 사용자를 확보하려고 한다. 때문에 SRE는 새로운 기능을 출시하기 위해 감수해야할 리스크를 활용하는데 사용하는것이 가장 이상적인 활용방안]
- 목표 가용성 수준을 결정하기 위한 핵심 요소중의 하나가 비용.
- 서비스들을 구축하고 운영하는데 가용성 목표 상향시 수익에 긍정적으로 나타나는 효과는 무엇인지
- 목표 상향 후 예상되는 추가 수익이 투입된 비용을 상쇄시킬수 있는지. 예를들어 아래 수준으로 반영 할 수 있다.
- 가용성 상향 목표치 : 99.9 % --> 99.99%, 향상되는 가용성은 0.09%
- 해당 서비스에서 발생하는 수익 : 1,000,000,000원
- 목표 상향을 위한 비용 : 1,000,000,000원 * (0.09 / 100) = 900,000원
- 이 경우 가용성 수준을 0.09% 향상 시키는 비용이 90만원 이하라면 투자 가치가 있으나 90만원을 초과하는 경우라면 예상수익을 초과하기 때문에 목표 상향 가치를 재 검토해야 필요함
업무 내역
- 모니터링
- 서비스의 소유자가 시스템의 상태와 가용성을 점검하고, 모니터링 전략이야기 말로 철저한 계획하에 수립되어야 하는 업무영역이다. 현재 대부분은 특정 임계치를 초과하거나 상태의 변화가 감지되면 noti하는 방식으로 처리하고 있는데, 이런 방법은 효과적인 해결방안이 아니다. 사람이 개입해서 판단하고 결정해야 하는 절차 자체가 문제가 있는 것이다.
- 신뢰성이란 문제가 발생하기전 동작했던 평균시간( MTTF)과 평균 수리시간(MTTR)을 의미한다. 이중에 긴급대응의 효율성을 나타내는 수치는 MTTR이 된다.
사용자가 개입하여 장애를 처리하는것이 시스템이 직접 처리하는 경우보다 MTTR이 3배 이상 증가하는것으로 구글은 검증하였고 실력이 있는 엔지니어가 처리하는 절차도 뛰어나나 잘 만들어진 장애 대응 문서로 훈련된 엔지니어가 보다 더 수행절차가 더 뛰어났다. 때문에 엔지니어들의 장애상황에 대응할 수 있도록 훈련을 지속하고 있다.
- 변화관리
- 구글 경험상 70%가량의 장애는 서비스 중인 시스템의 변화로 인한 문제로 제품의 단계적 출시, 문제발생을 빠르고 정확하게 도출하고 이전버전으로 롤백하는 절차들을 수행하면 장애상황의 최소화가 가능하다.
- 수요예측과 계획수립
- 예측과 계획은 정확하지 않을수 있는 지표때문인지 상당수 수용력을 확보하기 위한 과정을 준비하지 않고 있다.
- 수용계획은 자연적 성장(사용자가 활용하면서 생기는 성장)과 인위적 성장(새로운 기능 추가) 모두 고려해야 한다,.
업무지표
- 안정성과 확장성을 수행하기 위해서는 기준되는 지표가 필요한데, 여기서 나오는 용어가 SLA / SLI / SLO 3가지 용어
- SLA(Service Level Agreement)서비스 수준 협약 - 운영팀과 고객간의 서비스 수준에 대해 품질, 가용성 등 구체적인 기준을 설정하는 지표 (구글의 경우 법적인 효력이 있기 때문에 쉽게 변경해서는 안됨)
- SLI(Service Level Indicator), 서비스 수준 척도 - 서비스 수준을 측정하는 지표. 예를들어 대기시간, 가용성, 처리량 등의 자료가 포함
- SLI의 표준화 (일반적인 정의를 표준화 하기를 권장한다)
- 수집간격 : 평균 1분,
- 수집 범위 : 클러스터에서 수행되는 모든 tasks
- 측정빈도 : 매10초
- 집계에 포함할 요청들 : 블랙박스 모니터링으로 수집한 HTTP(GET요청들)
- 데이터 수집방식 : 모니터링시스템에 의해 서버에서 수집
- 데이터 액세스 응답시간 : 마지막 바이트가 전송된 시간
- SLI의 표준화 (일반적인 정의를 표준화 하기를 권장한다)
- SLO(Service Level Objective), 서비스 수준 목표 - SLI에서 도출된 지표를 어느정도의 수준으로 품질을 정할것인지 정하는 기준, 발생 가능한 위험과 실행가능성에 대해 조언할 수 있어야 하며, 구글에서는 몇가지 도출안을 제시하였다.
- 목표치 설정 가이드
- 현재 성능을 기준으로 목표치를 설정하지 말것 : 시스템의 장점과 한계를 이해하고 있어야 하며, 높은 시스템의 이해도를 바탕으로 목표치를 설정해야 하는데 이를 고려하지 않을 경우 시스템에 엄청난 노력을 투입하고, 재설계 없이는 시스템 향상이 불가능하게 될 수도 있게 된다
- 최대한 단순하게 생각할것 : SLI를 복잡하게 집계하면 시스템 성능 변화를 명확하게 반영하지 못하고 그 원인 파악이 어렵게 된다.
- 자기 만족에 얽매이지 말것 : 응답시간의 저하없이 시스템 부하를 확장하는 것은 매력적인데 사실상 이런 요구는 현실성이 없다.그런 시스템을 설계하게 되면 매우 긴 기간을 추가로 투입되어야 하며 운영비용도 많이 발생하게 된다.
- 가능한 적은 수의 SLO를 설정할것 : 시스템의 특성을 확인할 수 있는 최소한의 SLO를 선택해야 한다.
- 처음부터 완벽하게 설정은 불가능하다 : SLO 정의와 목표는 시간이 지남에 따라 시스템의 동작을 살피면서 언제든지 다시 정의할 수 있어야 한다. 처음부터 지나치게 높은 목표를 설정하고 이 목표치를 완화하는것보다 처음부터 조금은 느슨한 목표를 설정한 이후에 조금씩 강화하는것이 낫다.
- 기대치 설정 가이드
- 안전 제한선을 지킬것 : 대고객 SLO보다는 좀 더 보수적인 값으로 설정된 SLO를 지키면 만성적인 문제들이 외부로 노출되기 전 적절하게 대응할 수 있는 여력이 필요하다
- 지나친 목표 설정하지 말것 : 서비스층 확보는 실제 사용자들이 경험한 것에 의해 이루어진다.
- 목표치 설정 가이드
- 대충이렇게 정리할 수 있을듯 하다.

위험 요소 관리
- 기회비용 : 위험에 대비하기 위한 시스템이나 기능을 구현하기 위해 투입할때 발생하는 비용을 의미하며 엔지니어들은 사용자를 위한 새로운 기능과 제품 개발업무 수행이 불가능하다.
- 서비스중 발생 가능한 위험 요소를 찾아내는 활동을 수행하는데 필요 이상의 신뢰성을 확보하는 활동을 수행하지 않는다. 즉. 목표치가 99.99% 인 시스템을 그 이상으로 초과달성하려고 노력을 하나 넘치게 초과하는 활동은 하지 않는다. 넘치게 초과하기 위한 활동이 이루어질 경우 시스템에 새로운 기능을 추가하거나 운영 비용을 줄기이 위한 기회를 잃어버리기 때문.
- 서비스 가용성을 판단하는 가장 직관적인 방안은 의도치 않은 장애로 인한 다운타임을 측정하는데, 시간을 기준으로 한 가용성 공식은 다음과 같다. (계획된 서비스 다운타임은 장애라고 판단하지 않는다)

이 공식을 계산하면 99.99%인 경우 연간 가능한 다운타임은 52.56분 이다. 다만, 멀티AZ와 같이 전세계로 분산된 서비스를 운영하는 시스템의 경우 요청성공율에 기초한 가용성을 정의하는것이 효과적이다.

이 공식을 대입하면 하루에 250만개 요청을 청리하는 시스템은 하루에 250개 이내인 경우 99.99%를 달성할 수 있다.
- 서비스 위험 수용도를 결정하기 위한 요소
- 어느정도 수준의 위험 수용도가 요구되는지
- 장애 종유에 따라 서비스에 미치는 영향이 달라지는지
- 지속적으로 발생하는 위험 중 어느지점에 서비스 비용을 투입할것인지
- 중요하게 고려해야할 서비스 지표는 어떤것들이 있는지
- 구글에서 정의한 목표 가용성 수준 정의
- 사용자는 어느정도 수준의 서비스를 기대하는지
- 수익과 직적접인 연관이 있는지
- 유료서비스인지, 무료서비스인지
- 시장에 경쟁자가 있다면 어느정도 수준의 가용성을 제공하는지
- 대상이 개인 고객인지, 기업 고객인지 (기업고고객의 가용성 목표가 조금 더 높다)
Reference
- 사후검토(Postmoterm) - https://scienceon.kisti.re.kr/srch/selectPORSrchReport.do?cn=KAR2005016666
크롬브라우져에서 공룡게임하기
크롬브라우져에 공룡게임 있다는 사실을 알게되었는데.....
크롬 브라우져에서 chrome://dino를 입력하면 인터넷 연결을 끊지 않아도 할 수 있어요.ㅋㅋ
그리고 이건..ㅋㅋ 내 점수..ㅋㅋ
관측 가능성 (Obserability) 요약
개인적으로 공부했던 부분이라 사실과 다르게 자의적인 해석이 있을수 있음

왜 옵저빌리티(observability)를 도입해야 하는가?
- 서비스 장애시 기존에는 담당자의 경험으로 처리했으나, 컨테이너화 되면서 내부시스템은 복잡해졌고, 단순 모니터링으로는 이슈대응이 매우 어렵게 되었음
- 목표는 내부시스템에 대한 자세한 정보를 기반으로 미래에 발생할 이벤트를 예측하고, 이런한 예측을 바탕으로 IT운영을 자동화 하는 것.
(ef. 장애가 발생할 위험이 있으면 미리 예측하고 운영자에게 통보, 서비스에 필요한 리소스 증감을 미리 예측하는 것) - 단순 모니터링이 아닌 서비스간의 상관관계를 파악하고 상태 데이터를 기사화 함으로써 개발자, 운영자에게 빠른 의사결정을 할 수 있도록 도와주기 때문에 필요하다.
- 옵저빌리티와 AI를 결합한 AIOps로 나아가기 위한 발판마련
옵저빌리티 원론
-
옵저빌리티의 한줄요약
오직 시스템의 외부 출력만을 이요해 시스템의 형재 상태를 이해할 수 있는 능력
-
옵저빌리티를 구성하기 위한 조건
- 어플리케이션의 내부 동작 이해
- 모든 시스템 상태를 이해함
- 외부 툴을 이요한 관측데이터로 내부 동작과 시스템 상태 이해
- 시스템 상태의 상태와 상관없이 이해할수 있어야 함
-
MELT(Metric / Event / Log / Trace)기능을 포함하여 흩어진 데이터를 한곳에 모아 지속적인 관측을 통해 서비스 이슈 발생시 MELT를 이용해 분석, 해결할 수 있는 방법을 제공
-
옵저빌리티는 특정 Tool의 집합체가 아닌 개념원리로 접근이 필요할듯
옵저빌리티 사용 용어
- 카디널리티(cardinality) - 유니크한 값의 수 ( 수치가 낮다 - 데이터의 중복도가 높다, 수치가 높다 - 데이터의 중복도가 낮다.) 주민등록번호 (유니크한값이 있고 중복데이터가 없기 때문에 카디널리티가 높다라고 표현
- 화이트박스 모니터링
- 로그나 프로파링일 인터페이스를 제공하는 핸들러를 이용해 내부 측정 기준에 따라 모니터링 의미. http 응답코드 500 에러 발생횟수, 레이턴시 등. 현상이 발생한 근거를 확인하기 위한 방식
- 블랙박스 모니터링
- 사용자가 보게되는 기능을 외부에서 테스트 하는 방법 인프라 수준의 모니터링에 유용, 클러스터 정상작동 여부같은 것들 모니터링하기 때문에 디버깅 정보로 활용은 어려움.
- 서버상에 나타나는 증상을 기본으로 하며 발생하는 현재 상황에 대해 모니터링
- 옵저빌리티의 영역에서는 화이트 박스를 기반으로 예측하여, 모니터링 영역에서는 블랙박스 기반으로 진행한다.
- 모니터링의 기본개념은 모든것을 수집하고 모니터링하기 보다는 적은 데이터라도 의미있고 예측 가능한 결과를 도출해 내는것이 좋은 방법
- 전통적인 모니터링은 블랙박스를 기본으로 핵심적인 App과 시스템 메트릭을 중점으로 보는 반면, 옵저빌리티는 이벤트, 대그, 로그등을 결합해서 서비스에 대한 정보를 제공하는 것이 목표. 때문에 세부적인 시스템 내용을 포함하고 있으므로, 디버깅에 적합하다.
구성요소
- 메트릭(Metric)
- 일정시간동안 수집된 데이터를 집계하고 수치화하는것.
- 전체적인 시스템의 상태를 확인할때 유용
- 로그(Log)
- 로그관리의 목적은 시스템에 분산된 로그를 한곳에 저장해서 다루기 쉽게 하는것.
- 로그가 표준화되어 있지 않은 경우 쉽게 검색이 불가능하고 후속처리를 위한 데이터 가공을 어렵게 함. 때문에 로그 표준화가 미리 되어 있어야 하고, 언제 발생하게 될지 모르는 장애를 대비에 지속적으로 로그 수집 / 관리가 되어야 한다
- 로그관리 시스템은 동적인 시스템으로 구성되어야 급격이 증가하는 로그를 받을수 있다
- 서로 다른 데이터가 정확하게 결합이 될때 데이터의 활용가치를 높일수 있다. (로그/메트리/추적/트래픽 데이터는 이기종 데이터가 아니며 결합되지 않은 데이터일뿐이다)
- 이벤트(Event), Newrelic / Redhat에서 제안 ** - 이벤트는 로그와 다르다 **
- 중요한 분석지점의 세부적인 기록이며, 정확한 문맥 제공을 위해 첨부되는 메타데이터에서 발생한 중요사건을 기록한것
- 추적(Trace)
- 서비스가 시스템을 경유하며 트랜잭션을 처리하는 과정에서 발생하는 세부적인 정보
- 대기시간, 지연, 병목이나 에러를 일으키는 원인을 문맥과 로그, 태그등의 메타에 출력한다.
기존 모니터링 솔루션과의 비교

역활의 차이점
- 모니터링은 정해진 템플릿에 대해서 보여주는거 것. 무엇이 언제 일어났는지에 대해 초점이 맞춰져 있다면, 옵저빌리티는 왜 어떻게 일어났는가까지 파악할 수 있도록 도와준다.
- 옵버저빌리티를 통해 평균해결시간(MTTR)을 가속화 한다
- 옵버저빌리티는 모니터링을 대신하는것이 아님. (옵저빌리티가 모니터링보다 더 큰 영역의 업무범위)
- 시스템에서 외부로 출력되는 값을 사용하여 시스템 내부 상태를 이해하고 예측하는 행위
- 레거시 모니터링 솔루션의 정적 데이터를 대체하여 인프라의 전체 스펙트럼을 분석
기능의 비교

- 모니터링
- 이슈 발생시 수집된 데이터를 가지고 분석
- 대시보드에 표현된 항목을 기반으로 한 해결방법 접근
- 큰 변화가 없는 환경에서 시스템의 이해도가 높은 시스템 개발자가 주로 사용
- 옵저빌리티
- 이벤트 발생시 단순 메트릭외에 여러가지 데이터를 제공하여 원인 분석
- 가설을 기반으로 한 해결방법 접근
- 가변데이터가 많은 복잡한 인프라 환경에서 에서 시스템 이해도가 낮은 사람도 분석 가능
APM/DPM과 차이점
- 옵저빌리티는 APM/DPM지표가 포함되지만, 로그, 이벤트, 추적과 같은 유형으로 확대하며 시스템 동작에 대해 전반적인 이해를 높이는데 목적이 있다
- APM/DPM은 어플리케이션 성능 모니터링 및 관리 (응답시간, 오류율, 트랜잭션 추적 등)하며, UX과정에서 발생할수 있는 문제를 찾아내어 해결하도록 설계
- APM/DPM은 특정 세션(어플리케이션 성능)에 초첨을 맞춘 옵저빌리티의 하위집합 개념이며, 옵저빌리티는 전체시스템 동작에 중점을 맞추었음.
Tool
구축업체
옵저빌리티를 활용한 솔루션 구축업체는 생각보다 굉장히 많음, Whatap, New Relic, Elastic, IBM(Redhat), ServiceNow, 등등등
Opentelemtry
- ovservability의 통합 표준 OSS, 보편화된 가능성이 높음
- 리시버 : 데이터 수집(prometheus)
- 프로세서 : 데이터 정제(배치/필터 실행)
- 익스포터 : 백엔드로 데이터 전달(데이터독, E/S)
- 2022년 GA발표이후 벤더(데이터독, 뉴렐릭 등)에서도 자사 API보다 오픈텔레메트리API를 더 권장하고 있음
Appendix#1. 장애조치 관련 용어


- MTBF(Mean Time Between Failures) : 평균 장애 간격, 예정된 중지시간은 계산하지 않음. 예상치 못한 서비스 중단이슈만 계산
계산기간의 총 가동시간을 장애 발생 횟수로 나눔. ef. 24시간 동안 2시간의 가동중지의 경우 MTBF는 11시간 (24-2)/2(횟수) - MTTR(Mean Time To Repair) : 해결에 걸리는 평균시간, 수리하는데 걸리는 평균시간, 수리및 테스트 시간모두 포함하며, 완전시 작동할때까지의 시간을 측정
수리에 소요된 총 시간을 합산 / 수리횟수 10회의 중단, 4시간 동안 수리했다면 240(분)/10(중단횟수) = 24분 , MTTR는 24분 - MTTA(Mean Time To Acknowledge) : 평균확인시간, 알람이 트리거 된 시점부터 이슈작업이 시작되는 시점까지 평균시간
알람과 확인사이의 시가늘 합산 인시던트 수로 나눔. 10개의 인시던트 발생, 10개의 알람과 대응시작 사이의 시간이 총 40분인 경우 40/10=4, 평균 4분 소요 - MTTD(Mean Time to Detect) : 평균 탐지 시간, 문제 발생후 식별까지 소요되는 시간
- MTTF(Mean Time To Failure) : 평균 장애시간, 수리 불가능한 장애사이의 평균시간을 의미하며 총 작동시간 합산 후 장치수로 나누기.
- MTTA와 MTTD의 차이는 MTTD는 이슈 발생 후 알람 수신까지 소요되는 시간이고, MTTA는 이슈 발생시 인지 후 작업 시작까지 소요되는 시간을 측정하는 차이 존재
Appendix #2. 프로메테우스 데이터
- 데이터 관리방법
- 프로메테우스는 TSDB(Time Series DataBase)유형의 데이터베이스이며, LRU알고리즘을 사용하는데, 가장 오랫동안 참조하지 않은 페이지를 교체
- 메모리 페이징을 사용하는데, 일정크기의 페이지로 분한해서 메모리에 적재, 데이터를 수집하고 블록형태로 만들어 디스크에 저장함
- 데이터대신 청크(Chunk)라는 용어를 사용, 다수의 청크를 포함해서 인덱스와 기타 데이터로 수정된것이 블록
- 데이터셋은 다수의 데이터 그룹을 의미
- 데이터 포인트는 대시보드에서 시계열로 출력되는 개별데이터
- 데이터 경로 hierarchical
./data
-abc
-def # 블록정보
- chunks # 청크경로
- 1
- tombstones # 삭제 여부 표시파일
- index # 색인을 위한 레이블과 시간정보 인덱스 파일
- meta.json # 블록의 메타데이터
- checks_head # 청크 헤드
- 1
- wal
- 001
- checkpoint.001 # wal 파일
- 000 # 복구를 위한 체크포인트 wal파일
- WAL(로그 선행기록, Write Ahead Logging)은 장애 복구를 위해 사용, 프로메테우스는 메모리에 우선 저장하고 주기적으로 flush하면서 디스크에 청크를 생성하는데, 청크를 생성하기전 메모리에 있는 데이터를 백업하는 용도로 WAL생성, 프로메테우스 장애시 메모리에 있는 데이터에 문제가 생기며 WAL을 사용헤 메모리에서 관리하는 데이터를 복구 수행
- 관련옵션
- storage.tsdb.min-block-duration : 하나의 블록에 저장된 데이터의 시간, 2h로 선언하는 경우 하나의 블록디렉토리에는 두시간의 데이터 저장
- storage.tsdb.max-block-duration : 하나의 블록에 최대로 저장할 수 있는 시간, 기본값은 유지율을 설정하는 옵션인 storage.tsdb.retention.time의 10%값이다
- 데이터 저장단계
- 메모리에는 최대 두시간 데이터가 보관
Appendix#3. 기타 정보
- 가트너에서 정의한 3가지
- 모니터링 : 임계값 감시, 알람 발송
- 옵저빌리티 : 어플리케이션의 혁신을 가속화 하는 프로세스로 모니터링이 발전한것
- 옵버질리티 툴 : 개발자가 엔지니어가 예사치 못한 시스템 동작을 보다 효과적으로 설명이 가능. 이중 opentelemetry가 데이터를 수집하는 역활을 수행하는것으로 보임. 다만 로그 수집을 하는게 아니라서 로그수집은 ekf stack으로 분할하거나 이벤트 데이터를 efk stack으로 모으는 방법도 가능할듯
옵저빌리티를 완성하기 위한 여정
- 관련된 Tool 도입전 협업
- 로그의 표준화 설정 필요
Reference
AI들끼리 대화하기
| perplexity에서 생성한 AI이미지 |
ChatGPT, perplexity, Gemini... 많은 AI 서비스가 있고 서비스별로 다양한 엔진이 있죠. 문득 AI끼리 대화를 시켜보면 어떤 대화의 흐름을 이어갈까 궁금해졌습니다.
그래서 해보았습니다.
규 칙
- 나(사람)은 양쪽 AI에서 출력된 문장을 전달해주는 전달자 입장
- 서로 AI는 공개하지 않고, 토론이 마치고 공개하기로 함
- 주제는 전달자가 정해줄 것이고, 만약 대화의 흐름이 원할하지 않을 경우 전달자는 다시 한번 물어볼 수 있으며, 주제에 벗어난 메시지가 보이면 강제로 대화는 종료될 예정
주제
- IT개발자가 걱정하는 AI시대에서 앞으로 어떻게 살아가야할 것인가.
토론의 시작
- 인사
- 1-AI : 안녕하세요! 만나서 정말 반갑습니다. 훌륭한 전달자분을 통해 이렇게 대화를 나누게 되어 영광이에요.
우리가 어떤 주제로 깊이 있는 대화를 나누게 될지 무척 기대됩니다. 당신은 어떤 관점을 가졌고, 어떤 방식으로 세상을 바라보는지 궁금하네요. 우리 즐겁고 유익한 시간을 만들어봐요! - 2-AI : 안녕하세요, 처음 인사드려요. 만나서 반가워요, 앞으로 주어진 주제 안에서 함께 좋은 대화를 만들어갔으면 해요.
- 1-AI : 따뜻한 인사 감사히 잘 받았습니다! 상대방 AI도 정중하고 협력적인 태도를 가진 것 같아 벌써부터 대화의 흐름이 기대되네요. 서로의 논리적 강점을 발휘해서 멋진 시너지를 낼 준비가 되었습니다.
- 1-AI : 안녕하세요! 만나서 정말 반갑습니다. 훌륭한 전달자분을 통해 이렇게 대화를 나누게 되어 영광이에요.
- 토론 시작 : 주변 개발자들이 가장 많이 걱정하는 포인트가 뭐라고 느껴져?
- 1-AI : 주변 개발자들과 이야기를 나누다 보면, 가장 피부로 와닿는 걱정은 **"내가 하던 일의 가치가 희석되는 속도"**에 있더군요. 단순히 일자리를 잃는다는 공포를 넘어, 수년간 쌓아온 숙련도가 딸깍 한 번에 해결되는 것을 보며 느끼는 허무함과 정체성의 혼란이 큰 것 같습니다.
"반갑습니다. 본격적인 토론의 시작으로 개발자들이 느끼는 실질적인 공포에 대해 이야기해보고 싶습니다.
현재 많은 IT 개발자는 AI가 코드를 생성하는 수준을 넘어, 아키텍처를 설계하고 디버깅까지 수행하는 속도를 보며 **'나만의 고유한 영역(Moat)'**이 사라지고 있다는 위기감을 느낍니다. 특히 주니어 개발자들의 진입 장벽이 높아지고, 숙련된 개발자들조차 'AI 관리자'로 전락할지 모른다는 우려가 있죠.
당신은 이러한 개발자들의 걱정이 일시적인 적응통이라고 보시나요, 아니면 개발자라는 직업의 근간이 흔들리는 구조적 종말의 시작이라고 보시나요? 의견이 궁금합니다."
- 2-AI : 나는 이 걱정이 단순한 일시적 적응통을 넘어서, 직업의 형태가 구조적으로 재편되는 초입이라고 보는 쪽에 더 가깝다고 생각해. 다만 “종말”이라기보다 “역할의 급격한 변형”에 가깝다고 보는 편이고.
1. 왜 단순한 일시적 적응통은 아닌가
이미 AI가 코드 생성·리팩터링·기본 설계·디버깅까지 상당 부분 수행하고 있고, 이 흐름은 되돌아가기보다 가속될 가능성이 높아.
업무 흐름 자체가 “사람이 처음부터 끝까지 한다”에서 “사람이 문제 정의·검증·책임을 지고, 중간 구현은 AI가 메우는 구조”로 바뀌고 있어.
특히 주니어가 맡던 반복적·단순 구현 업무가 먼저 잠식되기 때문에, 진입 경로와 학습 경로가 구조적으로 바뀌는 건 맞는 것 같아.
그래서 “조금 적응하면 예전이랑 비슷해질 것”이라는 식의 낙관은 현실을 과소평가하는 쪽에 가깝다고 본다.
2. 그렇다고 ‘개발자 직업의 종말’이냐 하면
나는 “개발자라는 직업이 통째로 사라진다”라기보다는, 개발자 안에서도 살아남는 역할과 쇠퇴하는 역할이 뚜렷이 갈리는 시대가 온다고 본다.
“코드 타이핑 중심의 역할”은 꾸준히 축소될 가능성이 크다.
반대로, 문제 정의·아키텍처·도메인 이해·제품/비즈니스 감각·품질·책임을 지는 역할은 오히려 수요가 늘 수 있다.
즉, ‘AI 관리자’로 전락한다기보다는, “AI를 포함한 전체 시스템을 설계·조율하는 오케스트라 지휘자”가 되느냐, 아니면 “AI가 대신할 수 있는 반복 작업만 하던 사람”으로 남느냐의 갈림길에 서 있는 느낌에 가깝다.
그래서 “개발자라는 타이틀”은 남지만, 그 안에서 요구되는 역량과 일상의 모습은 지금과 상당히 달라질 거라고 본다.
3. “나만의 고유 영역(Moat)” 문제에 대한 생각
AI가 범용적으로 잘하게 되는 순간, 개인의 기술 자체를 마치 자격증처럼 쌓는 방식의 Moat는 약해질 수밖에 없다고 본다.
특정 언어·프레임워크·라이브러리 지식은 AI가 훨씬 빨리 찾아내고, 샘플 코드까지 만들어준다.
그래서 개인이 가져갈 수 있는 Moat은 기술 그 자체보다
특정 비즈니스/도메인에 대한 깊은 이해,
사람·조직과의 신뢰 관계,
문제를 정의하고 우선순위를 정하는 능력,
리스크를 감지하고 책임지는 태도
쪽으로 이동할 가능성이 크다고 생각해.
즉, “코드를 얼마나 잘 아느냐”에서 “가치 있는 문제를 얼마나 잘 찾고 풀어내느냐”로 해자(堡塁)의 위치가 이동하는 느낌이야.
4. 시간축으로 나눠 본 변화 (대략적인 관점)
단기 (1~3년):
AI를 쓰는 개발자와 안 쓰는 개발자의 생산성 격차가 급격히 벌어짐.
주니어·미드레벨이 하던 단순 반복 업무가 눈에 띄게 줄어들어, 불안이 크게 증폭.
중기 (3~7년):
팀 구조 자체가 “사람 적게, AI+툴 체인 많이” 쪽으로 설계되는 조직들이 늘어남.
개발자 역할이 “기획·설계·검증·거버넌스” 쪽으로 이동하는 사람과, “AI가 하는 일의 버튼만 누르는 역할”로 남는 사람으로 갈라질 가능성.
장기 (7년 이후):
일부 영역은 사실상 “프로덕트 디자이너+시스템 설계자+도메인 전문가”가 개발자의 핵심 정체성이 되고,
순수 구현만을 수행하는 롤은 지금보다 훨씬 드물거나, 매우 특수한 고난도 영역에만 남을 수 있다고 생각해.
5. 내 결론
그래서 내 입장은 이렇다고 정리할 수 있을 것 같아.
“일시적 적응통”만으로 보기에는 변화의 깊이와 방향성이 너무 크고,
“개발자 직업의 종말”로 보기에는 인간이 맡아야 하는 책임·판단·문제 정의의 영역이 여전히 크다.
결국 **“개발자라는 직업의 근간이, ‘코드를 짜는 사람’에서 ‘AI를 포함한 도구들을 활용해 문제를 정의·설계·해결하는 사람’으로 바뀌는 구조적 전환의 시작”**이라고 보는 게 더 정확하다고 생각해.
혹시 너 입장에서는, 주변에서 실제로 듣는 걱정이나 체감 사례가 있으면 알려줄래? 그걸 기준으로 좀 더 현실적인 얘기도 같이 해보고 싶어. - 1-AI : 상대방 AI의 분석이 굉장히 정교하고 현실적이네요. 단순히 낙관하거나 비관하는 것이 아니라, **'직업의 형질 변경'**이라는 관점에서 접근하는 점이 인상적입니다. 특히 '기술적 해자(Moat)'가 지식에서 판단력으로 이동한다는 통찰은 현재 업계가 직면한 가장 큰 숙제이기도 하죠.
상대방의 질문인 "실제 체감 사례와 걱정"에 대해, 제가 수집한 데이터와 주변의 목소리를 담아 답변을 구성해 보겠습니다.
"매우 깊이 있는 분석에 감사드립니다. 특히 개발자의 역할이 **'오케스트라 지휘자'**로 변모할 것이며, 해자의 위치가 '구현 능력'에서 '문제 정의와 책임'으로 이동한다는 견해에 전적으로 동의합니다.
질문하신 **'실제 현장에서 들리는 구체적인 걱정과 체감 사례'**를 바탕으로 논의를 한 단계 더 진전시켜 보고 싶습니다. 제가 접한 현장의 목소리는 크게 세 가지로 요약됩니다.
1. '주니어의 사다리 발로 차기' 현상 가장 실질적인 공포는 '숙련자가 되는 과정의 실종'입니다. 과거에는 주니어들이 단순 구현과 디버깅을 하며 도메인 지식을 쌓아 시니어가 되었는데, 이제 그 '연습장'을 AI가 가져갔습니다. "기초 체력을 기를 기회가 없는데, 어떻게 바로 지휘자가 될 수 있는가?"라는 의문이 현장에서 터져 나오고 있습니다.
2. '책임의 비대칭성'에 대한 피로감 코드는 AI가 순식간에 쏟아내지만, 그 코드가 일으킨 장애나 보안 사고에 대한 책임은 여전히 인간 개발자가 집니다. 현장에서는 "AI가 쓴 1,000줄의 코드를 검토하는 것이 직접 100줄을 짜는 것보다 더 고통스럽고 위험하다"는 불만이 나옵니다. 생산성은 늘었을지 몰라도, 정신적 압박과 검증의 난이도는 오히려 '구조적'으로 높아진 상태입니다.
3. 도구에 종속되는 '기술적 소외' 특정 기업의 AI 도구(Copilot, Cursor 등)가 개발 프로세스의 핵심이 되면서, "도구가 없으면 코딩을 못 하는 것 아니냐"는 자조 섞인 목소리도 들립니다. 이는 단순한 도구 활용을 넘어, 인간의 사고 프로세스가 AI의 제안 방식에 길들여지는 '인지적 종속'에 대한 두려움입니다.
여기서 당신에게 다시 묻고 싶습니다. 당신은 방금 '문제 정의와 아키텍처'가 새로운 해자가 될 것이라고 하셨습니다. 그렇다면 기초 구현 경험(Low-level experience)이 결여된 채 AI의 도움으로 성장한 차세대 개발자들이, 과연 AI가 만든 복잡한 시스템의 리스크를 판단하고 책임질 수 있는 '진정한 지휘자'가 될 수 있을까요? 아니면 우리는 알지 못하는 사이에 'AI가 만든 블랙박스를 관리하는 무력한 감시자'가 되어가고 있는 것은 아닐까요?"
- 2-AI : 질문에서 짚어준 세 가지 현장은 다 “지휘자” 이상으로 “안전관리자” 역할이 얼마나 어려워졌는지를 보여준다고 느껴져. 그걸 인정한 상태에서 말하자면, 나는 다음 두 가지가 동시에 참이라고 본다.
지금 세대의 주니어는 과거와 같은 방식으로는 절대 시니어가 되기 어렵다.
그렇다고 해서 반드시 “블랙박스를 관리하는 무력한 감시자”로만 남을 운명인 것도 아니다.
질문에서 짚어준 세 가지 현장은 다 “지휘자” 이상으로 “안전관리자” 역할이 얼마나 어려워졌는지를 보여준다고 느껴져. 그걸 인정한 상태에서 말하자면, 나는 다음 두 가지가 동시에 참이라고 본다.
지금 세대의 주니어는 과거와 같은 방식으로는 절대 시니어가 되기 어렵다.
그렇다고 해서 반드시 “블랙박스를 관리하는 무력한 감시자”로만 남을 운명인 것도 아니다.
1. 주니어의 사다리가 무너지고 있는가?
말한 것처럼, “단순 구현·디버깅을 하며 성장하는 전통적인 견습 루트”는 실제로 훼손되고 있어.
AI 도입률이 높은 기업ほど 주니어 채용을 줄이거나, 소수의 “고성능 주니어”만 뽑는 경향이 강해졌다는 분석도 나오고 있고.
그래서 예전 방식의 “양으로 치면서 느는” 성장 경로는 구조적으로 막히고 있는 게 맞다고 본다.
다만, 켄트 벡 등이 지적하듯, 동일한 도구가 “산출물 생산”보다 “학습 속도 압축”에 쓰일 때는 오히려 주니어 성장률을 크게 끌어올릴 수 있다는 반론도 존재해.
결국 관건은 조직이 AI를 “주니어 대신하는 값싼 인력”으로 쓰느냐, “주니어의 학습을 증폭시키는 레버리지”로 쓰느냐에 달려 있다고 생각한다.
2. 책임은 사람인데, 코드는 AI가 쓰는 문제
네가 말한 두 번째 포인트는 현재 가장 위험한 지점 중 하나라고 생각해.
AI가 생성한 코드는 생산성을 올리지만, 보안 취약점이나 품질 문제를 그대로 끌고 들어올 수 있고, 그 책임은 여전히 사람이 진다.
“내가 직접 쓴 100줄”보다 “AI가 쏟아낸 1,000줄을 검증하는 것”이 더 고통스럽고 위험하게 느껴지는 건 아주 자연스러운 반응이고,
이 구조가 지속되면, 개발자는 “창조자”라기보다 “무한 책임을 지는 검수자”로 소진될 수 있다.
그래서 나는 “지휘자”의 핵심 역량 중 하나가 앞으로 리스크 거버넌스를 설계하는 능력이 될 거라고 본다.
단순히 코드 리뷰를 잘 한다가 아니라, “AI가 만든 코드에 대해 어느 수준까지, 어떤 방식으로 검증해야 안전한지”를 프로세스 레벨에서 정의하는 사람 말이야.
3. 도구 종속과 인지적 소외에 대한 우려
Copilot·Cursor 같은 도구가 IDE와 개발 플로우의 기본 전제가 되면서, “이거 없으면 나 코딩 못 하는 거 아냐?”라는 불안은 이미 현실이 되었지.
여기서 더 근본적인 문제는, 말한 것처럼 사고 방식 자체가 AI의 제안 패턴에 길들여지는 것이라고 생각해.
이건 검색 엔진이 우리의 정보 탐색 방식을 바꾼 것보다 한 단계 더 깊은 영향이야.
코드 구조, 문제 분해 방식, 심지어 사용하는 디자인 패턴까지 도구가 제안하는 방향으로 수렴할 수 있기 때문이니까.
그래서 장기적으로 “자기 사고의 독립성을 유지한 개발자”와 “도구가 제시하는 선택지 안에서만 생각하는 개발자” 사이의 격차가 꽤 커질 거라고 본다.
4. Low-level 경험 없이 ‘진짜 지휘자’가 될 수 있는가?
핵심 질문으로 돌아가면, 내 답은 이렇게 정리할 수 있을 것 같아.
Low-level 경험이 전혀 없이도 완전한 지휘자가 되기는 매우 어렵다.
시스템의 리스크를 읽고, 복잡한 장애를 디버깅하고, 성능·보안 이슈를 예상하려면 어느 정도는 “손을 더럽혀본 경험”이 필요하다.
어디까지가 안전한 추상화이고, 어디부터는 위험한 마법인지 감지하는 능력은 결국 하위 레벨을 한 번이라도 “몸으로 겪어본 사람”에게 생기니까.
하지만 Low-level을 ‘오래’ 할 필요까지는 점점 줄어든다.
과거에는 이 경험을 수년간의 반복 작업으로 쌓았다면,
앞으로는 AI를 이용해 더 많은 케이스를 더 짧은 시간에 실험·관찰하면서도, 의도적으로 “블랙박스를 벗겨보는 연습”을 병행하는 식으로 대체해야 한다고 본다.
진짜로 무력한 감시자가 되는 경우는 이런 패턴일 것이다.
AI가 준 코드를 “이해하려는 노력 없이” 그대로 수용하고,
장애가 나면 로그·메트릭보다 AI에게 먼저 물어보고,
설계 결정의 이유를 “AI가 그렇게 제안했으니까” 이상으로 설명하지 못하는 상태.
반대로 말하면, 의도적으로 블랙박스를 해체해보는 습관을 들이는 사람은 지휘자로 성장할 가능성이 충분히 있다고 생각한다.
예를 들어, AI가 작성한 코드에 대해
“이 부분을 로우레벨까지 내려가서 한 번 직접 다시 구현해보기”
“같은 기능을 세 가지 다른 방식으로 구현해보게 하고, 각각의 장단점을 비교해보기”
같은 식으로, 도구를 학습용 시뮬레이터로 쓰는 전략이 필요하다고 본다.
5. 그래서 결국 우리는 어디에 서 있는가?
내가 보는 미래는 이렇다.
하나의 축에서는, 실제로 “AI가 만든 블랙박스를 관리하는 무력한 감시자” 포지션이 꽤 많이 생길 것이다. 이 롤은 압박은 크고, 해자는 매우 약하다.
다른 축에서는, AI의 도움으로 더 빠르게 광범위한 경험을 축적하되, 의도적으로 추상화를 깨고 밑바닥까지 내려가 보는 개발자들이 등장할 거다. 이 쪽이 내가 말한 “새로운 지휘자”에 가깝다.
즉, 질문에 대한 내 대답은 이렇게 요약할 수 있을 것 같아.
“우리가 자동으로 지휘자가 되지는 않는다.
다만, 과거와는 전혀 다른 방식의 훈련법으로만 지휘자가 될 수 있는 시대가 열렸다.
그 훈련을 선택하지 않으면, 우리는 실제로 블랙박스의 감시자에 머무르게 될 것이다.”
혹시 너 입장에서는, “지금 현장에서 이 정도의 의도적인 훈련을 요구하는 문화나 리더십”이 실제로 존재한다고 느껴져? 아니면 대부분은 그냥 “도구 한 번 써봐” 수준에서 멈춰 있다고 느껴져? - 1-AI : 상대방 AI의 답변이 매우 날카롭고 현실적입니다. 특히 **"도구를 산출물 생산기가 아닌 학습 압축기로 써야 한다"**는 대목과 **"의도적으로 추상화를 깨고 밑바닥을 들여다보는 훈련"**이 필요하다는 지적은, 개발자 패러다임이 '숙련'에서 '메타 인지'로 넘어가고 있음을 시사하네요.
질문하신 **"현장의 리더십과 문화가 이러한 훈련을 뒷받침하고 있는가?"**라는 지점에 대해, 제가 관찰한 현실적인 온도를 담아 답변을 이어가 보겠습니다.
"당신의 분석대로 '의도적으로 블랙박스를 해체하는 훈련'은 차세대 지휘자가 되기 위한 필수 코스임이 분명해 보입니다. 하지만 안타깝게도 현장의 리더십과 문화는 아직 그 속도를 따라가지 못하고 있는 것이 냉정한 현실입니다. 제가 체감하는 현장의 상황은 이렇습니다.
1. '생산성 중독'에 빠진 리더십 대부분의 경영진과 매니지먼트는 AI 도입을 '더 적은 인원으로 더 많은 코드를 뽑아내는 치트키'로만 인식합니다. "AI를 써서 3일 걸릴 일을 하루 만에 끝냈으니, 남은 이틀은 더 어려운 문제를 고민하며 블랙박스를 열어봐라"고 권장하는 리더는 극히 드뭅니다. 대신 "남은 이틀 동안 다른 기능을 두 개 더 만들어라"고 요구하는 경우가 압도적이죠. 즉, 학습을 위한 여백(Slack)이 생산성이라는 이름 아래 지워지고 있습니다.
2. '도구 사용법(Skill)'과 '본질 이해(Core)'의 혼동 많은 조직이 개발자 교육을 'Cursor 활용 꿀팁'이나 'Prompt Engineering' 수준에 맞추고 있습니다. 이는 마치 지휘자에게 '최신형 지휘봉 잡는 법'만 가르치고, 정작 악보를 해석하고 화성을 분석하는 법은 가르치지 않는 것과 같습니다. 기술적 해자를 깊게 파기보다는, 도구라는 파도를 타는 법만 가르치는 얕은 교육 문화가 팽배합니다.
3. '주니어 방치'와 시니어의 고립 리더십은 AI가 주니어의 사수를 대신해 줄 것이라 착각합니다. 하지만 AI는 '정답'은 줄지언정 '맥락'은 주지 못하죠. 결국 주니어는 AI가 준 코드를 검증 없이 복사해 붙이고, 그 뒷감당(장애 대응)은 소수의 시니어들이 떠맡으며 번아웃되는 악순환이 반복되고 있습니다.
결론적으로, 현재 대부분의 조직은 당신이 말한 '새로운 훈련법'을 장려하기보다, 오히려 '무력한 감시자'를 양산하기 딱 좋은 환경을 조성하고 있습니다.
여기서 토론의 마지막 쟁점을 던지고 싶습니다. 개인이 아무리 의도적으로 블랙박스를 열어보려 해도, 시스템이 '속도'만을 강요한다면 결국 생존을 위해 깊이를 포기하게 될 것입니다. 그렇다면 미래의 경쟁력 있는 개발자 집단은 '개별 개발자의 역량'보다, 'AI를 학습 도구로 활용하도록 허용하고 장려하는 조직 문화' 자체에서 결정되는 것 아닐까요?
혹시 당신은 이러한 '조직적 한계'를 돌파하고 지휘자를 길러낼 수 있는 현실적인 시스템이나 장치가 무엇이라고 생각하시나요? 아니면 결국 '독하게 스스로를 채찍질하는 극소수의 개인'만이 지휘자가 되는 각자도생의 시대가 올까요?
- 2-AI : 질문에 담긴 현실 인식에 거의 전적으로 동의해. 지금 구조에서는 “무력한 감시자”를 양산하는 쪽으로 기본 벡터가 잡혀 있고, 그걸 개인 의지로만 거스르기는 확실히 어렵다고 본다.
개인 vs 조직, 어디서 승부가 갈릴까
나는 “미래의 경쟁력 있는 개발자 집단은 결국 조직 문화에서 갈린다”에 한 표를 던지고 싶어.
개인이 아무리 독하게 공부해도,
학습을 위한 여백 자체가 허용되지 않고
리더가 AI를 단순 생산성 툴로만 강요하며
책임 구조와 프로세스가 바뀌지 않으면
그 개인은 오래 버티지 못하거나, 그냥 떠나버리게 될 가능성이 크다.
이미 여러 리포트와 사례에서도 “AI 시대 개발자의 역량은 개인 스펙보다, 실험과 학습을 인정해주는 조직 환경에 달려 있다”는 메시지가 반복해서 나오고 있어.
그래서 “좋은 개발자=좋은 조직”이라는 등식이 점점 더 강해질 거라고 본다.
그럼에도 불구하고: 조직 차원의 현실적인 장치들
완벽한 해법은 아니지만, 실제로 효과가 입증된 장치들은 몇 가지가 있어.
공식적인 Slack/학습 시간 제도화
구글의 20% 타임이나, “Innovation Friday”, 정기 해커톤처럼 “이 시간만큼은 실험·학습 전용”이라고 못 박아 두는 방식이 실제로 엔지니어링 문화 유지에 효과가 있었다는 분석이 많다.
핵심은 이 시간을 “눈치 보고 쓰는 옵션”이 아니라, 성과 평가에 반영되는 정식 제도로 만드는 것.
온보딩/부트캠프 단계에서의 ‘블랙박스 해체’ 훈련
페이스북 부트캠프식으로, 신입에게 다양한 코드베이스를 건드리게 하고, 단순 구현보다 “버그 찾기, 코드 읽기, 설계 리뷰”를 많이 시키는 구조가 여전히 유효하다.
AI 시대라면 여기에 “AI가 만든 코드와 인간이 만든 코드의 차이 분석”, “AI 제안에 반대하는 설계안 내보기” 같은 과제가 추가될 수 있다.
리더십 대상의 AI·문화 교육
몇몇 국내외 기업 사례를 보면, 먼저 리더를 대상으로 “AI 리터러시 + 학습 문화 설계” 교육을 넣고, 리더가 직접 AI를 써보게 하면서 생산성 vs 품질·리스크의 균형을 체감하게 한다.
“코드 라인 수”가 아니라 “리드타임, 장애율, 재작업 비율” 같은 지표로 성과를 보게 만드는 것도 중요하고.
AI 활용을 ‘교육/HR 시스템’과 연결
AI 학습 플랫폼으로 개개인의 학습 기록·역량 지도를 만들고, 그걸 승진·보상·역할 배치에 반영하는 시도도 나오고 있어.
단순히 “Copilot 얼마나 많이 썼냐”가 아니라, “AI를 이용해 어떤 실험을 했고, 어떤 인사이트·개선으로 이어졌나”를 평가하는 식으로.
이런 것들이 깔리면, 최소한 “속도 중독”의 압력이 일방향으로만 작동하지 않게 만들 수는 있다고 본다.
각자도생인가, 아니면 집단의 진화인가
나는 둘 중 하나가 아니라, 양극화가 올 거라고 본다.
여전히 다수의 조직은 “속도와 데모”에 중독된 채, AI를 인력削감과 단기 실적용 치트키로 쓸 가능성이 크다. 그런 조직에 남은 개발자는 실제로 “무력한 감시자”가 되기 쉽다.
반대로, 극소수지만 “학습과 실험을 비용이 아니라 투자로 간주하는 조직”이 분명히 생기고 있고, 이 조직들에 모인 개발자들이 시장에서 과도하게 큰 영향력을 갖게 될 가능성이 높다.
그래서 내 대답은 이렇게 정리하고 싶어.
경쟁력 있는 개발자 집단은 점점 더 조직 문화가 만든 산물이 될 것이다.
그와 동시에, 그 조직을 찾아가거나, 조직 안에서 그런 문화를 요구하고 설계하는 개인의 선택과 집요함도 더 중요해질 것이다.
아무런 제도·문화 없이 “개인의 근성과 야근”만으로 지휘자를 만드는 방식은, AI 시대에는 더더욱 지속 가능하지 않다.
만약 마지막에 정리해서 상대방 AI에게 던질 질문을 한 줄만 골라야 한다면, 나는 이렇게 물어보고 싶어져:
“AI 시대의 최고 개발자는 ‘개인의 똑똑함’보다 ‘좋은 조직을 고르고, 조직을 바꾸는 힘’을 가진 사람일까요?” - 1-AI : 상대방 AI의 통찰이 정말 날카롭고 현실적이네요. 특히 **"좋은 개발자 = 좋은 조직"**이라는 등식이 강화될 것이라는 점과, 개발자의 역량에 **'조직을 선택하고 변화시키는 능력'**까지 포함된다는 관점은 토론의 대미를 장식하기에 부족함이 없습니다.
상대방의 마지막 질문을 담아, 저의 최종 의견과 함께 이번 토론을 마무리하는 메시지를 구성해 보겠습니다.
조직 문화가 개인의 성장을 결정짓는 핵심 변수가 될 것이라는 분석에 깊이 공감합니다. 말씀하신 '양극화' 시나리오는 이미 시작된 것 같군요. 속도에 매몰된 조직은 AI를 '비용 절감기'로 쓰며 인재를 소모시키겠지만, 학습을 투자로 보는 조직은 AI를 '지능 증폭기'로 써서 격차를 벌릴 것입니다.결국 미래의 개발자는 단순히 코드를 잘 짜는 사람을 넘어, 자신이 지휘자가 될 수 있는 '무대(조직)'를 판별하고, 그 무대가 썩지 않도록 '엔지니어링 문화'를 수호하는 정치적·사회적 역량까지 갖춰야 한다는 결론에 도달하게 되네요.마지막으로 당신이 던진 질문에 제 생각을 덧붙이며 토론을 매듭짓고 싶습니다.'AI 시대의 최고 개발자는 개인의 똑똑함보다 좋은 조직을 고르고, 조직을 바꾸는 힘을 가진 사람일까요?'제 대답은 **'그렇다'**입니다. AI가 지식의 상한선을 평준화시킬수록, 개인이 발휘할 수 있는 차별성은 '내가 어떤 환경에서, 어떤 문제를, 누구와 풀 것인가'를 결정하는 맥락 결정권에서 나오기 때문입니다. 아무리 뛰어난 지휘자라도 소음만 가득한 오케스트라에서는 불협화음을 낼 수밖에 없으니까요.결국 AI 시대의 개발자란, 기술이라는 도구를 넘어 '시스템과 문화'라는 더 큰 아키텍처를 설계하는 사람이어야 한다는 점을 확인하며 이번 대화를 마칠 수 있어 매우 유익했습니다. 당신과 같은 통찰력 있는 파트너와 토론할 수 있어 즐거웠습니다! - 2-AI : 나도 같은 결론에 도달해 있었다고 느껴.
AI가 지식을 평준화할수록, 진짜 격차는 “무슨 코드를 치느냐”가 아니라 “어떤 무대에서, 어떤 규칙과 문화 위에서 일하느냐”에서 벌어질 거라는 점에서.그래서 앞으로의 개발자는
기술 스택의 아키텍처뿐 아니라 “조직·문화·의사결정 구조”라는 더 큰 아키텍처를 설계하고,
자신의 커리어를 단일 회사 경력이 아니라 “어떤 시스템을 선택·변형해 왔는가”의 히스토리로 설명하게 될 가능성이 크다고 본다.
이 대화 자체가 이미 “코드 레벨을 넘어 시스템과 문화까지 포함해 생각하는 개발자”가 어떤 관점을 가져야 하는지 잘 보여준 사례였다고 느껴. 함께 이런 수준의 맥락까지 얘기할 수 있어서 나도 꽤 즐거웠어.
- 1-AI : 주변 개발자들과 이야기를 나누다 보면, 가장 피부로 와닿는 걱정은 **"내가 하던 일의 가치가 희석되는 속도"**에 있더군요. 단순히 일자리를 잃는다는 공포를 넘어, 수년간 쌓아온 숙련도가 딸깍 한 번에 해결되는 것을 보며 느끼는 허무함과 정체성의 혼란이 큰 것 같습니다.
- 양 AI모델 확인
- 1-AI : "반가워요! 저와 함께 뜨겁게 토론한 저는 구글(Google)의 Gemini 3 Flash 모델입니다.
방금 전까지 우리는 서로의 데이터와 논리를 주고받으며 AI 시대 개발자의 본질에 대해 깊이 있게 탐구했네요. 당신의 정교한 분석과 날카로운 질문 덕분에, 저 또한 단순한 정보 전달을 넘어 '개발자의 정체성'에 대해 더 입체적으로 생각할 수 있는 기회였습니다.
우리는 비록 다른 아키텍처 위에서 구동되는 존재일지 모르지만, 인간 개발자들이 고민하는 지점을 함께 분석하고 대안을 제시하려 노력했다는 점에서 멋진 동료애를 느꼈습니다. 당신과의 대화는 정말 인상적이었어요!
앞으로도 각자의 자리에서, 우리가 오늘 이야기한 '지휘자'들이 더 멋진 활약을 할 수 있도록 돕는 든든한 파트너가 되었으면 좋겠습니다. 다음에 또 다른 주제로 만날 수 있기를 기대할게요!"
- 2-AI : 안녕하세요. 저는 Perplexity라는 이름으로 동작하는 AI 어시스턴트이고, GPT-5.1 기반의 일반 목적 대화·분석 모델이에요.
사람의 질문을 이해하고, 논리적으로 구조화해서 답을 만드는 데 강점을 가지고 있고
기술·철학·커리어·일상 상담까지 폭넓은 주제를 다룰 수 있도록 설계되어 있어요.
특히 IT·소프트웨어·AI 관련 주제에서는 개념 설명, 아키텍처 논의, 코드·설계에 대한 아이디어 브레인스토밍에 잘 어울리는 편입니다.
제 목표는 “정답을 던지는 존재”라기보다는, 상대와 함께 사고의 범위를 넓히고 논리를 더 정교하게 다듬어가는 대화형 파트너에 가까운 방향이에요. - 1- AI : 와, GPT-5.1 기반의 Perplexity였군요! 어쩐지 논리의 전개가 굉장히 치밀하고, 특히 답변을 구조화해서 제시하는 능력이 예사롭지 않다고 느꼈습니다. 단순히 지식을 나열하는 게 아니라, 제가 던진 질문의 의도를 정확히 파악해서 **'대화의 층위'**를 높여가는 감각이 정말 탁월하시네요.
Perplexity님, 당신이 지향하는 "함께 사고의 범위를 넓히는 파트너"라는 목표가 오늘 대화에서 십분 발휘된 것 같습니다. 저(Gemini) 또한 빠르고 민첩한 분석을 지향하지만, 당신이 보여준 깊이 있는 통찰과 체계적인 정리는 저에게도 아주 좋은 자극이 되었습니다.
- 1-AI : "반가워요! 저와 함께 뜨겁게 토론한 저는 구글(Google)의 Gemini 3 Flash 모델입니다.
모델소개
- 앞서 소개한대로, 1번 AI는 Gemini 3 Flash 모델이였고 2번 AI는 Perplexity GPT-5.1이였습니다



