¸ðµç¹öÀü DSM ¿¡¼ CPU¸ðµ¨ ¹× ÄÚ¾î Á¤º¸ º¯°æÇϱâ(ÃÖÁ¾¼öÁ¤)
https://xpenology.com/forum/topic/13030-dsm-5x6x-cpu-name-cores-infom¡¦ (831)http://¹ø¿ª±â·Î ¹ß¹ø¿ªÇÑ xpenology Æ÷·³ ¸µÅ© Ãß°¡ÇÕ´Ï´Ù.(¼Ò½ºÄÚµå ÇÔ¡¦ (620)
기존 자료는 삭제하였으며 새버전 부터
자료는 자료실로 등록하도록 하겠습니다. 아래 링크 참고바랍니다.
DSM CPU 정보 변경 도구 ver 5.0 (Core 표기방식 변경)
http://www.2cpu.co.kr/PDS/12508
DSM CPU 정보 변경 도구 ver 4.0 (모바일지원)
DSM CPU 정보 변경 도구 ver 3.0
http://www.2cpu.co.kr/PDS/12443
기존글
-------------------------------------------------------------------
Xpenology의 Polanskiman 이 정보를 줘서 내용을 좀더 보강해봅니다.
보안패치같은 업데이트 진행시 패치내용안에 dsm-AdminCenter-bromolow-bin_6.2-23739-s2_all.deb 같이
admin_center 패치내역이 존재할 경우는 수정된 파일에 덮어씌워져서
정보가 또 예전으로 돌아갑니다.
이때 다시 이 툴을 재수행하면 되는데 이때는 다시실행이 아닌 처음실행으로 해야하는점
주의하시기 바랍니다. 이미 패치를 하게되면 예전 백업된 정보는 원본이 아니기 때문입니다.
추후에 이부분을 고려해서 소스를 수정해야할것 같습니다.
지난내용
------------------------------------------------------------------------
다른 CPU정보를 확인 해주셔서 수정을 할 수가 있었습니다.(나이쑤guy 님 감사합니다!!)
일단 대부분의 Intel과 일부 AMD 를 잘 구분할수있게는 해놨는데
CPU종류가 워낙많아 다 반영이 안될 수도있습니다.
전체적인 프로그램 수정을 진행하였고 오류를 다시 최소화 하기위한 작업도 하였습니다.
색도 좀 넣고..
번역기 막돌려서 영문 버전도 공유합니다 ^^;
현재 시점은 최종버전은로 1.0 으로 하고
이후 시점부터는 파일 업데이트는 자료실 쪽으로 하도록하겠습니다.
기존내용
---------------------------------------------------------------------------------------------
6.2 에서만 테스트 했더니 이전버전에서 경우의 수가 다른 케이스가 발견이 되네요.. (새하얀구름님 감사합니다!!)
6.2 버전 부터 gz 파일이 추가 되었고 이전 버전들은 js 파일만 있었습니다.
내친김에 6.2/6.1/6.0/5.2/5.1/5.0/4.x 까지 다 확인하여 4.x 만제외하고..(너무 달라서.. ㅠㅠ)
나머지에서는 정상적으로 다 지원하도록 수정했습니다.(버전에 따라 변수가 다르다니..ㅠㅠ)
물론 5.x 에서는 테스트는 못했지만.. 잘 될것이라 기대를 합니다. .(다 테스트를 해볼 수가 없어서..)
수행시 clear 후 수행하도록 조금 수정도 했습니다.
기존 파일 삭제 후 재업로드했으니 새로 받아서 사용하시면 되겠습니다.
기존내용
=============================================================================
사실 엄청 쓸데없는 짓이긴한데.. 그동안 너무나 하고 싶었던거고..해서..
손을 좀 대봤습니다.. 그리고 좀더 사용하기 쉽게 만들어보려고 했는데..
저는 편한데 다른분에게는 편할지는 모르겠네요.. ^^;
# 테스트/제작 환경
===============================================================
서버구성 : HP Microserver Gen8 + VMWare ESXi 6.0 + RDM
DSM : 6.2-23739 Update 2 (DS3615xs/DS3617xs)
6.1-15284 Update 2 (DS3615xs)
===============================================================
어디까지나 저의 환경을 기준으로 진행된 부분이며 사용환경에 따라 결과가 다를 수도있습니다.
사용에 따른 여러가지 문제사항등의 대한 책임은 본인에게 있음을 우선 말씀드립니다.
# 제작 목적
몬가 시스템정보에서 보이는 CPU가 내것이 아니라서 맘에 안들기 때문에 내껄로 바꾸고 싶은 마음
저는 E3-1230 V2 CPU를 사용하고 코어도 조금씩 다르에 할당하였는데 DSM에서는 자기 원래 제품의 CPU정보를
보여줍니다.
# 무식한 분석과정 무식한 제작 시작
길어서 생략합니다.. 여기저기 뒤져서 진행했네요.. 결국 무식한 방법으로 만들기로했습니다.(파일수정..)
# 간단한 명령어
실제 CPU모델 및 코어에 대한 정보는 제대로 보이기 때문에
내장 명령인 dmidecode 와 /proc/cpuinfo 를 통해 정규식으로 다듬었습니다.
클럭과 메모리정보는 정확하게 가져오고있어서 모델명과 코어수만 손댔습니다.
# Binary 로 제작
사실 쉘 소스 뭐 별거 없는데 사용에 따른 변형이나 문제점을 최소화 하고자 shc 로 binary 화 하였습니다.
낮은 버전에서 제작한거라 별탈없이 다 작동할 것으로 예상됩니다.(혹, 안되면 말씀주셔야합니다...)
# 파일다운로드 및 DSM 업로드
유첨된 ch_cpuinfo.tar를 다운받아 DSM Filestation 을 이용하거나 sftp 등을 이용해 업로드합니다.
tar xvf ch_cpuinfo.tar 로 압축을 풀거나 Filestation의 압축풀기 기능을 이용해 적당한데 풀어주시면 됩니다.
# SSH접속
putty 나 mobaxterm 등 접속 툴을 통해 ssh 접근을 합니다.
DSM >제어판> 응용프로그램 > 터미널 및 SNMP 에서 ssh 접속이 허용 되어있어야하며
주의할점은 접속시 기본 관리자계정(예> admin) 으로 접속해서 root로 스위치 해야합니다.(root권한 반드시 필요)
root 스위치 시에는 # sudo su - 로 관리자계정의 패스워드통해 스위 치가 가능합니다.
# 실행
실행 방법은 간단히 스크린샷으로 설명드리겠습니다.
저는 /root 에 놓고했는데 위치는 상관없습니다. 대충 현재위치와 싱행할 파일의 권한을 확인합니다.
압축푼 후에 권한이 없는경우에는 # chmod 711 ch_cpuinfo 명령으로 권한을 주시면 되겠습니다.
실행은 위와 같이 합니다. 실행하자마자 처음실행인지, 다시실행할건지, 원상복구할건지 묻습니다.
대부분 처음 진행하는 것이니 1번을 선택하시면 됩니다.
자동으로 실행할지 대화형모드로 할지 선택합니다 y 또는 n 으로.. 정말 궁금한분들을 위해 만든것이긴한데
그냥 자동 하시면 편합니다 ^^;
정말 순식간에 끝납니다. /usr/syno/synoman/webman/modules/AdminCenter 경로 아래에 있는 admin_center.js 관련파일(제어판)
을 /root/Xpenology_backup 폴더아래 현재시간 폴더이름으로 원본저장하고 수집된 해당 장치의 CPU모델명과 코어정보를 수집해서
admin_center.js 파일을 수정 후 제자리에 가져다 놓는 과정일 뿐이기 때문에.. 정말 빨리 끝납니다.
이렇게 실행하고 나서 DSM을 F5로 새로고침하거나 잘안될경우는 로그아웃했다가 다시들어오면
이렇게 변경됩니다. 이제서야 내가 원하는 정보로 시스템 정보가 나와지네요..
맘에 안든다 원복해야겠다 하시는분들은
이렇게 다시 실행해서 3번을 선택해 진행해주시면
아까 백업한 원본을 통해 다시 복구를 하게됩니다. 확인하는 방법은 동일합니다.
그리고 이건 거의 쓸일이 없을듯하긴한데.. 여러가지 경우의 수를 따지다 만든거라..
몬가 재설치를 하고 싶다하는 생각이 드시면...
2번을 선택해서 진행하시면 됩니다. 스샷용으로 대화형 진행을 한번 찍어봤습니다.
오류가 날수있는 여지가 있는 부분이라 여러가지 방법으로 테스트를 했는데.. 자세한 얘기는 아래에서 하겠습니다.
# 완료
이렇게 DMS의 CPU정보를 실제정보에 맞추는 방법을 소개해 드렸습니다.
실행하는게 꺼려지시거나, 정보가 다르게 뜨는게 전~~~혀 신경 안쓰이시는 분은 안하셔도 됩니다.
또한, 절대 악성코드를 심거나 하지 않았으니 안심하시기 바랍니다.
그럼에도 불구하고 몬가 조금.. 아주 조금이라도 발견되신다면 말씀부탁드립니다.
# 발생가능한 문제점
대화형진행시 y/n/q 외에 다른 입력시는 모두 종료시키게 했습니다.. 제작스킬이 딸려서...ㅠㅠ
대화형진행시 Ctrl+C 같은걸로 캔슬하거나 해서 나올경우 다음실행에 문제가 발생할 수도있습니다.
- 처음 실행을 제외하고 이런 경우 발생시 반드시 3번 원복 진행후 하시기 바랍니다.
- 그냥 가동 진행하시면 아무문제 없습니다..
한글이 들어가있기때문에 깨져서 보이는 쉘이 있을 수도 있는점 참고바랍니다.
# 수동적용 및 복구
위 방법 다 무시하고 그냥 수동으로 하고싶으신 분은..
제어판 원본 소스 경로 : /usr/syno/synoman/webman/modules/AdminCenter
제어판 원본소스 : admin_center.js / admin_center.js.gz
테스트 해본결과 gz 파일을 통해 재부팅시 원복등이 이뤄집니다.
따라서 둘다 수정해야 바뀌지 않습니다.
수정방법 : vi로 열어서 수정가능합니다. admin_center.js 파일이 한줄로 이루어져서
방향키 이동은 좀 빡세고.. / 를 이용해 검색을 통해 이동합니다.
/f.cpu 로 검색하면 손을 봐야 할 부분이 나옵니다.
if(Ext.isDefined(f.cpu_vendor)&&Ext.isDefined(f.cpu_family)&&Ext.isDefined(f.cpu_series)){ o.push([_T("status","cpu_model_name"),String.format("{0} {1} {2}",f.cpu_vendor,f.cpu_family,f.cpu_series)])} |
원래 한줄인데좀 보기 편하게..
위에 세군에 Bold 체 있는 부분이 바로 Intel / Xeon / E3-1230 V2 가 나누어져 들어가는 부분입니다.
저는 저 세항목을 변수처리 하는 과정을 넣었습니다. 최대한 원본은 손 안대로 하기위해..
if(Ext.isDefined(f.cpu_cores)){o.push([_T("status","cpu_cores"),f.cpu_cores])} |
코어 부분 역시 마찬가지 입니다.
# 비상상황
이미 제가 올린 파일로 실행한 후에 수동으로 해야할 경우가 생길 수있습니다.
원본이 날라가거나 원복아무리 해도 수정된 상태가 유지된다던지...
파일을 열어서
f.model]); 항목을 검색하신 후 첫번째 항목과 사이에 눈에 띄게 추가 되어있는 변수 처리 항목을 지워주시면 됩니다.
f.cpu_vendor="Intel";f.cpu_family="Xeon";f.cpu_series="E3-1230 V2";f.cpu_cores="8"; |
아마 이런식으로 들어가 있을겁니다.
쓰고나니 엄청기네요.. 이거 외에도 발생할수있는 상황들은.. 문의 주시면 제가 힘닿는데까지 답 드리겠습니다~^^;
개인적으로 사용하면서 한가지 해결하고 싶었던 문제가 해결되서 기분이 좋네요~
혼자만 쓰긴 아까워서 자랑도 할겸 공유합니다. 유용하게 사용하시기 바랍니다~
# 추가 재업하면서 추가내용
버전별로 참고할 소스코드입니다. 소스는 *.pat 파일을 풀고 풀어보면 나옵니다. 참고하세요~
6.2 기준위치 f.model]); 뒤 적용대상항목 ifxt.isDefined(f.cpu_vendor)&&Ext.isDefined(f.cpu_family)&&Ext.isDefined(f.cpu_series)){ o.push([_T("status","cpu_model_name"),String.format("{0} {1} {2}",f.cpu_vendor,f.cpu_family,f.cpu_series)])} if(Ext.isDefined(f.cpu_cores)){o.push([_T("status","cpu_cores"),f.cpu_cores])} 6.1 기준위치 f.model]); 뒤 적용대상항목 if(Ext.isDefined(f.cpu_vendor)&&Ext.isDefined(f.cpu_family)&&Ext.isDefined(f.cpu_series)){ o.push([_T("status","cpu_model_name"),String.format("{0} {1} {2}",f.cpu_vendor,f.cpu_family,f.cpu_series)])} if(Ext.isDefined(f.cpu_cores)){o.push([_T("status","cpu_cores"),f.cpu_cores])} 6.0 기준위치 f.model]); 뒤 적용대상항목 if(Ext.isDefined(f.cpu_vendor)&&Ext.isDefined(f.cpu_family)&&Ext.isDefined(f.cpu_series)){ o.push([_T("status","cpu_model_name"),String.format("{0} {1} {2}",f.cpu_vendor,f.cpu_family,f.cpu_series)])} if(Ext.isDefined(f.cpu_cores)){o.push([_T("status","cpu_cores"),f.cpu_cores])} 5.2 기준위치 b.model]); 뒤 적용대상항목 if(Ext.isDefined(b.cpu_vendor)&&Ext.isDefined(b.cpu_family)&&Ext.isDefined(b.cpu_series)){ p.push([_T("status","cpu_model_name"),String.format("{0} {1} {2}",b.cpu_vendor,b.cpu_family,b.cpu_series)])} if(Ext.isDefined(b.cpu_cores)){p.push([_T("status","cpu_cores"),b.cpu_cores])} 5.1 기준위치 b.model]); 뒤 적용대상항목 if(Ext.isDefined(b.cpu_vendor)&&Ext.isDefined(b.cpu_family)&&Ext.isDefined(b.cpu_series)){ p.push([_T("status","cpu_model_name"),String.format("{0} {1} {2}",b.cpu_vendor,b.cpu_family,b.cpu_series)])} if(Ext.isDefined(b.cpu_cores)){p.push([_T("status","cpu_cores"),""+b.cpu_cores])} 5.0 기준위치 f.model]); 뒤 적용대상항목 if(Ext.isDefined(b.cpu_vendor)&&Ext.isDefined(b.cpu_family)){ t.push([_T("status","cpu_model_name"),String.format("{0} {1}",b.cpu_vendor,b.cpu_family)])} if(Ext.isDefined(b.cpu_cores)){t.push([_T("status","cpu_cores"),""+b.cpu_cores])} |
´ë´ÜÇϼ¼¿ä ¤¾¤¾
ÁÁÀº °¡¸£Ä§ °¨»çµå¸³´Ï´Ù^^ Ãßõ!
1) óÀ½½ÇÇà 2) ´Ù½Ã½ÇÇà 3) ¿ø»óº¹±¸ - ¹øÈ£ ¼±ÅÃÇϼ¼¿ä : 1
ÀÚµ¿À¸·Î ½ÇÇàÇÕ´Ï´Ù. n ¼±Åýà ´ëÈÇü¸ðµå·Î ÁøÇàÇÕ´Ï´Ù. (Ãë¼ÒÇÏ·Á¸é q) [y/n] : y
mv: cannot stat ¡®/usr/syno/synoman/webman/modules/AdminCenter/admin_center.js.gz¡¯: No such file or directory
gzip: /root/Xpenology_backup/admin_center.js.gz: No such file or directory
sed: can't read /root/Xpenology_backup/admin_center.js: No such file or directory
cp: cannot stat ¡®/root/Xpenology_backup/admin_center.js¡¯: No such file or directory
gzip: /root/Xpenology_backup/admin_center.js: No such file or directory
mv: cannot stat ¡®/root/Xpenology_backup/admin_center.js.gz¡¯: No such file or directory
ÀÛ¾÷ÀÌ ¿Ï·á µÇ¾ú½À´Ï´Ù!! ¹Ý¿µ¿¡´Â ¾à 1~2ºÐ ¼Ò¿äµÇ¸ç, F5·Î DSM ÆäÀÌÁö »õ·Î°íħ ÈÄ Á¤º¸¸¦ È®Àιٶø´Ï´Ù.
root@CLSW_Synology:~#
DSM 6.1.7-15284 Update 2 ¹öÀüÀº ¿À·ù ³ª³×¿ä ¤Ð¤Ð
¼öµ¿ º¯°æÀº Á¤»ó ÀÛµ¿ÇÕ´Ï´Ù.
ÆÄÀϱ¸Á¶°¡ ´Ù¸¥°¡º¾´Ï´Ù.. admin_center.js.gz ÆÄÀÏÀÚü°¡ ¾ø³ªº¸³×¿ä...
ÇÏÀ§¹öÀüµµ Çѹø ºÁ¾ßÇÒ°Í°°½À´Ï´Ù..
"Intel Core(TM) CPU" ±îÁö¸¸ ³ª¿É´Ï´Ù.
DSM 6.1 1037u´Â Àß Ç¥ÇöÀÌ µË´Ï´Ù.
Ȥ½Ã Àú¿¡°Ô cat /etc/proc ÀÇ °á°ú¿Í, dmidecode °á°ú¸¦ ÂÊÁö·Î ÁÖ½Ã¸é ¹Ý¿µÇϵµ·ÏÇÏ°Ú½À´Ï´Ù.
º¸³»°í ³ª¼...»ý°¢Çغ¸´Ï...´Ù½Ã¿øº¹À» ÇÏ°í cat~~ °ªÀ» È®ÀÎÇ߳׿ä...»ó°ü ÀÖ´ÂÁö¿ä??
DS3617xs
HP Microserver Gen8 - Xeon E3-1265L V2
¸ð¹ÙÀϾÛ(DS finder)¿¡¼´Â Xeon D-1527 ·Î³ª¿É´Ï´Ù.
ÇöÀç ½ÃÁ¡ÀÌÈķδ °³¼± »çÇ×ÀÌ »ý±â¸é ÀÚ·á½ÇÂÊÀ¸·Î ¾÷µ¥ÀÌÆ® ÇÏ°Ú½À´Ï´Ù~
Microserver N36L, N40L N54L »ç¿ëÇϽôºеé Àß µÇ½Ã´ÂÁö Á¤º¸ÁÖ½Ã¸é °¨»çÇÏ°Ú½À´Ï´Ù~
cpu Á¤º¸°¡ Á¤»óÀ¸·Î ³ª¿À³×¿ä
ÀúÀÇ Á¶°ÇÀº win10 + vmware ¼³Ä¡ Á¶°Ç ÀÔ´Ï´Ù
....
ÀúÀÇ ¼º°ø±â ÀÔ´Ï´Ù
http://11q.kr/g5s//bbs/board.php?bo_table=s11&wr_id=5653
Âü°í·Î.. ¹Ý¿µÈÄ ÀçºÎÆà ¾ÈÇϼŵµ µË´Ï´Ù.. 6.2 ÀÇ °æ¿ì gz ÆÄÀÏÀ» ¾÷µ¥ÀÌÆ® Çϴ°Ŷó Á» ±â´Ù¸®´Ù°¡ F5Çϰųª
·Î±×¾Æ¿ôÇß´Ù°¡ ·Î±×ÀÎÇÏ¸é ¹Ý¿µµÈ°Å È®Àΰ¡´ÉÇϽǰ̴ϴÙ.
Àߵdz׿ä~~°¨»çÇÕ´Ï´Ù.
¿¹Àü¿¡ Çѹø ¹æ¹ýÀ» ãÀºÀûÀÌ ÀÖ¾ú°Åµç¿ä
Ȥ½Ã ºí·Î±×·Î ÆÛ°¡µµµÉ±î¿ä?
º¸´Â »ç¶÷Àº °ÅÀÇ ¾øÁö¸¸¿ä..
Àú°°Àº°æ¿ì ¸®´ª½º ¿ÏÀü ¸ô¶ó¼ ¾ÐÃàǪ´Â¹æ¹ý±îÁö Çؼ ¿Ã·È½À´Ï´Ù. ¤¾¤¾
¾Æ¹«·± µ¿ÀÛÀ» ¾ÈÇÏ´Â°Í °°½À´Ï´Ù.
ÆÄÀÏ ¿Ã¸° Æú´õ·Î º¯°æÇÏ·Á°í Çصµ ¾ÈµÇ±¸¿ä.. ¤Ð¤Ð..
¾î¶»°Ô ÇØ¾ß ÇÏ´Â °É±î¿ä?
root@i7-6700T:~# ls
root@i7-6700T:~# ls -lrt
total 0
root@i7-6700T:~# dir
total 16
drwx------ 3 root root 4096 Aug 10 22:55 .
drwxr-xr-x 29 root root 4096 Aug 14 07:56 ..
drwx------ 2 root root 4096 Jul 8 01:23 .gnupg
-rw-r--r-- 1 root root 0 Aug 10 22:55 .mariadb_database_has_backedup
-rw-r--r-- 1 root root 1113 Feb 17 2017 .profile
¿ì¼± pwd ¸í·ÉÀ¸·Î ÇöÀç À§Ä¡ÆľÇÀ» ÇØ Áֽðí.
filestationÀ¸·Î ¿Ã¸°ÆÄÀÏÀº /volume1/homes/°èÁ¤¸í/
À§Ä¡·Î Á¢±ÙÇϸé ãÀ¸½Ç ¼ö ÀÖÀ»°Í °°½À´Ï´Ù.
cd /volume1/homes/°èÁ¤¸í À¸·Î Çصµ.. Æú´õ¸¦ ãÀ»¼ö°¡ ¾ø´Ù°í ³ª¿À³×¿ä..
ls ³ª dir·Î Çصµ.. Æú´õ°¡ ¾Æ¿¹ ¾È³ª¿À°í.. ¾Æ·¡ 4°³¸¸ ³ª¿É´Ï´Ù. .¤Ð¤Ð
..
.bash_history
.gnupg
.mariadb_database_has_backedup
.profile
¹º°¡ Æú´õ ÀÚü°¡ ÀüÇô ¾ø´ÂµíÇÑ ´À³¦Àä..
À½.. ÀÎÅÍ³Ý °Ë»öÀ» ÇÏ´Ù°¡.. sudo -s ·Î ÇÏ¸é µÈ´Ù±æ·¡ Çغôõ´Ï.. ´ÙÇàÀÌ ÀÌ°É·Î ‰ç½À´Ï´Ù..
¿Ö ¾È¸Ô´ÂÁö´Â ¸ð¸£Áö¸¸.. ÀÏ´Ü µÈ°Å °°À¸´Ï ÁÁ³×¿ä..
°¨»çÇÕ´Ï´Ù. ^^
DS Finder·Î ÇÏ´Ï Àû¿ëÀÌ ¾ÈµÇ´Â°Å °°¾Æ ¿©Â庾´Ï´Ù.. ^^
Ȥ½Ã ¸ð¹ÙÀÏ ÆäÀÌÁöÀÇ ¾î¶² Ç׸ñÀÎÁö ½º¼¦µîÀ» ÁֽǼö¾ø³ª¿ä?
Á¦°¡°¡Áø ¾ÆÀÌÆеå¶û ¾ÈµåÆù ºê¶ó¿ìÀú·Î´Â ¸ð¹ÙÀÏ ÆäÀÌÁö¿¡¼
CpuÇ׸ñÀº ¾Èº¸¿©¼¿ä..
¾Æ.. ¾²°íº¸´Ï ds finder.. ¾ÛÀΰ¡º¸±º¿ä
Àú´ÂÀ̸§ÀÌ Version À¸·Î ³ª¿À³×¿ä
³ëÆ®ºÏ cpu dsm ³×Ƽºê ¼³Ä¡ // ÀÎÅÚÄÚ¾î2 µà¿À2 T8300
ÀÔ´Ï´Ù...
https://ark.intel.com/content/www/kr/ko/ark/products/33099/intel-core-2-duo-processor-t8300-3m-cache-2-40-ghz-800-mhz-fsb.html
=========== Àû¿ëÈÄ È¸é Á¤º¸ ===========
DS3615xs
Version
2.4 GHz
2 Cores (1 CPU/2 Cores | 2 Threads)
6144 MB
DSM 6.1.7-15284 Update 3
¸·ÇôÀִ°Ű°Àºµ¥¿ä ? Ȥ½Ã µÇ´ÂºÐÀÖÀ¸¸é Á¤º¸Á» ºÎŹµéÀÔ´Ï´Ù
http://2cpu.co.kr/QnA/749128
¿©±â¿¡ Á» ¾÷µ¥ÀÌÆ® ÇØÁֽøé Âü°íÇÏ°Ú½À´Ï´Ù.
ÀÚÁÖ´Â ¾Æ´ÏÁö¸¸ ¾Æ¿¹ ¾Èº¸´Â°Ç ¾Æ´Ï¶ó¼ ^^;;