database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7415 게시물 읽기
No. 7415
안녕하세요.몇일째 검색해도 안나와서 올려봅니댜.에러좀 봐주세요
작성자
Choi(naelumy)
작성일
2008-04-24 11:10
조회수
7,266

Postgres.8.2

jre 1.5

apache 2.2.4

Tomcat 5.5



Exception 에러가 나서 이클립스에서 디버깅중인데요.

에러가 나는 지점에서 

AbstractJdbc3Connection.class소스를 찾을수가 없다고 화면이 뜨는데

이미 lib에 postgresql-8.2-504.jdbc3.jar가 포함되어잇거든요.

그런데도 계속 이 클래스만 찾고,

왜 그러는지 아시는분 혹시 계신가요?


에러가 나는 DBAccess.updateSql은 DB의 DDL구문입니다.

어딘가 DDL의 Exception은 PSQLException으로 해줘야 한다고 하시던데.

현재 SQLException처리 되어 있습니다.

질문이나 설명이 부족하다면 말씀해주세요~




org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.

 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:217)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:337)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:283)

 at clientForensic.DBAccess.updateSql(DBAccess.java:313)

 at clientForensic.ArchiveBeans.updateArchivedFlag(ArchiveBeans.java:1078)

 at clientForensic.ArchiveBeans.executeArchive(ArchiveBeans.java:583)

 at clientForensic.Archive.doPost(Archive.java:80)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:420)

 at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:170)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

 at java.lang.Thread.run(Unknown Source)

Caused by: java.io.IOException: Stream closed

 at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)

 at sun.nio.cs.StreamEncoder.flush(Unknown Source)

 at java.io.OutputStreamWriter.flush(Unknown Source)

 at org.postgresql.core.PGStream.flush(PGStream.java:507)

 at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:675)

 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:190)

 ... 27 more

org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.

 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:217)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:337)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:283)

 at clientForensic.DBAccess.updateSql(DBAccess.java:313)

 at clientForensic.ArchiveBeans.updateArchivedFlag(ArchiveBeans.java:1078)

 at clientForensic.ArchiveBeans.executeArchive(ArchiveBeans.java:624)

 at clientForensic.Archive.doPost(Archive.java:80)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:420)

 at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:170)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

 at java.lang.Thread.run(Unknown Source)

Caused by: java.io.IOException: Stream closed

 at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)

 at sun.nio.cs.StreamEncoder.flush(Unknown Source)

 at java.io.OutputStreamWriter.flush(Unknown Source)

 at org.postgresql.core.PGStream.flush(PGStream.java:507)

 at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:675)

 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:190)

 ... 27 more

org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.

 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:217)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:337)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:283)

 at clientForensic.DBAccess.updateSql(DBAccess.java:292)

 at clientForensic.CfBeansBase.updateArchiveStatus(CfBeansBase.java:203)

 at clientForensic.Archive.doPost(Archive.java:81)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:420)

 at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:170)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

 at java.lang.Thread.run(Unknown Source)

Caused by: java.io.IOException: Stream closed

 at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)

 at sun.nio.cs.StreamEncoder.flush(Unknown Source)

 at java.io.OutputStreamWriter.flush(Unknown Source)

 at org.postgresql.core.PGStream.flush(PGStream.java:507)

 at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:675)

 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:190)

 ... 26 more

org.postgresql.util.PSQLException: An I/O error occured while sending to the backend.

 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:217)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:337)

 at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:236)

 at clientForensic.DBAccess.selectSql(DBAccess.java:197)

 at clientForensic.CfBeansBase.isCollecting(CfBeansBase.java:158)

 at org.apache.jsp.ArchiveSelect_jsp._jspService(ArchiveSelect_jsp.java:97)

 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)

 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)

 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

 at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)

 at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)

 at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)

 at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)

 at clientForensic.Archive.doPost(Archive.java:117)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:420)

 at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:170)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

 at java.lang.Thread.run(Unknown Source)

Caused by: java.io.IOException: Stream closed

 at sun.nio.cs.StreamEncoder.ensureOpen(Unknown Source)

 at sun.nio.cs.StreamEncoder.flush(Unknown Source)

 at java.io.OutputStreamWriter.flush(Unknown Source)

 at org.postgresql.core.PGStream.flush(PGStream.java:507)

 at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:675)

 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:190)

 ... 39 more

2008/04/22 15:39:51 org.apache.catalina.core.ApplicationDispatcher invoke

치명적: 서블렛 jsp のServlet.service() 의 예외상황....

java.lang.NullPointerException

 at clientForensic.CfBeansBase.isCollecting(CfBeansBase.java:159)

 at org.apache.jsp.ArchiveSelect_jsp._jspService(ArchiveSelect_jsp.java:97)

 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)

 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)

 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

 at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)

 at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)

 at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)

 at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)

 at clientForensic.Archive.doPost(Archive.java:117)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:420)

 at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:170)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

 at java.lang.Thread.run(Unknown Source)

2008/04/22 15:39:51 org.apache.catalina.core.StandardWrapperValve invoke

치명적: 서블렛 jsp のServlet.service() 의 예외상황....

java.lang.NullPointerException

 at clientForensic.CfBeansBase.isCollecting(CfBeansBase.java:159)

 at org.apache.jsp.ArchiveSelect_jsp._jspService(ArchiveSelect_jsp.java:97)

 at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)

 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)

 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

 at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:691)

 at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)

 at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)

 at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)

 at clientForensic.Archive.doPost(Archive.java:117)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:420)

 at org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:170)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)

 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)

 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)

 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)

 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)

 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)

 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)

 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)

 at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)

 at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)

 at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)

 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)

 at java.lang.Thread.run(Unknown Source)

이 글에 대한 댓글이 총 1건 있습니다.

지금 올려주신 stack trace는 다른 익셉션에 대한 것 같네요.

글에는 AbstractJdbc3Connection.class를 못 찾는다고 하셨는데

보여주신 것은 DB와의 접속이 끊어졌다는 것 같습니다.


DB 서버 프로세스가 오류가 있어 죽었거나

서버를 강제로 죽인 듯....


혹시 stack trace가 잘 못 올라온 것이라면 다시 올려주세요. ^^

박성철(gyumee)님이 2008-04-24 14:40에 작성한 댓글입니다.
이 댓글은 2008-04-24 19:12에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
7419가장 먼저생성된 Row부터 삭제하기 [2]
궁굼이
2008-04-29
5893
7418- [1]
아무개
2008-04-26
6361
7417- [2]
아무개
2008-04-26
5906
7415안녕하세요.몇일째 검색해도 안나와서 올려봅니댜.에러좀 봐주세요 [1]
Choi
2008-04-24
7266
7414AIX 4.3.3에 PostgreSQL 8.2.6 설치 [2]
김대청
2008-04-24
6720
7413- [1]
아무개
2008-04-23
5959
7412- [3]
아무개
2008-04-23
6003
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다