March 13, 2010

개인 웹서버 설정을 위한 팁 #5 – 접속 문제; 포트

안녕하세요 DKLEE(이동규) 입니다.

 

개인 웹서버를 구축하였다면 테스트해볼 사항이 있습니다. 그것은 바로 외부로부터 자신의 웹서버로 정상적으로 접근이 되는지 입니다. 만약 ISP 업체에서 외부에서 접속할 수 있는 포트(80)를 막아 놓았다면 힘들게 구축한 웹서버가 무용지물이 될 수 있습니다. 이러한 문제를 해결하기 위해서는 막아 놓지 않은 포트를 이용하여 접속을 해야합니다. 예를 들어 자신의 웹서버 IP주소 http://xxx.xxx.xxx.xxx/ 으로 접속이 막혔다면 http://xxx.xxx.xxx.xxx:8080/ 처럼 포트를 명시적으로 적어주어 접속을 하는것입니다. 하지만 이렇게 되면 눈으로 보기도 지저분하고 포트번호까지 외어야 하는 불상사가 생기가 됩니다. 이번 내용에서는 이런 문제를 포워딩을 통해서 해결해 보는 과정을 진행해 보겠습니다. (포트가 열려있는지 혹은 닫혀있는지 확인후, DNSEver 를 통해 해결하는 방법을 설명하겠습니다.)

 

 

  1. 포트 확인하기(http://www.whatsmyip.org/)
    • 사이트 접속
    • 포트 스캔하기
    • 결과보기

       

  2. DNSEver의 활용
    • DNSEver 웹 포워딩
    • 포워딩 설정하기(고정IP 경우)
    • 포워딩 설정하기(유동IP 경우)

 

 

                                                                                                                                                

 

  1. 포트 확인하기(http://www.whatsmyip.org/)
    • 사이트 접속

    • 포트 스캔하기

    • 결과보기

  2. DNSEver의 활용
    • DNSEver 웹 포워딩

    • 포워딩 설정하기(고정IP 경우)

    • 포워딩 설정하기(유동IP 경우)
      • 유동IP 를 사용하시는경우 no-ip등 과 같은 DDNS를 이용하여 설정을 해주면 됩니다. 만약 no-ip의 DDNS를 사용중이라면 2-B 에서의 '연결할 홈페이지 주소'를 no-ip 에서 할당한 도메인주소에 포트를 추가해서 작성해주면 됩니다.(no-ip 사용법: http://dklee.net/74)

March 11, 2010

MSP 4기를 모집합니다.

안녕하세요 DKLEE(이동규) 입니다.

 

 

드디어 MSP(Microsoft Student Partners) 모집을 오는 3월 29일 부터 시작하네요. 아래 선발 안내와 준비해야할 내용들이 나와 있습니다.

 

1. 제4기 Microsoft Student Partners 선발안내

2. MSP 4기 지원방법 및 과제

 

더욱더 자세한 내용이 궁금하신 분은 Microsoft Academic Initiative 에 방문하셔서 MSP 부분을 찾아 보시면 됩니다.

개인 웹서버 설정을 위한 팁 #4 – no-ip

안녕하세요 DKLEE(이동규) 입니다.

 

개인 웹서버가 유동IP 환경이라면 고정IP 처럼 사용할 수 있는 다른 설정을 추가해야합니다. 이는 www.no-ip.com에서 제공하는 서비스를 통해서 해결 할 수 있습니다. 아래의 일련의 과정을 통해 알아보겠습니다.


[그림 1]

 

[그림 1]에서 처럼 No-IP Free 를 통해 등록과 회원 가입을 완료하고 로그인을 해보겠습니다.. 'Add a Host'를 통하여 다음 사항으로 진행해 보겠습니다.


[그림 2]

 


[그림 3]

 

[그림 3]을 통해서 간단히 무료도메인과 IP주소를 설정해보았습니다. 이렇게 설정했다면 웹서버에 [그림 4]처럼 각 운영체제에 맞는 소프트웨어를 웹서버에 설치하여 실시간으로 유동IP를 업데이트하여 마치 고정IP 효과를 줄 수 있습니다.


[그림 4]

 

설치를 완료하게되면 [그림 5]와 같이 로그인창이 보이면 웹에서와 같이 로그인해주시면됩니다. 이후 [그림 6]처럼 자신이 만든 도메인에 체크표시만 해주면 자동으로 웹서버의 유동IP가 실시간으로 업데이트 됩니다.


[그림 5]

 


[그림 6]

 

 

March 10, 2010

개인 웹서버 설정을 위한 팁 #3 - ZoneEdit

안녕하세요 DKLEE(이동규) 입니다.

 

지난번 소개했던

개인 웹서버 설정을 위한 팁 #1 - DDNS & DNSEver 사용법 

개인 웹서버 설정을 위한 팁 #2 - DDNS & DynDNS 사용법

에 이어 제 3탄 ZoneEdit 에 대해 포스팅 해보겠습니다.

 

이번에는 ZoneEdit 를 사용하여 자신이 가지고있는 유료 도메인을 자신이 만든 서버에 연결해보는 방법을 설명하겠습니다. http://zoneedit.com/ 에 접속하여 회원가입과 로그인을 마치게 되면 [그림 1]과 같은 첫 화면을 볼 수있습니다.

 


[그림 1]

 

[그림 1]의 Add Zones를 통해 자신의 도메인을 추가해보겠습니다. [그림 2]와 같이 추가해주시면 됩니다.


[그림 2]

 

정상적으로 추가가 되었다면 중요한 설정인 네임서버를 변경 해주셔야합니다. 이는 자신이 유료도메인을 구입한 업체에서 변경해주셔야 합니다. 보통의 경우는 사용자가 변경이 가능합니다만 불가능 하다면 고객센터에 문의하여 변경해주셔야 합니다. [그림 3]에 나온 설정으로 변경하여야 합니다.


[그림 3]

 

네임서버 변경에는 약간의 시간이 소요됩니다. 대략 몇시간에서 하루정도 까지 걸리는 것으로 알고 있습니다. 따라서 ZoneEdit에서 설정이 안된다면 조금더 기다려 보는것이 해결책이라고 할 수 있습니다.


[그림 4]

 

다음은 IP Addresses 설정을 통해 자신의 웹서버 IP주소를 입력해야합니다. [그림 5]와 같이 IP주소를 추가해주게면 됩니다. [그림 6]에서는 dklee.net / www.dklee.net 둘다를 연결 할것인지 물어보는 부분입니다.


[그림 5]

 


[그림 6]

 

다음과 같이 간단하게 설정만 해주게 되면 자신의 도메인을 통해 자신의 웹서버로 접속을 연결 할 수 있습니다.

March 5, 2010

개인 웹서버 설정을 위한 팁 #2 - DDNS & DynDNS 사용법

안녕하세요 DKLEE(이동규) 입니다.

 

DynDNS 사용하여 DDNS를 설정하는 방법을 포스팅해보겠습니다.

차례는 다음과 같습니다. 그림만 보고 따라하시면 쉽게 완성할 수 있습니다.

 

http://www.dyndns.com/

 

1.Dynamic DNS 시작하기
   1.Dynamic DNS
   2.Dynamic DNS Free 입장
   3.Dynamic DNS Free 시작하기
   4.무료도메인 신청 및 서버정보 입력
   5.무료도메인 신청, 회원가입 동시진행
   6.인증메일 확인
   7.서비스 활성화
2.DynDNS Update Clients 사용하기
   1.다운로드 하기
   2.서버에 설치후 실행하기
   3.설정하기
   4.Netcraft 에서 확인하기(http://netcraft.com)

3.결론

 

1. Dynamic DNS 시작하기

     1. Dynamic DNS

       

     2. Dynamic DNS Free 입장

       

     3. Dynamic DNS Free 시작하기

       

     4. 무료도메인 신청 및 서버정보 입력

       

     5. 무료도메인 신청, 회원가입 동시진행

       

     6. 인증메일 확인

       

     7. 서비스 활성화

       

 

2. DynDNS Update Clients 사용하기

     1. 다운로드 하기

       

     2. 서버에 설치후 실행하기

       

     3. 설정하기

       

     4. Netcraft 에서 확인하기(http://netcraft.com)

       

 

      

 

3. 결론

무료도메인 신청과 DDNS 설정 그리고 소프트웨어를 이용하여 실시간으로 유동IP를 업데이트하는 과정을 알아보았습니다. 별도의 설명이 없이도 그림으로도 이해가 될만큼 간단합니다.

C# 인쇄를 해보자

안녕하세요 DKLEE(이동규) 입니다.

 

이번 포스팅에서는 C# 에서의 인쇄기능을 예제를 통해 알아보겠습니다. 인쇄 미리보기를 통해 작업한 내용을 확인해보고 인쇄까지 작동하는 방법을 아래 코드를 통해 확인해 볼 수 있습니다.

 

[code csharp] using System; using System.Drawing; using System.Windows.Forms; using System.Drawing.Printing; namespace ImagePrinting_ex01 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { PrintDocument docToPrint = new PrintDocument(); PageSettings ps = new PageSettings(); ps.Margins = new Margins(10, 10, 10, 10); docToPrint.DefaultPageSettings = ps; PrintPreviewDialog pd = new PrintPreviewDialog(); pd.ClientSize = new Size(500, 500); pd.UseAntiAlias = true; docToPrint.PrintPage += new PrintPageEventHandler(docToPrint_PrintPage); pd.Document = docToPrint; pd.Show(); } void docToPrint_PrintPage(object sender, PrintPageEventArgs e) { Font pf = new Font("궁서", 20, FontStyle.Regular); Image img = Image.FromFile(@"..\..\test.png"); e.Graphics.DrawImage(img, 0, 0, 500, 500); string str = "My name is Dongkyu Lee"; e.Graphics.DrawString(str, pf, Brushes.Black, 10, 500); } } } [/code]

 

아래 그림은 실행되고 있는 모습입니다. 추가한 이미지와 글씨가 바르게 나옴을 확인해 볼 수 있습니다. 인쇄 미리 보기가 실행되며 그안에서 인쇄버튼 / 확대 / 보기방법 을 실행할 수 있습니다.

 

 

 

C# Write Files using FileStream and StreamWriter

안녕하세요 DKLEE(이동규) 입니다.

 

아래의 간단한 예제를 통해 C#에서 파일 작성을 알아보겠습니다.

이전 포스팅에서는 BinaryWriter를 사용 하였지만 이번에는 StreamWriter 를 이용해보겠습니다.

 

[code csharp] using System.IO; namespace FileWrite_ex01 { class Program { private const string file_name = @"c:\test.txt"; //원하는 경로 및 파일명 static void Main(string[] args) { if (File.Exists(file_name)) { return; } FileStream fs = new FileStream(file_name, FileMode.CreateNew); StreamWriter sw = new StreamWriter(fs); sw.Write("DKLEE"); //작성내용 sw.Close(); fs.Close(); } } } [/code]

March 4, 2010

개인 웹서버 설정을 위한 팁 #1 - DDNS & DNSEver 사용법

안녕하세요 DKLEE(이동규) 입니다.

 

1. DDNS 란?

- DDNS는 Dynamic Domain Name Service 약자입니다. 기존의 DNS 에서 동적(Dynamic)기능을 추가한 것으로서 웹 서버가 구축된 장소가 유동IP 환경임에도 불구하고 도메인 주소를 IP 변화에 따라 연결 시켜주는 서비스 입니다. 따라서 외부에서 자신의 서버로 접속하게되더라도 고정IP를 사용하는 효과를 얻을 수 있습니다.

 

2. 도메인(Domain)

- 인터넷을 통해 원하는 정보를 서로 교환 하기위해 우리는 각각의 서버를 찾아가야 합니다. 인터넷에 열결된 모든 컴퓨터들은 각각의 주소(IP) 를 갖습니다. 하지만 숫자로 이루어진 IP는 외우고 구별하기 힘들기때문에 알아보기 쉽게 문자를 사용하는 주소를 고안해서 나오게 된것이 도메인 주소입니다.

- 무료도메인, 일반적으로 알고있는 유료 도메인 com/net/org 등 에 대한 도메인을 무료로 주는것은 아닙니다. 특정 도메인을 소유하고 그 도메인에 대한 2차 가상도메인을 생성하여 사용자의 홈페이지 주소로 포웨딩 또는 리디렉션해주는 서비스 입니다. 예를 들어 http://wo.tc/ 에서 무료 도메인을 서비스 하게되면 http://xxx.wo.tc/ 와같이 xxx 에 자신만의 이름으로 숫자대신 짧은 도메인을 만들 수 있습니다.

- 유료도메인, 일반적으로 알고있는 유료 도메인 com/net/org 등 으로 매년 일정금액을 지불하여 사용하게되며 신뢰성, 안정성이 높습니다.

 

3. DDNS 서비스 소개 (무료)

- DynDNS: (http://www.dyndns.com/) 영어

- DNSEver: (http://kr.dnsever.com/) 영어/한글

 

4. DDNS 설정방법 (DNSEver 이용)

- DNSEver를 사용한 DDNS 설정 방법을 예제를 통해 알아 보겠습니다. 유동IP 환경에서 자신만의 서버가 구축되었다면 IP주소를 통한 접속이 가능하게 됩니다. 하지만 이런 변경되는 숫자를 매번 일일이 기억하기는 힘듭니다. 따라서 이를 해결하기위해 도메인과 유동IP 간의 연결이 필요합니다. 이러한 역활을 DDNS 에서 대신 해주게 됩니다. 그중에서도 무료로 사용할 수 있는 DNSEver를 살펴보겠습니다. 무료도메인을 얻는과정부터 진행해 보도록 하겠습니다.

처음 서버를 구축하시는 분이시라면 우선 가장 중요한 도메인이 필요하게됩니다. 만약 유료도메인을 가지고 계신다면 도메인호스팅 업체의 도메인세팅에서 네임서버를 연결을 DDNS 서비스에 따라 변경해 주시고 이후 내용을 따라하시면 됩니다. 무료도메인의 신청부터 살펴보겠습니다. DNSEver 에서는 몇가지 무료도메인을 제공해주고 있고 그중에서도 굉장히 짧은 도메인도 구해 볼 수 있습니다.

[그림 1]

 

[그림 1]과 같이 DNSEver에 가입하고 로그인 하게 되면 왼쪽 매뉴에서 ‘DNSEver제공 서브도메인’을 찾아 볼 수 있습니다. 이곳에서는 서브도메인을 관리(추가, 삭제) 할 수 있습니다. [그림 2]와 같이 적당한 도메인명을 입력하고 추가를 해보겠습니다. 짧고 괜찮은 도메인을 볼 수 있습니다.

 

[그림 2]

 

추가가 완료되면 바로 관리서비스를 시작해 볼 수 있습니다. [그림 1]에서 ‘도메인을 선택하세요’라고 적혀 있는 콤보박스를 클릭하게 되면 현제 등록되어 있는 자신의 도메인의 목록이 나오며 클릭하게 되면 관리를 할 수 있습니다.

 

[그림 3]

 

[그림 3]에 나온 관리외에 상당히 많은 설정이 가능합니다. 무료라고 하기에는 상당히 프로페셔널 합니다. 이제 ‘다이나믹 DNS 관리 >>’를 클릭하여 세부설정을 해보겠습니다.

 

[그림 4]

 

[그림 5]

 

[그림 4]에서 ‘다이나믹 DNS 추가’를 살펴보게되면 호스트이름/IP주소/메모 를 입력할 수 있는 칸이 나오게됩니다. 만약 http://xxx.dklee.wo.tc 처럼 다시 서브 도메인을 만들고 싶다면 명명해줘야 합니다만 지금은 http://dklee.wo.tc 로 접속을 원하기 때문에 빈칸으로두고 IP주소를 적어보겠습니다. IP주소는 현재 서버 접속이 가능한 숫자이겠죠? [그림 5]처럼 설정이 완료 되었다면 설정한 도메인으로 접속이 제대로 되는지 테스트를 해봐야합니다. 지금은 정상적으로 명명한 도메인으로 접속이 될지 몰라도 유동IP 이기때문에 IP주소가 변경된다면 위 도메인으로 접속이 불가능해 질것입니다. 다음으로 이상황을 해결해보는 방법을 알아보겠습니다.

 

해결책은 바로 서버컴퓨터 IP주소를 실시간으로 업데이트 해주는것입니다. 굉장한 방법을 기대하셨다면 약간은 실망하셨겠지만 말입니다. DNSEver에서는 DNSClient라는 프로그램을 제공합니다. 이 프로그램을 통해 실시간으로 서버IP를 업데이트할 수 있습니다. 즉, 유동IP임에도 지속적인 업데이트로 마치 고정IP인듯 서버를 유지할 수 있습니다. 다운로드 하여 서버컴퓨터에 설치를 해보면 [그림 6]과 같은 클라이언트를 볼 수 있으며 아이디/인증코드를 넣어야 로그인이 가능합니다. 아이디는 DNSEver에서 사용하던 아이디이지만 인증코드는 아직 확인하지 않았습니다. 아래 ‘인증코드 보기’버튼을 클릭하여 웹상의 로그인을 진행하게 되면 인증코드를 조회해 볼 수 있습니다. 확인된 인증코드로 로그인을 진행합니다.

 

[그림 6]

 


[그림 7]

 

[그림 7]을 보시면 우선 첫번째 탭(호스트 설정)에서 왼쪽 리스트에는 설정할 수있는 도메인 목록이 나오며 오른쪽 리스트로 추가 할 수 있게 구성되어 있습니다. 업데이트할 도메인을 선택후 추가하고 다음 탭(IP 설정)으로 넘어가겠습니다.

 

[그림 8]

 

[그림 8] IP 설정에서는 수동으로 현재 서버의 IP 주소를 사용자가 업데이트를 할 수 있습니다. 업데이트 방식을 통해 자동으로 설정된 IP주소 혹은 사용자가 임의로 IP주소를 설정할 수 있습니다.

 

[그림 9]

 

다음으로는 프로그램 설정탭 입니다. [그림 9]에서 보다시피 일반적인 설정과 동시에 중요한 설정인 ‘IP 확인 설정’을 할 수 있습니다. 변경되는 유동IP를 체크하는 주기를 설정하게됩니다. 5분으로 설정했다면 매 5분마다 서버 컴퓨터의 IP주소를 체크하여 업데이트 해주는 것입니다. 바로 이것이 DDNS의 핵심입니다.

 

5. Netcraft
- Netcraft는 영국에 위치한 인터넷 서비스 회사입니다. 이곳에서는 웹 서버와 웹 호스팅의 시장 점유율 분석, 웹 서버 및 서버운영 체제를 탐지하고 정보를 제공해 주는 곳입니다. Netcraft을 이용하여 운영체제, 웹서버를 확인할 수 있으며 Uptime Graph를 통해 시각적 정보를 얻을 수 있습니다. 지금까지 DDNS 설정을 마쳤다면 Netcraft를 이용하여 자신의 서버에 대한 정보를 볼 수 있습니다. http://netcraft.com 에 접속하여 [그림 10]에서 와 같이 텍스트 박스에 확인해 보고자 하는 주소를 입력하면 됩니다.

 

[그림 10]

 

[그림 11]

 

진행하게 되면 [그림 11]과 같이 사이트에 대한 정보가 나오게되며 아래쪽에는 운영체제 웹 서버 최종 변경일등이 자세하게 나오게 됩니다. 이를 통해 자신이 설정한 DDNS 및 도메인이 정상적으로 작동하는지 알 수 있습니다. 나아가서 [그림 11]의 오른쪽 상단에 위치한 Uptime graph를 통해 서버 가동 성능에대한 모니터링을 볼 수 있습니다.

 

6.참고자료
- DDNS 설정방법 참고 사이트
DNSEver
 DNSEver 공식 블로그: http://blog.kr.dnsever.com/
 DNSEver 제공 DDNS 설정방법: http://blog.kr.dnsever.com/?p=6
 공식설명서: http://kr.dnsever.com/help/wiki/wiki.php?DNSEverHelpPage
DynDNS
 DynDNS 가입방법: http://blog.naver.com/kero1983/51066869
 DynDNS Updater 사용방법: http://blog.eztcp.com/sollae/75
 DDNS 공식설명서: http://www.dyndns.com/support/kb/dyndns.html
- 추가 참고사이트
DDNS 개념: http://blog.naver.com/ejkh3?Redirect=Log&logNo=100005962653
DDNS 개념: http://en.wikipedia.org/wiki/Ddns
DNSEver를 이용하여 블로그 연동: http://blog.itlee.kr/90045106950
유동IP, 공유기 환경에서 FTP 서버구축: http://altang.tistory.com/134
DynDNS와 공유기 연결설정: http://blog.naver.com/iptime7/120101697565

March 3, 2010

[WPF] 네비게이션 #1 - 페이지 전환

WPF 페이지의 전환 서비스 

 

안녕하세요 DKLEE (이동규) 입니다.
이번 강좌에서는 WPF 의 NavigationService 를 사용하여 Page간의 전환을 따라하기 예제를 통해 알아보겠습니다. [그림 1]과 같이 페이지 전환이 가능하고 네비게이션바를 통해 다시 돌아갈 수 있는 기능을 살펴보겠습니다. Host 라고 이름지은 NavigationWindow 에서 Page1 과 Page2가 전환되는 예제를 구현해 보겠습니다. 개발도구는 Visual Studio 2008 입니다.
 

[그림 1]

자 이제 강좌를 시작하겠습니다!!

[그림 2]
 

[그림 3]


[그림 2]와 같이 새 프로젝트를 생성하게 됩니다. 생성이 완료되면 [그림 3]처럼 솔루션 탐색기에 나오게 됩니다. 이번 강좌에서는 Window 요소를 사용하지않기 때문에 Windows1.xaml을 삭제를 하고 새로운 Window 즉, NavigationWindow 를 만들어 보겠습니다. [그림 4] 참조

 

[그림 4]

 

새로운 창의 이름을 'Host'로 명하여 만들고 비하인드 코드로(단축키 F7) 넘어와서 상속 클래스를 기존의 Window 에서 NavigationWindow[그림 5]와 같이 변경 하겠습니다.(왼쪽에서 오른쪽으로)

 

[그림 5]

 

위의 과정대로 상속 클래스의 변경이 완료되었다면 다자인 코드(XAML)로 다시 넘어와(단축키 Shift+F7) 몇가지 수정을 해야합니다. 아래 [그림 6]을 통해 코드의 변화를 살펴 보겠습니다. 노란색으로 강조된 부분이 변경된 코드입니다.

 

[그림 6]

 

디자인 코드를 살펴보면 우선 Window -> NavigationWindow로 변경 되었습니다. 또한 Source 속성을 추가해 줄수 있습니다. 이를 통해 최초 로드되는 페이지를 설정해 줄 수 있습니다. 이번 예제에서는 Page1 에서 Page2 로 전환을 살펴보기 위해 최초 페이지는 Page1 으로 하겠습니다. 하지만 아직 Page1 은 작성되지 않았기때문에 [그림 7]과 같이 Page1.xaml 을 추가해 보겠습니다. 이어서 Page2.xaml 또한 추가하겠습니다. (페이지 추가에 주의)

 

[그림 7]

 

다음으론 실제로 페이지 전환을 위해 링크를 만드는 방법을 두가지로 알아보겠습니다. 첫번째는 비하인드 코드에서 두번째는 다자인 코드에서 입니다. 아래 [그림 8]에서 두가지를 비교해 보았습니다만 역시 디자인 코드에서의 작성이 조금더 간결한거 같습니다. 텍스트 블럭안에 Hyperlink 를 통해 연결하였습니다.(왼쪽 - 코드비하인드 / 오른쪽 - 디자인코드)

 

[그림 8]

 

이제 실행해볼 일만 남았습니다. 하지만 여기서 실행하게되면 런타임시에 에러가 나오게 되는데요 이유는 App.xaml 내에 시작 Uri 기본 설정이 이전에 삭제했던 Windows1 로 되어 있기 때문입니다. App의 디자인 코드로 넘어와서 다음과 같이 수정해주셔야 합니다.

 

StartupUri="Host.xaml"

 

실행을 하여 "Go to Page 2" 를 클릭하게되면 정상적으로 다음페이지로 넘어 가게되는 모습을 볼 수 있습니다. 또한 다음페이지로 넘어가게되면 인터넷 익스플로러와 같이 네비게이션 바에 화살표가 활성화 되는것을 볼 수 있고 히스토리또한 남는 것을 확인할 수 있습니다. 보기에는 복잡해 보이지만 직접 따라 해보시면 굉장히 간단하게 구현됨을 볼 수 있습니다. 이상으로 이번 강좌를 마치겠습니다. 다음 강좌에서는 네비게이션에서 가장 중요한 데이터 전달입니다. 단순 화면만 넘겨 보여줄 프로그램은 없다고 생각됩니다. 차례대로 페이지가 넘어가면서 데이터 전달또한 필요하게 됩니다. 다음 강좌를 기대하세요^^