FILE: /var/www/html/wp-includes/build/pages/options-connectors/page-wp-admin.php
SIZE: 10290 bytes
MODIFIED: 2026-08-26 05:34:27

CONTENT:
<?php
/**
 * Page: options-connectors (wp-admin integrated)
 * Auto-generated by build process.
 * Do not edit this file manually.
 *
 * This version integrates with the standard WordPress admin interface,
 * keeping the wp-admin sidebar and scripts/styles intact.
 *
 * @package wp
 */

// Global storage for options-connectors routes and menu items
global $wp_options_connectors_wp_admin_routes, $wp_options_connectors_wp_admin_menu_items;
$wp_options_connectors_wp_admin_routes     = array();
$wp_options_connectors_wp_admin_menu_items = array();

/**
 * Register a route for the options-connectors-wp-admin page.
 *
 * @param string      $path           Route path (e.g., '/types/$type/edit/$id').
 * @param string|null $content_module Script module ID for content (stage/inspector).
 * @param string|null $route_module   Script module ID for route lifecycle hooks.
 */
function wp_register_options_connectors_wp_admin_route( $path, $content_module = null, $route_module = null ) {
	global $wp_options_connectors_wp_admin_routes;

	$route = array( 'path' => $path );
	if ( ! empty( $content_module ) ) {
		$route['content_module'] = $content_module;
	}
	if ( ! empty( $route_module ) ) {
		$route['route_module'] = $route_module;
	}

	$wp_options_connectors_wp_admin_routes[] = $route;
}

/**
 * Register a menu item for the options-connectors-wp-admin page.
 * Note: Menu items are registered but not displayed in single-page mode.
 *
 * @param string $id        Menu item ID.
 * @param string $label     Display label.
 * @param string $to        Route path to navigate to.
 * @param string $parent_id Optional. Parent menu item ID.
 */
function wp_register_options_connectors_wp_admin_menu_item( $id, $label, $to, $parent_id = '' ) {
	global $wp_options_connectors_wp_admin_menu_items;

	$menu_item = array(
		'id'    => $id,
		'label' => $label,
		'to'    => $to,
	);

	if ( ! empty( $parent_id ) ) {
		$menu_item['parent'] = $parent_id;
	}

	$wp_options_connectors_wp_admin_menu_items[] = $menu_item;
}

/**
 * Get all registered routes for the options-connectors-wp-admin page.
 *
 * @return array Array of route objects.
 */
function wp_get_options_connectors_wp_admin_routes() {
	global $wp_options_connectors_wp_admin_routes;
	return $wp_options_connectors_wp_admin_routes ?? array();
}

/**
 * Get all registered menu items for the options-connectors-wp-admin page.
 *
 * @return array Array of menu item objects.
 */
function wp_get_options_connectors_wp_admin_menu_items() {
	global $wp_options_connectors_wp_admin_menu_items;
	return $wp_options_connectors_wp_admin_menu_items ?? array();
}

/**
 * Preload REST API data for the options-connectors-wp-admin page.
 * Automatically called during page rendering.
 */
function wp_options_connectors_wp_admin_preload_data() {
	// Define paths to preload - same for all pages
	// This must exactly match the _fields list in packages/core-data/src/entities.js,
	// same fields in the same order, or the preload is never consumed.
	$preload_paths = array(
		'/?_fields=description,gmt_offset,home,image_max_bit_depth,image_sizes,image_size_threshold,image_strip_meta,name,site_icon,site_icon_url,site_logo,timezone_string,url,page_for_posts,page_on_front,show_on_front',
		array( '/wp/v2/settings', 'OPTIONS' ),
	);

	// Use rest_preload_api_request to gather the preloaded data
	$preload_data = array_reduce(
		$preload_paths,
		'rest_preload_api_request',
		array()
	);

	// Register the preloading middleware with wp-api-fetch
	wp_add_inline_script(
		'wp-api-fetch',
		sprintf(
			'wp.apiFetch.use( wp.apiFetch.createPreloadingMiddleware( %s ) );',
			wp_json_encode( $preload_data )
		),
		'after'
	);
}

/**
 * Enqueue scripts and styles for the options-connectors-wp-admin page.
 * Hooked to admin_enqueue_scripts.
 *
 * @param string $hook_suffix The current admin page.
 */
function wp_options_connectors_wp_admin_enqueue_scripts( $hook_suffix ) {
	// Check all possible ways this page can be accessed:
	// 1. Menu page via admin.php?page=options-connectors-wp-admin (plugin)
	// 2. Direct file via options-connectors.php (Core) - screen ID will be 'options-connectors'
	$current_screen = get_current_screen();
	$is_our_page = (
		( isset( $_GET['page'] ) && 'options-connectors-wp-admin' === $_GET['page'] ) || // phpcs:ignore WordPress.Security.NonceVerification.Recommended
		( $current_screen && 'options-connectors' === $current_screen->id )
	);

	if ( ! $is_our_page ) {
		return;
	}

	// Load build constants
	$build_constants = require __DIR__ . '/../../constants.php';

	/**
	 * Fires when the options-connectors admin page is initialized so extensions can register routes and menu items.
	 */
	do_action( 'options-connectors-wp-admin_init' );

	// Preload REST API data
	wp_options_connectors_wp_admin_preload_data();

	// Get all registered routes
	$routes = wp_get_options_connectors_wp_admin_routes();

	// Get boot module asset file for dependencies
	$asset_file = ABSPATH . WPINC . '/js/dist/script-modules/boot/index.min.asset.php';
	if ( file_exists( $asset_file ) ) {
		$asset = require $asset_file;

		// This script serves two purposes:
		// 1. It ensures all the globals that are made available to the modules are loaded.
		// 2. It initializes the boot module as an inline script.
		wp_register_script( 'options-connectors-wp-admin-prerequisites', '', $asset['dependencies'], $asset['version'], true );

		$init_modules = [];

		/*
		 * Add inline script to initialize the app using initSinglePage (no menuItems).
		 * The dynamic import is deferred until DOMContentLoaded so that all classic
		 * script dependencies of @wordpress/boot (wp-private-apis, wp-components,
		 * wp-theme, etc.) have finished parsing and executing before the boot module
		 * evaluates. Otherwise, a modulepreloaded @wordpress/boot can win the race
		 * against the classic-script-printing pass on fast CDN-fronted hosts in
		 * Chrome, evaluating before wp.theme.privateApis is defined and throwing
		 * "Cannot unlock an undefined object". See <https://core.trac.wordpress.org/ticket/65103>.
		 */
		$init_js_function = <<<'JS'
		( mountId, routes, initModules ) => {
			const run = async () => {
				const mod = await import( "@wordpress/boot" );
				mod.initSinglePage( { mountId, routes, initModules } );
			};
			if ( document.readyState === "loading" ) {
				document.addEventListener( "DOMContentLoaded", run );
			} else {
				run();
			}
		}
		JS;
		wp_add_inline_script(
			'options-connectors-wp-admin-prerequisites',
			sprintf(
				'( %s )( %s, %s, %s );',
				$init_js_function,
				wp_json_encode( 'options-connectors-wp-admin-app', JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ),
				wp_json_encode( $routes, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ),
				wp_json_encode( $init_modules, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES )
			)
		);

		// Register prerequisites style by filtering script dependencies to find registered styles
		$style_dependencies = array_filter(
			$asset['dependencies'],
			function ( $handle ) {
				return wp_style_is( $handle, 'registered' );
			}
		);
		wp_register_style( 'options-connectors-wp-admin-prerequisites', false, $style_dependencies, $asset['version'] );

		// Build dependencies for options-connectors-wp-admin module
		$boot_dependencies = array(
			array(
				'import' => 'static',
				'id'     => '@wordpress/boot',
			),
		);

		// Add init modules as static dependencies
			// No init modules configured

		// Add all registered routes as dependencies
		foreach ( $routes as $route ) {
			if ( isset( $route['route_module'] ) ) {
				$boot_dependencies[] = array(
					'import' => 'static',
					'id'     => $route['route_module'],
				);
			}
			if ( isset( $route['content_module'] ) ) {
				$boot_dependencies[] = array(
					'import' => 'dynamic',
					'id'     => $route['content_module'],
				);
			}
		}

		/**
		 * Filters the boot script-module dependencies for the
		 * options-connectors-wp-admin page.
		 *
		 * Surfaces extending this page can append entries to the boot
		 * dependency list. Each entry is an array with 'import' (string
		 * 'static' or 'dynamic') and 'id' (script-module handle) keys.
		 *
		 * @param array $boot_dependencies Boot dependencies for the page.
		 */
		$boot_dependencies = apply_filters(
			'options-connectors-wp-admin_boot_dependencies',
			$boot_dependencies
		);

		// Dummy script module to ensure dependencies are loaded
		wp_register_script_module(
			'options-connectors-wp-admin',
			$build_constants['build_url'] . 'pages/options-connectors/loader.js',
			$boot_dependencies
		);

		// Enqueue the boot scripts and styles
		wp_enqueue_script( 'options-connectors-wp-admin-prerequisites' );
		wp_enqueue_script_module( 'options-connectors-wp-admin' );
		wp_enqueue_style( 'options-connectors-wp-admin-prerequisites' );
	}
}

/**
 * Render the options-connectors-wp-admin page.
 * Call this function from add_menu_page or add_submenu_page.
 * This renders within the normal WordPress admin interface.
 */
function wp_options_connectors_wp_admin_render_page() {
	?>
	<style>
		/* Critical styles to prevent layout shifts - inlined for immediate application */

		#wpwrap {
			overflow-y: auto;
		}
		body.js {
			background: #fff;
		}

		/* Reset wp-admin padding */
		body.js #wpcontent {
			padding-inline-start: 0;
		}
		body.js #wpbody-content {
			padding-bottom: 0;
		}

		/* Hide legacy admin elements */
		body.js #wpbody-content > div:not(.boot-layout-container):not(#screen-meta) {
			display: none;
		}
		body.js #wpfooter {
			display: none;
		}

		/* Accessibility regions */
		.a11y-speak-region {
			inset-inline-start: -1px;
			top: -1px;
		}

		/* Admin menu indicators */
		ul#adminmenu a.wp-has-current-submenu::after,
		ul#adminmenu > li.current > a.current::after {
			border-inline-end-color: #fff;
		}

		/* Media frame fix */
		.media-frame select.attachment-filters:last-of-type {
			width: auto;
			max-width: 100%;
		}

		/* Responsive overflow fix for #wpwrap */
		@media (min-width: 782px) {
			#wpwrap {
				overflow-y: initial;
			}
		}
	</style>
	<div id="options-connectors-wp-admin-app" class="boot-layout-container"></div>
	<?php
}

// Hook the enqueue function to admin_enqueue_scripts
add_action( 'admin_enqueue_scripts', 'wp_options_connectors_wp_admin_enqueue_scripts' );

얼굴 건선 입 주변 안면 피부가 건조할때 피부병 관리
주요 메뉴 바로가기 (상단) 본문 컨텐츠 바로가기 주요 메뉴 바로가기 (하단)

얼굴 건선 입 주변 안면 피부가 건조할때 피부병 관리

구글 검색 선호 출처로 추가

Google 검색에서 뷰어스 기사를 더 자주 볼 수 있습니다.


얼굴 건선 입 주변 안면 피부가 건조할때 피부병 관리

얼굴 피부에 생기는 건선은 눈에 쉽게 띄어, 미용적인 고민뿐 아니라 일상 속 불편함과 심리적 부담을 줄 수 있답니다. 하지만 올바른 이해와 관리로 증상을 누그러뜨리고, 자신감을 회복할 수도 있어요. 이번 글에서 원인·증상·치료·예방법 등을 자세히 살펴보겠습니다.

갑자기 이마나 볼, 눈썹 주변에 비늘처럼 하얗게 일어나는 피부병 생기고, 가끔 심하게 갈라지면서 아프거나 따끔거리지 않으세요? 아니면 입 주변 피부가 건조하면서 모서리가 쩍쩍 갈라져 식사할 때도 불편하진 않나요? 이처럼 얼굴에 건선이 나타나면 거울을 볼 때마다 신경 쓰이고, 사람들 시선도 피하고 싶어질 수 있어요. 하지만 얼굴 건선, 생각보다 다양한 관리법이 있고, 증상을 상당 부분 완화할 수도 있답니다.

얼굴 건선(안면 건선)이란?

얼굴 건선은 이마, 눈가, 뺨, 코 주위, 턱선 등 얼굴 전반에 걸쳐 두껍고 건조하며 비늘 모양이 나타나는 만성 피부질환입니다. 건선(Psoriasis) 자체가 몸 전체에 발생할 수 있으나, 얼굴에 생기는 경우를 안면 건선이라고 부르지요. 다음과 같은 특징을 보여요.

  • 보통 붉거나 분홍, 어두운 경우 보라빛의 피부 반점에 각질∙비늘이 겹겹이 쌓여 두껍게

  • 가렵거나 심하면 갈라지면서 통증, 출혈 유발

  • 만성 질환으로 증상이 좋아졌다 나빠졌다를 반복(재발과 완화 주기)

얼굴은 피부가 얇고 민감하며 시각적으로 노출이 많아, 건선이 생기면 심리적 부담을 크게 느끼는 분도 적지 않답니다.

얼굴 건선의 원인

건선은 면역계 이상 활성화로 정상보다 훨씬 빠른 피부세포 생성이 일어나는 질환이에요. 얼굴 건선 역시 동일한 면역 반응 원인으로 생기지만, 특정 부위(이마, 볼, 턱선, 코 주변 등)에 집중되면서 다른 문제도 동반될 수 있답니다. 대표적 요인은 아래와 같아요.

면역체계의 과활성

  • 면역세포가 건강한 피부세포를 공격하듯 반응해, 피부가 과잉 증식

유전적 소인

  • 가족 중 건선 보유 시, 안면 포함 전신 건선 발병 위험이 올라요

환경적∙생활습관 요인

  • 스트레스, 날씨 변화(특히 건조한 계절), 음주∙흡연, 특정 약물 등이 증상 유발

트리거(Trigger)

  • 물리적 자극(마스크, 수건의 과도한 마찰 등), 화학적 자극(강한 화장품) 등 자극 요소가 안면부 건선 악화

얼굴 건선의 증상

얼굴 건선은 피부 표면이 하얗게 각질화되는 플라크 형태로 나타나며, 주변 피부가 붉게 변색되거나 갈라질 수 있어요. 구체적으로 보면

비늘 모양의 두꺼운 반점

  • 이마, 헤어라인, 눈썹 주변, 콧방울, 입 주변, 턱 라인 등

가려움∙따끔거림

  • 건조감과 가려움이 심하고, 손으로 긁으면 상처, 출혈 가능

갈라짐(균열)과 통증

  • 입∙코 주위는 표정∙식사로 움직임이 많아 쉽게 갈라지며, 통증이나 피가 날 수도

각질 탈락

  • 얇은 비늘이 떨어지며, 머리카락 안쪽(이마, 헤어라인)에 붙으면 비듬처럼 보임

피부색 변화

  • 어두운 피부톤에선 보라색∙회색빛, 밑동이 흰색 비늘

얼굴 건선은 심미적·정신적 스트레스를 크게 주기도 해요. 타인의 시선에 예민해지거나, 화장·세안을 할 때도 불편함이 따르죠.

건선 검사 및 진단

대부분 임상 경험이 풍부한 피부과 전문의가 육안과 문진으로 진단해요. 그러나 다른 피부질환(주사, 지루성피부염, 습진 등)과 구분이 필요하면 추가 검사를 할 수 있습니다.

  1. 피부과 진찰: 플라크 형태, 분포 양상 확인

  2. 피부 생검(조직 검사): 애매하거나 다른 질환 의심 시, 작은 조직을 떼어 현미경 확인

  3. 건선 병력(전신 부위): 몸∙두피 등 다른 부위 건선 흔적 여부

얼굴 건선의 치료 방법

얼굴은 다른 신체부위 대비 피부가 얇고 민감하기 때문에, 과도한 스테로이드나 자극적인 약물을 사용하기 까다롭습니다. 따라서 전문의와 상담해 개인 피부 상태에 맞춘 치료 계획을 세우는 게 중요해요.

a) 국소 치료

저강도 스테로이드 연고

  • 염증·두꺼운 각질 완화. 장기 사용 시 피부 얇아지는 부작용 유의

칼시포트리엔(비타민D 유도체) 크림

  • 세포 증식 억제, 각질 줄이고 염증 완화

면역조절제(타크로리무스, 피메크로리무스 등)

  • 얼굴처럼 얇은 부위에 사용할 수 있는 스테로이드 대체 약물

b) 광선 요법(Phototherapy)

  • UVB(자외선B) 국소 조사

  • 면역조절+피부세포 증식억제 효과

  • 병원에서 정해진 횟수, 일정 용량으로 안전하게 진행

c) 전신 치료

메토트렉세이트, 사이클로스포린

  • 중증 건선일 때 먹거나 주사. 면역 억제 작용

생물학적 제제(생물학적주사)

  • 면역분자(TNFα, IL-17, IL-23 등) 억제, 증상 완화

경구 약물(오테즐라 등)

  • 면역 반응 특정 경로 차단, 경증부터 중등도 건선 도움

d) 보습∙스킨케어

  • 자극 없는 클렌저, 건성용 크림(세라마이드∙판테놀 등)

  • 과도한 각질 제거(스크럽)나 알코올 함유 제품은 악화 초래

예방법과 관리

적절한 보습

  • 세안 직후 보습제 사용, 얼굴 건조 막기

자극 피하기

  • 각질제거 심하게 하지 않기, 뜨거운 물 세수 지양

  • 강한 화장품(알코올∙향료) 최소화

자외선 차단

  • 얼굴 피부는 얇아 UV 자극 민감. 외출 시 자외선차단제(민감성용) 권장

스트레스 관리

  • 스트레스는 건선 악화 촉발 요인

건강한 식습관, 생활습관

  • 규칙적 수면, 흡연·과음 지양, 균형 잡힌 영양

트리거(감염, 특정약물) 피하기

  • 감기 등 감염 발생 시 신속 대처, 의사의 조언대로 약물 교체

얼굴 건선에 대한 전망/예후

건선은 만성 질환이라 완전한 ‘치료’가 어려울 수 있어요. 하지만 적절한 약물 및 관리로 장기간 증상을 안정(관해) 상태로 유지할 수 있습니다. 얼굴 건선은 특히 미용적 스트레스가 커, 우울감∙자신감 저하를 동반하기도 하죠. 때문에 심리적 지원이나 환우 모임, 전문 상담도 고려해볼 만해요.

  • 증상 완화되면 색소 침착이나 가벼운 홍반이 남을 수 있으나, 수개월~1년 후 옅어지기도 함

  • 악화와 완화를 반복하므로, 지속적인 주치의와 소통, 합리적 치료 계획 유지가 중요해요

건선과 생활하는 간단한 팁

메이크업/화장 주의

  • 자극성 성분(알코올, 레티놀 과다 등) 피하고, 전용 클렌저로 부드럽게 세안

온도∙습도 관리

  • 에어컨, 난방으로 건조해지면 가습기·보습제 활용

스트레스 해소

  • 가벼운 운동, 명상, 취미로 정신적 안정을 유도

정기 검진

  • 증상·피부 변화 있는지, 약물 효과 검토 및 조정

얼굴 건선 입 주변 안면 피부가 건조할때 피부병 관리 마무리

얼굴 건선은 몸 어느 부위보다 눈에 띄고 민감한 부위라 더욱 고민과 불편을 안겨줄 수 있어요. 하지만 건선 자체가 만성 질환인 만큼, 꾸준한 관리와 치료가 핵심입니다.

  • 가벼운 보습·국소 약부터 광선 요법·면역억제제·생물학 제제 등, 현재 의학 기술로 많은 접근 방법이 존재

  • 본인 피부 타입과 증상 정도에 맞춘 치료 전략을 세우고, 불필요한 스트레스와 자극을 줄이는 생활습관을 갖추면, 훨씬 편안하게 생활할 수 있습니다.

얼굴 건선, 항상 스스로를 위축시키는 존재가 아니라, 관리 가능한 질환이라는 점 잊지 말아요. 혹시 고민이 크다면 피부과 전문의와 상담하고, 자신에게 맞는 방식으로 통증도, 심리적 부담도 덜어가시길 바랍니다.

author-img
건강한 삶을 리뷰하는 Heeee
content@viewus.co.kr

댓글0

300

댓글0

[AI 추천] 랭킹 뉴스

  • ‘낙상 사고’ 허영만, 중환자실 이송…한 달째
  • 람보르기니 무르시엘라고 LP 670-4 SV 수동 경매 단 5대 경매 등장
  • 유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
  • "동창회 나가지 마세요.." 55살 넘어 동창회 가면 안 되는 이유 3가지
  • "뒤통수 맞지 않으려면.." 60대 이후로 가져야할 마음가짐 3가지
  • "현관문 위쪽 나사를 돌려 보세요" 20년차 도어 기사의 '진짜 꿀팁'

당신을 위한 인기글

  • 유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
    유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
  • 아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
    아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
  • 최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
    최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
  • 14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
    14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
  • 전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
    전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
  • 노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
    노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
  • ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
    ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
  • 이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
    이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
  • 구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
    구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
  • 직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유
    직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유

당신을 위한 인기글

  • 유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
    유럽의 유명 축구 구단들을 쇼핑하듯 사고있는 한국인 억만장자 여성
  • 아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
    아나운서 이혜성 “7년간 부모와도 대화 단절 상태”
  • 최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
    최근 들어서 공유와 한효주가 나이들어 보이는 진짜 이유
  • 14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
    14살에 키 172cm, 48kg으로 연예인 엄마 따라잡은 딸의 놀라운 근황
  • 전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
    전국민이 제발 결혼하라 응원했떤…세기의 커플의 최후
  • 노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
    노소영, 최태원과 이혼확정 후 집 떠나며 올린 사진 한장…모두 오열
  • ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
    ‘KTX 논란’ 박위, 더 큰 일 발생…변호사 “법적으로 처벌될 수 있는 상황”
  • 이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
    이병철 회장이 경고한 ‘약속 미루는 사람’ 4가지 특징
  • 구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
    구혜선, 이혼 6년만에 엄마된 근황 깜짝 발표…’축하 물결’
  • 직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유
    직함도 월급도 아니었다, 반값 급여에도 다시 출근하는 이유

공유하기