export type BlogFaq = {
  answer: string;
  question: string;
};

export type BlogSection = {
  bullets?: string[];
  callout?: {
    body: string;
    title: string;
  };
  id: string;
  paragraphs: string[];
  steps?: Array<{
    body: string;
    title: string;
  }>;
  table?: {
    headers: string[];
    rows: string[][];
  };
  title: string;
};

export type BlogPost = {
  category: string;
  description: string;
  faqs: BlogFaq[];
  intro: string;
  keywords: string[];
  publishedAt: string;
  readingMinutes: number;
  sections: BlogSection[];
  slug: string;
  summary: string;
  title: string;
  updatedAt: string;
};

export const blogPosts: BlogPost[] = [
  {
    slug: "gabia-domain-email-setup",
    category: "도메인 연결",
    title: "가비아 도메인 메일 설정 방법: MX·SPF·DKIM을 한 번에 점검하기",
    description:
      "가비아에서 보유한 도메인으로 기업메일을 쓰는 방법을 정리했습니다. MX, SPF, DKIM 레코드의 역할과 입력 순서, 연결 확인 방법까지 안내합니다.",
    summary: "가비아 DNS 관리 화면에서 도메인 메일을 연결할 때 필요한 레코드와 확인 순서를 정리한 가이드입니다.",
    intro:
      "도메인을 구매했다고 바로 company@brand.com 주소로 메일을 받을 수 있는 것은 아닙니다. 메일을 어느 서버로 받을지, 그 도메인에서 메일을 보낼 권한이 있는지를 DNS에 알려야 합니다. 이 글은 가비아에서 도메인을 관리하는 사업자가 오피셜메일에 도메인 메일을 연결할 때 필요한 설정 순서를 설명합니다.",
    keywords: [
      "가비아 도메인 메일 설정",
      "가비아 기업메일 설정",
      "가비아 MX 설정",
      "가비아 SPF DKIM",
      "도메인 이메일 만들기",
    ],
    publishedAt: "2026-07-22T09:00:00+09:00",
    updatedAt: "2026-07-22T09:00:00+09:00",
    readingMinutes: 6,
    sections: [
      {
        id: "before-start",
        title: "시작 전에 준비할 것",
        paragraphs: [
          "도메인 메일 연결은 도메인 소유권을 가진 사람이 DNS 레코드를 수정할 수 있어야 진행할 수 있습니다. 가비아에서 도메인을 구매했더라도 네임서버를 다른 서비스로 변경한 경우에는 실제 DNS를 관리하는 서비스에서 값을 입력해야 합니다.",
          "오피셜메일 가입 후 도메인 연결 화면에서 사용할 도메인과 대표 메일 주소를 먼저 등록하세요. 화면에 표시되는 레코드 값은 해당 도메인에 맞춰 발급된 값이므로, 다른 회사나 예전 설정에서 복사한 DKIM 키를 사용하면 안 됩니다.",
        ],
        bullets: [
          "도메인 관리 권한 또는 DNS 관리 권한",
          "대표 메일 주소 예: contact@brand.com",
          "오피셜메일 도메인 연결 화면에 표시된 최신 레코드 값",
        ],
        callout: {
          title: "www는 도메인이 아닙니다",
          body: "가입 또는 연결 화면에는 www.brand.com이 아니라 brand.com을 입력합니다. www는 홈페이지 접속용 호스트 이름이며, 메일 도메인은 보통 루트 도메인을 기준으로 설정합니다.",
        },
      },
      {
        id: "records",
        title: "MX·SPF·DKIM은 각각 무엇을 하나요?",
        paragraphs: [
          "MX는 고객이 brand.com으로 메일을 보냈을 때 어느 메일 서버가 수신할지를 정합니다. MX가 맞지 않으면 메일이 오피셜메일 메일함으로 들어오지 않거나 기존 메일 서비스로 계속 들어갈 수 있습니다.",
          "SPF와 DKIM은 발신 인증에 사용됩니다. SPF는 이 도메인으로 발송할 수 있는 서버를 선언하고, DKIM은 발송 메일에 전자서명을 붙여 수신 서버가 도메인 발송 여부를 검증할 수 있게 합니다. 특히 Gmail 등 외부 수신처에서 반송이나 스팸 분류를 줄이려면 두 항목을 함께 확인하는 것이 좋습니다.",
        ],
        table: {
          headers: ["레코드", "역할", "가비아 입력 위치"],
          rows: [
            ["MX", "수신 메일 경로", "호스트 @, 우선순위와 메일 서버 값 입력"],
            ["SPF", "발송 서버 선언", "호스트 @, TXT 값 입력"],
            ["DKIM", "발신 서명 검증", "호스트 dkim._domainkey, TXT 값 입력"],
            ["DMARC", "인증 실패 처리 정책", "호스트 _dmarc, TXT 값 입력"],
          ],
        },
      },
      {
        id: "gabia-steps",
        title: "가비아 DNS에서 설정하는 순서",
        paragraphs: [
          "가비아 관리자에서 도메인을 선택한 뒤 DNS 관리 또는 DNS 레코드 관리 메뉴로 들어갑니다. 기존에 다른 메일 서비스에서 사용하던 MX 또는 SPF 레코드가 있다면 바로 삭제하지 말고, 현재 사용 중인 메일함이 있는지 먼저 확인하세요. 수신 경로를 바꾸는 순간 기존 서비스의 수신도 영향을 받습니다.",
        ],
        steps: [
          {
            title: "오피셜메일에서 레코드 값 열기",
            body: "메일함의 도메인 연결 화면에서 MX, SPF, DKIM, DMARC 항목을 확인합니다. DKIM은 현재 도메인에 발급된 값을 그대로 사용합니다.",
          },
          {
            title: "가비아에서 MX 레코드 추가 또는 교체",
            body: "호스트는 보통 @로 두고, 오피셜메일 화면의 메일 서버와 우선순위를 입력합니다. 이전 MX 레코드가 남아 있으면 수신 경로가 분산될 수 있으므로 현재 메일 서비스 사용 여부를 확인합니다.",
          },
          {
            title: "TXT 레코드로 SPF와 DKIM 입력",
            body: "SPF는 루트 호스트(@), DKIM은 dkim._domainkey 호스트에 입력합니다. 한 도메인에 SPF TXT 레코드를 여러 개 만들면 인증이 실패할 수 있으므로 기존 SPF가 있다면 하나의 정책으로 합칩니다.",
          },
          {
            title: "도메인 연결 화면에서 상태 확인",
            body: "저장 직후에는 DNS 전파 시간이 필요할 수 있습니다. 연결 상태 확인을 눌러 MX, SPF, DKIM 항목을 각각 검증하고, 완료 후 외부 주소로 테스트 수신·발신을 해봅니다.",
          },
        ],
      },
      {
        id: "check",
        title: "연결 완료 후에는 수신과 발신을 따로 확인하세요",
        paragraphs: [
          "도메인 연결 완료 표시는 DNS 레코드를 조회해 설정값이 맞는지 확인한 결과입니다. 실제 운영 전에는 외부 Gmail 또는 네이버 메일에서 대표 주소로 테스트 메일을 보내 수신되는지 확인하고, 반대로 대표 주소에서 외부 주소로 메일을 보내 발신이 도착하는지도 확인해야 합니다.",
          "발신 메일이 도착했더라도 스팸함으로 들어가거나 인증 실패 문구가 보이면 SPF와 DKIM을 다시 확인하세요. DNS 관리 화면에서 긴 TXT 값이 줄바꿈되더라도 DNS 조회 결과에서는 하나의 값으로 연결되어야 합니다.",
        ],
        bullets: [
          "외부 주소 → 대표 주소: 수신 경로 확인",
          "대표 주소 → 외부 주소: 발신 및 스팸 분류 확인",
          "보낸 메일 원문: SPF, DKIM 인증 결과 확인",
          "오피셜메일 도메인 연결 화면: 레코드별 검증 상태 확인",
        ],
      },
    ],
    faqs: [
      {
        question: "가비아에서 DNS를 저장했는데 바로 연결 완료가 되지 않습니다.",
        answer:
          "DNS 반영에는 시간이 필요할 수 있습니다. 먼저 레코드의 호스트, 값, 우선순위를 다시 확인하고, 기존 MX 또는 중복 SPF 레코드가 남아 있지 않은지 점검하세요. 시간이 지난 뒤 오피셜메일 도메인 연결 화면에서 다시 확인하면 됩니다.",
      },
      {
        question: "DKIM TXT 값이 너무 길어 가비아에 입력하기 어렵습니다.",
        answer:
          "긴 DKIM 키는 DNS 서비스 화면에서 구간으로 나뉘어 보일 수 있습니다. 오피셜메일 도메인 연결 화면의 DKIM 호환 모드가 제공되는 경우 1024-bit 키를 발급해 등록할 수 있습니다. 발급한 뒤에는 반드시 새 값으로 교체해야 합니다.",
      },
      {
        question: "기존 메일 서비스도 함께 쓰고 있습니다.",
        answer:
          "MX 변경은 수신 경로에 직접 영향을 줍니다. 이전 메일함에 중요한 수신이 남아 있다면 전환 전 수신 정책과 이전 데이터 보관 방법을 정한 뒤 변경하세요.",
      },
    ],
  },
  {
    slug: "gmail-550-spf-dkim-fix",
    category: "메일 반송 해결",
    title: "Gmail 550 5.7.26 해결 방법: SPF와 DKIM 인증 실패 점검 순서",
    description:
      "Gmail에서 550 5.7.26 sender unauthenticated 반송이 발생했을 때 SPF와 DKIM을 점검하는 방법을 정리했습니다. 원인별 확인 순서와 도메인 DNS 설정 기준을 안내합니다.",
    summary: "Gmail이 발신자 인증 실패로 메일을 거절할 때 확인해야 할 SPF·DKIM·도메인 DNS 점검 가이드입니다.",
    intro:
      "Gmail로 메일을 보냈는데 550 5.7.26, sender unauthenticated, SPF did not pass, DKIM did not pass 같은 반송 문구가 보이면 발신 도메인 인증이 통과하지 못한 상태입니다. 수신자 주소가 잘못된 문제가 아니라 도메인의 DNS 설정과 실제 발송 서버가 일치하는지 확인해야 합니다.",
    keywords: [
      "Gmail 550 5.7.26 해결",
      "SPF did not pass",
      "DKIM did not pass",
      "Gmail 메일 반송 해결",
      "sender unauthenticated",
    ],
    publishedAt: "2026-07-22T09:00:00+09:00",
    updatedAt: "2026-07-22T09:00:00+09:00",
    readingMinutes: 7,
    sections: [
      {
        id: "meaning",
        title: "550 5.7.26은 무엇을 뜻하나요?",
        paragraphs: [
          "이 오류는 Gmail이 발신 도메인을 인증할 수 없어서 메일을 거절했다는 뜻입니다. 반송 메일에는 보통 SPF와 DKIM 중 어떤 항목이 통과하지 않았는지 함께 표시됩니다. 둘 중 하나만 실패한 경우도 있지만, 둘 다 실패하면 우선 도메인 DNS와 발송 경로를 함께 점검해야 합니다.",
          "같은 발신 주소라도 어떤 수신자에게는 도착하고 Gmail에는 반송될 수 있습니다. 수신 서비스마다 인증 정책이 다르기 때문입니다. 따라서 한 주소로만 테스트해 정상이라고 판단하지 말고 Gmail 수신 테스트를 별도로 해야 합니다.",
        ],
        callout: {
          title: "코드 문제가 아닙니다",
          body: "이 반송은 웹사이트 코드나 메일 작성 화면 문제가 아니라, 발신 도메인이 실제 메일 서버를 허용하고 서명하고 있는지에 대한 DNS 인증 문제입니다.",
        },
      },
      {
        id: "spf",
        title: "SPF는 발송 서버와 도메인을 연결합니다",
        paragraphs: [
          "SPF는 도메인 이름으로 메일을 보낼 수 있는 서버를 TXT 레코드에 선언하는 방식입니다. Gmail이 메일을 받으면 보낸 서버 IP와 도메인의 SPF 정책을 대조합니다. 현재 사용하는 메일 서버가 정책에 포함되지 않으면 SPF는 실패합니다.",
          "가장 흔한 실수는 SPF 레코드를 두 개 이상 만드는 것입니다. 루트 도메인(@)에 SPF TXT 레코드는 하나만 두고, 기존 서비스와 오피셜메일을 함께 사용하는 경우 필요한 발송 경로를 하나의 SPF 정책에 합쳐야 합니다.",
        ],
        bullets: [
          "메일의 From 주소 도메인과 SPF를 조회한 도메인이 일치하는지 확인",
          "현재 발송 서버가 SPF 정책에 포함되는지 확인",
          "루트 도메인에 v=spf1로 시작하는 TXT 레코드가 하나인지 확인",
          "이전 메일 서비스의 SPF를 남겨야 하는지 확인",
        ],
      },
      {
        id: "dkim",
        title: "DKIM은 메일 내용에 도메인 서명을 붙입니다",
        paragraphs: [
          "DKIM은 발송 서버가 메일에 서명하고, 수신 서버가 DNS에 공개된 키로 그 서명을 확인하는 방식입니다. DKIM이 실패한다는 것은 DNS에 키가 없거나, 다른 키가 등록돼 있거나, 발송 서버가 해당 selector로 서명하지 않는 상황일 수 있습니다.",
          "오피셜메일 도메인 연결 화면에서 표시되는 DKIM 호스트와 TXT 값을 사용하세요. 다른 도메인에서 복사한 키, 과거에 재발급한 키, 값 일부가 잘린 키는 현재 발송 서명과 맞지 않을 수 있습니다.",
        ],
        steps: [
          {
            title: "현재 DKIM selector 확인",
            body: "도메인 연결 화면의 호스트 이름을 확인합니다. 일반적으로 dkim._domainkey처럼 표시되지만 서비스별 selector는 다를 수 있습니다.",
          },
          {
            title: "TXT 값 전체 등록",
            body: "v=DKIM1로 시작하는 공개키 값을 누락 없이 등록합니다. DNS 관리 화면의 표시상 줄바꿈과 실제 TXT 값 분할은 구분해서 확인합니다.",
          },
          {
            title: "재발급했다면 이전 값 교체",
            body: "호환 모드 또는 재발급으로 키가 바뀌었다면 DNS의 기존 키를 새 값으로 바꾸고 전파가 끝난 뒤 다시 검증합니다.",
          },
        ],
      },
      {
        id: "diagnose",
        title: "반송 메일에서 원인을 읽는 방법",
        paragraphs: [
          "반송 메일의 Authentication results 또는 Diagnostic-Code 부분을 보면 Gmail이 어떤 도메인과 IP를 검사했는지 확인할 수 있습니다. 예를 들어 SPF [brand.com] with ip: [서버 IP] = did not pass라고 나오면, brand.com의 SPF에 그 서버가 허용되지 않았다는 의미입니다.",
          "DKIM = did not pass가 함께 보이면 DKIM 공개키 조회나 서명 검증이 실패한 것입니다. 문제를 해결한 뒤에는 동일한 수신자에게 다시 보내기 전에 오피셜메일의 도메인 연결 상태 확인을 실행하고, 새 메일로 재테스트하세요. 이미 큐에 들어간 메일은 이전 인증 상태로 발송됐을 수 있습니다.",
        ],
        table: {
          headers: ["반송 문구", "우선 확인할 항목"],
          rows: [
            ["SPF = did not pass", "루트 도메인의 SPF 정책, 중복 SPF, 발송 서버 포함 여부"],
            ["DKIM = did not pass", "DKIM 호스트, 최신 공개키, 키 재발급 여부"],
            ["SPF와 DKIM 모두 실패", "DNS 관리 위치, 도메인 오타, 이전 서비스 레코드 충돌"],
            ["인증은 통과했지만 스팸함", "메일 내용, 발송량, 수신자 반응, DMARC 정책"],
          ],
        },
      },
      {
        id: "prevention",
        title: "수정 후 재발을 줄이는 운영 기준",
        paragraphs: [
          "도메인 메일을 운영하면서 메일 서비스를 바꾸거나, 자동발송 도구를 추가하거나, DNS 담당자가 바뀌면 인증 레코드가 깨질 수 있습니다. 발송 도구를 추가할 때마다 SPF에 새 서버를 무작정 늘리기보다 실제로 도메인 이름으로 발송하는 서비스인지 먼저 확인하세요.",
          "대량 홍보 메일은 인증이 통과해도 수신자 반응과 발송 평판에 영향을 받습니다. 수신 동의가 없거나 관련성이 낮은 대상을 대량으로 추가하는 방식보다, 요청한 사람에게 필요한 정보를 보내고 수신 거부 경로를 제공하는 운영이 안전합니다.",
        ],
      },
    ],
    faqs: [
      {
        question: "SPF를 mx1.officialsite.kr에 추가하면 되나요?",
        answer:
          "보통 SPF는 발신 주소의 도메인 루트에 설정합니다. 예를 들어 hello@brand.com으로 보냈다면 brand.com의 SPF 정책이 기준입니다. 실제 값은 오피셜메일 도메인 연결 화면에서 안내하는 값을 사용하세요.",
      },
      {
        question: "DKIM을 설정하지 않아도 메일을 보낼 수 있나요?",
        answer:
          "일부 수신처에는 도착할 수 있지만, 업무용 도메인 메일은 DKIM을 함께 설정하는 편이 좋습니다. Gmail처럼 발신 인증을 엄격하게 확인하는 수신처에서 반송 또는 스팸 분류 위험을 줄이는 데 도움이 됩니다.",
      },
      {
        question: "DNS를 수정했는데도 계속 반송됩니다.",
        answer:
          "DNS 전파 후 새 메일로 다시 테스트해야 합니다. 또한 실제 DNS를 관리하는 서비스가 어디인지, 이전 SPF·DKIM 레코드가 남아 있지 않은지, From 주소의 도메인이 설정한 도메인과 같은지 확인하세요.",
      },
    ],
  },
  {
    slug: "company-email-address-guide",
    category: "기업메일 시작",
    title: "회사 이메일 주소 만들기: 대표 메일부터 도메인 연결까지",
    description:
      "회사 이메일 주소를 처음 만들 때 필요한 도메인, 대표 계정, DNS 연결, 발신 인증의 순서를 안내합니다. 1인 사업자와 작은 팀이 바로 적용할 수 있는 기업메일 시작 가이드입니다.",
    summary: "회사 이름이 들어간 이메일 주소를 만들기 위해 필요한 도메인 선택, 대표 주소 구성, 연결 순서를 정리했습니다.",
    intro:
      "사업자 등록을 마치고 홈페이지나 명함을 만들 때, 고객이 가장 먼저 확인하는 연락처 중 하나가 이메일 주소입니다. 개인 메일을 계속 써도 업무는 가능하지만, 견적·계약·제휴처럼 신뢰가 필요한 순간에는 회사 도메인 주소가 공식 창구 역할을 합니다. 처음에는 대표 메일 하나만 제대로 만드는 것으로 충분합니다.",
    keywords: [
      "회사 이메일 주소 만들기",
      "기업메일 만들기",
      "회사 메일 만들기",
      "업무용 이메일 만들기",
      "대표 메일 주소",
    ],
    publishedAt: "2026-07-22T09:00:00+09:00",
    updatedAt: "2026-07-22T09:00:00+09:00",
    readingMinutes: 5,
    sections: [
      {
        id: "address",
        title: "회사 이메일은 주소 구조부터 정합니다",
        paragraphs: [
          "회사 이메일은 보통 이름 앞부분과 도메인으로 구성됩니다. contact@brand.com, hello@brand.com, support@brand.com처럼 고객이 용도를 바로 이해할 수 있는 주소가 좋습니다. 대표자가 직접 관리하는 계정은 admin@brand.com 또는 대표 이름 기반 주소로 두고, 외부 공개 주소와 분리해도 됩니다.",
          "처음부터 모든 역할별 주소를 만들 필요는 없습니다. 고객 문의가 많지 않은 초기에는 contact 또는 hello 하나로 시작하고, 고객지원·정산·채용처럼 업무량이 분명해질 때 별도 계정을 추가하는 편이 관리하기 쉽습니다.",
        ],
        bullets: [
          "외부 공개용: contact, hello, support, sales",
          "관리용: admin, owner, 운영자 이름",
          "역할별 확장용: billing, careers, partnership",
        ],
      },
      {
        id: "domain",
        title: "도메인이 있어야 회사 이름이 주소에 들어갑니다",
        paragraphs: [
          "회사 이메일의 @ 뒤에는 회사가 소유한 도메인이 들어갑니다. 홈페이지가 brand.com이라면 contact@brand.com처럼 같은 도메인을 사용하면 고객이 주소를 기억하기 쉽고, 웹사이트와 메일의 공식성이 연결됩니다.",
          "아직 도메인이 없다면 회사명, 상표, 발음하기 쉬운 영문 이름을 기준으로 선택하세요. 이미 홈페이지를 운영하고 있다면 기존 도메인을 그대로 쓰는 것이 일반적입니다. www.brand.com은 홈페이지 접속용 이름이므로 메일 설정에는 brand.com을 사용합니다.",
        ],
        callout: {
          title: "도메인과 웹사이트 호스팅은 다릅니다",
          body: "홈페이지를 만드는 서비스와 메일을 운영하는 서비스는 달라도 됩니다. 필요한 것은 도메인의 DNS를 수정할 수 있는 권한입니다.",
        },
      },
      {
        id: "setup",
        title: "대표 메일 하나를 만드는 실제 순서",
        paragraphs: [
          "오피셜메일은 대표 메일 1개를 무료로 시작할 수 있습니다. 가입 후 대표 메일 주소와 도메인을 등록하고, 도메인 연결 화면에 표시되는 DNS 값을 도메인 관리 서비스에 입력하면 됩니다.",
        ],
        steps: [
          {
            title: "도메인과 대표 주소 결정",
            body: "brand.com과 contact@brand.com처럼 외부에 안내할 주소를 정합니다. 주소를 자주 바꾸면 명함, 홈페이지, 광고 문구도 함께 수정해야 합니다.",
          },
          {
            title: "오피셜메일 가입 및 대표 계정 생성",
            body: "대표 계정으로 가입한 뒤 사용할 도메인을 입력합니다. 대표 계정은 팀 설정과 도메인 연결을 관리하는 기준 계정이 됩니다.",
          },
          {
            title: "DNS 레코드 연결",
            body: "MX로 수신 경로를 설정하고, SPF와 DKIM으로 발신 인증을 설정합니다. 서비스 화면의 값과 도메인 DNS 값을 항목별로 대조합니다.",
          },
          {
            title: "외부 수신·발신 테스트",
            body: "Gmail 또는 네이버 메일에서 대표 주소로 테스트하고, 대표 주소에서도 외부 주소로 메일을 보내 수신 여부와 스팸 분류를 확인합니다.",
          },
        ],
      },
      {
        id: "operation",
        title: "대표 메일부터 시작하면 좋은 이유",
        paragraphs: [
          "초기 사업자는 모든 업무가 대표자에게 모이기 때문에 대표 메일 하나만 잘 운영해도 문의, 제휴, 계약 메일을 개인 계정과 분리할 수 있습니다. 주소가 회사 자산으로 남기 때문에 담당자가 바뀌어도 고객이 알고 있는 공식 연락처는 유지됩니다.",
          "팀이 커질 때만 멤버 계정을 추가하면 됩니다. 고객지원 담당자가 생기면 support, 영업 담당자가 생기면 sales처럼 역할에 맞춰 확장하고, 각 계정이 받은 메일과 보낸 메일을 분리해 인수인계 부담을 줄일 수 있습니다.",
        ],
      },
    ],
    faqs: [
      {
        question: "대표 메일은 어떤 이름으로 만드는 것이 좋나요?",
        answer:
          "고객에게 공개할 대표 창구라면 contact, hello, support처럼 용도를 이해하기 쉬운 이름이 좋습니다. 관리 전용 계정은 admin처럼 분리해도 됩니다.",
      },
      {
        question: "도메인이 없으면 회사 이메일을 만들 수 없나요?",
        answer:
          "회사 이름이 들어간 @도메인 주소를 만들려면 도메인이 필요합니다. 도메인을 구매한 뒤 DNS 연결을 하면 기업메일을 사용할 수 있습니다.",
      },
      {
        question: "대표 메일만으로 시작해도 되나요?",
        answer:
          "네. 초기에는 대표 메일 하나로 시작하고, 실제 업무량과 담당자가 늘어날 때 멤버 계정이나 역할별 주소를 추가하는 방식이 효율적입니다.",
      },
    ],
  },
  {
    slug: "naver-works-domain-email-guide",
    category: "서비스 비교",
    title: "네이버웍스 대신 도메인 메일을 선택하기 전 확인할 5가지",
    description:
      "네이버웍스와 독립 도메인 메일 중 어떤 방식이 작은 팀에 맞는지 비교합니다. 그룹웨어가 필요한 경우와 대표 메일부터 가볍게 시작하기 좋은 경우를 나눠 설명합니다.",
    summary: "그룹웨어 전체가 필요한 팀과 기업메일부터 빠르게 시작하려는 팀의 선택 기준을 정리했습니다.",
    intro:
      "도메인 메일을 만들려고 검색하다 보면 네이버웍스 같은 그룹웨어와 독립 기업메일 서비스를 함께 비교하게 됩니다. 어느 쪽이 무조건 더 좋다고 말하기보다, 필요한 업무 범위와 팀 규모가 무엇인지 먼저 정하는 것이 맞습니다. 메일 외에 캘린더·드라이브·결재가 필요한지, 또는 공식 이메일만 빠르게 열어야 하는지를 기준으로 보면 선택이 쉬워집니다.",
    keywords: [
      "네이버웍스 대신 기업메일",
      "네이버웍스 대체",
      "도메인 메일 비교",
      "소규모 기업메일",
      "무료 기업메일",
    ],
    publishedAt: "2026-07-22T09:00:00+09:00",
    updatedAt: "2026-07-22T09:00:00+09:00",
    readingMinutes: 6,
    sections: [
      {
        id: "different-purpose",
        title: "그룹웨어와 도메인 메일은 해결하는 범위가 다릅니다",
        paragraphs: [
          "그룹웨어는 메일뿐 아니라 일정, 주소록, 파일, 결재 같은 협업 도구를 함께 운영하려는 조직에 적합합니다. 이미 여러 담당자가 있고 사내 업무를 한 제품 안에서 표준화해야 한다면 그룹웨어 도입을 검토할 이유가 충분합니다.",
          "반면 1인 사업자나 작은 팀은 먼저 고객에게 보여줄 공식 메일 주소와 수신·발신 흐름이 필요한 경우가 많습니다. 이때는 복잡한 조직 도구를 모두 도입하기보다 대표 메일 하나를 도메인에 연결하고, 필요한 때 팀 메일함과 자동화 기능을 더하는 방식이 부담이 적을 수 있습니다.",
        ],
      },
      {
        id: "selection",
        title: "어떤 상황에서 무엇을 선택하면 좋을까요?",
        paragraphs: [
          "서비스 선택은 기능 수보다 실제로 매일 쓰는 업무를 기준으로 판단해야 합니다. 메일 주소가 필요하다는 이유만으로 전사 그룹웨어를 먼저 도입하면 설정과 비용 부담이 커질 수 있고, 반대로 결재와 공동 일정이 필수인 조직이 메일만 따로 운영하면 도구가 분산될 수 있습니다.",
        ],
        table: {
          headers: ["현재 상황", "우선 검토할 방식"],
          rows: [
            ["대표자 1명, 공식 문의 주소가 먼저 필요", "도메인 메일 대표 계정부터 시작"],
            ["고객지원·영업 담당자가 생기기 시작함", "도메인 메일 + 멤버 계정 확장"],
            ["사내 결재, 일정, 파일 협업이 동시에 필요", "그룹웨어 포함 서비스 검토"],
            ["이미 다른 협업 도구를 쓰고 메일만 정리하고 싶음", "독립 도메인 메일 검토"],
          ],
        },
      },
      {
        id: "cost-and-operation",
        title: "작은 팀은 도입보다 운영 흐름을 먼저 봐야 합니다",
        paragraphs: [
          "초기 팀은 계정을 많이 만드는 것보다 고객 메일이 누구에게 들어오고, 누가 답하고, 기록이 어디에 남는지가 더 중요합니다. 대표 메일을 공식 창구로 두고 담당자가 생길 때 멤버 계정을 추가하면 조직 변화에 맞춰 운영할 수 있습니다.",
          "오피셜메일은 대표 메일 1개를 무료로 시작하고, 성장 플랜에서 팀 인원 기준으로 멤버와 AI 요약·릴레이 같은 기능을 사용할 수 있습니다. 다만 사내 결재나 대규모 문서 협업이 핵심 요구라면 그룹웨어와의 역할 분담도 함께 검토해야 합니다.",
        ],
      },
      {
        id: "migration",
        title: "기존 메일을 바꾸기 전 체크리스트",
        paragraphs: [
          "사용 중인 메일 서비스가 있다면 MX를 변경하기 전에 수신 이력, 공유 주소, 자동 전달, 외부 서비스 로그인 주소를 점검하세요. MX가 바뀌면 새로 들어오는 메일의 수신 위치가 달라질 수 있습니다.",
          "전환 과정에서는 대표 주소 하나로 먼저 수신·발신을 검증하고, 문제 없을 때 나머지 주소를 옮기는 편이 안전합니다. 고객에게 공지해야 하는 주소 변경이 있다면 기존 주소의 자동응답 또는 전달 기간도 계획하세요.",
        ],
        bullets: [
          "기존 대표 주소와 역할별 주소 목록",
          "자동 전달·자동응답·외부 로그인에 쓰인 주소",
          "이전 메일 보관 또는 백업 필요 여부",
          "MX 변경 후 테스트할 외부 수신 주소",
        ],
      },
    ],
    faqs: [
      {
        question: "오피셜메일은 네이버웍스의 모든 기능을 대체하나요?",
        answer:
          "목적이 다릅니다. 오피셜메일은 도메인 기반 업무 메일 운영, 팀 메일함, AI 요약 흐름에 초점을 둡니다. 결재·사내 캘린더·문서 협업 등 그룹웨어 전체 기능이 핵심이라면 별도 요구사항을 비교해야 합니다.",
      },
      {
        question: "기존 네이버웍스 메일을 쓰면서 오피셜메일도 함께 사용할 수 있나요?",
        answer:
          "같은 도메인의 수신 MX는 운영 방식을 정해야 합니다. 기존 메일을 유지한 채 별도 도메인으로 시작하거나, 전환 계획을 세워 수신 경로를 바꾸는 방법을 검토하세요.",
      },
      {
        question: "작은 팀이 가장 먼저 설정할 것은 무엇인가요?",
        answer:
          "고객에게 보여줄 대표 메일 주소 하나와 도메인 연결입니다. 수신·발신을 확인한 뒤 담당자가 생길 때 계정과 역할별 주소를 추가하는 순서가 단순합니다.",
      },
    ],
  },
  {
    slug: "online-store-business-email-trust",
    category: "쇼핑몰 운영",
    title: "쇼핑몰 사업자 이메일이 신뢰를 만드는 이유와 대표 주소 운영법",
    description:
      "온라인 스토어 사업자가 개인 이메일 대신 도메인 메일을 써야 하는 이유를 정리했습니다. 고객 문의, 입점, 제휴, 정산을 위한 대표 이메일 주소 구성과 운영 기준을 안내합니다.",
    summary: "쇼핑몰 고객 문의와 제휴·정산 메일을 공식 주소로 분리해 신뢰와 운영 기록을 함께 관리하는 방법입니다.",
    intro:
      "온라인 스토어는 주문 알림과 채팅 상담만으로 운영되는 것처럼 보이지만, 입점 제안·도매 문의·세금계산서·브랜드 협찬·고객 불만처럼 중요한 대화는 이메일로 남는 경우가 많습니다. 이때 개인 Gmail이나 포털 주소보다 쇼핑몰 도메인과 같은 공식 주소를 사용하면 고객과 거래처가 연락 창구를 쉽게 확인할 수 있습니다.",
    keywords: [
      "쇼핑몰 사업자 이메일",
      "온라인 스토어 기업메일",
      "쇼핑몰 도메인 메일",
      "사업자 이메일 신뢰도",
      "고객문의 메일 주소",
    ],
    publishedAt: "2026-07-22T09:00:00+09:00",
    updatedAt: "2026-07-22T09:00:00+09:00",
    readingMinutes: 5,
    sections: [
      {
        id: "why-trust",
        title: "쇼핑몰 이메일은 고객이 확인하는 공식 연락처입니다",
        paragraphs: [
          "고객은 주문 후 문제가 생기거나 제휴를 제안할 때 홈페이지 하단, 상세 페이지, 사업자 정보에 있는 연락처를 찾습니다. support@store.com처럼 쇼핑몰 이름이 들어간 주소는 고객이 어느 업체와 대화하고 있는지 바로 이해하게 합니다.",
          "개인 메일 주소가 항상 신뢰를 잃게 만드는 것은 아니지만, 사업자 정보·홈페이지 도메인·메일 주소가 서로 다른 경우 고객은 문의 채널이 공식인지 다시 확인하게 됩니다. 특히 고가 상품, B2B 납품, 입점·협찬 같은 거래에서는 주소의 일관성이 더 중요해집니다.",
        ],
      },
      {
        id: "address-plan",
        title: "처음에는 두 개의 주소면 충분합니다",
        paragraphs: [
          "작은 쇼핑몰이라면 외부 고객 문의를 받는 주소와 운영자가 관리하는 주소를 분리하는 것부터 시작하면 됩니다. 고객에게는 support 또는 contact를 안내하고, 대표자는 admin 또는 이름 기반 계정으로 도메인 연결과 중요한 설정을 관리합니다.",
          "주문량과 담당자가 늘어난 뒤에만 wholesale, partnership, billing 같은 역할별 주소를 추가하세요. 주소가 늘어나면 누가 확인하는지, 답장이 필요한 시간은 얼마인지, 담당자가 비었을 때 어떻게 넘길지까지 함께 정해야 합니다.",
        ],
        table: {
          headers: ["업무", "권장 주소 예시", "운영 기준"],
          rows: [
            ["일반 고객 문의", "support@store.com", "홈페이지와 주문 안내에 동일하게 노출"],
            ["제휴·입점·도매", "partnership@store.com", "대표자 또는 담당자에게 빠르게 전달"],
            ["정산·세금계산서", "billing@store.com", "증빙 메일을 개인 계정과 분리"],
            ["관리자 설정", "admin@store.com", "외부 공개 대신 관리 권한 전용으로 사용"],
          ],
        },
      },
      {
        id: "flow",
        title: "고객 문의가 누락되지 않는 메일 흐름 만들기",
        paragraphs: [
          "대표 메일함 하나에 주문, 광고, 제휴, 정산 메일이 섞이면 중요한 문의를 놓치기 쉽습니다. 처음에는 폴더를 기준으로 정리하고, 팀원이 생기면 역할별 계정으로 분리하세요. 고객에게는 여러 주소를 무작정 노출하기보다 가장 빠르게 답할 수 있는 대표 주소를 먼저 안내하는 편이 좋습니다.",
          "긴 문의나 제휴 제안이 자주 들어온다면 AI 요약·릴레이를 활용할 수 있습니다. 핵심 요청과 확인할 사항을 보조 메일로 받아보고, 실제 답장은 원문과 첨부를 확인한 뒤 보내는 방식으로 운영하면 모바일에서도 판단이 빨라집니다.",
        ],
        steps: [
          {
            title: "대표 문의 주소를 한곳으로 통일",
            body: "홈페이지 푸터, 교환·환불 안내, 사업자 정보, SNS 프로필에 같은 주소를 사용합니다.",
          },
          {
            title: "문의 성격별 폴더 만들기",
            body: "고객 문의, 제휴, 정산처럼 자주 구분하는 항목부터 폴더를 만듭니다.",
          },
          {
            title: "답장 기준 정하기",
            body: "누가 확인하는지와 답장 목표 시간을 정해 두고, 담당자가 없는 시간의 처리 방법을 정리합니다.",
          },
        ],
      },
      {
        id: "launch",
        title: "도메인 메일을 시작한 뒤 바로 바꿔야 할 곳",
        paragraphs: [
          "메일 주소를 만든 뒤에는 고객이 실제로 보는 접점부터 수정해야 합니다. 홈페이지 문의 페이지와 푸터, 스마트스토어 또는 쇼핑몰 사업자 정보, 주문·교환 안내, 인스타그램 프로필, 명함이나 패키지 안내문을 점검하세요.",
          "기존 개인 메일로 들어오던 문의가 있다면 바로 끊기보다 일정 기간 자동 전달이나 안내 문구를 운영하는 편이 좋습니다. 고객이 새 공식 주소를 인지할 수 있도록 기존 주소의 자동응답에 새 연락처를 남기는 방법도 활용할 수 있습니다.",
        ],
        bullets: [
          "홈페이지 푸터와 문의 페이지",
          "쇼핑몰 고객센터·사업자 정보",
          "주문, 교환·환불, 배송 안내 문구",
          "SNS 프로필과 제휴 제안 안내",
        ],
      },
    ],
    faqs: [
      {
        question: "쇼핑몰은 고객센터 전화번호만 있으면 되지 않나요?",
        answer:
          "전화와 채팅은 즉시 응대에 좋지만, 제휴 제안, 증빙 요청, 교환·분쟁 기록처럼 내용을 남겨야 하는 업무에는 이메일이 필요합니다. 공식 도메인 주소를 함께 안내하면 고객이 연락 창구를 확인하기 쉽습니다.",
      },
      {
        question: "고객 문의용 주소와 대표자 주소를 꼭 나눠야 하나요?",
        answer:
          "초기에는 한 주소로 시작할 수 있습니다. 다만 도메인 설정·결제·외부 공개 문의를 한 계정에 모두 두면 권한과 업무가 섞일 수 있어, 운영이 커지면 분리하는 편이 좋습니다.",
      },
      {
        question: "쇼핑몰 도메인이 이미 있는데 바로 연결할 수 있나요?",
        answer:
          "네. 도메인의 DNS를 수정할 수 있다면 오피셜메일 도메인 연결 화면에서 안내하는 MX, SPF, DKIM 값을 등록해 대표 메일을 연결할 수 있습니다.",
      },
    ],
  },
];

export function getBlogPost(slug: string) {
  return blogPosts.find((post) => post.slug === slug) ?? null;
}

function markdownTable(table: NonNullable<BlogSection["table"]>) {
  const divider = table.headers.map(() => "---");
  const rows = [table.headers, divider, ...table.rows];
  return rows.map((row) => `| ${row.join(" | ")} |`).join("\n");
}

export function blogPostToMarkdown(post: BlogPost) {
  const lines = [post.intro, ""];

  for (const section of post.sections) {
    lines.push(`## ${section.title}`, "", ...section.paragraphs, "");

    if (section.steps?.length) {
      lines.push(
        ...section.steps.map(
          (step, index) => `${index + 1}. **${step.title}** — ${step.body}`,
        ),
        "",
      );
    }

    if (section.bullets?.length) {
      lines.push(...section.bullets.map((item) => `- ${item}`), "");
    }

    if (section.table) {
      lines.push(markdownTable(section.table), "");
    }

    if (section.callout) {
      lines.push(`> **${section.callout.title}**`, `> ${section.callout.body}`, "");
    }
  }

  lines.push("## 자주 묻는 질문", "");

  for (const faq of post.faqs) {
    lines.push(`### ${faq.question}`, "", faq.answer, "");
  }

  return lines.join("\n").trim();
}
