조직도 만들기

5–8분

조직도는 html과 css 기준으로 작업됩니다.
내용 전달을 위해 이미지 보다는 텍스트 처리를 권장합니다

<style>
        /* 컨테이너 */
        .org-container-style1 {
            max-width: 1200px;
            margin: 0 auto;
            text-align: center;
        }

        /* CEO 스타일 */
        .org-container-style1 .ceo-section {
            margin-bottom: 5px;
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        .org-container-style1 .ceo-card {
            background: #fff;
            border: 2px solid #ddd;
            padding: 18px 40px 15px;
            border-radius: 50px;
            display: inline-block;
            position: relative;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
        }

        .org-container-style1 .ceo-card .name {
            display: block;
            font-weight: bold;
            color: #000;
            font-size: 1.2rem;
        }

        .org-container-style1 .ceo-card .title {
            display: block;
            font-size: 0.8rem;
            color: #aaa;
        }

        /* 연결선 (데스크탑용 수직선) */
        .org-container-style1 .connector-line-v {
            width: 2px;
            height: 40px;
            background-color: #ddd;
            margin-top: 5px;
        }

        /* 오피스 레이아웃 (Flexbox) */
        .org-container-style1 .office-wrapper {
            display: flex;
            justify-content: space-around;
            gap: 20px;
            align-items: flex-start;
        }

        .org-container-style1 .office-column {
            flex: 1;
            min-width: 250px;
        }

        /* 오피스 헤더 */
        .org-container-style1 .office-header {
            padding: 12px;
            border-radius: 8px;
            font-size: 18px;
            color: #fff;
            font-weight: bold;
            margin-bottom: 20px;
            background: #fff;
            color: #333;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.12);
            position: relative;
            border-left: 20px solid #ddd;
        }

        .org-container-style1 .color-yellow {
            background: #fff3d7;
            border-left-color: #fbc02d;
        }

        .org-container-style1 .color-green {
            background: #f0ffdf;
            border-left-color: #8bc34a;
        }

        .org-container-style1 .color-blue {
            background: #edf9ff;
            border-left-color: #03a9f4;
        }

        /* 팀 카드 리스트 */
        .org-container-style1 .team-list {
            display: flex;
            flex-direction: column;
            gap: 10px;
            align-items: center;
            position: relative;
        }

        .org-container-style1 .team-list::before {
            content: '';
            position: absolute;
            left: 12px;
            top: -20px;
            width: 2px;
            height: calc(100% - 12px);
            background: #ddd;
        }

        .org-container-style1 .team-card {
            background: #fff;
            border: 2px dashed #ddd;
            border-radius: 10px;
            padding: 10px;
            margin-left: 40px;
            width: calc(100% - 50px);
            text-align: left;
            font-size: 0.9rem;
            color: #555;
            position: relative;
            line-height: 20px;
        }

        .org-container-style1 .team-card span {
            font-size: 0.75rem;
            color: #999;
        }

        /* 팀 카드 연결선 (가로) */
        .org-container-style1 .team-card::before {
            content: '';
            position: absolute;
            left: -12px;
            top: 50%;
            width: 14px;
            height: 14px;
            border-radius: 50%;
            z-index: 2;
            border: 2px solid #ddd;
            background: #fff;
            transform: translateY(-50%);
        }

        .org-container-style1 .team-card::after {
            content: '';
            position: absolute;
            left: -34px;
            width: 24px;
            top: 50%;
            z-index: 1;
            height: 2px;
            background: #ddd;
            transform: translateY(-50%);

        }

        /* 모바일 반응형 처리 (768px 이하) */
        @media (max-width: 768px) {
            .org-container-style1 .office-wrapper {
                flex-direction: column;
                align-items: center;
            }

            .org-container-style1 .office-column {
                width: 100%;
                margin-bottom: 40px;
            }

            .org-container-style1 .connector-line-v {
                height: 30px;
            }

            /* 모바일에선 가독성을 위해 상단 선 제거 */
        }
    </style>

    <div class="org-container org-container-style1">
        <header class="ceo-section">
            <div class="ceo-card">
                <span class="name">HYEKANG LEE</span>
                <span class="title">CEO</span>
            </div>
            <div class="connector-line-v"></div>
        </header>

        <div class="office-wrapper">

            <div class="office-column">
                <div class="office-header color-yellow">OFFICE A</div>
                <div class="team-list">
                    <div class="team-card">마케팅팀<br><span>Marketing team</span></div>
                    <div class="team-card">전략팀<br><span>Strategy team</span></div>
                    <div class="team-card">마케팅팀<br><span>Marketing team</span></div>
                </div>
            </div>

            <div class="office-column">
                <div class="office-header color-green">OFFICE B</div>
                <div class="team-list">
                    <div class="team-card">영업팀<br><span>Sales team</span></div>
                    <div class="team-card">구매팀<br><span>Purchasing team</span></div>
                    <div class="team-card">마케팅팀<br><span>Marketing team</span></div>
                </div>
            </div>

            <div class="office-column">
                <div class="office-header color-blue">OFFICE C</div>
                <div class="team-list">
                    <div class="team-card">인사팀<br><span>human resources</span></div>
                    <div class="team-card">마케팅팀<br><span>Marketing team</span></div>
                    <div class="team-card">마케팅팀<br><span>Marketing team</span></div>
                </div>
            </div>

        </div>
    </div>
<style>
        .org-container-style2 {
            max-width: 1200px;
            margin: 0 auto;
            text-align: center;
            padding: 40px 20px;
        }

        /* 노드 공통 스타일 */
        .org-container-style2 .node {
            display: inline-block;
            padding: 15px 40px;
            color: #fff;
            font-size: 20px;
            font-weight: bold;
            box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
            min-width: 180px;
            border-radius: 8px;
        }

        .org-container-style2 .top-boss {
            background-color: #2c3e50;
        }

        .org-container-style2 .top-boss.second {
            background-color: #546e7a;
            ;
        }

        /* 중앙 수직선 및 감사실 연결 */
        .org-container-style2 .mid-section {
            height: 100px;
            position: relative;
            display: flex;
            justify-content: center;
        }

        .org-container-style2 .vertical-line.main {
            width: 2px;
            background: #ced4da;
            height: 100%;
            position: relative;
        }

        .org-container-style2 .joint-point {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 10px;
            height: 10px;
            background: #fff;
            border: 2px solid #546e7a;
            border-radius: 50%;
            z-index: 2;
            box-sizing: border-box;
        }

        .org-container-style2 .branch-line.side {
            position: absolute;
            top: 50%;
            left: 0;
            width: 80px;
            height: 2px;
            background: #ced4da;
        }

        .org-container-style2 .node.sub-boss.side {
            position: absolute;
            left: 80px;
            top: 50%;
            transform: translateY(-50%);
            background-color: #576574;
        }

        /* 하단 부서 연결선 (가로다리) */
        .org-container-style2 .connector-area {
            position: relative;
            height: 10px;
            margin-top: 40px;
        }

        .org-container-style2 .connector-area:after {
            content: "";
            position: absolute;
            top: -40px;
            left: 50%;
            transform: translateX(-50%);
            width: 2px;
            height: 40px;
            background: #ced4da;
        }

        .org-container-style2 .horizontal-bridge {
            position: absolute;
            top: 0;
            left: 12.5%;
            width: 75%;
            height: 2px;
            background: #ced4da;
        }

        /* 부서 레이아웃 */
        .org-container-style2 .dept-container {
            display: flex;
            justify-content: space-between;
            gap: 10px;
            padding: 0 0px;
        }

        .org-container-style2 .dept-item {
            flex: 1;
            position: relative;
            padding-top: 30px;
        }

        /* 부서별 수직 연결선 및 포인트 */
        .org-container-style2 .dept-item::before {
            content: "";
            position: absolute;
            top: -10px;
            left: 50%;
            transform: translateX(-50%);
            width: 2px;
            height: 40px;
            background: #ced4da;
        }

        .org-container-style2 .dept-item::after {
            content: "";
            position: absolute;
            top: -14px;
            left: 50%;
            transform: translateX(-50%);
            width: 10px;
            height: 10px;
            box-sizing: border-box;
            background: #fff;
            border: 2px solid #546e7a;
            border-radius: 50%;
        }

        /* 부서 카드 스타일 */
        .org-container-style2 .dept-node {
            background-color: #fff;
            border: 1px solid #e9ecef;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 6px 15px rgba(0, 0, 0, 0.05);
        }

        .org-container-style2 .dept-header {
            padding: 18px 10px;
            font-weight: 800;
            font-size: 17px;
            color: #2c3e50;
            background: #f8f9fa;
            border-top: 4px solid #3498db;
        }

        .org-container-style2 .team-list {
            padding: 15px 20px;
            font-size: 15px;
            line-height: 1.8;
            color: #636e72;
            text-align: left;
        }

        .org-container-style2 .team-list p {
            margin: 0;
            position: relative;
            padding-left: 15px;
        }

        .org-container-style2 .team-list p::before {
            content: "•";
            position: absolute;
            left: 0;
            color: #3498db;
            font-weight: bold;
        }

        /* 모바일 반응형 (768px 이하) */
        @media (max-width: 768px) {

            /* 1. 전체 컨테이너 패딩 조절 */
            .org-container-style2 {
                padding: 20px 10px;
            }

            .org-container-style2 .hierarchy-top {
                text-align: left;
            }

            /* 2. 감사실(옆으로 삐져나온 노드) 처리 */
            .org-container-style2 .mid-section {
                display: block;
                padding-left: 20px;
            }


            /* 3. 이사(second) 노드 간격 조절 */
            .org-container-style2 .top-boss.second {
                margin-bottom: 20px;
            }

            /* 4. 부서 레이아웃 세로 정렬 */
            .org-container-style2 .dept-container {
                flex-direction: column;
                gap: 20px;
                padding-left: 0px;
                position: relative;
            }

            .org-container-style2 .dept-container:before {
                content: "";
                position: absolute;
                top: -20px;
                left: 20px;
                width: 2px;
                height: 100%;
                background: #ced4da;
            }

            /* 5. 부서 간 불필요한 모든 연결선 제거 */
            .org-container-style2 .connector-area {
                display: none;
                /* 가로다리 영역 전체 숨김 */
            }

            .org-container-style2 .dept-item {
                width: 100%;
                max-width: 350px;
                /* 모바일에서 너무 퍼지지 않게 제한 */
                padding-top: 0;
            }

            .org-container-style2 .dept-item::before,
            .org-container-style2 .dept-item::after {
                display: none !important;
                /* 부서 위 수직선과 점 제거 */
            }

            /* 6. 내부 텍스트 크기 미세 조정 */
            .org-container-style2 .node {
                font-size: 18px;
                padding: 12px 20px;
                min-width: 160px;
                text-align: center;
            }
        }
    </style>

    <div class="org-chart org-container-style2">
        <div class="hierarchy-top">
            <div class="node top-boss">대표이사</div>

            <div class="mid-section">
                <div class="vertical-line main">
                    <div class="joint-point"></div>
                    <div class="branch-line side"></div>
                    <div class="node sub-boss side">감사실</div>
                </div>
            </div>

            <div class="node top-boss second">이사</div>
        </div>

        <div class="connector-area">
            <div class="horizontal-bridge"></div>
        </div>

        <div class="dept-container">
            <div class="dept-item">
                <div class="dept-node">
                    <div class="dept-header">경영지원실</div>
                    <div class="team-list">
                        <p>인사/총무팀</p>
                        <p>재무/회계팀</p>
                    </div>
                </div>
            </div>

            <div class="dept-item">
                <div class="dept-node">
                    <div class="dept-header" style="border-top-color: #e67e22;">전시사업부</div>
                    <div class="team-list">
                        <p>전시기획팀</p>
                        <p>전시디자인팀</p>
                        <p>공무 설계팀</p>
                    </div>
                </div>
            </div>

            <div class="dept-item">
                <div class="dept-node">
                    <div class="dept-header" style="border-top-color: #27ae60;">시공사업부</div>
                    <div class="team-list">
                        <p>프로젝트 제작팀</p>
                        <p>유지보수/관리팀</p>
                    </div>
                </div>
            </div>

            <div class="dept-item">
                <div class="dept-node">
                    <div class="dept-header" style="border-top-color: #9b59b6;">R&D 연구소</div>
                    <div class="team-list">
                        <p>S/W 개발팀</p>
                        <p>H/W 개발팀</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
<style>
        /* 기본 설정 */
        .org-container-style3.org-wrap {
            max-width: 1200px;
            margin: 50px auto;
            font-family: 'Pretendard', 'Malgun Gothic', sans-serif;
            text-align: center;
            color: #333;
        }

        /* 대표이사 원형 노드 */
        .org-container-style3 .org-top-section {
            position: relative;
            display: flex;
            justify-content: center;
            align-items: center;
            margin-bottom: 60px;
        }

        .org-container-style3 .ceo-node {
            width: 160px;
            height: 160px;
            background: #000;
            color: #fff;
            border-radius: 50%;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            font-size: 18px;
            font-weight: bold;
            line-height: 1.4;
            z-index: 2;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
        }

        .org-container-style3 .ceo-node span {
            font-weight: normal;
            font-size: 16px;
        }

        /* 감사 노드 */
        .org-container-style3 .audit-node {
            position: absolute;
            left: calc(50% + 160px);
            /* 중앙(50%)에서 오른쪽으로 120px 지점 */
            top: 50%;
            transform: translateY(-50%);
            width: 120px;
            /* 크기를 살짝 줄여 더 깔끔하게 */
            padding: 10px;
            border: 1px solid #333;
            background: #fff;
            font-weight: bold;
            font-size: 15px;
            z-index: 1;
        }

        /* 감사 연결 점선 */
        .org-container-style3 .audit-node::before {
            content: "";
            position: absolute;
            left: -80px;
            top: 50%;
            width: 80px;
            border-top: 1px dashed #aaa;
        }

        /* 메인 가로 연결선 */
        .org-container-style3 .org-main-line {
            width: 80%;
            margin: 0 auto;
            border-top: 1px dashed #aaa;
            position: relative;
        }

        .org-container-style3 .org-main-line::before {
            /* 수직선 */
            content: "";
            position: absolute;
            top: -60px;
            left: 50%;
            width: 1px;
            height: 60px;
            border-left: 1px dashed #aaa;

        }

        /* 하단 본부 레이아웃 */
        .org-container-style3 .dept-container {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-top: 40px;
            gap: 10px;
        }

        .org-container-style3 .dept-column {
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 8px;
            position: relative;
        }

        /* 본부 제목 (검정 박스) */
        .org-container-style3 .dept-head {
            background: #333;
            color: #fff;
            padding: 12px 5px;
            font-size: 14px;
            font-weight: bold;
            margin-bottom: 5px;
        }

        /* 팀 박스 (회색 박스) */
        .org-container-style3 .team-box {
            background: #eeeeee;
            padding: 10px 5px;
            font-size: 13px;
            color: #555;
        }

        /* 본부 상단 점선 포인트 */
        .org-container-style3 .dept-column::before {
            content: "";
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background-color: #333;
            font-size: 10px;
            position: absolute;
            top: -45px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 2;
        }

        .org-container-style3 .dept-column::after {
            content: "";
            width: 1px;
            height: 40px;
            border-left: 1px dashed #aaa;
            font-size: 10px;
            position: absolute;
            top: -40px;
            left: 50%;
            z-index: 1;

        }

        /* 모바일 반응형 처리 */
        @media (max-width: 900px) {
            .org-container-style3 .dept-container {
                flex-direction: column;
                align-items: center;
            }

            .org-container-style3 .dept-column {
                width: 100%;
                max-width: 300px;
                margin-bottom: 30px;
            }

            .org-container-style3 .audit-node {
                left: calc(50% + 20px);
                top: calc(100% + 30px);
            }


            .org-container-style3 .org-main-line,
            .org-container-style3 .dept-column::before {
                display: none;
            }

            .org-container-style3 .dept-column:first-child::after {
                content: "";
                width: 1px;
                height: 60px;
                border-radius: 50%;
                border-left: 1px dashed #aaa;
                font-size: 10px;
                position: absolute;
                top: -60px;
                left: 50%;
                z-index: 1;

            }

            .org-container-style3 .audit-node::before {
                width: 20px;
                left: -20px;
                rotate: 45deg;
                top: -10px;
            }
        }
    </style>
    <div class="org-wrap org-container-style3">
        <div class="org-top-section">
            <div class="ceo-node">
                선사인 디자인<br><span>대표이사</span>
            </div>

            <div class="audit-node">
                감사
            </div>
        </div>

        <div class="org-main-line"></div>

        <div class="dept-container">
            <div class="dept-column">
                <div class="dept-head">경영전략본부</div>
                <div class="team-box">전략기획관리부</div>
                <div class="team-box">사업지원부</div>
            </div>

            <div class="dept-column">
                <div class="dept-head">IB본부</div>
                <div class="team-box">종합금융관리부</div>
            </div>

            <div class="dept-column">
                <div class="dept-head">투자전략본부</div>
                <div class="team-box">전문가팀</div>
                <div class="team-box">연구원팀</div>
                <div class="team-box">리스크관리팀</div>
            </div>

            <div class="dept-column">
                <div class="dept-head">커뮤니티 관리본부</div>
                <div class="team-box">마케팅팀</div>
                <div class="team-box">크리에이티브팀</div>
            </div>

            <div class="dept-column">
                <div class="dept-head">VIP 솔루션본부</div>
                <div class="team-box">CS팀</div>
            </div>
        </div>
    </div>

도어웹이 직접 제작합니다

글에서 다룬 내용, 실제 사이트로 만들어 드립니다

워드프레스 2026

원이비인후과

1. 톤 & 컬러 2. 타이포그래피 3. 레이아웃 & UX — 질환정보 축적형 구조 이 사이트의 핵심은 메인이 아니라 질환 페이지가 시간이 지날수록 두꺼워지는 구조: 4. 전환 설계 (전화 문의형) 예약 시스템 없이 전화 한 통이 목표인 병원이라, 어디서든 전화까지의 거리를 줄이는 쪽으로 설계: 5. 신뢰·운영 안정성

워드프레스 2026

민성한의원

대구 민성한의원 홈페이지 제작 사례. 워드프레스 풀커스텀 테마로 자가 셋업 구조와 반응형, 구조화 데이터·llms.txt 기반 AI 검색 최적화까지 구현한 한의원 홈페이지 제작 프로젝트입니다.

워드프레스 2026

대전이혼변호사

1. 톤 & 컬러 2. 타이포그래피 3. 레이아웃 & UX 4. 전환 설계 (모바일 우선) 5. 신뢰·컴플라이언스 요소 (디자인에 반영)