[Spring]¸ÞÀϼ¹ö(SMTP Server)¸¦ ÀÌ¿ëÇÑ ¸ÞÀÏ Àü¼Û 1
°³ÀÎ °øºÎ ÈÄ ÀڷḦ ³²±â±â À§ÇÑ ¸ñÀûÀ̱⿡ ³»¿ë »ó¿¡ ¿À·ù°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.
¸ñÇ¥
1. ½ºÇÁ¸µ¿¡¼ SMTP ¼¹ö¸¦ ÀÌ¿ëÇÑ ¸ÞÀÏ Àü¼ÛÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.
2. 1ÀÇ ¸ñÇ¥ ±â´ÉÀ» ±¸ÇöÇϱâ À§ÇØ ±¸±Û, ³×À̹ö, ´ÙÀ½¿¡ ¾î¶°ÇÑ ¼³Á¤À» ÇØ¾ß ÇÏ´ÂÁö ¾Ë¾Æº¾´Ï´Ù.
3. ´Ü¼øÇÑ ÅؽºÆ®¸¸ Àü¼Û, À̹ÌÁö¸¦ Æ÷ÇÔÇÑ ¸ÞÀÏÀü¼Û, ¾÷·Îµå¸¦ Æ÷ÇÔÇÑ ¸ÞÀÏ Àü¼ÛÀ» ¾Ë¾Æº¾´Ï´Ù.
¸ñÂ÷
0. °³¿ä
1. ¸ÞÀÏ °èÁ¤ º¸¾È ¼³Á¤
2. pom.xml ¼³Á¤
3. mailSender Bean µî·Ï
----- ¡é´ÙÀ½ Æ÷½ºÆà ----
4. Controller ¸Þ¼µå Ãß°¡
5. ÅؽºÆ® / À̹ÌÁö / ¾÷·Îµå Àü¼Û
6. ¸ÞÀÏ Àü¼Û Å×½ºÆ®
0. °³¿ä
À̹ø Æ÷½ºÆÿ¡¼± ½ºÇÁ¸µÇÁ·¹ÀÓ¿öÅ©¿¡¼ ¸ÞÀϼ¹ö(SMTP Server)¸¦ ÀÌ¿ëÇÏ¿© ¸ÞÀÏÀ» Àü¼ÛÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ ¾Ë¾Æº¸°íÀÚ ÇÕ´Ï´Ù. SMTP´Â Simple Mail Transfer Protocol·Î¼ ÀüÀÚ ¸ÞÀÏ Àü¼ÛÀ» À§ÇÑ Ç¥ÁØ ÇÁ·ÎÅäÄÝÀÔ´Ï´Ù. µû¶ó¼ SMTP Server¶õ À̸ÞÀÏÀ» ¼Û½ÅÇÏ´Â ¼¹öÀÔ´Ï´Ù. (¸ÞÀϼ¹ö´Â SMTP Server, POP3 Server°¡ ÀÖ°í POP3 Server´Â À̸ÞÀÏÀ» ¼ö½ÅÇÏ´Â ¼¹öÀÔ´Ï´Ù.)
¸ÞÀÏ Àü¼Û ±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ± ¾Æ·¡ÀÇ 4°¡Áö°¡ ÇÊ¿äÇÕ´Ï´Ù.
1. pom.xml ¼³Á¤
2. mailSender Bean µî·Ï(root-context.xml µµ´Â servlet-context.xml)
3. Controller ¸Þ¼µå Ãß°¡
4. ¸ÞÀÏ °èÁ¤ º¸¾È ¼³Á¤
¸ÞÀϼ¹ö(SMTP Server)¸¦ ÅëÇØ ¸ÞÀÏÀ» Àü¼ÛÇÒ ¶§ ´ÙÀ½°ú °°Àº µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
ù ¹ø°, ¸ÞÀÏ ¼¹ö°¡ ¸±·¹ÀÌ(relay)¸¦ Çã¿ëÇÏ´Â °æ¿ì
¡Ø¸±·¹ÀÌ(Relay) : ¿ÜºÎ(¿ÜºÎ ³×Æ®¿öÅ©)¿¡¼ ÇØ´ç ¸ÞÀϼ¹ö(smtp ¼¹ö)¸¦ °æÀ¯Çؼ ¿ÜºÎ·Î ¸ÞÀÏÀ» º¸³»´Â °ÍÀ» ÀǹÌÇÔ.
- ÀÌ ¹æ½ÄÀº °èÁ¤ÀÌ Á¸ÀçÇÏÁö ¾Ê´õ¶óµµ ¸ÞÀÏÀ» ¹ß¼ÛÇÒ ¼ö ÀÖ½À´Ï´Ù.
- ¸±·¹ÀÌ(relay)¸¦ Çã¿ëÇÏ´Â °æ¿ì À߸øµÈ ¹æ½Ä(ŸÀο¡ ÀÇÇÑ ½ºÆÔ¸ÞÀÏ)À¸·Î ¾Ç¿ë µÉ ¼ö ÀÖ½À´Ï´Ù.
- µû¶ó¼ ƯÁ¤ IP¿¡¼¸¸ ¸±·¹ÀÌ°¡ µÇµµ·Ï ÇÏ´Â°Ô ÀϹÝÀûÀÔ´Ï´Ù.
- ÇØ´ç ¹æ½ÄÀ» °æÇèÇغ¸°í ½ÍÀ¸½Ã´Ù¸é ¾Æ·¡ÀÇ Æ÷½ºÆÃÀ» Âü°íÇØÁÖ¼¼¿ä.
[¼¹ö]TelnetÀ» ÀÌ¿ëÇÑ SMTP ¸ÞÀÏ ¹ß¼Û
µÎ ¹ø°, ¸ÞÀÏ ¼¹ö¿¡ °èÁ¤ ÀÎÁõ ÈÄ ¸ÞÀÏÀ» Àü¼ÛÇÏ´Â ¹æ¹ý
À§ µÎ °¡Áö ¹æ¹ý ¼±ÅÃÀº "2.mailSender Bean µî·Ï"¿¡¼ ÀÌ·ç¾îÁý´Ï´Ù. ¾Æ·¡ÀÇ ÀÚ¼¼ÇÑ ¼³¸í¿¡¼ ¾î¶»°Ô ¼³Á¤ÇØ¾ß ÇÏ´ÂÁö ¼³¸íÀº ÇÏÁö¸¸ ÁÖ ¹æ½ÄÀº °èÁ¤ ÀÎÁõ ÈÄ ¸ÞÀÏÀ» Àü¼ÛÇÏ´Â ¹æ¹ýÀ¸·Î ¼³¸íÀ» ÁøÇàÇÏ°íÀÚ ÇÕ´Ï´Ù.
1. ¸ÞÀÏ °èÁ¤ º¸¾È ¼³Á¤
SMTP Server¸¦ ÅëÇؼ ¸ÞÀÏ Àü¼Û ±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ± »ç¿ëÇÏ°íÀÚ ÇÏ´Â ¸ÞÀÏÀÇ SMTP º¸¾È ´Ü°è¸¦ ³·Ãß¾î¾ß ÇÕ´Ï´Ù. ³×À̹öÀÇ °æ¿ì ·Î±×Àνà ÈÞ´ëÆù½ÂÀÎÀ» ÅëÇÑ º¸¾È ´Ü°è±îÁö ¼³Á¤ÀÌ µÇ¾î ÀÖÀ» °æ¿ì ¾Æ·¡ÀÇ ¼³Á¤¸¸À¸·Î´Â ºÎÁ·ÇÕ´Ï´Ù.
1.1 ±¸±Û
1) ±¸±Û ¸ÞÀÎÆäÀÌÁö ¿À¸¥ÂÊ »ó´Ü¿¡ ÀÚ½ÅÀÇ °èÁ¤À» Ŭ¸¯ÇÏ°í ¾Æ·¡ÀÇ ±×¸²°ú °°ÀÌ "Google °èÁ¤ °ü¸®"¸¦ Ŭ¸¯ÇÕ´Ï´Ù.
2) ¿ÞÂÊ ¸ñ·ÏÁß [º¸¾È]À» Ŭ¸¯ÇÕ´Ï´Ù.
3) º¸¾È Ç׸ñ¿¡¼ "º¸¾È ¼öÁØÀÌ ³·Àº ¾ÛÀÇ ¾×¼¼½º"¸¦ ãÀº ÈÄ "¾×¼¼½º »ç¿ë ¼³Á¤(±ÇÀåÇÏÁö ¾ÊÀ½)"À» Ŭ¸¯ÇÕ´Ï´Ù.
4) º¸¾È ¼öÁØÀÌ ³·Àº ¾Û Çã¿ëÀ» »ç¿ëÇÔÀ¸·Î º¯°æÇÕ´Ï´Ù.
1.2 ³×À̹ö
1) ³×À̹ö ¸ÞÀÏ ÆäÀÌÁö µé¾î°£ ÈÄ ¿ÞÂÊ ÃÖÇÏ´Ü¿¡ "ȯ°á ¼³Á¤"À» Ŭ¸¯ÇÕ´Ï´Ù.
2) »ó´Ü ¸ñ·Ï Áß "POP3/IMAP ¼³Á¤"À» Ŭ¸¯ÇÕ´Ï´Ù.
3) "POP3/SMTP »ç¿ë"À» '»ç¿ëÇÔ'À¸·Î üũ ÈÄ È®ÀιöÆ°À» Ŭ¸¯ÇÕ´Ï´Ù.
1.3 ´ÙÀ½
1) ´ÙÀ½ ¸ÞÀÏÆäÀÌÁö µé¾î°£ ÈÄ ¿ÞÂÊ ¸ñ·Ï Áß Á¦ÀÏ ¾Æ·¡¿¡ "ȯ°á ¼³Á¤"À» Ŭ¸¯ÇÕ´Ï´Ù.
2) »ó´Ü ¸ñ·Ï Áß "IMAP/POP3"À» Ŭ¸¯ÇÕ´Ï´Ù.
3) "IMAP / SMTP »ç¿ë"À» '»ç¿ëÇÔ'À¸·Î üũ ÈÄ ÀúÀåÀ» Ŭ¸¯ÇÕ´Ï´Ù.
2. pom.xml ¼³Á¤
2.1 mail ¶óÀ̺귯¸®¸¦ Ãß°¡ÇØÁÝ´Ï´Ù.
- ¹öÀüÀº Àڽſ¡°Ô ¸Â´Â ¹öÀüÀ» ¼±ÅÃÇÏ½Ã¸é µË´Ï´Ù.(±Û¾²´Â ÇöÀç °¡Àå ÃֽŠ¹öÀüÀº 1.5.0-b01ÀÌÁö¸¸ ¾ÆÁ÷ ¾ÈÁ¤ÀûÀÌÁö ¾ÊÀº °Å °°¾Æ¼ °¡Àå ¸¹ÀÌ »ç¿ëÇÑ 1.4.7À» ¼±ÅÃÇÏ¿´½À´Ï´Ù.)
1 2 3 4 5 6 7 | <!-- https://mvnrepository.com/artifact/javax.mail/mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> |
- java¿¡¼ ¸ÞÀÏÀ» º¸³»±â À§ÇØ ÇÊ¿ä·ÎÇÑ ¶óÀ̺귯¸®ÀÔ´Ï´Ù.
- ½ÇÁ¦ Àü¼ÛµÇ´Â ¸ÞÀÏ °´Ã¼¸¦ °¡Áý´Ï´Ù.
- ÁÖ¿ä Ŭ·¡½º·Î Session, Message, Address, Authenticator, Tranport µîÀÌ ÀÕ½À´Ï´Ù.
- ÇØ´ç ¶óÀ̺귯¸®¸¸À¸·Îµµ ¸ÞÀÏ Àü¼Û ±â´ÉÀÌ ±¸Çö °¡´ÉÇÕ´Ï´Ù. ÇÏÁö¸¸ °³¹ßÀÚ°¡ ¸ðµç ¼¼ÆÃÀ» Á÷Á¢ ÇØÁÖ¾î¾ß Çϱ⠶§¹®¿¡ ¹ø°Å·Ó½À´Ï´Ù.
- À̹ø Æ÷½ºÆÿ¡¼± spring-context-support ¶óÀ̺귯¸®¸¦ »ç¿ëÇÒ °ÍÀ̱⠶§¹®¿¡, mail ¶óÀ̺귯¸®¿¡¼± javax.mail.internet.MimeMessage¸¸ »ç¿ëµË´Ï´Ù.
2.2 spring-context-support ¶óÀ̺귯¸®¸¦ Ãß°¡ÇÕ´Ï´Ù.
1 2 3 4 5 6 7 | <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${org.springframework-version}</version> </dependency> |
- JavaMailSender ÀÎÅÍÆäÀ̽º(JavaMailSenderImpl)¸¦ »ç¿ëÇϱâ À§ÇØ ÇÊ¿ä·Î ÇÕ´Ï´Ù. mail ¶óÀ̺귯¸®¸¦ ÀÏÀÏÀÌ ¼¼ÆÃÀ» ÇÒ ÇÊ¿ä ¾øÀÌ ¸î °¡ÁöÀÇ ¼³Á¤(MailSender Bean¼³Á¤)¸¸À¸·Îµµ »ç¿ëµÉ ¼ö ÀÖµµ·Ï µµ¿ÍÁÝ´Ï´Ù.
- JavaMailSender ÀÎÅÍÆäÀ̽º´Â MIME Çü½ÄÀÇ ¸ÞÀÏÀ» º¸³¾ ¼ö ÀÖµµ·Ï ÇØÁÝ´Ï´Ù.(javax.mail.MimeMessage »ç¿ë °¡´É)
- ½ºÇÁ¸µ ÇÁ·¹ÀÓ¿÷¿¡¼´Â ±âº»ÀûÀ¸·Î JavaMailSender ÀÎÅÍÆäÀ̽º¿Í ºñ½ÁÇÑ ¿ªÇÒÀ» ÇÏ´Â ¸ÞÀÎ ÀÎÅÍÆäÀ̽º MainSender°¡ ÀÖ½À´Ï´Ù. ÇÏÁö¸¸ MainSender´Â SimpleMailMessage¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù. (javax.mail.MimeMessage »ç¿ë ºÒ°¡´É)
* SimpleMailMessage´Â ´Ü¼øÇÑ ÅؽºÆ® ¸Þ½ÃÁö¸¸ »ç¿ëÇÒ ¼ö ÀÖ°í, MimeMessage´Â ÅؽºÆ®¿Í ´õºÒ¾î À̹ÌÁö¿Í °°Àº ÷ºÎÆÄÀÏÀ» °°ÀÌ ¸Þ½ÃÁö¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ½À´Ï´Ù.
3. mailSender Bean µî·Ï
Bean µî·ÏÀº root-context.xml¿¡ ¼³Á¤ÇØÁÖ½Ã¸é µË´Ï´Ù. '0. °³¿ä'¿¡¼ ¸»ÇßµíÀÌ ¸±·¹À̸¦ Çã¿ëÇÏ´Â ¼¹ö¸¦ »ç¿ëÇÑ °æ¿ìÀÇ ºó ¼³Á¤°ú ¾ÆÀ̵ð/ºñ¹Ð¹øÈ£·Î ÀÎÁõ ÈÄ ¹ß¼ÛÇÏ´Â ºó ¼³Á¤Àº ±¸±Û / ³×À̹ö / ´ÙÀ½ ¼øÀ¸·Î ¾Ë¾Æº¸°Ú½À´Ï´Ù.
3.1 ¸ÞÀÏ ¼¹ö°¡ ¸±·¹ÀÌ(relay)¸¦ Çã¿ëÇÏ´Â °æ¿ì
- root-context.xml¿¡ ¾Æ·¡ÀÇ Äڵ带 Ãß°¡ÇØÁÝ´Ï´Ù.
1 2 3 4 | <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="stmp µµ¸ÞÀÎ ÁÖ¼Ò"/> </bean> | cs |
- hostÀÇ value°ªÀº ¾Æ·¡ÀÇ ¸µÅ©¿¡¼ '2. »ç¿ë °¡´ÉÇÑ ¸ÞÀϼ¹ö ã±â(nslookup)'À» Âü°íÇϼż ÇØ´ç ÁÖ¼Ò¸¦ ÀÔ·ÂÇÏ½Ã¸é µË´Ï´Ù.
[¼¹ö]TelnetÀ» ÀÌ¿ëÇÑ SMTP ¸ÞÀÏ ¹ß¼Û
3.2 ¸ÞÀÏ ¼¹ö¿¡ °èÁ¤ ÀÎÁõ ÈÄ ¸ÞÀÏÀ» Àü¼ÛÇÏ´Â ¹æ¹ý
host, port, username, password <property> ű״ °¢ ¸ÞÀϼ¹ö¿¡ ¸Â°Ô ¼³Á¤ÇØÁÖ½Ã¸é µË´Ï´Ù. °¢ ¸ÞÀϼ¹ö¿¡¼ °¡Àå Å©°Ô ´Ù¸¥ Á¡Àº nameÀÌ javaMailPropertiesÀÎ <property> ű×ÀÔ´Ï´Ù. ÇØ´ç ű״ °¢ ¸ÞÀϼ¹ö¿¡¼ »ç¿ë ÁßÀÎ º¸¾È ÇÁ·ÎÅäÄÝÀ» ÀÎÁõÇϱâ À§ÇØ »ç¿ëµÇ´Â Äڵ尡 »ðÀԵ˴ϴÙ.
1) gmail
- root-context.xml¿¡ ¾Æ·¡ÀÇ Äڵ带 Ãß°¡ÇØÁÝ´Ï´Ù.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!-- gmail¼³Á¤ --> <bean id="mailSender2" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.gmail.com" /> <property name="port" value="587" /> <property name="username" value="your_email"/> <!-- ÀÚ½ÅÀÇ À̸ÞÀÏ ¾ÆÀ̵ð --> <property name="password" value="your_password!"/> <!-- ÀÚ½ÅÀÇ ºñ¹Ð¹øÈ£ --> <!-- º¸¾È¿¬°á TLS°ú °ü·ÃµÈ ¼³Á¤ --> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.starttls.enable">true</prop> </props> </property> </bean> | cs |
- host : "smtp.gmail.com" ÀÔ·Â
- port : "587" ÀÔ·Â
- username : ÀÚ½ÅÀÇ À̸ÞÀÏ ¾ÆÀ̵ð ÀÔ·Â
- password : ÀÚ½ÅÀÇ À̸ÞÀÏ ºñ¹Ð¹øÈ£ ÀÔ·Â
- javaMailPropertiesÀÎ <property> ű׿¡ »ðÀÔµÈ ÄÚµå´Â TLS ÀÎÁõ ÄÚµåÀÔ´Ï´Ù.
* SSLÀ̶õ À¥»çÀÌÆ®¿Í ºê¶ó¿ìÀú »çÀÌ¿¡¼ Àü¼ÛµÇ´Â µ¥ÀÌÅ͸¦ ¾ÏÈ£ÈÇÏ¿© ÀÎÅÍ³Ý ¿¬°áÀ» º¸¾ÈÀ» À¯ÁöÇϴ ǥÁØ ±â¼úÀÔ´Ï´Ù. TLS´Â ´õ °·ÂÇÑ ¹öÀüÀÇ SSLÀÔ´Ï´Ù. TLS µµÇÑ SSLÀ̶ó ºÒ¸®±âµµ ÇÕ´Ï´Ù.
2) naver
- root-context.xml¿¡ ¾Æ·¡ÀÇ Äڵ带 Ãß°¡ÇØÁÝ´Ï´Ù.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!-- navermail¼³Á¤ --> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.naver.com"/> <!-- ¸ÞÀ̼¹ö È£½ºÆ® --> <property name="port" value="465"/> <!-- ¸ÞÀ̼¹ö Æ÷Æ®¹øÈ£ --> <property name="username" value="your_email"/> <!-- ÀÚ½ÅÀÇ À̸ÞÀÏ ¾ÆÀ̵ð --> <property name="password" value="your_password"/> <!-- ÀÚ½ÅÀÇ ºñ¹Ð¹øÈ£ --> <!-- º¸¾È¿¬°á SSL°ú °ü·ÃµÈ ¼³Á¤ --> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.starttls.enable">true</prop> <prop key="mail.smtps.checkserveridentity">true</prop> <prop key="mail.smtps.ssl.trust">*</prop> <prop key="mail.debug">true</prop> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> </props> </property> </bean> |
- host : "smtp.naver.com" ÀÔ·Â
- port : "465" ÀÔ·Â
- username : ÀÚ½ÅÀÇ À̸ÞÀÏ ¾ÆÀ̵ð ÀÔ·Â
- password : ÀÚ½ÅÀÇ À̸ÞÀÏ ºñ¹Ð¹øÈ£ ÀÔ·Â
- javaMailPropertiesÀÎ <property> ű׿¡ »ðÀÔµÈ ÄÚµå´Â SSL ÀÎÁõ ÄÚµåÀÔ´Ï´Ù.
3) daum
- root-context.xml¿¡ ¾Æ·¡ÀÇ Äڵ带 Ãß°¡ÇØÁÝ´Ï´Ù.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!-- navermail¼³Á¤ --> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.naver.com"/> <!-- ¸ÞÀ̼¹ö È£½ºÆ® --> <property name="port" value="465"/> <!-- ¸ÞÀ̼¹ö Æ÷Æ®¹øÈ£ --> <property name="username" value="your_email"/> <!-- ÀÚ½ÅÀÇ À̸ÞÀÏ ¾ÆÀ̵ð --> <property name="password" value="your_password"/> <!-- ÀÚ½ÅÀÇ ºñ¹Ð¹øÈ£ --> <!-- º¸¾È¿¬°á SSL°ú °ü·ÃµÈ ¼³Á¤ --> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.starttls.enable">true</prop> <prop key="mail.smtps.checkserveridentity">true</prop> <prop key="mail.smtps.ssl.trust">*</prop> <prop key="mail.debug">true</prop> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> </props> </property> </bean> |
- host : "smtp.daum.net" ÀÔ·Â
- port : "465" ÀÔ·Â
- username : ÀÚ½ÅÀÇ À̸ÞÀÏ ¾ÆÀ̵ð ÀÔ·Â
- password : ÀÚ½ÅÀÇ À̸ÞÀÏ ºñ¹Ð¹øÈ£ ÀÔ·Â
- javaMailPropertiesÀÎ <property>ű׿¡ »ðÀÔµÈ ÄÚµå´Â ³×À̹ö¿Í µ¿ÀÏÇÏ°Ô SSL ÀÎÁõ ÄÚµåÀÔ´Ï´Ù.
Reference
- https://seonhyungjo.github.io/Spring-SMTP/
- https://offbyone.tistory.com/167
- https://codevang.tistory.com/279
- https://blog.outsider.ne.kr/1051
- https://www.digicert.com/kr/what-is-ssl-tls-https/
Date
- 2020.08.27 ÀÛ¼º