골든래빗은 더 탁월한 가치를 제공하는 콘텐츠 프로덕션 & 프로바이더 입니다. 골든래빗은 취미, 경제, 수험서, 만화, IT 등 다양한 분야에서 책을 제작하고 있습니다.골든래빗은 더 탁월한 가치를 제공하는 콘텐츠 프로덕션 & 프로바이더 입니다. 골든래빗은 취미, 경제, 수험서, 만화, IT 등 다양한 분야에서 책을 제작하고 있습니다.

아티클

다양한 읽을거리를 확인해 보세요.
전체 440
[아티클 01] AI 에이전트 엔지니어링에서 컨텍스트 오염 유형
[아티클 01] AI 에이전트 엔지니어링에서 컨텍스트 오염 유형

[아티클 01] AI 에이전트 엔지니어링에서 컨텍스트 오염 유형

📅 2026년 9월 16일 · 👁 14

[아티클 01] 컨텍스트 오염 유형에이전트와 오랫동안 대화하다 보면 이상한 현상을 겪게 됩니다. 처음에는 정확하게 코드를 작성하던 에이전트가 갑자기 엉뚱한 파일을 수정하거나, 이미 해결된 문제를 다시 고치려 하거나, 응답 품질이 눈에 띄게 떨어집니다. 이런 현상의 원인은 여러 가지이며, 그중 하나는 컨텍스트 자체에 문제가 생긴 경우입니다.이런 증상의 원인은 여러 가지이며, 그중 한 가지는 컨텍스트 자체에 문제가 생기는 경우입니다. 컨텍스트 윈도우에 불필요하거나 잘못된 정보가 쌓여 모델의 성능이 저하되는 현상을 컨텍스트 오염(Context Pollution)이라고 부릅니다. 에이전트가 오래 작업할수록, 이전의 실패한 시도, 잘못된 경로, 긴 에러 메시지, 이미 수정된 코드 등이 컨텍스트에 남아 모델을 혼란스럽게 만듭니다.작업 초반에는 컨텍스트에 현재 작업에 필요한 정보만 들어 있습니다. 그러나 세션이 길어지면 지난 시도, 이미 해결된 오류, 작업과 무관한 파일 내용이 함께 쌓여, 모델이 정작 필요한 정보를 가려내기 어려워집니다. 이때는 컨텍스트를 정리하고 다시 시작하는 편이 가장 빠른 해결책입니다. 컨텍스트 오염은 원인에 따라 네 가지로 분류할 수 있습니다.유형 1 : 히스토리 오염대화가 길어지면서 이전의 잘못된 시도나 에러가 컨텍스트에 남아 있는 경우입니다. 에이전트가 이전에 실패한 접근법을 반복하거나, 이미 수정된 에러에 다시 대응하려 합니다.이전 대화에서 발생했던 에러 메시지가 컨텍스트에 남아 있어서, 에이전트가 현재 상태가 아닌 과거 상태를 기준으로 판단하는 것입니다.유형 2 : 파일 오염관련 없는 파일을 너무 많이 읽어서 컨텍스트가 불필요한 정보로 가득 찬 경우입니다. 에이전트가 작업과 무관한 파일을 수십 개 읽으면, 정작 중요한 파일의 내용이 Lost in the Middle 현상으로 묻히게 됩니다.유형 3 : 지시 충돌상충하는 지시가 컨텍스트에 공존하는 경우입니다.컨텍스트에 “JavaScript로”와 “TypeScript로” 두 지시가 모두 남아 있어서 에이전트가 일관성을 잃게 됩니다.유형 4 : 도구 출력 오염도구 실행 결과, 특히 긴 에러 로그나 빌드 출력이 컨텍스트를 대량으로 소비하는 경우입니다. 에이전트가 npm install을 실행했는데 수백 줄의 경고 메시지가 출력되면, 그 모든 텍스트가 컨텍스트에 들어갑니다. MCP 도구의 대량 출력도 같은 문제를 일으킵니다.여러분이 에이전트를 사용하면서 다음과 같은 징후가 나타나면 컨텍스트 오염을 의심해봅시다.에이전트가 이전에 해결된 문제를 다시 언급한다같은 실수를 반복한다 (같은 에러 → 같은 잘못된 수정 → 같은 에러)응답이 느려지거나 품질이 갑자기 저하된다“앞서 말씀하신 X에 대해”라며 실제로 말한 적 없는 내용을 참조한다관련 없는 파일이나 코드를 갑자기 수정하려 한다에이전트의 응답이 점점 길어지고 초점을 잃는다이런 징후가 보이면, 더 길게 끌기보다 바로 정리하는 편이 전체 작업 시간을 오히려 줄여줍니다.

[AICE ASSOCIATE] 이진분류 DNN
[AICE ASSOCIATE] 이진분류 DNN

[AICE ASSOCIATE] 이진분류 DNN

📅 2026년 9월 15일 · 👁 21

이진 분류 DNN, 출력층과 손실함수 짝 맞추기 "코드는 따라 쳤는데, 왜 여기에 sigmoid를 쓰는지는 모르겠어요."딥러닝 파트에 들어오면 이 상태가 되는 경우가 많다. Dense(1, activation='sigmoid'), loss='binary_crossentropy' 같은 코드를 외워서 쓰고 있지만, 문제가 조금만 바뀌면 손이 멈춘다. 다중 분류로 바뀌면? 회귀로 바뀌면? y가 원핫으로 되어 있으면?문제는 이걸 세 가지 따로따로 외우려 한다는 점이다. 출력층 뉴런 개수, 활성화 함수, 손실 함수를 각각 암기 항목으로 두면 조합이 아홉 가지가 넘는다. 헷갈리는 게 당연하다.그런데 실제로는 외울 게 하나뿐이다. 문제 유형이 정해지면 나머지 셋은 자동으로 따라온다. 그 연결 고리를 이해하면 조합표를 외울 필요가 없어진다. 이 글에서 그 고리를 만든다.1. 출력층은 '정답의 모양'을 그대로 닮아야 한다 신경망의 마지막 층은 예측값을 내보내는 곳이다. 그래서 출력층의 모양은 우리가 원하는 정답의 모양과 같아야 한다. 이 문장 하나가 이 글의 전부다.비유를 하나 쓰자. 택배를 보낼 때 상자를 고르는 상황과 같다. 책 한 권을 보내면 작은 상자, 냉장고를 보내면 큰 상자다. 내용물이 상자 크기를 정하지, 상자를 먼저 고르고 내용물을 맞추지 않는다. 출력층도 마찬가지다. 예측하려는 값이 어떤 형태인지가 출력층의 뉴런 개수와 활성화 함수를 정한다.정확한 용어로 다시 정리하면 이렇다. 이진 분류의 정답은 0 또는 1이라는 하나의 값이다. 그러니 뉴런은 1개면 된다. 다중 분류의 정답은 여러 클래스 중 하나인데, 모델은 각 클래스일 확률을 모두 내놓아야 하므로 클래스 개수만큼의 뉴런이 필요하다. 회귀의 정답은 하나의 실숫값이므로 뉴런은 1개다.여기서 이진 분류와 회귀가 둘 다 뉴런 1개라는 점을 눈여겨보자. 둘을 가르는 건 뉴런 개수가 아니라 활성화 함수다.표를 통째로 외우려 하지 말고 첫 열에서 시작해 오른쪽으로 읽는 연습을 하자. '이진 분류다, 정답이 0 아니면 1이다, 그러니 뉴런 1개, 0과 1 사이 값을 내려면 sigmoid, 그 짝은 binary_crossentropy.' 이 흐름으로 도달하는 게 목표다.시험에 자주 나오는 함정 이진 분류 문제이므로 출력층의 뉴런 수는 클래스 개수인 2로 설정한다.틀렸다. 이 선지가 매력적인 이유는 논리가 그럴듯하기 때문이다. 클래스가 두 개니까 뉴런도 두 개일 것 같다. 그런데 이진 분류에서는 양성 클래스일 확률 하나만 알면 나머지는 자동으로 정해진다. 양성일 확률이 0.87이면 음성일 확률은 0.13이다. 굳이 두 개를 계산할 이유가 없다.뉴런 2개에 softmax를 쓰는 방식이 완전히 불가능한 건 아니다. 그렇게 구성해도 학습은 된다. 다만 그때는 손실 함수도 categorical_crossentropy 계열로 바꾸고 y도 원핫으로 만들어야 한다. AICE ASSOCIATE에서 요구하는 표준 형태는 뉴런 1개에 sigmoid다.2. sigmoid가 하는 일, softmax가 하는 일 활성화 함수를 '비선형성을 주는 장치'라고만 배우면 출력층에서 왜 이걸 쓰는지 감이 안 온다. 출력층의 활성화 함수는 역할이 다르다. 은닉층에서는 표현력을 키우는 게 목적이고, 출력층에서는 값의 범위를 정답의 범위에 맞추는 게 목적이다.sigmoid는 어떤 실숫값이 들어와도 0과 1 사이로 눌러 준다. 아주 큰 음수가 들어오면 0에 가까워지고, 아주 큰 양수가 들어오면 1에 가까워진다. 실제로 확인해 보면 이렇다.입력이 0일 때 정확히 0.5가 나온다는 점도 기억해 두자. 그래서 예측 클래스를 정할 때 0.5를 기준으로 삼는 게 자연스럽다.softmax는 여러 값을 한꺼번에 받아 전체 합이 1이 되는 확률 분포로 바꾼다.여기가 sigmoid와 결정적으로 다른 지점이다. sigmoid는 각 뉴런을 독립적으로 0과 1 사이로 누른다. 여러 뉴런에 sigmoid를 걸면 각각 0.9, 0.8, 0.7이 나올 수 있고 합이 1을 넘는다. softmax는 뉴런들끼리 경쟁시켜 합을 1로 만든다. '이 셋 중 하나'라는 다중 분류의 성격과 정확히 맞아떨어진다.이제 잘못 골랐을 때 무슨 일이 생기는지 보자.가장 흔한 실수는 은닉층에 쓰던 relu를 출력층에도 그대로 두는 것이다. relu는 음수를 0으로 만들고 양수는 그대로 통과시킨다. 출력 범위가 0 이상 무제한이라 1을 넘는 값이 나온다. 확률로 읽을 수 없다.활성화 함수를 아예 빼는 것도 문제다. 같은 데이터로 실제 학습시켜 출력값을 뽑아 보면 차이가 분명하다.활성화를 생략하면 음수가 그대로 나온다. 확률이 음수일 수는 없다. 다만 이건 회귀 출력층에서는 정상이다. 집값이나 수요량을 예측할 때는 값을 그대로 내보내야 하므로 활성화 함수를 지정하지 않는 게 맞다.은닉층에 relu를 쓰는 이유도 한 번 짚고 가자. sigmoid를 은닉층에 깊게 쌓으면 역전파 과정에서 기울기가 계속 작아져 앞쪽 층까지 전달되지 않는다. 이걸 기울기 소실(vanishing gradient)이라고 한다. relu는 양수 구간에서 기울기가 1로 유지되기 때문에 이 문제가 덜하다. 그래서 은닉층은 relu, 출력층은 문제 유형에 맞는 함수라는 구도가 표준이 됐다.시험에 자주 나오는 함정 softmax는 각 클래스의 확률을 독립적으로 계산하므로 출력값의 합이 1을 넘을 수 있다.틀렸다. 독립적으로 계산하는 건 sigmoid다. softmax는 모든 출력을 지수 변환한 뒤 그 합으로 나누기 때문에 합이 반드시 1이 된다. 이 선지가 매력적인 이유는 '확률'이라는 단어에서 독립을 연상하기 때문이다. 하지만 softmax의 목적 자체가 상호 배타적인 클래스 중 하나를 고르는 것이라, 합이 1이어야 의미가 있다.참고로 한 샘플이 여러 클래스에 동시에 속할 수 있는 다중 레이블 문제에서는 오히려 sigmoid를 여러 뉴런에 걸어 쓴다. 다만 AICE ASSOCIATE 범위는 아니다.3. 코드로 조립하기, 그리고 짝이 안 맞을 때 이제 실제 코드를 보자. 이진 분류 DNN의 표준 뼈대는 이렇다.Input(shape=(10,))의 10은 특성 개수다. 여기서 실수가 자주 난다. 원본 데이터의 컬럼 수가 아니라 인코딩과 전처리를 모두 마친 뒤의 컬럼 수를 넣어야 한다. 범주형 변수를 원핫으로 펼쳤다면 컬럼이 늘어나 있을 것이다. X_train.shape[1]을 그대로 넣는 습관이 안전하다.쉼표를 빼먹으면 안 된다. (10)은 그냥 정수 10이고 (10,)이 원소 하나짜리 튜플이다. 파이썬 문법이지만 시험에서 코드 채우기 문제로 나오면 눈에 띄지 않는다.모델을 만든 뒤 model.summary()로 구조를 확인하는 습관도 권한다. 위 모델의 출력은 이렇다.파라미터 개수 계산도 시험에 나온다. 공식은 입력 뉴런 수 곱하기 출력 뉴런 수, 더하기 출력 뉴런 수다. 마지막에 더하는 건 편향(bias)이다. 첫 층은 10 곱하기 32 더하기 32로 352, 둘째 층은 32 곱하기 16 더하기 16으로 528, 출력층은 16 곱하기 1 더하기 1로 17이다. 합이 897로 맞아떨어진다.학습과 예측은 이렇게 이어진다.predict()가 확률을 반환한다는 점이 중요하다. 정확도나 F1 점수를 계산하려면 클래스로 바꿔야 하는데, 여기서 0.5 기준 변환을 빼먹는 실수가 잦다. 확률값을 그대로 정확도 함수에 넣으면 값이 이상하게 나오거나 에러가 뜬다.손실 함수와 y 형태가 어긋나면 다중 분류에서 가장 자주 터지는 지점이다. categorical_crossentropy는 y가 원핫 벡터일 것을 기대하고, sparse_categorical_crossentropy는 y가 정수일 것을 기대한다. 짝이 안 맞으면 학습이 시작되지 않는다.에러 메시지가 친절한 편이다. target의 shape가 1차원인데 output은 3차원 열을 갖고 있다고 알려 준다. y를 원핫으로 바꾸면 해결된다.정리하면 선택지는 두 개다. y를 원핫으로 바꾸고 categorical_crossentropy를 쓰거나, y를 정수 그대로 두고 sparse_categorical_crossentropy를 쓰거나. 후자가 변환 단계가 하나 줄어서 실기에서는 더 편하다. 이름에 붙은 sparse가 '희소하게 표현된', 즉 정수 하나로 압축된 형태를 뜻한다고 기억하면 헷갈리지 않는다.시험에 자주 나오는 함정 model.predict()는 예측된 클래스 레이블을 반환하므로 정확도 계산에 바로 사용할 수 있다.틀렸다. 케라스의 predict()는 출력층을 통과한 값을 그대로 반환한다. 이진 분류라면 sigmoid를 지난 확률값이고, 다중 분류라면 softmax를 지난 확률 분포다. 클래스 레이블이 아니다. 이진 분류는 0.5 기준으로 변환하고, 다중 분류는 np.argmax(pred, axis=1)로 가장 확률이 높은 인덱스를 뽑아야 한다.이 선지가 매력적인 이유는 사이킷런의 습관 때문이다. 사이킷런 모델의 predict()는 실제로 클래스를 반환하고, 확률이 필요하면 predict_proba()를 따로 부른다. 케라스는 반대다. 두 라이브러리를 오가며 쓰다 보면 이 차이에서 걸린다.시험 직전에 이것만 이진이면 1개에 sigmoidsparse는 y가 정수라는 뜻predict는 확률, 0.5로 잘라야 클래스『빠르게 따는 AICE ASSOCIATE』에서는 어디를 보면 되나 이 글의 내용은 책 PART 5 AI 모델링 딥러닝에 집중돼 있다. 활성화 함수의 개념과 신경망 설계는 01장 인공신경망(164쪽)의 01절부터 03절 '인공신경망 설계'(172쪽)까지고, 학습 메커니즘인 순전파와 역전파는 02절 '인공신경망의 학습 메커니즘'(169쪽)에 있다. 은닉층에 relu를 쓰는 이유를 제대로 이해하려면 이 02절을 한 번 읽어야 한다.실제 코드 조립은 03장 딥러닝 실전 모델링이다. 01절 '이진 분류 DNN'(193쪽), 02절 '다중 분류 DNN'(197쪽), 03절 '회귀 DNN'(200쪽)이 나란히 배치돼 있다. 이 배치가 학습에 유리하다. 세 절을 이어서 읽으면 이 글의 표가 자연스럽게 머리에 들어온다. 하나만 떼어 읽으면 비교가 안 되니 세 절은 붙여서 보길 권한다.시험 직전 압축 정리는 PART 6 빈출 패턴 분석의 03장 AI 모델링이다. 03절 '딥러닝 모델 설계 및 학습'(247쪽)과 04절 '딥러닝 모델 성능 평가 및 저장'(250쪽)에서 실기 형태로 다시 정리된다. 이 글에서 다룬 predict() 반환값 처리 같은 건 04절 쪽에 붙어 있는 내용이다.딥러닝 파트는 눈으로 읽어서는 절대 안 붙는다. Dense(1, activation='sigmoid')를 손으로 열 번 쳐 보는 게 설명을 열 번 읽는 것보다 낫다.🖥️ 골든래빗 CBT에서 AICE ASSOCIATE 문제 풀어보기📅 2026 AICE ASSOCIATE 시험 일정 확인하기📘 『빠르게 따는 AICE ASSOCIATE』 자세히 보기궁금한 게 생기면 『빠따 AICE ASSOCIATE』 공식 카카오톡 질문방에서 물어보세요. 저자들이 직접 답합니다.

[make 03] 클로드에 메이크 MCP 연결하기
[make 03] 클로드에 메이크 MCP 연결하기

[make 03] 클로드에 메이크 MCP 연결하기

📅 2026년 9월 14일 · 👁 37

클로드 데스크톱 앱에 Make MCP 연결하기먼저 다음 페이지에 접속해 클로드 데스크톱 앱을 다운로드해 설치하세요.클로드 데스크톱 앱 다운로드 : claude.com/download 원활한 사용을 위해 Pro 이상의 요금제 구독을 권장합니다. 클로드 데스크톱 앱에서 메이크 시나리오를 불러 쓰려면, 먼저 메이크를 클로드에 커넥터로 등록해야 합니다.클로드 데스크톱 앱에 커넥터 추가하기01 클로드 데스크톱 앱을 실행합니다. 프롬프트 입력창에서 [+ → 커넥터 → + connector 추가 → 커넥터 둘러보기]를 클릭하세요. ‘connector’는 ‘MCP 서버’의 다른 표현입니다. 즉, ‘쉽게 연결할 수 있는 클로드용 MCP서버 = 커넥터’라고 생각하면 됩니다. 02 검색란에서 ‘make’를 입력한 다음, [Make] 옆의 [+] 버튼을 누릅니다.03 액세스 권한 부여 화면이 뜨면서 브라우저창이 열립니다. 다음과 같이 전체 권한을 체크한 다음, [Allow]를 눌러 권한을 승인하세요. 현재는 정상 작동 여부를 확인하기 위해 체크박스 전체를 체크해 진행하지만, 실무에 사용할 때는 보안을 위해 꼭 필요한 권한만 체크해 진행하는 것을 권장합니다. 04 “You’re all set!” 알림이 뜨며 “Claude을(를) 여시겠습니까?”라는 알림창이 뜹니다. [Claude 열기]를 클릭합니다.05 클로드 데스크톱 앱으로 이동하고 오른쪽 위에 “Make와 연결되었습니다”라는 팝업이 뜹니다.06 클로드 데스크톱 앱을 완전히 종료했다가 다시 켭니다. 프롬프트 입력창에서 [+ → 커넥터]로 들어가 보면 Make가 정상적으로 연결된 것을 볼 수 있습니다.

[리눅스마스터2급] 특수 권한 3종
[리눅스마스터2급] 특수 권한 3종

[리눅스마스터2급] 특수 권한 3종

📅 2026년 9월 14일 · 👁 30

SetUID·SetGID·스티키비트, rwsr-xr-x 한 번에 읽는 법"ls -l 쳤는데 rwsr-xr-x처럼 처음 보는 글자가 껴 있어요. 오타인 줄 알았어요."리눅스 퍼미션을 r, w, x 세 글자로 외운 사람이라면 한 번쯤 겪는 순간이다. 분명 실행 권한 자리인데 x 대신 s가, 어떤 파일은 t가 박혀 있다. 교재를 봐도 "특수 권한"이라는 이름만 던져주고 왜 필요한지는 설명이 부족한 경우가 많다.진짜 걸림돌은 이거다. 특수 권한은 **"누구 권한으로 실행되는가"**와 **"누가 지울 수 있는가"**를 바꾸는 예외 규칙인데, 기본 퍼미션(rwx)의 연장선으로만 외우려니 헷갈리는 것이다. 이 글을 다 읽으면 rwsr-xr-x 같은 문자열을 보자마자 "아, 이 파일은 실행할 때 소유자 권한을 빌려 쓰는구나"라고 바로 판별할 수 있게 된다.기본 퍼미션의 한계, 그리고 특수 권한이 등장한 이유리눅스의 기본 퍼미션은 소유자(owner)·그룹(group)·기타(other) 세 주체에 대해 각각 읽기(r)·쓰기(w)·실행(x) 권한을 부여한다. 예를 들어 일반 파일이 -rwxr-xr-x라면 "소유자는 읽고 쓰고 실행, 그룹과 기타는 읽고 실행만 가능"이라는 뜻이다. 여기까지는 대부분의 수험생이 익숙하다.문제는 이 구조로는 풀 수 없는 상황이 실무에 있다는 점이다. 대표적인 예가 비밀번호 변경이다. 일반 사용자는 자신의 비밀번호를 바꾸고 싶어 하지만, 비밀번호가 저장된 /etc/shadow 파일은 root만 쓸 수 있게 잠겨 있다. 일반 사용자에게 /etc/shadow 쓰기 권한을 직접 열어주면 보안이 무너진다. 그렇다고 비밀번호를 못 바꾸게 할 수도 없다.이럴 때 쓰는 것이 특수 권한이다. 비유하자면 회사 정문에 "평소엔 사원증이 있어야 들어가지만, 이 특정 창구(passwd 프로그램)를 통해서만은 방문객도 관리자 대행 자격으로 서류함(shadow 파일)에 접근하게 해주는 임시 통행증"을 발급하는 것과 같다. 통행증은 그 창구를 이용할 때만 유효하고, 창구를 벗어나면 사라진다.정확한 용어로 정리하면 특수 권한은 세 가지다.SetUID(Set User ID): 실행 파일에 걸리며, 실행 시 실행한 사용자가 아니라 파일 소유자의 권한으로 프로세스가 동작하게 한다.SetGID(Set Group ID): 실행 파일에 걸리면 파일 소유 그룹 권한으로 동작하게 하고, 디렉토리에 걸리면 그 안에서 새로 만든 파일이 디렉토리의 그룹을 물려받게 한다.스티키 비트(Sticky Bit): 디렉토리에 걸리며, 누구나 쓸 수 있는 공용 디렉토리에서도 자기 파일은 자기(또는 root)만 지울 수 있게 제한한다.세 가지 모두 표시 방식이 같은 원리를 공유한다. 원래 x가 들어갈 자리에 s 또는 t가 겹쳐 쓰인다. 아래 그림처럼 SetUID는 소유자의 x 자리, SetGID는 그룹의 x 자리, 스티키 비트는 기타의 x 자리에 나타난다.여기서 대문자/소문자 구분이 시험에 자주 나온다. 원래 그 자리에 실행 권한(x)이 있었으면 소문자(s, t)로 표시되고, 실행 권한이 없었으면 대문자(S, T)로 표시된다. 대문자로 보인다는 건 "특수 권한은 있는데 애초에 실행 권한 자체가 없어서 의미가 무효화됐다"는 신호다.시험에 자주 나오는 함정rwSr--r--는 SetUID가 설정되지 않은 일반 파일이다.틀렸다. 대문자 S도 SetUID가 설정된 상태다. 다만 소유자의 실행 권한(x)이 없어서 s가 아니라 S로 표시될 뿐이다. "대문자니까 특수 권한이 없다"고 착각하면 틀리는 대표 문제다.SetUID, 남의 신발을 신고 뛰는 프로그램SetUID를 이해하는 가장 쉬운 방법은 실제 명령어 하나를 끝까지 따라가 보는 것이다. passwd 명령어가 정확히 이 구조로 동작한다.일반 사용자가 passwd를 실행하면 무슨 일이 벌어지는지 순서대로 보자. 첫째, 사용자는 자신의 UID(예: 1000)로 로그인해 있다. 둘째, passwd 실행 파일은 소유자가 root이고 SetUID 비트가 설정돼 있다. 셋째, 이 프로그램을 실행하는 순간 프로세스의 유효 사용자 ID(EUID) 가 실행한 사람의 UID가 아니라 파일 소유자인 root(UID 0)로 바뀐다. 넷째, 그 결과 이 프로세스는 root만 쓸 수 있는 /etc/shadow에 새 비밀번호 해시를 기록할 수 있게 된다.여기서 핵심은 "누가 실행했는가(Real UID)"와 "누구 권한으로 동작하는가(Effective UID)"가 분리된다는 점이다. 평소엔 이 둘이 같지만, SetUID가 걸린 프로그램을 실행하는 순간만 EUID가 파일 소유자로 바뀐다. 이 전환은 그 프로그램이 실행되는 동안에만 유효하고, 프로그램이 끝나면 사라진다. 통행증이 창구를 나서면 무효가 되는 것과 같은 이치다.SetUID를 설정하는 명령은 chmod u+s 파일명 또는 숫자 표기에서 맨 앞자리에 4를 붙이는 방식(chmod 4755 파일명)을 쓴다. 숫자 표기의 원리는 다른 편(퍼미션 숫자와 umask 계산)에서 자세히 다룬다.시험에 자주 나오는 함정SetUID가 설정된 파일은 어떤 사용자가 실행해도 root 계정 자체로 로그인된다.틀렸다. 로그인 세션이 바뀌는 게 아니라, 그 프로그램이 실행되는 동안의 프로세스 권한만 파일 소유자 권한으로 동작하는 것이다. 프로그램이 종료되면 원래 사용자 권한으로 돌아온다. "권한 상승 = 계정 전환"으로 오해하면 틀리는 선지다.SetGID, 그룹 단위로 협업할 때 쓰는 열쇠SetGID는 SetUID와 원리는 같지만 적용 대상이 사용자가 아니라 그룹이라는 점, 그리고 파일과 디렉토리에서 동작이 다르다는 점이 다르다.파일에 SetGID가 설정되면 SetUID와 마찬가지로 실행 시 소유 그룹의 권한으로 프로세스가 동작한다. 예를 들어 wall처럼 여러 사용자에게 메시지를 broadcast하는 일부 유틸리티가 특정 그룹 권한이 필요한 작업(터미널 장치 파일에 쓰기 등)을 수행할 때 이런 방식이 쓰인다.더 자주 시험에 나오는 쪽은 디렉토리에 걸린 SetGID다. 여러 사용자가 협업하는 공유 디렉토리를 생각해 보자. 사용자 A와 B가 같은 프로젝트 그룹(dev)에 속해 있고, 공유 디렉토리 /project에 SetGID가 설정돼 있다면, A든 B든 그 디렉토리 안에서 새 파일을 만들 때 파일의 그룹 소유권이 자동으로 dev가 된다. SetGID가 없다면 파일 생성자의 기본 그룹이 그대로 적용돼, 협업자가 만든 파일을 다른 팀원이 열지 못하는 상황이 생길 수 있다.설정 명령은 chmod g+s 디렉토리 또는 숫자 표기 맨 앞자리에 2를 붙인다(chmod 2775 디렉토리).시험에 자주 나오는 함정SetGID는 디렉토리에는 적용할 수 없고 실행 파일에만 적용된다.틀렸다. 오히려 실무·시험 모두에서 디렉토리에 적용하는 SetGID가 더 자주 다뤄진다. SetUID는 디렉토리에 걸어도 의미가 없지만, SetGID는 디렉토리에 걸렸을 때 그룹 상속이라는 뚜렷한 효과가 있다는 차이를 기억해야 한다.스티키 비트, 공용 폴더의 질서 유지 장치마지막은 스티키 비트다. 앞의 두 개와 달리 스티키 비트는 "누구 권한으로 실행되는가" 문제가 아니라 "누가 삭제할 수 있는가" 문제를 다룬다.가장 널리 알려진 예시가 /tmp 디렉토리다./tmp는 시스템의 모든 사용자가 임시 파일을 만들 수 있어야 하므로 기타(other) 권한까지 rwx로 활짝 열려 있다. 그런데 이 상태 그대로라면 논리적으로 이상한 일이 생긴다. 디렉토리에 쓰기 권한이 있다는 건 "그 안의 파일을 지울 권한"도 포함하는데, 그러면 사용자 A가 만든 파일을 사용자 B가 마음대로 지울 수 있다는 뜻이 된다. 여러 사람이 쓰는 창고인데 자물쇠가 하나도 없는 셈이다.스티키 비트는 이 구멍을 막는다. 디렉토리에 스티키 비트가 설정되면, 그 디렉토리에 쓰기 권한이 있는 사용자라도 자기가 소유한 파일이 아니면 지울 수 없다. 오직 파일 소유자와 root만 삭제·이름변경이 가능하다.시험에 자주 나오는 함정스티키 비트가 설정된 디렉토리에서는 소유자가 아니면 파일을 읽을 수도 없다.틀렸다. 스티키 비트는 삭제·이름변경 권한만 제한한다. 읽기·쓰기(내용 수정)는 원래 그 파일에 걸린 기본 퍼미션을 그대로 따른다. "삭제 제한"과 "접근 제한"을 같은 것으로 착각하게 만드는 전형적인 함정이다.특수 권한 파일을 찾고 점검하는 법세 가지 특수 권한의 원리를 익혔다면, 실무·시험 양쪽에서 자주 붙는 질문이 하나 더 있다. "시스템에 지금 SetUID가 걸린 파일이 몇 개나 있는지, 어떻게 확인하나?"이다.find 명령어의 -perm 옵션으로 이 확인이 가능하다.-perm -4000에서 4000은 SetUID 비트를 숫자로 표현한 것이다(SetUID=4000, SetGID=2000, 스티키 비트=1000 — 앞서 본 숫자 표기 4xxx, 2xxx, 1xxx의 맨 앞자리와 같은 값이다). -perm 뒤에 하이픈(-)을 붙이면 "이 비트를 포함하는 모든 권한"을 찾으라는 뜻이 되어, 뒤의 하위 세 자리(소유자·그룹·기타 권한)와 무관하게 해당 특수 권한만 걸려 있으면 걸러낸다.이 명령이 시험에 나오는 이유는 단순 문법 암기가 아니라 보안 점검의 맥락과 엮여 있기 때문이다. SetUID가 걸린 실행 파일이 늘어날수록 공격자가 악용할 수 있는 경로(권한 상승 취약점)도 늘어난다. 그래서 시스템 관리자는 주기적으로 SetUID 파일 목록을 점검하고, passwd처럼 꼭 필요한 경우가 아니면 SetUID를 제거하는 것이 권장된다. "왜 이 명령을 쓰는가"까지 연결해서 기억해 두면 응용문제에도 흔들리지 않는다.시험에 자주 나오는 함정find / -perm 4000 -type f (하이픈 없이)와 find / -perm -4000 -type f (하이픈 포함)는 결과가 같다.틀렸다. 하이픈이 없는 -perm 4000은 권한이 정확히 4000과 일치하는 파일만 찾는다(즉 SetUID만 있고 나머지 rwx는 전부 0인, 사실상 존재하기 힘든 파일). 반면 하이픈이 있는 -perm -4000은 "SetUID 비트를 포함하기만 하면" 나머지 권한 값과 무관하게 찾는다. 실무에서 SetUID 파일을 점검할 때는 항상 하이픈을 붙인 형태를 쓴다.시험 직전에 이것만s는 실행 권한 있고 특수 권한도 있음, S는 실행 권한만 없는 것.SetUID는 "누구 권한으로 도나", 스티키 비트는 "누가 지우나".SetGID 디렉토리는 하위 파일 그룹을 자동 상속한다.『빠르게 따는 리눅스마스터 2급』에서 더 보기특수 권한 3종은 리눅스마스터 2급 1차(필기) 시험에서 파일 시스템·권한 관리 영역의 단골 출제 포인트다. 『빠르게 따는 리눅스마스터 2급』에서도 이 개념을 다루고 있다.이 시리즈의 다른 책들과 마찬가지로 1권과 2권의 역할이 나뉘어 있다. 1권에서는 SetUID·SetGID·스티키 비트가 왜 필요한지부터 개념을 차근차근 설명하고 passwd, /tmp 같은 실제 예시로 풀어간다. 2권은 "테마" 단위로 압축된 빈출 족보라, 시험 직전에 rws, rwt 표기와 숫자 표기(4/2/1)만 빠르게 다시 확인하는 용도로 쓰면 된다.🖥️ 골든래빗 CBT에서 리눅스마스터 2급 문제 풀어보기📅 2026 리눅스마스터 2급 시험 일정 확인하기📘 『빠르게 따는 리눅스마스터 2급』 자세히 보기궁금한 게 생기면 『빠따 리눅스마스터』 공식 카카오톡 질문방에서 물어보세요. 저자들이 직접 답합니다.

[리눅스마스터2급] passwd_shadow_group
[리눅스마스터2급] passwd_shadow_group

[리눅스마스터2급] passwd_shadow_group

📅 2026년 9월 14일 · 👁 36

/etc/passwd vs /etc/shadow vs /etc/group, 뭐가 어디 있는지 헷갈릴 때"/etc/passwd, /etc/shadow, /etc/group… 이름은 비슷한데 뭐가 다른 건지 매번 헷갈려요."리눅스마스터 시험을 준비하다 보면 /etc 밑의 파일 이름이 우르르 쏟아진다. 이름이 비슷비슷하다 보니 "계정 관련 파일이구나" 정도로 뭉뚱그려 외우게 되고, 시험에서 "다음 중 비밀번호 해시가 저장된 파일은?" 같은 질문에 손이 멈춘다.진짜 걸림돌은 세 파일이 "누구를 기준으로, 무엇을 저장하는가" 가 다른데 이름의 유사성 때문에 그 차이가 안 보인다는 점이다. 이 글을 다 읽으면 계정 관련 파일 이름만 봐도 "이건 공개 정보, 이건 비밀 정보, 이건 그룹 정보"라고 즉시 구분할 수 있게 된다.왜 파일이 세 개나 필요한가 — 정보의 성격이 다르기 때문세 파일을 한 문장으로 구분하면 이렇다. /etc/passwd는 "이 시스템에 어떤 계정이 있는지"를 담고, /etc/shadow는 "그 계정의 비밀번호가 얼마나 안전하게 지켜지는지"를 담고, /etc/group은 "계정들이 어떤 그룹으로 묶이는지"를 담는다.비유하자면 회사의 인사 시스템과 비슷하다. 사원 명부(/etc/passwd)에는 이름, 사번, 소속 부서 번호, 자리 위치처럼 회사 안에서 누구나 조회해도 되는 정보가 적혀 있다. 반면 인사팀 금고에는 각 사원의 개인 인증 정보(비밀번호, 카드 재발급 이력 등)가 따로 보관되어 있고, 아무나 열람하지 못한다(/etc/shadow). 그리고 별도의 부서 조직도(/etc/group)에는 "어느 부서에 누가 속해 있는지"만 간단히 정리돼 있다.왜 이렇게 나눴을까? 처음부터 이렇게 설계된 건 아니다. 예전에는 계정 정보와 비밀번호 해시가 /etc/passwd 한 파일에 같이 저장돼 있었다. 그런데 /etc/passwd는 id, whoami 같은 명령이 계정 정보를 조회할 수 있도록 누구나 읽을 수 있는 권한(644) 으로 열려 있어야 한다. 비밀번호 해시까지 이 파일에 있으면, 누구나 그 파일을 읽어서 해시값을 가져가 오프라인으로 크랙을 시도할 수 있게 된다. 이 문제를 해결하기 위해 비밀번호 관련 정보만 /etc/shadow라는 별도 파일로 떼어내고, 이 파일은 root와 인증 절차만 읽을 수 있도록 잠갔다.시험에 자주 나오는 함정/etc/passwd에는 비밀번호 해시가 그대로 저장되어 있어 root만 읽을 수 있다.틀렸다. 현재 리눅스 시스템에서 /etc/passwd의 비밀번호 필드는 실제 해시가 아니라 자리표시자 x가 들어 있고, 실제 해시는 /etc/shadow에 있다. /etc/passwd는 오히려 모든 사용자가 읽을 수 있는 파일이다. "비밀번호"라는 단어와 "root만"이라는 단어를 붙여 놓아 그럴듯하게 만든 함정이다./etc/passwd, 계정 한 줄에 담긴 7개 정보/etc/passwd의 한 줄을 뜯어보면 콜론(:)으로 구분된 7개 필드가 있다.왼쪽부터 순서대로 계정명, 비밀번호 자리표시자, UID, GID, GECOS(설명 필드), 홈 디렉토리, 로그인 셸이다. 각 필드가 무엇을 뜻하는지 하나씩 짚어보자.첫 번째는 계정명이다. 로그인할 때 입력하는 그 이름이다. 두 번째는 비밀번호 자리인데, 앞서 설명했듯 실제 해시는 없고 x만 들어 있어 "이 계정의 진짜 비밀번호는 /etc/shadow를 보라"는 표시 역할만 한다. 세 번째와 네 번째는 UID(User ID)와 GID(Group ID)로, 계정과 기본 그룹을 숫자로 식별하는 값이다. root는 관례상 UID·GID가 모두 0이다.다섯 번째 GECOS 필드는 사용자의 실제 이름이나 설명을 적어두는 자리로, 시스템 동작에는 영향을 주지 않는 메모성 필드다. 여섯 번째는 홈 디렉토리로, 로그인 직후 위치하게 되는 기본 경로다. 일곱 번째 로그인 셸은 이 계정이 로그인했을 때 실행할 프로그램으로, /bin/bash 같은 일반 셸일 수도 있고, 로그인을 막고 싶은 서비스 계정이라면 /usr/sbin/nologin처럼 로그인 자체를 차단하는 값을 넣기도 한다./etc/group은 훨씬 단순하다. 그룹명, 비밀번호 자리(현재는 거의 쓰이지 않음), GID, 소속 사용자 목록까지 4개 필드뿐이다.이 한 줄은 "GID 1005번인 dev라는 그룹에 alice와 bob이 부가적으로 속해 있다"는 뜻이다. 여기서 주의할 점은, 이 목록에 이름이 있다고 해서 그 사람의 기본 그룹이 dev가 되는 건 아니라는 것이다. 각 사용자의 기본 그룹은 /etc/passwd의 네 번째 필드(GID)로 이미 결정돼 있고, /etc/group의 사용자 목록은 그 계정이 추가로 속한 보조 그룹을 나타낸다.시험에 자주 나오는 함정/etc/group의 소속 사용자 목록에 이름이 없다면 그 사용자는 어떤 그룹에도 속하지 않은 것이다.틀렸다. 모든 사용자는 /etc/passwd에 적힌 GID를 통해 최소 하나의 기본 그룹에 속한다. /etc/group의 목록은 기본 그룹 외에 추가로 속하는 보조 그룹만 나열하는 자리이므로, 여기에 이름이 없다고 그룹이 아예 없는 건 아니다.일곱 번째 필드인 로그인 셸도 시험에서 은근히 자주 다뤄진다. 웹 서버나 데이터베이스처럼 사람이 직접 로그인할 필요가 없는 서비스용 계정은 로그인 셸을 /usr/sbin/nologin이나 /bin/false로 지정하는 것이 일반적이다. 이렇게 하면 그 계정으로 SSH 접속이나 su 전환을 시도했을 때 셸이 실행되지 않고 즉시 연결이 끊긴다. 계정 자체는 존재해야 하지만(서비스 프로세스가 그 계정 권한으로 동작해야 하므로) 실제 로그인은 막아야 하는 상황에서 쓰는 방법이며, "왜 어떤 계정은 셸이 /bin/bash가 아니라 /usr/sbin/nologin인가"라는 질문의 답이 된다./etc/shadow, 비밀번호 하나에 딸린 정책들/etc/shadow는 필드 개수가 9개로 더 많고, 단순히 해시값만 있는 게 아니라 비밀번호 정책 전체가 압축돼 있다.이 중 시험에서 자주 다뤄지는 항목만 추리면 다음과 같다. 두 번째 필드는 비밀번호 해시 문자열이다. 세 번째는 마지막으로 비밀번호를 변경한 날짜(1970년 1월 1일부터 경과한 일수 기준). 그다음으로 최소 사용 기간, 최대 사용 기간, 만료 경고 일수, 비활성화 유예 기간, 계정 만료일이 순서대로 이어진다.이 필드들은 chage 명령으로 조회·수정할 수 있고, 전역 기본값은 /etc/login.defs에서 관리한다. 이 둘의 관계와 세부 옵션은 다른 편에서 더 깊이 다룰 만큼 분량이 있는 주제이므로, 여기서는 "비밀번호의 사용 기한 정책이 /etc/shadow의 숫자 필드들로 계정마다 개별 저장된다"는 것만 기억해도 충분하다.시험에 자주 나오는 함정/etc/shadow의 비밀번호 필드가 비어 있으면 해당 계정은 로그인할 수 없다.틀렸다. 오히려 정반대에 가깝다. 이 필드가 완전히 비어 있으면 "비밀번호 없이" 로그인이 허용되는 위험한 상태가 될 수 있다(시스템 설정에 따라 다르지만, 빈 문자열은 "검사를 통과시키는" 방향으로 해석되는 경우가 있다). 계정을 잠그고 싶을 때는 필드를 비우는 게 아니라 앞에 !나 *를 붙여 해시 자체를 무효화하는 방식을 쓴다. "비어 있다 = 잠김"이라는 직관과 반대라서 자주 틀리는 문제다.명령어로 세 파일을 직접 조회하기세 파일의 구조를 외웠다면, 실제로 이 정보를 매번 파일을 직접 열어서 확인할 필요는 없다는 것도 함께 알아두면 좋다. 리눅스는 이 파일들의 내용을 조회하는 전용 명령을 제공한다.id 명령은 현재 로그인한 사용자(또는 지정한 사용자)의 UID, GID, 소속 그룹을 한 번에 보여준다.getent passwd 계정명은 /etc/passwd를 직접 grep하지 않고도 특정 계정의 한 줄을 조회하는 표준적인 방법이다. 로컬 파일뿐 아니라 시스템이 NIS나 LDAP 같은 외부 인증 체계를 함께 쓰는 환경에서도 동일하게 동작한다는 점에서 cat /etc/passwd | grep보다 권장되는 방식이다.groups 계정명은 그 계정이 속한 모든 그룹(기본 그룹 + 보조 그룹)을 한 줄로 보여준다. /etc/passwd의 GID 하나만 봐서는 보조 그룹까지 알 수 없기 때문에, 어떤 계정이 실제로 접근 가능한 그룹 전체를 확인하고 싶을 때는 /etc/group을 직접 뒤지기보다 groups 명령이 더 빠르다.시험에 자주 나오는 함정getent passwd는 오직 /etc/passwd 파일만 읽을 수 있고 다른 인증 체계는 조회할 수 없다.틀렸다. getent는 /etc/nsswitch.conf에 설정된 순서에 따라 로컬 파일뿐 아니라 LDAP, NIS 등 다른 이름 해석 체계까지 조회할 수 있는 범용 조회 명령이다. 그래서 실무에서는 cat /etc/passwd보다 안정적인 조회 수단으로 취급된다.시험 직전에 이것만비밀번호 해시는 shadow에, passwd엔 x만.기본 그룹은 passwd의 GID로 정해진다.group 목록은 보조 그룹일 뿐이다.『빠르게 따는 리눅스마스터 2급』에서 더 보기계정 파일 3형제의 구조는 리눅스마스터 2급 1차(필기)의 사용자·그룹 관리 영역에서 꾸준히 출제되는 기본기다. 『빠르게 따는 리눅스마스터 2급』에서도 이 내용을 다루고 있다.1권에서는 이번 글처럼 왜 파일이 분리됐는지, 각 필드가 무엇을 뜻하는지를 차근차근 짚고, 2권에서는 필드 순서와 개수만 빠르게 다시 훑는 용도로 구성돼 있다. 특히 /etc/passwd 7개 필드, /etc/shadow 9개 필드처럼 순서를 묻는 문제는 오답 노트 방식 해설로 확인하면, 왜 그 선지가 매력적으로 보이지만 틀렸는지까지 짚을 수 있어 실수를 줄일 수 있다.🖥️ 골든래빗 CBT에서 리눅스마스터 2급 문제 풀어보기📅 2026 리눅스마스터 2급 시험 일정 확인하기📘 『빠르게 따는 리눅스마스터 2급』 자세히 보기궁금한 게 생기면 『빠따 리눅스마스터』 공식 카카오톡 질문방에서 물어보세요. 저자들이 직접 답합니다.

[AI 에이전틱 04]  에이전트 최적화(AEO) : 새로운 마케팅
[AI 에이전틱 04] 에이전트 최적화(AEO) : 새로운 마케팅

[AI 에이전틱 04] 에이전트 최적화(AEO) : 새로운 마케팅

📅 2026년 9월 13일 · 👁 42

[AI 에이전틱 04] 에이전트 최적화(AEO) : 새로운 마케팅2000년대에는 SEO(검색 엔진 최적화)가 마케팅의 핵심이었다. 구글 검색 결과 1페이지에 나오는 것이 생존의 문제였다. 2027년에는 AEOAgent Engine Optimization가 그 자리를 차지한다. AI 에이전트들이 당신의 서비스를 어떻게 평가하고 추천하는지가 모든 것을 결정한다.1. 구조화된 데이터 제공 사람은 웹사이트를 보고 '아, 이 호텔 좋네'라고 직관적으로 판단한다. 예쁜 사진, 감성적인 문구, 세련된 디자인이 구매 결정에 영향을 준다. 하지만 AI는 이미지를 평가하지 않는다. 감성적인 마케팅 문구도 이해하지 못한다. AI는 오직 구조화된 데이터만 본다.호텔이라면 다음 정보를 구조화된 데이터로 제공해야 한다. 예를 들어 '서울 롯데호텔, 중구 소공동 위치, 스탠다드룸 20만 원, 지금 예약 가능, WiFi/TV/에어컨 제공'처럼 AI가 바로 읽을 수 있는 형식이다. 마치 이력서를 양식에 맞춰 작성하면 채용담당자가 빠르게 파악하듯, 호텔 정보를 정해진 형식으로 제공하면 AI가 즉시 이해한다. 위치, 가격, 실시간 예약 가능 여부를 파악하고 다른 호텔과 비교할 수 있다.예를 들어 '럭셔리한 분위기의 최고급 호텔에서 잊지 못할 추억을 만드세요!'라는 문구는 AI에게 무의미하다. AI는 '럭셔리'와 '최고급'이 무엇을 의미하는지 정량적으로 이해하지 못한다. 반면 '5성급, 객실 면적 45㎡, 강변 전망, 고객 평점 4.7/5.0, 1박 평균 가격 18만 원'이라고 표현하면 AI는 이 수치를 다른 호텔과 정확히 비교할 수 있다.2. 실시간 API 제공 AI 에이전트는 '지금 이 순간' 예약 가능한지 알아야 한다. 정적인 웹페이지로는 부족하다. 실시간 재고 확인 API, 즉시 예약 API, 자동 결제 API가 필수다.2025년 현재 대부분의 웹사이트는 여전히 정적 정보만 제공한다. 호텔 웹사이트에 '객실 있음'이라고 표시되어 있어도, 실제로 예약하면 '방금 매진되었습니다'라는 메시지를 보게 된다. AI는 한 번 잘못된 정보를 제공하면 그 호텔을 '신뢰할 수 없음'으로 분류하고 다시는 추천하지 않는다. 반면 실시간 API를 구축한 펜션은 예약 전환율이 15%에서 68%로 상승하고, 노쇼율이 8%에서 1%로 감소했다. AI가 조회와 동시에 예약을 완료하기 때문이다.예를 들어 항공사라면 항공편 검색, 즉시 예약, 자동 결제, 예약 상태 확인 기능을 AI가 이용할 수 있게 열어둬야 한다. AI가 출발지와 도착지, 날짜를 알려주면 가능한 비행편 목록을 받고, 원하는 비행편을 선택하면 예약이 확정되고, 결제 정보를 보내면 결제가 완료되고, 예약번호로 현재 상태를 확인할 수 있어야 한다. 마치 전화로 항공사에 '인천에서 제주로 내일 가는 비행기 있나요?' 하고 물으면 직원이 확인해주듯, AI가 같은 질문을 하면 자동으로 답을 받는 것이다. 이 기능들이 MCP 표준을 따르면, 클로드든 챗GPT든 어떤 AI라도 바로 이용할 수 있다.3. 에이전트 레지스트리 등록 2027년의 에이전트 레지스트리는 2025년의 구글과 같다. 여기 등록되지 않으면 AI들이 당신을 찾을 수 없다. 등록할 때는 카테고리, 특징, 가격대, 대상 고객, 응답 속도를 명확히 적어야 한다. 제주도 오션뷰 펜션이라면 '제주도 숙박 > 오션뷰 펜션'처럼 카테고리를 구체적으로 지정하고, 반려동물 동반 가능 여부나 주차·조식 포함 같은 특징을 명시하고, 1박 가격대와 커플·가족·워크케이션 등 어떤 여행객에게 적합한지, 예약 확정까지 평균 몇 분이 걸리는지 기록한다. AI는 이 정보를 보고 당신이 자기 고객에게 적합한지 판단한다. '가족 여행 + 제주도 + 오션뷰 + 반려동물 가능'을 찾는 AI에게 정확히 매칭되는 것이다.평판 경제 : AI들이 평가하는 시대에이전트 경제에서는 평판이 화폐다. AI들은 과거 거래 기록을 바탕으로 당신을 평가한다. 사람은 속일 수 있지만, 블록체인에 기록된 거래 이력은 속일 수 없다.그렇다면 AI 에이전트들의 평판 점수의 구성 요소는 어떻게 될까? AI 에이전트들은 다음 항목으로 당신의 서비스를 평가한다 :약속 이행률 : 예약 확정 후 실제 제공 비율(목표 : 99% 이상)응답 속도 : 에이전트 요청부터 답변까지 시간(목표 : 1분 이내)가격 정확성 : 제시한 가격과 실제 청구 금액 일치율(목표 : 100%)품질 일관성 : 서비스 품질이 설명과 일치하는 비율(목표 : 95% 이상)분쟁 해결 : 문제 발생 시 해결 속도와 만족도(목표 : 24시간 이내)예를 들어 호텔 AI가 오션뷰 객실을 약속했는데 실제로는 시티뷰를 제공했다면, 고객의 AI가 즉시 분쟁을 제기하고 평판 점수가 하락한다. 이 기록은 블록체인에 영구 보존되어 다른 모든 AI들이 참고한다. AI 경제에서는 한 번의 실수가 치명적이지만, 자동화된 보상 시스템(예 : 지연 시 자동 할인)을 도입하면 회복할 수 있다.평판을 잘 관리하는 비법이 있을까? 좋은 평판을 유지하려면 네 가지를 잘 관리해야 한다. 첫째, 과대 광고를 피해야 한다. AI 에이전트들은 실제 데이터를 분석하기 때문에 '최고', '최저가?' 같은 모호한 표현은 잘못된 정보로 분류된다. 대신 '평균 가격 대비 15% 저렴', '고객만족도 4.8/5.0'처럼 구체적 수치를 제공해야 한다. 둘째, 즉각적으로 응답해야 한다. AI 에이전트의 요청에는 1분 이내에 답변하라. 늦은 응답은 평판 하락의 직접적 원인이다. 셋째, 정책을 투명하게 공개해야 한다. 취소 규정, 환불 조건, 추가 비용을 명확히 밝혀라. 숨겨진 비용은 AI들이 가장 싫어하는 요소다. 넷째, 보상을 자동화해야 한다. 문제 발생 시 AI가 자동으로 보상을 처리할 수 있게 스마트 컨트랙트로 '1시간 지연 시 10% 환불' 같은 규칙을 설정하면 신뢰도가 상승한다.지금 준비하는 법 : Future-Proof 제품 만들기에이전틱 인터넷이 기술적으로 실현되는 2027년까지 아직 2년이 남았다. 사회적으로 확산이 완료되는 시기는 2030년 정도가 될 것이다. 하지만 준비는 지금 시작해야 한다. 늦게 시작할수록 뒤처지는 격차는 기하급수적으로 커진다.준비 단계를 구체적으로 살펴보자. 1단계(지금~3개월)는 현황 파악이다. 현재 시스템의 AI 접근 가능성을 평가하고, 경쟁사의 AI 전환 현황을 조사하고, 전담팀을 구성한다. 2단계(3~6개월)는 핵심 기능 API화다. 가장 많이 사용되는 기능 3개를 선정해 표준 규약REST API을 사용해 구축하고, 실시간 데이터 동기화 시스템을 완성한다. 3단계(6~9개월)는 MCP 표준 전환이다. API를 MCP 표준으로 래핑하고, 에이전트 레지스트리에 등록한다. 4단계(9~12개월)는 전면 전환이다. 모든 기능을 AI 에이전트 우선으로 전환하고, 평판 관리 시스템을 가동한다.2025년 : 당신의 사업을 다시 생각할 때에이전트 시대가 오면 사업 모델 자체를 재설계해야 한다. 단순히 AI를 도입하는 것이 아니라, AI 에이전트가 고객이 되는 세상에 맞춰 비즈니스를 새로 구상해야 한다. 예를 들어 당신이 온라인 서점을 운영한다면 과거와 AI 에이전트 시대는 다음과 같이 달라진다.과거 : 사람들이 웹사이트를 방문하고, 책을 검색하고, 장바구니에 담고, 결제한다.미래 : 독자의 AI가 독서 취향을 분석하고, 자동으로 책을 골라 구매하고, 배송까지 처리한다.이 미래에서 당신의 웹사이트 디자인은 중요하지 않다. 예쁜 책 표지 이미지도 의미가 없다. AI 에이전트는 데이터만 본다. 책 제목, 저자, 장르, 가격, 재고, 배송 기간. 이 정보가 API로 제공되지 않으면, 당신의 서점은 존재하지 않는 것과 같다.그렇다면 미래에 대비하는 지금 물어야 할 질문은 무엇일까? 다음 4가지 질문에 대한 답이 여러분의 미래를 바꿀 것이다.우리 서비스의 핵심 가치는 무엇인가?(예쁜 UI? 아니면 빠른 배송?)AI 에이전트가 우리를 선택하는 이유는 무엇인가?(가격? 재고? 신뢰도?)사람 대신 AI가 고객이 되면 무엇이 바뀌는가?우리의 경쟁 우위를 AI가 이해할 수 있는가?2025년에는 API 우선 아키텍처를 구축해야 한다. 모든 서비스를 API로 제공하고, 웹사이트는 그 API 위에 얹힌 하나의 인터페이스로 생각하라. 모든 기능을 REST API로 노출하고, OpenAPI 문서를 작성하고, API 키 발급 시스템을 구축하고, 실시간 데이터 업데이트를 보장하고, 웹훅Webhook으로 상태 변경을 알려야 한다.2026년에는 앤트로픽의 MCP 표준을 따라야 한다. 이것이 AI 에이전트들의 공용어가 된다. MCP 서버를 구축하면 클로드든 GPT든 제미나이든 모든 AI가 당신의 서비스를 이용할 수 있다. MCP 서버는 생각보다 간단하다. '제주 바다뷰 카페'를 예로 들면, 두 가지만 정의하면 된다. 실시간 좌석 확인 기능에서 AI에게 필요한 정보는 날짜, 시간, 인원이고 AI가 받는 답변은 예약 가능 여부다. 예약하기 기능에서 AI에게 필요한 정보는 날짜, 시간, 인원, 연락처이고 AI가 받는 답변은 예약 확정 또는 실패다. 이렇게 '무엇을 할 수 있는지'만 명확히 정의하면 전 세계 모든 AI가 이 카페를 이용할 수 있다. 마치 식당 메뉴판에 '불고기정식 - 재료 : 소고기, 가격 : 12,000원'처럼 명확하게 써두면 어떤 손님(AI)이 와도 주문할 수 있는 것과 같다.2027년에는 주요 에이전트 레지스트리에 등록해야 한다. 구글의 A2A 레지스트리, 오픈AI의 GPT 스토어, 앤트로픽의 MCP 레지스트리가 주요 플랫폼이 될 것이다. 각 플랫폼마다 등록하되 정보는 일관되게 유지하라.기억하자! 2028년 이후에는 당신의 비즈니스 자체가 AI 에이전트가 된다. 고객 응대, 재고 관리, 가격 조정, 마케팅까지 모두 자율 에이전트가 처리한다. 당신은 전략 방향만 설정하고, 실행은 AI가 알아서 한다.