ai-security

6 개의 포스트

LLM을 이용한 서비스 취약점 분석 자동화 #2 (새 탭에서 열림)

AI 기술의 비약적인 발전으로 취약점 분석 자동화가 새로운 국면을 맞이한 가운데, 대규모 소스코드를 효율적으로 분석하기 위한 구체적인 기술적 구현 방법과 보안 관점의 변화가 필요합니다. 본 글은 MCP(Model Context Protocol)를 통한 정밀한 코드 탐색과 SAST 도구를 활용한 분석 후보군 추출을 결합하여 분석의 일관성과 정확도를 높인 사례를 제시합니다. 결과적으로 AI가 단순한 보조 도구를 넘어 복합적인 추론을 수행하는 능동적인 보안 분석 주체로 진화하고 있음을 강조합니다. **MCP를 활용한 효율적인 소스코드 탐색** * 기존의 단순 패턴 매칭 방식은 불필요한 탐색으로 토큰을 낭비하거나 정확한 정의를 찾지 못하는 한계가 있어, 이를 개선하기 위해 ctags와 tree-sitter를 결합한 MCP 서버를 구축했습니다. * AI에게 IDE의 'Go to Definition'과 유사한 능력을 부여하기 위해 `find_references`(참조 검색), `read_definition`(심볼 정의 및 함수 범위 감지), `read_source`(주변 코드 읽기), `get_project_structure`(전체 구조 파악) 등 4가지 핵심 도구를 구현했습니다. * 이 시스템은 AI가 원격 서버 환경에서도 프로젝트의 전체적인 청사진을 이해하고, 분석이 필요한 코드의 맥락을 정확하게 짚어낼 수 있도록 돕습니다. **SAST와 AI의 결합을 통한 분석 범위 확장** * 분석의 일관성을 확보하기 위해 SAST(Semgrep 등)를 취약점 탐지용이 아닌, AI가 반드시 검토해야 할 '모든 입력 경로(Taint Path)'를 추출하는 보조 도구로 활용했습니다. * Spring 프레임워크의 @RequestParam, @RequestBody 등 모든 입력 지점(Source)에서 함수 호출(Sink)까지의 도달 경로를 추출하는 규칙을 설정하여 분석 후보군을 빠짐없이 확보했습니다. * 취약점 유무를 판단하기 어려운 복잡한 비즈니스 로직이나 보안 필터링의 유효성을 AI가 직접 검토하게 함으로써, 기존 정적 분석 도구의 한계를 AI의 문맥 이해 능력으로 보완했습니다. **체계적인 추론 과정(CoT) 설계** * AI가 분석을 시작하기 전 '계획 수립 - 도구 실행 - 검증 - 결과 분석'의 단계를 거치도록 Chain of Thought(CoT) 방식을 적용하여 분석 결과의 신뢰도를 높였습니다. * 단순히 코드를 단편적으로 보는 것이 아니라, MCP 도구를 활용해 연관된 코드와 비즈니스 로직을 충분히 탐색한 후 최종 판단을 내리도록 설계하여 오탐(False Positive)을 획기적으로 줄였습니다. * 이러한 구조화된 추론 과정을 통해 AI는 10개의 취약점 중 일부만 찾는 불완전한 분석에서 벗어나, 정해진 후보군 전체를 일관성 있게 전수 조사할 수 있게 되었습니다. **보안 패러다임의 전환** 현재의 AI는 단순한 챗봇을 넘어 보안 전문가의 사고 과정을 모사하는 에이전트로 진화하고 있습니다. 보안 담당자는 이제 AI에게 효율적인 코드 탐색 도구(MCP)를 제공하고 정밀한 분석 경로(SAST 활용)를 설계해 주는 'AI 오케스트레이터'로서의 역할을 고민해야 합니다. AI가 가진 강력한 추론 능력을 신뢰하되, 이를 올바른 방향으로 이끌 수 있는 환경을 구축하는 것이 보안 자동화의 핵심입니다.

앱을 위한 AI 보안 기능 정식 출시 (새 탭에서 열림)

Cloudflare는 AI 기반 애플리케이션에 대한 위협을 실시간으로 탐지하고 방어하는 'AI Security for Apps'를 정식 출시(GA)하며, 모든 요금제 사용자에게 AI 엔드포인트 탐색 기능을 무료로 제공합니다. 이 서비스는 프롬프트 주입이나 민감 정보 유출 등 AI 특유의 보안 위험을 관리하고, 기존 Cloudflare WAF와 결합하여 고도화된 방어 체계를 구축할 수 있도록 지원합니다. 특히 사용자 정의 주제 탐지와 프롬프트 추출 기능이 추가되어 기업별 맞춤형 보안 정책 수립이 가능해진 것이 핵심입니다. ### AI 엔드포인트 자동 탐색 (Discovery) * 웹 자산 내에서 LLM(대규모 언어 모델)이 사용되는 모든 엔드포인트를 자동으로 식별하고 `cf-llm` 라벨을 부여하여 가시성을 제공합니다. * 단순히 `/chat`과 같은 경로 패턴을 매칭하는 방식이 아니라, 엔드포인트의 실제 동작 방식을 분석하기 때문에 추천 엔진이나 속성 평가 도구처럼 채팅 인터페이스가 없는 AI 서비스도 감지할 수 있습니다. * Free, Pro, Business를 포함한 모든 요금제 고객에게 무료로 제공되어, 보안 팀이 파악하지 못한 '섀도우 AI' 배포를 효과적으로 관리할 수 있게 돕습니다. ### 지능형 위협 탐지 및 사용자 정의 기능 (Detection) * 프롬프트 주입(Prompt Injection), 개인정보(PII) 노출, 유해한 주제 등을 실시간으로 감지하는 상시 보안 모듈을 가동합니다. * **사용자 정의 주제 탐지:** 기업의 필요에 따라 특정 금융 상품, 환자 데이터, 경쟁사 언급 등 차단하거나 모니터링해야 할 특정 주제를 정의하고 관련성 점수를 출력할 수 있습니다. * **프롬프트 추출 및 최적화:** OpenAI, Anthropic, Google Gemini 등 주요 AI 공급자의 데이터 구조를 기본 지원하며, 향후 JSONPath를 통해 프롬프트가 위치한 특정 필드를 직접 지정함으로써 오탐(False Positive)을 최소화할 수 있습니다. ### WAF 연동을 통한 통합 방어 (Mitigation) * 탐지된 위협 신호를 기존 Cloudflare WAF 룰 빌더와 연동하여 차단, 로그 기록, 커스텀 응답 등의 조치를 즉각적으로 취할 수 있습니다. * AI 전용 보안 신호와 IP 평판, 봇 탐지 데이터, 브라우저 핑거프린트 등 기존의 풍부한 보안 데이터를 결합하여 다각적인 상관관계 분석이 가능합니다. * 이는 AI 레이어만 보는 포인트 솔루션과 달리, 네트워크 계층부터 애플리케이션 계층까지 아우르는 통합 보안 계층을 제공한다는 강점이 있습니다. AI가 단순한 챗봇을 넘어 시스템 권한을 가진 '에이전트'로 진화함에 따라 프롬프트 하나가 심각한 보안 사고로 이어질 수 있습니다. 기업은 Cloudflare가 제공하는 무료 탐색 기능을 활용해 조직 내 AI 노출 범위를 우선적으로 파악하고, WAF 기반의 가드레일을 설정하여 확률적으로 발생하는 AI 입력값에 대한 안전 장치를 마련하는 것이 좋습니다.

복잡성은 선택입니다. SASE (새 탭에서 열림)

제로 트러스트 및 SASE(Secure Access Service Edge) 아키텍처로의 전환은 더 이상 수년이 걸리는 고통스러운 과정이 아니며, 클라우드플레어는 이를 단 몇 주 만에 완료할 수 있는 '선택의 영역'으로 바꾸고 있습니다. Cloudflare One 플랫폼을 통해 복잡한 수동 설정과 레거시 장비의 한계를 극복함으로써, 기업은 기술 부채와 보안 공백을 최소화하고 신속하게 안전한 AI 환경을 구축할 수 있습니다. ### 획기적인 구축 기간 단축: 18개월에서 6주로 * 기존 레거시 SASE 제품을 대규모 조직에 배포하는 데는 통상 18개월이 소요되지만, Cloudflare One을 활용하면 이를 4~6주로 대폭 단축할 수 있습니다. * 복잡한 '마법' 같은 기술 대신 전기나 수도처럼 설치 후 관리가 거의 필요 없는 '노터치(no-touch)' 방식의 보안 인프라를 제공합니다. * 이를 통해 CIO는 장기간의 기술 부채에서 벗어나 비즈니스 본연의 가치 창출에 집중할 수 있는 환경을 마련하게 됩니다. ### 레거시 마이그레이션 실패 원인 분석 및 해결 * 기존 마이그레이션은 단순 하드웨어 교체로 접근하여 데이터가 여러 검사 클러스터를 거치며 발생하는 '트롬본 효과(지연 현상)'와 복잡한 서비스 체이닝 문제를 야기했습니다. * 클라우드플레어는 보안 정책을 물리적 네트워크에서 분리하여 세 가지 핵심 요소를 통해 전환 속도를 높입니다. * **ID 중심의 온램프:** 네트워크 세그먼트를 재구축하는 대신 기존 ID 공급자(IdP) 그룹을 사용하여 액세스를 정의합니다. * **통합 정책 엔진:** SWG(보안 웹 게이트웨이)와 ZTNA(제로 트러스트 네트워크 액세스)를 단일 통과 방식으로 처리하여 관리자의 동기화 수고를 덜어줍니다. * **클라우드 네이티브 커넥터:** `cloudflared`와 같은 경량 데몬을 사용하여 인바운드 방화벽 포트를 열지 않고도 즉각적인 연결을 구현합니다. ### 유연하고 프로그래밍 가능한 확장형 에지 * 고정된 GUI 환경에서 벗어나 소프트웨어 정의 기반의 구성 가능한 플랫폼을 제공하여 특수한 업무 워크플로우를 수용합니다. * 특정 개발팀이 사용하는 Arch Linux와 같은 비표준 환경에서도 맞춤형 패키징(PKGBUILD 등)을 통해 기기 상태 점검(디스크 암호화, 방화벽 상태 등)을 일관되게 적용할 수 있습니다. * 이러한 유연성은 조직 전체의 보안 태세를 유지하면서도 특정 기술 요구 사항을 충족할 수 있게 합니다. ### 안전한 AI 도입을 위한 통합 보안 체계 * SWG의 역할이 단순 URL 차단에서 LLM(대규모 언어 모델)으로 흐르는 데이터 제어로 진화함에 따라, AI 보안 스위트를 통합적으로 제공합니다. * **Shadow AI 가시성:** 대시보드를 통해 네트워크 내에서 사용되는 미승인 타사 AI 도구를 즉시 발견하고 분류합니다. * **AI 신뢰 점수 및 DLP:** 규정 준수 포스처에 따라 AI 모델별로 등급을 매기고, DLP(데이터 손실 방지) 기능을 통해 민감한 소스 코드나 개인정보가 AI 학습 데이터로 유입되는 것을 차단합니다. * **AI용 방화벽:** 외부로 노출된 LLM 엔드포인트를 자동으로 식별하고 프롬프트 인젝션 등의 공격을 차단하여 자체 구축한 AI 앱을 보호합니다. 급변하는 비즈니스 환경에서 보안 마이그레이션의 속도는 곧 경쟁력입니다. 기업은 복잡한 하드웨어 중심의 레거시 방식에서 벗어나, ID 중심의 통합 클라우드 보안 플랫폼을 도입함으로써 제로 트러스트 전환과 안전한 AI 활용이라는 두 마리 토끼를 동시에 잡아야 합니다.

엔드포인트에서 프롬 (새 탭에서 열림)

Cloudflare One은 현대 기업 보안의 핵심을 '데이터 보안'으로 정의하며, 데이터가 이동하는 모든 경로를 단일 모델로 보호하는 통합 비전을 제시합니다. 데이터는 네트워크 경계를 넘어 엔드포인트, SaaS, 그리고 이제는 AI 프롬프트까지 매우 빠르게 이동하기 때문에, 보안 정책 역시 도구가 아닌 데이터 자체를 따라가야 한다는 것이 핵심입니다. 이를 위해 Cloudflare는 전송 중인 데이터(In Transit)와 저장된 데이터(At Rest)를 넘어, 사용 중인 데이터(In Use)와 AI 상호작용 단계까지 아우르는 포괄적인 통제 기능을 강화하고 있습니다. ### 브라우저 기반 RDP 클립보드 제어 외부 협력업체나 파트너에게 제공되는 브라우저 기반 원격 데스크톱(RDP) 접속 환경에 더욱 세밀한 데이터 보호 기능을 추가했습니다. * **양방향 제어:** 관리자는 로컬 장치와 브라우저 RDP 세션 간의 복사 및 붙여넣기 허용 여부를 정책에 따라 결정할 수 있습니다. * **맥락 기반 정책:** 예를 들어 고객 지원 포털 접속 시, 세션 내부로의 붙여넣기는 허용하여 생산성을 유지하되, 외부로의 복사는 차단하여 민감 정보가 관리되지 않는 기기로 유출되는 것을 방지합니다. * **설정 편의성:** 해당 기능은 Cloudflare One의 Access 애플리케이션 정책 설정 내에서 간편하게 활성화할 수 있습니다. ### 로그 내 작업 매핑을 통한 가시성 강화 단순한 HTTP 요청 데이터만으로는 파악하기 힘든 사용자의 구체적인 행위를 직관적으로 이해할 수 있도록 로그 시스템을 개선했습니다. * **작업 매핑(Operation Mapping):** 복잡한 HTTP 요청을 '프롬프트 전송(SendPrompt)'이나 '업로드(Upload)'와 같은 의미 있는 작업으로 해석하여 기록합니다. * **애플리케이션 제어 그룹:** 유사한 행위들을 그룹화하여 로그에 표시함으로써, 관리자가 별도의 분석 없이도 SaaS 애플리케이션 내의 활동 패턴을 즉시 파악할 수 있습니다. * **조사 가속화:** 강화된 로그 문맥을 통해 보안 사고 조사 시 원인을 빠르게 규명하고, 사용자 업무 방해를 최소화하면서 정책을 정교하게 튜닝할 수 있습니다. ### Cloudflare One 클라이언트 기반 엔드포인트 DLP 데이터가 브라우저를 벗어나 OS 클립보드로 이동하는 순간 발생하는 보안 공백을 메우기 위해 '엔드포인트 DLP' 기능을 통합했습니다. * **사용 중인 데이터(In Use) 보호:** 민감한 코드가 고객 정보가 SaaS 앱에서 복사되어 권한이 없는 AI 도구나 개인 메일로 붙여넣기 되는 상황을 실시간으로 차단합니다. * **단일 에이전트 전략:** 별도의 보안 솔루션을 추가로 설치할 필요 없이, 기존 Cloudflare One 클라이언트 하나로 네트워크 게이트웨이부터 엔드포인트 데이터 보호까지 수행합니다. * **정책 일관성:** 브라우저 탭을 떠난 콘텐츠에 대해서도 기존의 데이터 보호 정책을 일관되게 적용하여 '엔드포인트에서 프롬프트까지'의 보안 체인을 완성합니다. ### API CASB를 통한 Microsoft 365 Copilot 스캔 AI가 기업 데이터의 새로운 인터페이스로 자리 잡음에 따라, Microsoft 365 Copilot 내에서 발생하는 보안 위험을 탐지하는 기능을 도입했습니다. * **AI 활동 분석:** API 기반의 CASB(Cloud Access Security Broker)를 통해 Copilot 내의 채팅 내용과 업로드된 파일이 기업의 DLP 프로필에 위배되는지 스캔합니다. * **풍부한 컨텍스트 제공:** 단순히 위반 사실만 알리는 것이 아니라, 참조된 파일, 매칭된 DLP 프로필 정보, 상호작용 메타데이터를 함께 제공하여 신속한 대응을 돕습니다. * **확장된 AI 커버리지:** ChatGPT, Claude, Gemini에 이어 M365 Copilot까지 지원 범위를 넓혀 기업 내 생성형 AI 사용에 대한 가시성 사각지대를 제거합니다. 현대 보안 환경에서는 데이터가 제품이나 네트워크의 경계를 넘나들기 때문에, 특정 도구에 종속된 보안이 아닌 데이터 중심의 통합 보안 모델을 구축하는 것이 필수적입니다. Cloudflare One이 제공하는 엔드포인트부터 AI 프롬프트까지의 통합 가시성과 통제력을 활용하여, 보안성과 생산성 사이의 균형을 유지하면서도 데이터 유출 위험을 근본적으로 낮추는 전략을 권장합니다.

애자일 SASE를 통한 현대 (새 탭에서 열림)

현대 기업 네트워크 환경이 재택근무의 일상화와 AI 에이전트의 등장으로 경계가 없는 시대로 진입함에 따라, 기존의 파편화된 보안 솔루션과 레거시 VPN은 더 이상 유효하지 않은 기술 부채가 되었습니다. 클라우드플레어는 이러한 복잡성을 해결하고 비즈니스 성장을 가속화하기 위해 가볍고 유연한 '애자일 SASE(Agile SASE)' 플랫폼인 Cloudflare One을 제시합니다. 이는 네트워킹과 보안을 단일 글로벌 연결 클라우드로 통합하여 성능 저하 없이 실시간 대응력을 극대화하는 현대적 보안 아키텍처를 지향합니다. ## 기존 SASE의 한계와 애자일 SASE의 정의 * 과거의 보안 방식은 하드웨어 박스와 VPN 농축기에 의존하여 수천 개의 방화벽 규칙과 수동 패치 등 관리하기 어려운 기술 부채를 야기해 왔습니다. * 1세대 SASE 제공업체들은 단순히 기존의 파편화된 구조를 클라우드로 옮겨놓은 것에 불과하여, 데이터 센터 간의 운영 사일로(Silo) 문제를 해결하지 못했습니다. * 애자일 SASE는 전 세계 300개 이상의 도시에 구축된 글로벌 네트워크를 기반으로, 모든 보안 검사를 모든 서버에서 동시에 실행하는 구조를 가집니다. * 데이터가 여러 도구를 순차적으로 거치는 '서비스 체이닝(Service-chaining)' 방식에서 벗어나 '싱글 패스(Single-pass)' 아키텍처를 채택함으로써 보안 프로세스가 비즈니스의 병목이 아닌 추진력이 되도록 설계되었습니다. ## 프로그래밍 가능한 보안 및 통합 가시성 * Cloudflare One은 단순한 보안 솔루션을 넘어 개발자 플랫폼인 Cloudflare Workers와 결합되어 기업이 보안 이벤트를 실시간으로 가로채고 코드로 제어할 수 있는 구성 가능성(Composability)을 제공합니다. * 단순한 '허용/차단' 규칙을 넘어 정교한 자동화 운영이 가능하며, 이는 블랙박스 형태의 기존 레거시 벤더들과 차별화되는 지점입니다. * AI 기술을 역으로 활용해 대량의 보안 데이터에서 유의미한 신호를 추출하고, 사람이 읽을 수 있는 실시간 조치로 전환하는 'AI를 대항하는 AI' 전략을 사용합니다. * 신원 확인 체계 역시 단순 패스워드를 넘어 인간과 장치에 대한 포괄적인 검증 시스템으로 진화시키고 있습니다. ## SASE 전환을 위한 단계별 실행 전략 * **원격 접속 현대화:** 유지보수 비용이 높은 VPN을 대체하여 더 빠르고 안전한 클라이언트리스(Clientless) 제로 트러스트 접속 환경을 구축합니다. * **이메일 및 DNS 보호:** AI 기반 플랫폼으로 비즈니스 이메일 침해(BEC)를 차단하고, 세계에서 가장 빠른 1.1.1.1 리졸버를 활용해 악성 사이트 접속을 원천 차단합니다. * **안전한 AI 도입:** 기업 내에서 몰래 사용되는 섀도우 AI(Shadow AI)를 파악하고, 생성형 AI 프롬프트로 유입되는 민감 데이터를 관리하는 거버넌스를 수립합니다. * **지점 네트워크 단순화:** 무거운 하드웨어 장비 없이도 모든 사무실을 원격지처럼 취급하여 지점 네트워크 구성을 간소화합니다. 향후 10년의 인터넷 환경은 AI와 양자 수준의 리스크가 공존할 것이며, 느린 마이그레이션 일정은 비즈니스의 장애물이 될 것입니다. 클라우드플레어는 최대 50인까지 무료로 제공되는 Cloudflare One을 통해 기업들이 리스크 없이 제로 트러스트 현대화를 시작하고, 비즈니스 규모에 맞춘 유연한 보안 체계를 구축할 것을 권장합니다.

AI 제품 개발 중 마주칠 수 있는 보안 위협 사례와 대책 방안 (새 탭에서 열림)

AI 제품 개발은 생산성을 비약적으로 높여주지만, 환각 현상이나 프롬프트 주입과 같은 새로운 형태의 보안 위협을 동반합니다. 이러한 리스크는 단순히 오답을 제공하는 수준을 넘어 악성코드 설치, 원격 코드 실행(RCE), 민감 정보 유출로 이어질 수 있어 기존과는 다른 다각도의 방어 전략이 필요합니다. LY Corporation은 실제 사례 분석을 통해 AI 모델과 외부 도구 간의 접점을 보호하고 보안 검토를 자동화하는 등의 대응 방안을 구축하고 있습니다. ## 슬랍스쿼팅(Slopsquatting)과 패키지 오인 * AI가 존재하지 않는 소프트웨어 패키지 이름을 마치 실제인 것처럼 제안하는 '환각(Hallucination)' 현상을 악용한 공격입니다. * 예를 들어, AI가 `huggingface_hub[cli]` 대신 `huggingface-cli`라는 잘못된 패키지 설치를 권장할 때, 공격자가 미리 해당 이름으로 악성 패키지를 등록해 두면 사용자가 이를 설치하게 됩니다. * 이를 방지하기 위해 AI가 생성한 코드나 설치 지침을 실행하기 전 반드시 공식 문서와 대조하여 검증하는 절차가 필수적입니다. ## 프롬프트 주입을 통한 원격 코드 실행(RCE) * Vanna AI 사례(CVE-2024-5565)와 같이 자연어를 SQL이나 파이썬 코드로 변환하여 직접 실행하는 서비스에서 주로 발생합니다. * 사용자가 입력창에 악의적인 명령을 주입하여 애플리케이션 권한 내에서 임의의 시스템 명령어를 실행하도록 유도할 수 있습니다. * LLM을 전적으로 신뢰하여 코드를 실행하게 두지 말고, 사용자 입력을 엄격히 검증(Sanitize)하며 데이터 생성 용도로만 제한적으로 활용해야 합니다. ## 오피스 AI에서의 간접 프롬프트 주입 * 이메일이나 문서 본문에 숨겨진 악성 지시사항을 AI가 읽고 실행하게 만드는 '간접 주입' 방식의 위협입니다. * 가령, 피싱 사이트로 유도를 하거나 비밀번호 변경을 종용하는 문구가 포함된 이메일을 AI가 요약하는 과정에서 사용자를 속이는 스크립트를 수행하게 될 수 있습니다. * 입력 데이터뿐만 아니라 AI가 내놓는 출력물에 대해서도 가드레일(Guardrails)을 적용하여 이상 징후를 탐지하는 이중 방어 체계가 필요합니다. ## 코딩 에이전트의 권한 남용 및 데이터 노출 * GitHub MCP(Model Context Protocol)와 같이 자동화된 코딩 에이전트가 공개 저장소와 비공개 저장소에 동시에 접근할 때 발생합니다. * 공개 저장소의 이슈나 PR에 포함된 악성 명령어가 에이전트를 통해 실행되면, 에이전트의 권한을 이용해 비공개 저장소에 있는 급여 정보나 개인정보를 외부로 유출할 수 있습니다. * 에이전트가 접근 가능한 데이터 범위를 최소화하고, 작업 단위별로 권한을 분리하는 보안 디자인이 중요합니다. ## 임베딩 인버전(Embedding Inversion)을 통한 정보 복원 * 텍스트 데이터를 수치화한 벡터 임베딩 값으로부터 원본 텍스트를 역으로 추론해내는 공격 기법입니다. * 임베딩 데이터 자체가 유출될 경우, 비식별화되었다고 판단했던 민감한 정보가 다시 복원되어 프라이버시 침해로 이어질 수 있습니다. * 벡터 데이터베이스에 대한 접근 제어를 강화하고 임베딩 데이터의 보안 수준을 원본 데이터와 동일하게 관리해야 합니다. AI 프로덕트의 안전성을 확보하기 위해서는 기획 단계에서의 보안 디자인 리뷰는 물론, 위협 모델링 자동화 도구인 'ConA'나 소스 코드 취약점 분석 자동화 도구인 'LAVA'와 같은 기술적 솔루션을 적극적으로 도입하여 보안 프로세스를 내재화하는 것이 권장됩니다.