우리는 왜 홈페이지를 제작 해야할까? 랜딩페이지/원페이지로 전환율과 브랜딩을 폭발시키는 5가지 핵심 전략 | 비젠메디컬 IT Insight
R E P O R T

AI솔루션기업, AI소프트웨어, AI프로그램개발, AI서비스개발을 통해 AI개발업체로서 혁신을 선도합니다.

As the leader of the design
trend, I'll make you a more
valuable design.

데이터 주도 AI솔루션기업으로서 AI기업, AI소프트웨어, AI솔루션개발,
AI프로그램개발을 통해 복잡한 비즈니스 난제를 해결하고 AI서비스개발을 선도합니다.

우리는 왜 홈페이지를 제작 해야할까? 랜딩페이지/원페이지로 전환율과 브랜딩을 폭발시키는 5가지 핵심 전략

성공적인 웹사이트는 심리적 마찰을 제거하고 사회적 증거를 활용하여 전환율을 극대화하는 랜딩페이지 최적화와, 스크롤텔링 및 SSR(서버-사이드 렌더링)로 SEO 한계를 극복하여 몰입도를 높이는 원페이지 전략, 그리고 Core Web Vitals(LCP, INP, CLS)를 극대화하는 기술적 최적화가 결합된 데이터 기반의 전환 기계로 구축되어야 합니다.

0
조회수 아이콘 133
#vizensoft #홈페이지제작 #ai개발
2025-10-30 23:12

Image_fx.jpg



웹사이트 제작은 단순한 기업의 온라인 명함을 만드는 행위를 넘어, 명확한 사업 목표 달성을 위한 가장 강력한 도구를 구축하는 일입니다.

성공적인 디지털 전략에서 홈페이지는 더 이상 '존재 증명'이 아닌, 측정 가능한 성과(매출, 리드 확보, 브랜딩)를 끊임없이 창출해내는 '전환 기계'로서 기능해야 합니다.

이러한 관점에서 웹사이트는 크게 랜딩페이지(Landing Page)와 원페이지 웹사이트(One-Page Website)라는 두 가지 전문적인 역할을 수행합니다.

랜딩페이지는 오직 단 하나의 목표인 전환(Conversion)을 위해 설계된 정밀한 도구이며 , 원페이지는 브랜드의 핵심 메시지와 몰입형 스토리텔링에 최적화된 캔버스입니다.

전환율(Conversion Rate)은 웹페이지 방문자 중 디자이너가 의도한 행동(구매, 문의, 양식 제출 등)을 취한 사용자의 비율을 의미하며 , 이는 웹사이트의 수익과 직결됩니다.

트래픽의 규모가 변하지 않더라도, 전환율 최적화(CRO)만으로 총 전환 수를 효과적으로 높일 수 있기에 , 최적화는 지속적인 비즈니스 성장 활동의 핵심으로 간주됩니다.

본 포스팅은 랜딩페이지의 전환율을 극대화하는 심리학적/데이터 기반 전략과, 원페이지로 복잡한 정보를 압축하고

SEO 한계를 극복하는 기술적 방법론까지, 사업 성과를 폭발적으로 끌어올리는 5가지 핵심 전략을 깊이 있게 다룹니다.




랜딩페이지 성과 극대화 전략 (The Conversion Machine)

[심리학] 퍼널 이탈률 0% 도전을 위한 '결정적 실수 3가지'와 사회적 증거 최적화

전환 직전 고객이 이탈하는 이유는 대개 기술적 문제보다는 심리적 마찰(Friction)에 있습니다.

고객이 '지금 행동해야 할 이유'보다 '망설여야 할 이유'를 더 많이 찾게 만드는 랜딩페이지의 치명적인

실수를 제거하는 것이 퍼널 이탈률을 최소화하는 첫걸음입니다.

결정적 실수 1: CTA 버튼 근처에 불필요한 링크 및 내비게이션 배치

랜딩페이지는 오직 하나의 명확한 CTA(Call to Action)를 위해 존재합니다.

하지만 많은 페이지들이 상단 메뉴나 푸터, 혹은 CTA 버튼 바로 옆에 다른 링크들을 배치하여 사용자의 주의를 분산시킵니다.

웹사이트의 모든 링크는 잠재적인 '행동 유도(CTA)'로 간주되어 방문자에게 너무 많은 선택지를 제시하고 인지 부하(Cognitive Load)를 높입니다.

고객에게 "다음은 무엇인가?"에 대한 고민을 하게 만드는 모든 요소는 전환의 방해물로 작용하며,

이를 업계에서는 '명확성 세금(Clarity Tax)'이라고 부릅니다.

전환율을 높이려면 단순히 요소를 추가하는 것이 아니라,

전환 목표와 무관한 요소를 무자비하게 제거(Ruthless Elimination)하여 메인 CTA 주변에

충분한 화이트 스페이스(White Space)를 확보해야 합니다.

실제로 Open Mile은 랜딩페이지를 깔끔하게 정리한 후 전환율이 232% 증가하는 결과를 얻었습니다.

랜딩페이지의 핵심은 극단적인 목표 지향적 포커스입니다.

결정적 실수 2: 모바일 최적화 실패 및 로딩 속도 저하

사용자들은 기기 종류에 관계없이 원활한 경험을 기대하며 , 특히 모바일 환경에 대한 최적화는 잠재 고객의 참여도를 높이는 데 결정적입니다.

느린 로딩 속도(3초 이상)는 가장 흔하게 발견되는 전환율 저해 요소입니다.

페이지 로딩 속도가 늦어지면 고객은 금방 인내심을 잃고 이탈하게 되며, 이는 광고 효율 저하로 직접 이어집니다.

결정적 실수 3: 모호하거나 약한 가치 제안 (Value Proposition)

방문자는 페이지에 들어온 후 3초 이내에 이 페이지가 자신에게 어떤 가치를 제공하는지 파악하지 못하면 즉시 이탈합니다.

강력하고 명확한 헤드라인과 서브헤드를 통해 제품이나 서비스의 핵심 가치를 명료하게 전달하는 것이 필수적입니다.

단순히 기능 나열이 아닌, 고객이 얻을 수 있는 이점(Benefit)을 강조해야 합니다.

사회적 증거(Social Proof)의 심리학적 최적화 전략

인간은 사회적 존재이므로, 의사결정을 내릴 때 타인의 행동을 참고하려는 경향이 있습니다.

로버트 치알디니의 설득의 법칙 중 하나인 사회적 증거(Social Proof)를 활용하면,

잠재 고객의 불확실성(Uncertainty)을 줄이고 신뢰(Trust)를 강화할 수 있습니다.

사회적 증거는 아무 곳에나 넣는 것이 아니라,

방문자가 가장 불확실성을 느끼는 순간(Moment of Doubt)에 배치해야 심리적 영향력이 극대화됩니다.

이는 주로 '가치 제안 확인 직후'와 'CTA 버튼 클릭 직전'입니다.




[데이터] A/B 테스트의 90%가 실패하는 이유

'가설 설정'부터 '통계적 유의미성' 확보까지의 실전 가이드

많은 마케터들이 A/B 테스트를 시도하지만, 그중 90% 이상이 명확한 결과를 도출하지 못하거나 의미 있는 전환율 개선에 실패합니다.

이는 테스트가 데이터 기반의 강력한 가설이 아닌, 주관적인 의견("나는 이 색깔이 더 좋아 보인다")이나 단순한 경쟁사 모방에서 출발하기 때문입니다.

버튼 색상 바꾸기 같은 단순 테스트는 사용자 경험(UX)에 결정적인 영향을 미치는 헤드라인의 메시지, 가격 구조, 이미지와 같은 근본적인 요소에 비해 영향력이 낮습니다.

성공적인 A/B 테스트는 항상 데이터 기반의 인사이트(히트맵, 스크롤 패턴 분석 등)를 통해 사용자의 행동 신호를 해석하는 것에서 시작되어야 합니다.

데이터 기반의 강력한 가설 설정 프레임워크

테스트는 모호함을 제거하고 비즈니스 목표(매출, 전환율)와 정렬된 측정 가능한 목표를 정의해야 합니다.

전문가들은 다음과 같은 구체적인 가설 구조를 사용하여 테스트의 의도와 기대 결과를 명확히 합니다:

이러한 접근 방식은 테스트가 막연한 시도가 아니라, 사용자의 근본적인 문제나 행동 패턴을 해결하기 위한 목적을 갖게 만듭니다.

통계적 유의미성(Statistical Significance) 확보 방법론

테스트 결과를 바탕으로 의사결정을 내릴 때, 그 차이가 단순히 우연이 아닐 확률을 측정하는 것이 통계적 유의미성입니다. 일반적으로 마케팅 및 CRO 분야에서는 95% 신뢰도(Confidence Level)를 기준으로 삼는데, 이는 관찰된 차이가 우연일 확률이 5% 미만(p-value < 0.05)임을 의미합니다.

표본 크기(Sample Size)와 테스트 기간: 통계적 유의미성을 확보하려면 테스트 버전 A와 B에 충분한 트래픽과 전환 수가 유입되어야 합니다.

최소 감지 효과(MDE, Minimum Detectable Effect)를 작게 설정할수록, 즉 미묘한 차이를 감지하려고 할수록 더 많은 표본 크기가 필요하며, 이는 테스트 기간이 길어져야 함을 의미합니다

.

예를 들어, 50,000명의 방문자 중 버전 A가 1.00%의 전환율(500건 전환)을, 버전 B가 1.14%의 전환율(570건 전환)을 보였다면,

이 14%의 전환율 상승이 95% 이상 확신할 수 있는 결과일 때 유의미하다고 판단합니다.

통계적 유의미성 vs. 실질적 유의미성

p-value가 0.05 미만이라고 해서 무조건 성공적인 테스트는 아닙니다. 이는 통계적으로는 차이가 있지만, 비즈니스 관점에서는 의미가 없을 수 있다는 의미입니다.

만약 전환율이 0.1% 상승했지만, 이 결과를 구현하기 위해 개발 자원과 시간을 투입하는 것 대비 ROI(투자 대비 효과)가 낮다면,

이는 실질적으로는 실패한 테스트로 간주해야 합니다.

CRO 전문가는 단순히 통계학적 검증을 넘어, 그 효과 크기(Effect Size)가 비즈니스에 충분한 영향을 미치는지 판단하는 분석가의 시각을 갖춰야 합니다.

단순 테스트의 반복을 피하기 위해서는 PIE(Potential, Importance, Ease) 프레임워크 등을 활용하여,

전환율 개선 잠재력이 가장 높고, 중요도가 높으며, 구현 용이성이 적절한 요소를 먼저 테스트하는 우선순위 전략이 필수적입니다.




원페이지 브랜딩 및 몰입형 스토리텔링 (The Narrative Canvas)

[UX/UI] 스크롤 저니(Scroll Journey) 설계: 고객의 시선을 따라 브랜드 스토리를 완성하는 기획 노하우

원페이지 웹사이트는 기업이나 제품의 핵심 메시지를 압축적이고 몰입감 있게 전달하는 데 최적화된 구조입니다.

여기서 스크롤은 단순한 페이지 이동이 아니라, 사용자가 능동적으로 다음 이야기의 챕터를 여는 행위, 즉 '스크롤 저니(Scroll Journey)'의 핵심 요소가 됩니다.

스크롤텔링(Scrollytelling)을 통한 몰입도 극대화

스크롤텔링은 사용자가 페이지를 스크롤할 때마다 웹페이지 요소가 움직이거나, 나타나거나, 시각적으로 변화하는 동적인 기법입니다.

이 기법은 텍스트 중심의 정보를 시각적 내러티브(Visual Narrative)와 결합하여 사용자의 참여도(Engagement)를 높이고 복잡한 정보를 직관적으로 전달하는 데 매우 효과적입니다.

고객의 인지 흐름을 따르는 섹션 배열 순서

원페이지의 성공은 각 섹션의 배열 순서(Sequence)에 달려 있습니다.

사용자의 인지 흐름에 맞춰 논리적이고 설득력 있는 스토리라인을 전개해야 합니다.

도입 (Hero): 강력하고 명확한 가치 제안으로 시선을 사로잡습니다.

문제인식 (Problem): 고객이 현재 겪고 있는 고통점(Pain Point)을 제시하여 공감을 얻습니다.

해결책 (Solution): 우리 제품/서비스가 어떻게 그 고통점을 해결하는지 명확히 보여줍니다.

세부기능/이점 (Benefits/Features): 기능을 나열하기보다는 고객이 얻게 될 이점(Benefit)을 중심으로 설명합니다.

증거 (Social Proof/Trust): 실제 고객 사례, 수상 내역, 신뢰할 수 있는 로고 등을 배치하여 확신을 더합니다.



행동 유도 (CTA): 최종적으로 구매, 문의, 구독 등의 목표 행동을 유도합니다.

멀티 페이지 사이트에서 클릭이 다음 단계로 넘어가는 명시적인 CTA라면, 원페이지에서 스크롤 행위 자체가 '나는 다음 이야기가 궁금하다'는 수동적인 CTA입니다.

따라서 각 섹션의 끝은 다음 섹션에 대한 호기심을 유발하거나, 드라마틱한 시각적 전환을 제공하여 사용자의 여정을 끊임없이 지속시켜야 합니다.

이러한 단일 경로 제공은 사용자가 길을 잃을 염려를 없애고 통제감(Sense of Control)을 제공하여 브랜드 메시지의 집중도를 높입니다.

시각적 몰입도 극대화를 위한 기술: GSAP ScrollTrigger

몰입도 높은 스크롤 저니를 구현하기 위해 GSAP(GreenSock Animation Platform)의 ScrollTrigger 플러그인이 널리 사용됩니다.

이 플러그인은 스크롤 위치를 기반으로 이미지를 고정(Pin)시키거나,

복잡한 데이터 시각화를 단계적으로 보여주는 등 놀라운 스크롤 기반 애니메이션을 최소한의 코드로 구현할 수 있게 합니다.

이는 사용자에게 부드럽고 유기적인 경험을 제공하여 메시지 전달력을 극대화합니다.





원페이지 SEO 한계 극복을 위한 기술 전략

원페이지 웹사이트(특히 SPA, Single Page Application)의 가장 큰 약점은 SEO(검색 엔진 최적화)입니다.

모든 내용이 하나의 URL에 담겨 있어 검색 엔진이 각 섹션별로 고유한 키워드를 인덱싱하고 순위를 매기는 데 어려움을 겪기 때문입니다.

또한, SPA는 JavaScript 렌더링에 의존하여 크롤러가 콘텐츠를 인지하는 데 지연이 발생할 수 있습니다.

원페이지 SEO 전략은 단일 물리적 페이지를 여러 개의 고유한 콘텐츠 블록으로 인위적으로 분리(Falsifying Uniqueness)하는 데 집중해야 합니다.

SEO 친화적인 URL 처리 (History API 활용)

전통적으로 원페이지는 #section-name 형태의 프래그먼트 식별자(Fragment Identifier)를 사용하여 페이지 내부 섹션으로 이동하는 UX를 제공했습니다.

그러나 Google은 SEO 목적으로 URL에 해시태그를 사용하는 것을 더 이상 권장하지 않습니다.

현대의 모던 SPA는 # 기호를 사용하지 않고 History API를 사용하여 /about, /services와 같은 깨끗한 URL 경로를 에뮬레이트합니다.

이러한 'History Mode' 라우팅은 서버의 관여 없이도 각 섹션을 개별적인 논리적 페이지로 보이게 하여, 검색 엔진에 훨씬 더 유리하게 작용합니다.

동적 타이틀 및 메타 태그 활용

검색 엔진 결과 페이지(SERP)에서 섹션별 가시성(Visibility)을 극대화하려면, 각 섹션이 고유한 키워드를 포함한 메타 정보를 가져야 합니다.

실행 방법: 사용자가 스크롤을 통해 특정 섹션으로 이동하거나 URL이 동적으로 변경될 때,

JavaScript를 사용하여 페이지의 태그와 <meta name="description" /> 태그의 내용을 해당 섹션의 핵심 키워드에 맞춰 실시간으로 업데이트해야 합니다. </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-40a06491-f7bd-4d4e-b0cc-85ee792b64a3" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-46adca48-2695-495b-8053-1dea3df6c437" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">이 과정을 통해 검색 엔진은 단일 페이지 내에 있는 콘텐츠를 여러 개의 고유한 검색 결과로 인식하게 됩니다. </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-40a06491-f7bd-4d4e-b0cc-85ee792b64a3" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-46adca48-2695-495b-8053-1dea3df6c437" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">이때 각 뷰(View)마다 중복된 메타 태그가 발생하지 않도록 관리하는 것이 중요합니다. </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-61c6b255-d26e-45ef-8b8b-ced9b6ab9ac7" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-c88e527c-e4c8-414a-965a-7d4875a991fe" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">​</span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-957bb1af-dee7-4004-9505-38c491877a9d" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs-fs16 se-ff- se-style-unset " id="SE-8070dd96-fc15-41d3-bc46-260a5ce40410" style="box-sizing: unset; border: 0px; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 16px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><span style="box-sizing: unset; font-weight: 700; background-color: inherit; font-family: inherit;">서버-사이드 렌더링 (SSR) 및 Prerendering 도입</span></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-c5e5ff9c-d571-4bda-9c8e-766094d66b2e" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-04afacb5-6b10-463b-b485-0cac5ba535cc" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">원페이지(특히 SPA)의 근본적인 SEO 문제와 로딩 속도 문제(LCP)를 해결하는 가장 확실한 방법은 서버-사이드 렌더링(SSR)을 구현하는 것입니다.</span><span style="color: rgb(0, 0, 0); font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-size: 15px; font-variant-ligatures: inherit; font-variant-caps: inherit;">​</span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-e82ae511-602f-4955-ae8a-a089d28a2168" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-0e49bd97-3a73-4a62-b9e5-a887696d57b9" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">원리: SSR은 서버에서 JavaScript를 실행하여 HTML을 완전히 렌더링한 후, 검색 엔진 크롤러에게 즉시 인덱싱 가능한 HTML 콘텐츠를 제공합니다.</span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-e82ae511-602f-4955-ae8a-a089d28a2168" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-0e49bd97-3a73-4a62-b9e5-a887696d57b9" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"> 이후 브라우저가 이 HTML을 받아 상호작용성을 확보하는 수화(Hydration) 과정을 거칩니다. </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-87dc7830-1082-49f7-8448-55e6e7e61136" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-092f1dc8-8f65-47e0-837b-3bd295a4bfeb" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">​</span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-b3e4afa2-8ab5-44d0-8209-228b626e8152" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-23f6f358-8786-4b58-943d-540c6297db66" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-fcaffcc9-d318-4b6f-901f-dcdea8d24fd8" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-33f4b51c-294d-4dcb-b445-11fdec39a290" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">결과: SSR은 크롤러가 JavaScript 로딩을 기다릴 필요 없이 즉시 콘텐츠를 인덱싱할 수 있게 하여 SEO 문제를 해결할 뿐만 아니라, </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-fcaffcc9-d318-4b6f-901f-dcdea8d24fd8" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-33f4b51c-294d-4dcb-b445-11fdec39a290" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">섹션 3에서 다룬 것처럼 초기 페이지 로딩 속도(LCP)까지 개선하는 속도와 SEO의 교집합에 위치하는 최고의 기술적 투자입니다. </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-fcaffcc9-d318-4b6f-901f-dcdea8d24fd8" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-33f4b51c-294d-4dcb-b445-11fdec39a290" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><br/></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-fcaffcc9-d318-4b6f-901f-dcdea8d24fd8" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-33f4b51c-294d-4dcb-b445-11fdec39a290" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><br/></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-fcaffcc9-d318-4b6f-901f-dcdea8d24fd8" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-33f4b51c-294d-4dcb-b445-11fdec39a290" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><br/></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-fcaffcc9-d318-4b6f-901f-dcdea8d24fd8" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><img src="/upload/editor/1761833460172_997.jpg" style="width: 1408px;" /><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-33f4b51c-294d-4dcb-b445-11fdec39a290" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><br/></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-fcaffcc9-d318-4b6f-901f-dcdea8d24fd8" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-33f4b51c-294d-4dcb-b445-11fdec39a290" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><br/></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-b1774835-1013-470f-954f-8ebf17f536f5" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs-fs24 se-ff- se-style-unset " id="SE-2a15f6ea-0102-401d-affd-da814e056c84" style="box-sizing: unset; border: 0px; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 24px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><span style="box-sizing: unset; font-weight: 700; background-color: inherit; font-family: inherit;">결론: 성공적인 웹사이트는 단순한 디자인을 넘어선, </span></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-0403cb71-b477-4dd6-8a78-e3443655f915" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs-fs24 se-ff- se-style-unset " id="SE-bbaa3b8a-96a1-409a-8b8f-45490496fedf" style="box-sizing: unset; border: 0px; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 24px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><span style="box-sizing: unset; font-weight: 700; background-color: inherit; font-family: inherit;">과학과 심리학의 정교한 결합체입니다.</span></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-04c28641-7bf7-475f-87cb-e009cb09aee2" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-70d9023b-9f04-4c4d-9d1f-03877a7e9e19" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">성공적인 웹사이트는 단순한 디자인 작업이 아니라, 인간의 심리적 패턴(전환)을 이해하고, </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-04c28641-7bf7-475f-87cb-e009cb09aee2" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-70d9023b-9f04-4c4d-9d1f-03877a7e9e19" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">이를 데이터 기반의 과학적 방법론(A/B 테스트)과 극한의 기술적 최적화(CWV/SEO)로 구현하는 복합적인 프로젝트입니다.</span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-231ff08e-c041-49fb-bb79-8199b824dad1" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs-fs15 se-ff- se-style-unset " id="SE-e025b003-c634-480b-b758-d26c56a63064" style="box-sizing: unset; border: 0px; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><span style="box-sizing: unset; font-weight: 700; background-color: inherit; font-family: inherit;">​</span></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-d38507e1-7b3a-4ebb-b9ea-742d09c3d3de" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs-fs16 se-ff- se-style-unset " id="SE-f3b3219c-75b7-45a6-8736-6efe4c29adf3" style="box-sizing: unset; border: 0px; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 16px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><span style="box-sizing: unset; font-weight: 700; background-color: inherit; font-family: inherit;">랜딩페이지 최적화: 전환율 극대화의 심리학</span></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-fcaffcc9-d318-4b6f-901f-dcdea8d24fd8" style="box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><div class="autosourcing-stub-extra" style="box-sizing: unset; border: 0px; font: inherit; vertical-align: baseline; zoom: 1; opacity: 1;"></div><p></p></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-275f0395-8eb5-4e28-b285-feb7ba2c0867" style="text-align: center; margin: 0px; padding: 0px; box-sizing: unset; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-weight: 400; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space: break-spaces; color: rgb(70, 70, 70); letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="color: rgb(0, 0, 0); font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-size: 15px; font-variant-ligatures: inherit; font-variant-caps: inherit;">랜딩페이지는 인지적 마찰을 최소화하고 사회적 증거를 활용하여 전환 직전의 이탈을 막는 데 집중해야 합니다. </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-275f0395-8eb5-4e28-b285-feb7ba2c0867" style="text-align: center; margin: 0px; padding: 0px; box-sizing: unset; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-weight: 400; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space: break-spaces; color: rgb(70, 70, 70); letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span style="color: rgb(0, 0, 0); font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-size: 15px; font-variant-ligatures: inherit; font-variant-caps: inherit;">​</span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-919ab68b-9627-459d-8c5f-fe5b8f3d5693" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs-fs16 se-ff- se-style-unset " id="SE-6d1fdc10-2e07-44c4-8687-5e626f23c967" style="box-sizing: unset; border: 0px; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 16px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><span style="box-sizing: unset; font-weight: 700; background-color: inherit; font-family: inherit;">원페이지 전략: 몰입을 유도하는 논리적인 여정</span></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-275f0395-8eb5-4e28-b285-feb7ba2c0867" style="box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><div class="autosourcing-stub-extra" style="box-sizing: unset; border: 0px; font: inherit; vertical-align: baseline; zoom: 1; opacity: 1;"></div><p></p></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-5c406e03-33e4-4a78-bdfc-e20139dfd7b4" style="text-align: center; margin: 0px; padding: 0px; box-sizing: unset; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-weight: 400; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space: break-spaces; color: rgb(70, 70, 70); letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-07593858-92f3-4ade-8645-2c5193f4476b" style="box-sizing: unset; margin: 0px; padding: 0px; border: 0px; font-style: normal !important; font-variant: inherit; font-weight: 400 !important; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">원페이지 전략은 스크롤텔링을 통해 사용자의 몰입을 유도하는 논리적인 '여정'을 설계하는 것이 핵심입니다. </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-5c406e03-33e4-4a78-bdfc-e20139dfd7b4" style="text-align: center; margin: 0px; padding: 0px; box-sizing: unset; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-weight: 400; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space: break-spaces; color: rgb(70, 70, 70); letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-07593858-92f3-4ade-8645-2c5193f4476b" style="box-sizing: unset; margin: 0px; padding: 0px; border: 0px; font-style: normal !important; font-variant: inherit; font-weight: 400 !important; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><br/></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-cf5c2102-d987-404a-b80e-47e1a8f560d0" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs-fs16 se-ff- se-style-unset " id="SE-b04c35e7-bd67-420b-b96d-23c117668abc" style="box-sizing: unset; border: 0px; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 16px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"><span style="box-sizing: unset; font-weight: 700; background-color: inherit; font-family: inherit;">극한의 기술 최적화: CWV(Core Web Vitals)와 INP 대응</span></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-5c406e03-33e4-4a78-bdfc-e20139dfd7b4" style="box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-07593858-92f3-4ade-8645-2c5193f4476b" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);"></span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-4e88016a-8902-4a5b-9796-8ef571ace3a1" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-f9ea732e-492f-4c6b-b1ae-be9bd4aca5a8" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">기술적으로, 2024년 INP(Interaction to Next Paint)의 도입은 초기 로딩 속도뿐만 아니라 </span></p><p class="se-text-paragraph se-text-paragraph-align- " id="SE-4e88016a-8902-4a5b-9796-8ef571ace3a1" style="text-align: center; box-sizing: unset; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-variant-alternates: inherit; font-variant-position: inherit; font-variant-emoji: inherit; font-stretch: inherit; font-size: 11px; line-height: 1.5; font-family: se-nanumgothic, arial, 나눔고딕, nanumgothic, sans-serif, Meiryo; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space-collapse: break-spaces; color: rgb(70, 70, 70);"><span class="se-fs- se-ff- se-weight-unset se-style-unset " id="SE-f9ea732e-492f-4c6b-b1ae-be9bd4aca5a8" style="box-sizing: unset; border: 0px; font-variant: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; font-family: se-nanumgothic, arial, "\\B098눔고딕", nanumgothic, sans-serif; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; vertical-align: baseline; color: rgb(0, 0, 0);">페이지 전체의 반응성 최적화가 광고 효율 극대화의 기본 조건이 되었음을 의미합니다.</span></p></span> </div> <script type="text/javascript"> function goSaveReplyComment(event, obj) { event.preventDefault(); event.stopPropagation(); var replyCommentEle = $(obj).parent().parent(); var replyCommentNameEle = replyCommentEle.find("#name"); var replyCommentPasswordTempEle = replyCommentEle.find("#password_temp"); var replyCommentPasswordEle = replyCommentEle.find("#password"); var replyCommentContents = replyCommentEle.find("#contents"); if (replyCommentNameEle.val() == "" | replyCommentNameEle.val() == "이름") { alert('이름을 입력해 주세요.'); commentNameEle.focus(); return false; } if (replyCommentPasswordTempEle.val() == "") { alert('비밀번호를 입력해 주세요.'); replyCommentPasswordTempEle.focus(); return false; } // password input태그가 생성되지 않았거나, password의 값이 빈값일 경우 유효값체크 if(!replyCommentPasswordEle.length || replyCommentPasswordEle.val() == "") { alert("비밀번호를 입력해 주세요."); return false; // password값의 공백 체크 } else if (replyCommentPasswordEle.val().trim() == "") { alert("비밀번호값은 공백을 제외하고 입력해주세요"); replyCommentPasswordEle.val(replyCommentPasswordEle.trim()); // password값에 공백이 들어갔을 경우 공백 제거 후 password값에 넣기 return false; } if (replyCommentContents.val() == "") { alert('내용을 입력해 주세요.'); commentContents.focus(); return false; } //var replyCommentForm = replyCommentEle.parent().parent().find("#frm"); //var replyCommentForm = replyCommentEle.parent().parent(); var replyCommentForm = replyCommentEle.closest("#frm") replyCommentForm.attr('action', "/board/comment/process.jsp"); replyCommentForm.submit(); } function goSaveComment(event, obj) { event.preventDefault(); event.stopPropagation(); var commentEle = $(obj).parent().parent(); var commentNameEle = commentEle.find("#name"); var commentPasswordTempEle = commentEle.find("#password_temp"); var commentPasswordEle = commentEle.find("#password"); var commentContents = commentEle.find("#contents"); if (commentNameEle.val() == "" | commentNameEle.val() == "이름") { alert('이름을 입력해 주세요.'); commentNameEle.focus(); return false; } if (commentPasswordTempEle.val() == "") { alert('비밀번호를 입력해 주세요.'); commentPasswordTempEle.focus(); return false; } // password input태그가 생성되지 않았거나, password의 값이 빈값일 경우 유효값체크 if(!commentPasswordEle.length || commentPasswordEle.val() == "") { alert("비밀번호를 입력해 주세요."); return false; // password값의 공백 체크 } else if (commentPasswordEle.val().trim() == "") { alert("비밀번호값은 공백을 제외하고 입력해주세요"); commentPasswordEle.val(commentPasswordEle.trim()); // password값에 공백이 들어갔을 경우 공백 제거 후 password값에 넣기 return false; } if (commentContents.val() == "") { alert('내용을 입력해 주세요.'); commentContents.focus(); return false; } var commentForm = commentEle.closest("#frm"); commentForm.attr('action', "/board/comment/process.jsp"); commentForm.submit(); } function goSave() { if($("#name").val()=="" |$("#name").val()=="이름") { alert('이름을 입력해 주세요.'); $("#name").focus(); return false; } if($("#password").length > 0) { if($("#password").val()=="") { alert('비밀번호를 입력해 주세요.'); $("#password").focus(); return false; } } else { if($("#password_temp").val()=="비밀번호") { alert('비밀번호를 입력해 주세요.'); $("#password_temp").focus(); return false; } } if($("#contents").val()=="") { alert('내용을 입력해 주세요.'); $("#contents").focus(); return false; } var form = $("#frm"); fn_formSpanCheck(form,key); //스팸 끝 return true; } function goCommentDelete(obj) { var str = "댓글을 삭제하시겠습니까?"; if($("#password_del").val()=="") { alert('비밀번호를 입력해주세요'); $("#password_del").focus(); return false; } if(confirm(str)) { // delete라 추가 const inputElement = $('input[type="hidden"][name="cmd"]'); $(inputElement).val("r_delete"); var del_no = $("#del_no").val(); var password_del_var = $(obj).parent().parent().find("#password_del").val(); //$("#delete_frm").append("<input type='hidden' name='password' value='"+$("#password_del").val()+"'/>"); $("#delete_frm").append("<input type='hidden' name='password' value='"+password_del_var+"'/>"); $("#delete_frm").append("<input type='hidden' name='no' value='" + del_no + "' />"); //alert($("#delete_frm").html()); $("#delete_frm").submit(); }else{ return false; } } function checkPassword(){ $("#e_password").val($("#edit_password").val()); $.post("/board/comment/password_check_ajax.jsp", $( "#edit_frm" ).serialize(), function(data){ var result = data.trim(); var e_no = $("#e_no").val(); if(result === "true"){ $("#password_box2").hide(); $(".r_delete2").hide(); $("#e_"+e_no).show(); $("#e_"+e_no).attr("value","저장"); $("#e_"+e_no).attr("class",""); $("#e_"+e_no).attr("onclick","editSave();"); var name = $("#name_target_" + e_no).text().trim().match(/[^\t\n]+/); // $("#name_target_"+e_no).html("<input type='text'class='custom_text' name='e_name' id='e_name2' value='"+$("#name_target_"+e_no).html().trim()+"' />"); $("#name_target_"+e_no).html("<input type='text'class='custom_txt_box004' name='e_name' id='e_name2' value='"+name[0]+"' />"); $("#contents_target_"+e_no).html("<textarea class='custom_txt_box004' name='e_contents' id='e_contents2' title='내용을 입력해주세요' >"+$("#contents_target_"+e_no).html().trim()+"</textarea>"); //alert($("#e_"+e_no).parent().html()); $(".black_popup_bg").hide(); $(".password_pop_up.edit_btn").hide(); } else { alert("비밀번호를 확인해 주세요."); } }); } function editSave(){ // $("#e_name").val($("#e_name2").val()); // $("#e_contents").val($("#e_contents2").val()); var e_name2 = $("#e_name2").val(); var e_contents2 = $("#e_contents2").val(); $("#e_name").val(e_name2); $("#e_contents").val(e_contents2); if(e_name2.trim() == "" || e_name2.trim() == null) { alert("이름을 입력해주세요"); return false; } if(e_contents2.trim() == "" || e_contents2.trim() == null) { alert("내용을 입력해주세요"); return false; } console.log("comming3"); var form = $("#edit_frm"); fn_formSpanCheck(form,key); form.submit(); } /*function openDiv(obj) { $("#no").val($(obj).attr("id")); var x = obj.offset().top-($("#bread").offset().top+$("#password_box").height()+50); var y = obj.offset().left-($("#bread").offset().left+$("#password_box").width()+30); $("#password_box").css({"top":x, "left":y}); $("#password_box").show(); }*/ function openDiv(obj) { $("#no").val($(obj).attr("id")); var parent = obj.closest(".option_box01"); console.log(parent.offset().left); var x = parent.offset().top - 150; var y = parent.offset().left - ( $("#password_box").width() + 20) ; $("#password_box").css({"top":x, "left":y}); $("#password_box").show(); } function closeDiv() { $("#password_box").hide(); return false; } function openDiv2(obj) { $("#e_no").val($(obj).attr("id").replace("e_","")); var parent = obj.closest(".option_box01"); var x = parent.offset().top - 150; var y = parent.offset().left - ( $("#password_box2").width() + 20) ; $("#password_box2").css({"top":x, "left":y}); $("#password_box2").show(); } function closeDiv2() { $("#password_box2").hide(); return false; } // TODO: 옆에 붙어있는 reply_comment_input을 가져온다 function openReply(event, obj) { event.preventDefault(); event.stopPropagation(); var clickedGno = $(obj).data("gno"); var clickedNested = $(obj).data("nested"); var clickedOno = $(obj).data("ono"); const commentElements = document.querySelectorAll("#comment"); const commentReplyInputs = document.querySelectorAll("#comment_reply_input"); const commentData = []; // 답글 input 보이게 하기 commentReplyInputs.forEach(element => { const gno = parseInt(element.getAttribute("data-gno")); const nested = parseInt(element.getAttribute("data-nested")); const ono = parseInt(element.getAttribute("data-ono")); console.log(gno) console.log(nested) console.log(ono); const isSameGno = clickedGno === gno; const isReplyComment = (clickedNested) === nested; const isSameOno = (clickedOno === ono); const status = element.style.display; if (isSameGno && isReplyComment && isSameOno) { if (status === "block") { element.style.display = "none" } else { element.style.display = "block" } } }); } $(window).load(function(){ $(".r_delete").click(function(){ openDiv($(this)); var delete_id = $(this).attr("id"); $("#del_no").val(delete_id); }); $(".r_delete").focus(function(){ openDiv($(this)); }); $(".r_delete2").click(function(){ openDiv2($(this)); }); $(".r_delete2").focus(function(){ openDiv2($(this)); }); // TODO: 수정 버튼을 클릭했을 때, PASSWORD 화면이 보이도록 만든다 $(".r_delete2_v2").click(function(){ $(".password_pop_up.edit_btn").show(); $(".black_popup_bg").show(); $("#e_no").val($(this).attr("id").replace("e_","")); }); // TODO: 삭제 버튼을 클릭했을 때, PASSWORD 화면이 보이도록 만든다 $(".r_delete_v2").click(function(){ $(".password_pop_up.delete_btn").show(); $(".black_popup_bg").show(); $("#no").val($(this).attr("id")); }); $(".del_submit").click(function(){ goCommentDelete($(this)); }); $(".del_submit2").click(function(){ checkPassword(); }); $(".del_submit").focus(function(){ //goCommentDelete($(this)); }); $(".focus_zone").focus(function(){ focusTextRemove($(this)); }); $(".focus_zone").blur(function(){ blurTextInsert($(this)); }); $('#comment_reply_input[data-nested]').each(function(){ $(this).hide(); }); }); </script> <div class="answer_wrapper"> <form name="edit_frm" id="edit_frm" action="/board/comment/process.jsp" method="post"> <input type="hidden" name="no" id="e_no"/> <input type="hidden" name="cmd" value="edit"/> <input type="hidden" name="contents" id="e_contents"/> <input type="hidden" name="name" id="e_name"/> <input type="hidden" name="password" id="e_password"/> <input type="hidden" name="parent_fk" value="216"/> <input type="hidden" name="url" value="/insight/read.jsp"/> </form> <form name="delete_frm" id="delete_frm" action="/board/comment/process.jsp" method="post" > <!-- //box --> <input type="hidden" name="cmd" value="r_delete"/> <input type="hidden" name="parent_fk" value="216"/> <input type="hidden" name="no" id="no" value=""/> <input type="hidden" name="tablename" value="blog"/> <input type="hidden" name="url" value="/insight/read.jsp"/> </form> <div class="login_tit01">댓글</div> <div class="read_rego custom"> <!-- 댓글 --> <form name="frm" id="frm" method="post" > <dl> <dt> </dt> <dd class="flex"> <div class="left"> <div class="custom_box_bom_flex"> <div class="custom_box_bom"><input type="text" class="focus_zone" name="name" id="name" title="작성자 이름을 입력해주세요" value="이름"/></div> <div class="custom_box_bom"><input type="text" class="focus_zone" name="password_temp" id="password_temp" value="비밀번호" title="비밀번호를 입력해주세요" /></div> </div> <textarea class="focus_zone" name="contents" id="contents" title="내용을 입력해주세요" placeholder="내용"></textarea> </div> <div class="right"> <input value="확인" type="submit" onclick="goSaveComment(event, this)" /> </div> </dd> </dl> <input type="hidden" name="cmd" value="r_write"/> <input type="hidden" name="parent_fk" value="216"/> <input type="hidden" name="member_fk" value="1774809310"/> <input type="hidden" name="tablename" value="blog" /> <input type="hidden" name="nested" value="0"/> <input type="hidden" name="gno" value="1" /> <input type="hidden" name="url" value="/insight/read.jsp"/> </form> </div> <dl> <dd class="bbsno"> 등록된 댓글이 없습니다. <!-- 등록된 자료가 없습니다. --> </dd> </dl> <!-- //rego --> </div> <div class="password_pop_up edit_btn"> <div class="password_pop_inner"> <h2>PASSWORD</h2> <div class="passwo_rd_con"> <p>비밀번호</p> <input type="password" name="edit_password" id="edit_password" placeholder="비밀번호를 입력해주세요" onkeyup="javascript:if(event.keyCode == 13){checkPassword($(this))}"> </div> <a class="ps_confirm_btn del_submit2" href="javascript:;"><p>확인</p></a> <div class="ps_x_btn edit_btn"><img src="/img/ps_x_btn.png" alt=""></div> </div> </div> <div class="password_pop_up delete_btn"> <div class="password_pop_inner"> <h2>PASSWORD</h2> <div class="passwo_rd_con"> <p>비밀번호</p> <input type="password" name="password_del" id="password_del" placeholder="비밀번호를 입력해주세요" onkeyup="javascript:if(event.keyCode == 13){goCommentDelete($(this))}"> </div> <a class="ps_confirm_btn del_submit" href="javascript:;"><p>확인</p></a> <div class="ps_x_btn delete_btn"><img src="/img/ps_x_btn.png" alt=""></div> </div> </div> <div class="black_popup_bg"></div> <script> document.addEventListener("DOMContentLoaded", function () { $(".password_pop_up").hide(); $(".black_popup_bg").hide(); // TODO: Edit Btn Event 추가 document.querySelector(".ps_x_btn.edit_btn").addEventListener("click", function () { setTimeout(function () { document.querySelector(".black_popup_bg").style.display = "none"; document.querySelector(".password_pop_up.edit_btn").style.display = "none"; }, 0); // 0.3초 후 완전히 숨김 }); // TODO: Delete Btn Event 추가 document.querySelector(".ps_x_btn.delete_btn").addEventListener("click", function () { setTimeout(function () { document.querySelector(".black_popup_bg").style.display = "none"; document.querySelector(".password_pop_up.delete_btn").style.display = "none"; }, 0); // 0.3초 후 완전히 숨김 }); }); </script> <!-- 댓글 --> <div class="ej_du_wrap mb_du_jul_yo"> <div class="ejun_daum_box"> <div class="ejun_bt pag_bt"> <a href="read.jsp?reqPageNo=1&no=214"> <div class="pag_yo"> <i> <img src="/img/new_arrow_yoyo01.png" alt=""> </i> <span> 이전 </span> </div> <div class="pag_txt text_ov"> 로컬 투어 플랫폼 운영 마스터 가이드 </div> </a> </div> <div class="daum_bt pag_bt"> <a href="read.jsp?reqPageNo=1&no=218"> <div class="pag_txt text_ov"> 우리는 왜 홈페이지를 제작 해야할까? - 맞춤형 VS .... </div> <div class="pag_yo"> <span> 다음 </span> <i> <img src="/img/new_arrow_yoyo02.png" alt=""> </i> </div> </a> </div> </div> <div class="mok_rok_btn"> <a class="btn" href="index.jsp?reqPageNo=1"><strong><!-- property:목록 -->목록</strong></a> </div> </div> <!-- 추가 --> <div class="blog_content_slide_wrap001"> <div class="tit">연관 콘텐츠</div> <div class="blog_content_slide_wrapper"> <a href="javascript:;" class="blog_slide_arw001 prev"><img src="/img/blog_slide_arw001.png" alt="슬라이드 이전"></a> <a href="javascript:;" class="blog_slide_arw001 next"><img src="/img/blog_slide_arw002.png" alt="슬라이드 이후"></a> <div class="swiper mySwiper blog_content_slide"> <div class="swiper-wrapper"> <div class="swiper-slide item" onclick="location.href='/insight/read.jsp?no=420'" style="cursor: pointer;"> <div class="img"> <img src="https://vizen.vizensoft.com/upload/blog/1774744919493_698.png" alt="테스트이미지"> </div> <div class="alt_box"> <div class="blog_slide_tit"> 반응형 웹 vs 적응형 웹, 내 사이트엔 뭐가 맞을까? </div> <div class="blog_icon_box02" style="align-items: center;"> <div style="position: relative;"> <a href="javascript:;" class="icon01 " data-no="420" onclick="clickLikeBtn(event, this);"> <svg xmlns="//www.w3.org/2000/svg" width="26" height="21" viewBox="0 0 26 21" fill="currentColor"> <path d="M12.998 3.65543C11.8257 1.96355 9.77869 0.859375 7.46251 0.859375C3.91895 0.859375 0.891113 3.16514 0.891113 6.58411C0.891113 7.15374 1.14895 8.97458 2.50773 10.8019L2.50831 10.8027C4.11161 12.9501 6.47232 15.2631 8.51821 17.0335C9.54313 17.9204 10.4975 18.6785 11.2489 19.2176C11.6236 19.4865 11.9551 19.7062 12.2238 19.8609C12.3576 19.9379 12.4844 20.0039 12.5986 20.0521C12.6969 20.0935 12.8441 20.1477 12.998 20.1477C13.1506 20.1477 13.2978 20.0992 13.4076 20.0553C13.5289 20.0068 13.6614 19.9401 13.8 19.862C14.0777 19.7055 14.414 19.4837 14.7897 19.213C15.5428 18.6703 16.4859 17.9083 17.4907 17.0191C19.4966 15.2439 21.7843 12.9298 23.3171 10.7952C23.86 10.0401 24.3022 9.12315 24.6077 8.35087C24.7612 7.96263 24.8831 7.60347 24.9675 7.31012C25.0455 7.03918 25.1087 6.76755 25.1087 6.58411C25.1087 3.16514 22.0809 0.859375 18.5373 0.859375C16.2214 0.859375 14.1712 1.96335 12.998 3.65543Z" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </a> </div> <a href="javascript:;" class="icon02 " data-no="420" onclick="clickShareBtn(event, this);"> <svg xmlns="//www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="none"> <rect x="7" y="7" width="15" height="15" rx="2" fill="#828282"></rect> <rect x="0.5" y="0.5" width="14" height="14" rx="1.5" fill="white" stroke="#828282"></rect> </svg> </a> <div style="display: flex; align-items: center;gap: 5px;"> <img src="/img/views_icon.png" alt="조회수 아이콘"> 8 </div> </div> <div class="blog_hash_box"> #반응형웹 #적응형웹 #모바일최적화 #반응형홈페이지 #홈페이지제작 #커스텀웹개발 #모바일퍼스트 #CoreWebVitals #SEO최적화 #비젠소프트 </div> </div> </div> <div class="swiper-slide item" onclick="location.href='/insight/read.jsp?no=411'" style="cursor: pointer;"> <div class="img"> <img src="https://vizen.vizensoft.com/upload/blog/1774692735048_16.png" alt="테스트이미지"> </div> <div class="alt_box"> <div class="blog_slide_tit"> 피부과 홈페이지 제작, 비용과 필수 기능 한눈에 정리! </div> <div class="blog_icon_box02" style="align-items: center;"> <div style="position: relative;"> <a href="javascript:;" class="icon01 " data-no="411" onclick="clickLikeBtn(event, this);"> <svg xmlns="//www.w3.org/2000/svg" width="26" height="21" viewBox="0 0 26 21" fill="currentColor"> <path d="M12.998 3.65543C11.8257 1.96355 9.77869 0.859375 7.46251 0.859375C3.91895 0.859375 0.891113 3.16514 0.891113 6.58411C0.891113 7.15374 1.14895 8.97458 2.50773 10.8019L2.50831 10.8027C4.11161 12.9501 6.47232 15.2631 8.51821 17.0335C9.54313 17.9204 10.4975 18.6785 11.2489 19.2176C11.6236 19.4865 11.9551 19.7062 12.2238 19.8609C12.3576 19.9379 12.4844 20.0039 12.5986 20.0521C12.6969 20.0935 12.8441 20.1477 12.998 20.1477C13.1506 20.1477 13.2978 20.0992 13.4076 20.0553C13.5289 20.0068 13.6614 19.9401 13.8 19.862C14.0777 19.7055 14.414 19.4837 14.7897 19.213C15.5428 18.6703 16.4859 17.9083 17.4907 17.0191C19.4966 15.2439 21.7843 12.9298 23.3171 10.7952C23.86 10.0401 24.3022 9.12315 24.6077 8.35087C24.7612 7.96263 24.8831 7.60347 24.9675 7.31012C25.0455 7.03918 25.1087 6.76755 25.1087 6.58411C25.1087 3.16514 22.0809 0.859375 18.5373 0.859375C16.2214 0.859375 14.1712 1.96335 12.998 3.65543Z" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </a> </div> <a href="javascript:;" class="icon02 " data-no="411" onclick="clickShareBtn(event, this);"> <svg xmlns="//www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="none"> <rect x="7" y="7" width="15" height="15" rx="2" fill="#828282"></rect> <rect x="0.5" y="0.5" width="14" height="14" rx="1.5" fill="white" stroke="#828282"></rect> </svg> </a> <div style="display: flex; align-items: center;gap: 5px;"> <img src="/img/views_icon.png" alt="조회수 아이콘"> 29 </div> </div> <div class="blog_hash_box"> #피부과홈페이지제작 #피부과웹사이트 #병원홈페이지제작 </div> </div> </div> <div class="swiper-slide item" onclick="location.href='/insight/read.jsp?no=402'" style="cursor: pointer;"> <div class="img"> <img src="https://vizen.vizensoft.com/upload/blog/1774410939297_88.png" alt="테스트이미지"> </div> <div class="alt_box"> <div class="blog_slide_tit"> 성형외과 홈페이지 제작, 병원 매출 올리는 웹사이트는 따로 있다? </div> <div class="blog_icon_box02" style="align-items: center;"> <div style="position: relative;"> <a href="javascript:;" class="icon01 " data-no="402" onclick="clickLikeBtn(event, this);"> <svg xmlns="//www.w3.org/2000/svg" width="26" height="21" viewBox="0 0 26 21" fill="currentColor"> <path d="M12.998 3.65543C11.8257 1.96355 9.77869 0.859375 7.46251 0.859375C3.91895 0.859375 0.891113 3.16514 0.891113 6.58411C0.891113 7.15374 1.14895 8.97458 2.50773 10.8019L2.50831 10.8027C4.11161 12.9501 6.47232 15.2631 8.51821 17.0335C9.54313 17.9204 10.4975 18.6785 11.2489 19.2176C11.6236 19.4865 11.9551 19.7062 12.2238 19.8609C12.3576 19.9379 12.4844 20.0039 12.5986 20.0521C12.6969 20.0935 12.8441 20.1477 12.998 20.1477C13.1506 20.1477 13.2978 20.0992 13.4076 20.0553C13.5289 20.0068 13.6614 19.9401 13.8 19.862C14.0777 19.7055 14.414 19.4837 14.7897 19.213C15.5428 18.6703 16.4859 17.9083 17.4907 17.0191C19.4966 15.2439 21.7843 12.9298 23.3171 10.7952C23.86 10.0401 24.3022 9.12315 24.6077 8.35087C24.7612 7.96263 24.8831 7.60347 24.9675 7.31012C25.0455 7.03918 25.1087 6.76755 25.1087 6.58411C25.1087 3.16514 22.0809 0.859375 18.5373 0.859375C16.2214 0.859375 14.1712 1.96335 12.998 3.65543Z" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </a> </div> <a href="javascript:;" class="icon02 " data-no="402" onclick="clickShareBtn(event, this);"> <svg xmlns="//www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="none"> <rect x="7" y="7" width="15" height="15" rx="2" fill="#828282"></rect> <rect x="0.5" y="0.5" width="14" height="14" rx="1.5" fill="white" stroke="#828282"></rect> </svg> </a> <div style="display: flex; align-items: center;gap: 5px;"> <img src="/img/views_icon.png" alt="조회수 아이콘"> 17 </div> </div> <div class="blog_hash_box"> #성형외과홈페이지제작 #성형웹사이트 #병원홈페이지제작 #성형외과마케팅 #병원SEO최적화 #의료마케팅 #성형외과광고 #병원전환율최적화 #AI챗봇병원 #네이버광고자동입찰 </div> </div> </div> <div class="swiper-slide item" onclick="location.href='/insight/read.jsp?no=238'" style="cursor: pointer;"> <div class="img"> <img src="https://vizen.vizensoft.com/upload/blog/1772066165627_790.jpg" alt="테스트이미지"> </div> <div class="alt_box"> <div class="blog_slide_tit"> 홈페이지를 만들었는데 검색이 안 된다고요? 웹사이트 SEO 관리 시스템으로 해결하세요! </div> <div class="blog_icon_box02" style="align-items: center;"> <div style="position: relative;"> <a href="javascript:;" class="icon01 " data-no="238" onclick="clickLikeBtn(event, this);"> <svg xmlns="//www.w3.org/2000/svg" width="26" height="21" viewBox="0 0 26 21" fill="currentColor"> <path d="M12.998 3.65543C11.8257 1.96355 9.77869 0.859375 7.46251 0.859375C3.91895 0.859375 0.891113 3.16514 0.891113 6.58411C0.891113 7.15374 1.14895 8.97458 2.50773 10.8019L2.50831 10.8027C4.11161 12.9501 6.47232 15.2631 8.51821 17.0335C9.54313 17.9204 10.4975 18.6785 11.2489 19.2176C11.6236 19.4865 11.9551 19.7062 12.2238 19.8609C12.3576 19.9379 12.4844 20.0039 12.5986 20.0521C12.6969 20.0935 12.8441 20.1477 12.998 20.1477C13.1506 20.1477 13.2978 20.0992 13.4076 20.0553C13.5289 20.0068 13.6614 19.9401 13.8 19.862C14.0777 19.7055 14.414 19.4837 14.7897 19.213C15.5428 18.6703 16.4859 17.9083 17.4907 17.0191C19.4966 15.2439 21.7843 12.9298 23.3171 10.7952C23.86 10.0401 24.3022 9.12315 24.6077 8.35087C24.7612 7.96263 24.8831 7.60347 24.9675 7.31012C25.0455 7.03918 25.1087 6.76755 25.1087 6.58411C25.1087 3.16514 22.0809 0.859375 18.5373 0.859375C16.2214 0.859375 14.1712 1.96335 12.998 3.65543Z" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"></path> </svg> </a> </div> <a href="javascript:;" class="icon02 " data-no="238" onclick="clickShareBtn(event, this);"> <svg xmlns="//www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 22 22" fill="none"> <rect x="7" y="7" width="15" height="15" rx="2" fill="#828282"></rect> <rect x="0.5" y="0.5" width="14" height="14" rx="1.5" fill="white" stroke="#828282"></rect> </svg> </a> <div style="display: flex; align-items: center;gap: 5px;"> <img src="/img/views_icon.png" alt="조회수 아이콘"> 14 </div> </div> <div class="blog_hash_box"> #웹사이트SEO #검색엔진최적화 #홈페이지검색노출 #메타태그관리 #OG태그설정 #사이트맵관리 #네이버검색노출 #구글검색최적화 #홈페이지제작SEO #비젠소프트 </div> </div> </div> </div> </div> <script> var blog_content_slide = new Swiper(".blog_content_slide", { spaceBetween: 20, slidesPerView: 1, navigation: { nextEl: ".blog_slide_arw001.next", prevEl: ".blog_slide_arw001.prev", }, breakpoints: { 701: { slidesPerView: 2, spaceBetween: 30, }, 1025: { slidesPerView: 3, spaceBetween: 40, }, }, }); </script> </div> </div> <!-- END 추가 --> </div> </div> </div> </div> <!-- 프로그램끝 --> <!-- Honeypot CSS 추가 --> <style> .hp-field { position: absolute !important; left: -9999px !important; width: 0 !important; height: 0 !important; opacity: 0 !important; pointer-events: none !important; z-index: -1 !important; } </style> <script> var duplicate = false; // JavaScript 챌린지 변수 (간단 문의용 - medical) var simpleFormChallenge = { timestamp: Date.now(), answer: null }; function goSave(){ if(!duplicate){ console.log("goSave 함수 호출됨 (간단 문의 - medical)"); var regex=/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i; if($("#company").val().length == 0){ alert("회사명을 입력해주세요."); $("#company").focus(); return false; } if($("#manager").val().length == 0){ alert("담당자명을 입력해주세요."); $("#manager").focus(); return false; } if($("#cell").val().length == 0){ alert("연락처를 입력해주세요."); $("#cell").focus(); return false; } $("#cell").val( $("#cell").val().replace(/[-]/g, '') ); cvtPhoneNumber(document.getElementById('cell')); if($("#email").val().length == 0){ alert("이메일을 입력해주세요."); $("#email").focus(); return false; } else if (!regex.test($("#email").val())) { alert("이메일을 정확하게 입력해주세요."); $("#email").focus(); return false; } console.log("필수 항목 체크 통과"); // Honeypot 체크 if ($("#username_simple").val() !== "" || $("#address_simple").val() !== "" || $("#comment_simple").val() !== "") { console.log("Spam detected - honeypot"); return false; } console.log("Honeypot 체크 통과"); // JavaScript 챌린지 체크 if (!simpleFormChallenge.answer || $("#js_challenge_simple").val() === "") { console.log("Spam detected - no JS"); alert("페이지가 제대로 로드되지 않았습니다. 새로고침 후 다시 시도해주세요."); return false; } console.log("JavaScript 챌린지 통과"); $("#cmd").val("write"); duplicate = true; var form = $("#frm"); if (typeof fn_formSpanCheck === 'function') { try { fn_formSpanCheck(form, key); } catch(e) { console.log("fn_formSpanCheck 에러:", e); } } $('#frm').submit(); } else { alert("상담 요청 중입니다. 잠시만 기다려주십시오."); return false; } } // 페이지 로드 시 JavaScript 챌린지 생성 (간단 문의용 - medical) window.addEventListener('load', function() { console.log("페이지 로드 완료 - 간단 문의 JS 챌린지 생성 (medical)"); var a = Math.floor(Math.random() * 100) + 1; var b = Math.floor(Math.random() * 100) + 1; simpleFormChallenge.answer = a + b; var challengeInput = document.getElementById('js_challenge_simple'); if (challengeInput) { challengeInput.value = btoa(simpleFormChallenge.answer.toString()); console.log("간단 문의 JS 챌린지 생성 완료 (medical)"); } }); // 개선된 전화번호 포맷팅 (+ 시작해도 0 제거) function formatPhoneNumber(input) { let oldValue = input.value; // 숫자, '-', '+', 공백만 허용 if (/[^0-9+\-\s]/.test(oldValue)) { alert("올바른 전화번호 형식이 아닙니다."); input.value = oldValue.replace(/[^0-9+\-\s]/g, ''); return; } // + 시작하면 국가번호 다음 0 제거 처리 if (oldValue.startsWith('+')) { let numbers = oldValue.substring(1).replace(/[^\d]/g, ''); console.log('+ 시작 번호 처리:', numbers); // 1자리 국가번호 (1, 7) if ((numbers.startsWith('1') || numbers.startsWith('7')) && numbers.length >= 11) { if (numbers.charAt(1) === '0') { numbers = numbers.substring(0, 1) + numbers.substring(2); console.log('1자리 국가번호 0 제거:', numbers); } input.value = '+' + numbers; return; } // 2자리 국가번호 if (numbers.length >= 12 && numbers.charAt(2) === '0') { numbers = numbers.substring(0, 2) + numbers.substring(3); console.log('2자리 국가번호 0 제거:', numbers); input.value = '+' + numbers; return; } // 3자리 국가번호 if (numbers.length >= 13 && numbers.charAt(3) === '0') { numbers = numbers.substring(0, 3) + numbers.substring(4); console.log('3자리 국가번호 0 제거:', numbers); input.value = '+' + numbers; return; } // 0 제거 불필요하면 그대로 input.value = '+' + numbers; return; } // 00으로 시작하면 +로 변환하고 0 제거 if (oldValue.startsWith('00')) { let numbers = oldValue.replace(/[^\d]/g, '').substring(2); console.log('00 시작 번호 처리:', numbers); // 위와 동일한 0 제거 로직 if ((numbers.startsWith('1') || numbers.startsWith('7')) && numbers.length >= 11) { if (numbers.charAt(1) === '0') { numbers = numbers.substring(0, 1) + numbers.substring(2); } } else if (numbers.length >= 12 && numbers.charAt(2) === '0') { numbers = numbers.substring(0, 2) + numbers.substring(3); } else if (numbers.length >= 13 && numbers.charAt(3) === '0') { numbers = numbers.substring(0, 3) + numbers.substring(4); } input.value = '+' + numbers; return; } // 숫자만 추출 let numbers = input.value.replace(/[^\d]/g, ''); // 국제번호 자동 감지 및 처리 (10자 이상, 0으로 시작 안 함) if (numbers.length >= 10 && !numbers.startsWith('0')) { console.log('국제번호 감지:', numbers); let countryCode = ''; let remainingNumber = ''; let hasLeadingZero = false; // 1자리 국가번호 (1, 7) if (numbers.startsWith('1') || numbers.startsWith('7')) { countryCode = numbers.substring(0, 1); remainingNumber = numbers.substring(1); if (remainingNumber.startsWith('0')) { hasLeadingZero = true; remainingNumber = remainingNumber.substring(1); console.log('국가번호 1자리, 0 제거:', countryCode); } } // 2자리 국가번호 (대부분의 국가: 20-99) else if (numbers.length >= 11) { countryCode = numbers.substring(0, 2); remainingNumber = numbers.substring(2); if (remainingNumber.startsWith('0')) { hasLeadingZero = true; remainingNumber = remainingNumber.substring(1); console.log('국가번호 2자리, 0 제거:', countryCode); } } // 3자리 국가번호 (일부 특수 국가) else if (numbers.length >= 12) { countryCode = numbers.substring(0, 3); remainingNumber = numbers.substring(3); if (remainingNumber.startsWith('0')) { hasLeadingZero = true; remainingNumber = remainingNumber.substring(1); console.log('국가번호 3자리, 0 제거:', countryCode); } } if (countryCode) { input.value = '+' + countryCode + remainingNumber; if (hasLeadingZero) { console.log('✅ 0 제거 완료:', input.value); } } else { input.value = '+' + numbers; } return; } // 국내번호 포맷팅 (기존 코드 그대로) let formattedNumber = ''; if (numbers.startsWith('02')) { if (numbers.length <= 2) { formattedNumber = numbers; } else if (numbers.length <= 5) { formattedNumber = numbers.substring(0, 2) + '-' + numbers.substring(2); } else if (numbers.length <= 9) { formattedNumber = numbers.substring(0, 2) + '-' + numbers.substring(2, 5) + '-' + numbers.substring(5); } else { formattedNumber = numbers.substring(0, 2) + '-' + numbers.substring(2, 6) + '-' + numbers.substring(6, 10); } } else if (numbers.startsWith('01')) { if (numbers.length <= 3) { formattedNumber = numbers; } else if (numbers.length <= 7) { formattedNumber = numbers.substring(0, 3) + '-' + numbers.substring(3); } else if (numbers.length === 10) { formattedNumber = numbers.substring(0, 3) + '-' + numbers.substring(3, 6) + '-' + numbers.substring(6); } else { formattedNumber = numbers.substring(0, 3) + '-' + numbers.substring(3, 7) + '-' + numbers.substring(7, 11); } } else if (/^0(3[1-3]|[4-6][1-4])/.test(numbers)) { if (numbers.length <= 3) { formattedNumber = numbers; } else if (numbers.length <= 6) { formattedNumber = numbers.substring(0, 3) + '-' + numbers.substring(3); } else if (numbers.length <= 9) { formattedNumber = numbers.substring(0, 3) + '-' + numbers.substring(3, 6) + '-' + numbers.substring(6); } else { formattedNumber = numbers.substring(0, 3) + '-' + numbers.substring(3, 7) + '-' + numbers.substring(7, 11); } } else if (numbers.startsWith('15') || numbers.startsWith('16') || numbers.startsWith('18')) { if (numbers.length <= 4) { formattedNumber = numbers; } else { formattedNumber = numbers.substring(0, 4) + '-' + numbers.substring(4, 8); } } else { formattedNumber = numbers; } input.value = formattedNumber; } </script> <div class="top_btn"> <img src="/img/top_btn.png" class="pc_display" alt="상단으로" /> <img src="/img/button_w.png" class="mo_display" alt="상단으로" /> </div> <div class="contact_box"> <div class="left_box"> <p><i><img src="/img/contact_box_icon001.png"></i>견적&상담요청</p> </div> <div class="right_box"> <form action="/request/process.jsp" name="frm" id="frm" method="post" enctype="multipart/form-data" > <div class="input_box"> <label> <input type="text" placeholder="회사명" id="company" name="company" maxlength="100" required> </label> <label> <input type="text" placeholder="담당자" id="manager" name="manager" maxlength="50" required> </label> <label> <input type="tel" placeholder="연락처" onkeyup="formatPhoneNumber(this);" id="cell" name="cell" maxlength="20" pattern="[0-9+\-\s]*" required> </label> <label> <input type="email" placeholder="이메일" id="email" name="email" maxlength="255" required> </label> </div> <div class="btn submit_box"> <a href="javascript:void(1);" onclick="goSave();">견적&상담요청</a> </div> <input type="submit" style="display:none;" id="submit_input" /> <input type="hidden" name="cmd" id="cmd" value="write" /> <input type="hidden" name="contents" value="medical.vizensoft.com" /> <!-- JavaScript 챌린지 (간단 문의용 - medical) --> <input type="hidden" name="js_challenge" id="js_challenge_simple" value="" /> <!-- Honeypot 필드들 (간단 문의용 - medical) --> <input type="text" name="username" id="username_simple" value="" class="hp-field" tabindex="-1" autocomplete="new-password" /> <input type="text" name="comment" id="comment_simple" value="" class="hp-field" tabindex="-1" autocomplete="new-password" /> <input type="text" name="address" id="address_simple" value="" class="hp-field" tabindex="-1" autocomplete="new-password" /> <input type="checkbox" id="agree" name="agree" checked="checked" style="display:none"> </form> </div> </div> <div id="footer"> <div class="footer_container"> <div class="cot_type"> <ul> <li class="con02"> <h1><a href="/"><img src="/img/footer_logo.png" alt="logo" /></a></h1> <div class="under_link"> <a href="/about/index.jsp">About vizen medical</a> · <a href="/about/index.jsp#location">Location</a> </div> <div class="btn_type"> <a href="/downPageView.jsp?pdf=1" download> <span class="part_img"><img src="/img/fpdf_icon.png" alt="BROCHURE DOWNLOAD"/></span> <span class="part_txt">BROCHURE<br /><u>DOWNLOAD</u></span> </a> <a href="/downPageView.jsp?pdf=2" download> <span class="part_img"><img src="/img/fpdf_icon.png" alt="BROCHURE DOWNLOAD"/></span> <span class="part_txt">PORTFOLIO<br /><u>DOWNLOAD</u></span> </a> </div> </li> <li class="con01"> <div class="left"> <div class="tit">CONTACT US</div> <dl> <dd><span>제작문의</span><span class="rit">210번</span></dd> <dd><span>안내</span><span class="rit">0번</span></dd> <dd><span>장애처리</span><span class="rit">9번</span></dd> </dl> </div> <div class="right"> <a href="tel:023384610" onclick="ajaxLogMobile('CONTACT US');">02 - 338 - 4610</a> <a href="/request/index.jsp" class="btn">REQUEST 견적&상담요청</a> </div> </li> </ul> </div> <div class="copy_type"> Tel : <a href="tel:02-338-4610" onclick="ajaxLogMobile('Copyright 영역');">02-338-4610</a> | Fax : 02-338-4609<br /> 사업자등록번호 : 108-81-65306 | 대표자 : 김지훈<br /> 주소 : (우)08510 서울특별시 금천구 벚꽃로 298, 대륭포스트타워 6차 1307호<br/> <p style="margin-top:40px;">COPYRIGHT 2004-2026 VIZENSOFT ALL RIGHTS RESERVED.</p> <div class="btn_wrap"><a href="/member/policy.jsp">개인정보취급방침</a></div> </div> </div> </div> <!-- //footer --> <script> $(document).ready(function(){ // 실행 $('.projectBox ul li .text_part h5').wordBreakKeepAll(); }); $(window).resize(function(){ $('.projectBox ul li .text_part h5').wordBreakKeepAll(); }); $(".top_btn").hide(); $(window).scroll(function(){ if ( $(this).scrollTop() > 100 ){ $(".top_btn").fadeIn(); }else{ $(".top_btn").fadeOut(); } $(".top_btn").click(function(){ $("html, body").stop().animate({ scrollTop : 0 },300); }); }); </script> <!-- 공통 적용 스크립트 , 모든 페이지에 노출되도록 설치. 단 전환페이지 설정값보다 항상 하단에 위치해야함 --> <script type="text/javascript" src="//wcs.naver.net/wcslog.js"> </script> <script type="text/javascript"> if (!wcs_add) var wcs_add={}; wcs_add["wa"] = "s_2914bb3c79f0"; if (!_nasa) var _nasa={}; if(window.wcs){ wcs.inflow(); wcs_do(_nasa); } </script> <!-- 커스텀 카카오톡 채팅 버튼 --> <img src="/img/kakao_default.png" id="my-kakao-chat" style="position: fixed; bottom: 20px; right: 20px; z-index: 999; cursor: pointer;" alt="카카오톡 상담하기"> <script> window.kakaoAsyncInit = function () { Kakao.init('124c91bf9f5c13311f842286f5772a32'); // 카카오 JavaScript 키로 초기화 // 커스텀 이미지 클릭 시 채팅창 열기 document.getElementById('my-kakao-chat').addEventListener('click', function () { Kakao.Channel.chat({ channelPublicId: '_xokcxan' // 본인의 채널 ID }); }); }; // Kakao SDK 비동기 로드 (function(d, s, id){ var js, kjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = 'https://developers.kakao.com/sdk/js/kakao.channel.min.js'; kjs.parentNode.insertBefore(js, kjs); })(document, 'script', 'kakao-js-sdk'); // Hover 이미지 전환 document.addEventListener('DOMContentLoaded', function () { const chatBtn = document.getElementById('my-kakao-chat'); chatBtn.addEventListener('mouseover', function () { chatBtn.src = '/img/kakao_hover.png'; }); chatBtn.addEventListener('mouseout', function () { chatBtn.src = '/img/kakao_default.png'; }); }); </script> </div> </body> </html>