Microsoft 70-561-Csharp인증시험은 전업적지식이 강한 인증입니다. IT업계에서 일자리를 찾고 계시다면 많은 회사에서는Microsoft 70-561-Csharp있는지 없는지에 알고 싶어합니다. 만약Microsoft 70-561-Csharp자격증이 있으시다면 여러분은 당연히 경쟁력향상입니다.
만약 여러분은Microsoft 70-561-Csharp인증시험취득으로 이 치열한 IT업계경쟁 속에서 자기만의 자리를 잡고, 스펙을 쌓고, 전문적인 지식을 높이고 싶으십니까? 하지만Microsoft 70-561-Csharp패스는 쉬운 일은 아닙니다.Microsoft 70-561-Csharp패스는 여러분이 IT업계에 한발작 더 가까워졌다는 뜻이죠. 하지만 이렇게 중요한 시험이라고 많은 시간과 정력을 낭비할필요는 없습니다. ITExamDump의 완벽한 자료만으로도 가능합니다. ITExamDump의 덤프들은 모두 전문적으로 IT관련인증시험에 대하여 연구하여 만들어진것이기 때문입니다.
ITExamDump는 IT인증자격증을 취득하려는 IT업계 인사들의 검증으로 크나큰 인지도를 가지게 되었습니다. 믿고 애용해주신 분들께 감사의 인사를 드립니다. Microsoft 70-561-Csharp덤프도 다른 과목 덤프자료처럼 적중율 좋고 통과율이 장난이 아닙니다. 덤프를 구매하시면 퍼펙트한 구매후 서비스까지 제공해드려 고객님이 보유한 덤프가 항상 시장에서 가장 최신버전임을 약속해드립니다. Microsoft 70-561-Csharp덤프만 구매하신다면 자격증 취득이 쉬워져 고객님의 밝은 미래를 예약한것과 같습니다.
Microsoft 인증 70-561-Csharp시험대비덤프를 찾고 계시다면ITExamDump가 제일 좋은 선택입니다.저희ITExamDump에서는 여라가지 IT자격증시험에 대비하여 모든 과목의 시험대비 자료를 발췌하였습니다. ITExamDump에서 시험대비덤프자료를 구입하시면 시험불합격시 덤프비용환불신청이 가능하고 덤프 1년 무료 업데이트서비스도 가능합니다. ITExamDump를 선택하시면 후회하지 않을것입니다.
Microsoft 70-561-Csharp인증덤프가 ITExamDump전문가들의 끈임 없는 노력 하에 최고의 버전으로 출시되었습니다. 여러분의 꿈을 이루어드리려고 말이죠. IT업계에서 자기만의 자리를 잡고 싶다면Microsoft 70-561-Csharp인증시험이 아주 좋은 자격증입니다. 만약Microsoft 70-561-Csharp인증시험 자격증이 있다면 일에서도 많은 변화가 있을 것입니다, 연봉상승은 물론, 자기자신만의 공간도 넓어집니다.
ITExamDump에서 Microsoft인증 70-561-Csharp덤프를 구입하시면 퍼펙트한 구매후 서비스를 제공해드립니다. Microsoft인증 70-561-Csharp덤프가 업데이트되면 업데이트된 최신버전을 무료로 서비스로 드립니다. 시험에서 불합격성적표를 받으시면 덤프구매시 지불한 덤프비용은 환불해드립니다.
Microsoft인증 70-561-Csharp시험은 멋진 IT전문가로 거듭나는 길에서 반드시 넘어야할 높은 산입니다. Microsoft인증 70-561-Csharp시험문제패스가 어렵다한들ITExamDump덤프만 있으면 패스도 간단한 일로 변경됩니다. ITExamDump의Microsoft인증 70-561-Csharp덤프는 100%시험패스율을 보장합니다. Microsoft인증 70-561-Csharp시험문제가 업데이트되면Microsoft인증 70-561-Csharp덤프도 바로 업데이트하여 무료 업데이트서비스를 제공해드리기에 덤프유효기간을 연장해는것으로 됩니다.
시험 번호/코드: 70-561-Csharp
시험 이름: Microsoft (TS:MS.NET Framework 3.5,ADO.NET Application Development)
70-561-Csharp 덤프무료샘플다운로드하기: http://www.itexamdump.com/70-561-Csharp.html
NO.1 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET. The
application connects to a Microsoft SQL Server 2005 database.
The application analyzes large amounts of transaction data that are stored in a different database.
You write the following code segment. (Line numbers are included for reference only.)
01 using (SqlConnection connection = new
SqlConnection(sourceConnectionString))
02 using (SqlConnection connection2 = new
SqlConnection(destinationConnectionString))
03 using (SqlCommand command = new SqlCommand())
04 {
05 connection.Open();
06 connection2.Open();
07 using (SqlDataReader reader = command.ExecuteReader())
08 {
09 using (SqlBulkCopy bulkCopy = new
SqlBulkCopy(connection2))
10 {
NO.2 myConnection.Open();
NO.3 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET.
The application has a DataTable object named OrderDetailTable. The object has the following columns:
ID
OrderID
ProductID
Quantity
LineTotal
The OrderDetailTable object is populated with data provided by a business partner. Some of the records
contain a null value in the LineTotal field and 0 in the Quantity field.
You write the following code segment. (Line numbers are included for reference only.)
01 DataColumn col = new DataColumn("UnitPrice", typeof(decimal));
02
03 OrderDetailTable.Columns.Add(col);
You need to add a DataColumn named UnitPrice to the OrderDetailTable object.
Which line of code should you insert at line 02?
A. col.Expression = "LineTotal/Quantity";
B. col.Expression = "LineTotal/ISNULL(Quantity, 1)";
C. col.Expression = "LineTotal.Value/ISNULL(Quantity.Value,1)";
D. col.Expression = "iif(Quantity > 0, LineTotal/Quantity, 0)";
Answer: D
Microsoft dumps 70-561-Csharp덤프 70-561-Csharp dump 70-561-Csharp dump
NO.4 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET. The
application connects to a Microsoft SQL Server 2005 database.
You write the following code segment. (Line numbers are included for reference only.)
01 using (SqlConnection connection = new
SqlConnection(connectionString)) {
02 SqlCommand cmd = new SqlCommand(queryString, connection);
03 connection.Open();
04
05 while (sdrdr.Read()){
06 // use the data in the reader
07 }
08 }
You need to ensure that the memory is used efficiently when retrieving BLOBs from the database.
Which code segment should you insert at line 04?
A. SqlDataReader sdrdr =
cmd.ExecuteReader();
B. SqlDataReader sdrdr =
cmd.ExecuteReader(CommandBehavior.Default);
C. SqlDataReader sdrdr =
cmd.ExecuteReader(CommandBehavior.SchemaOnly);
D. SqlDataReader sdrdr =
cmd.ExecuteReader(CommandBehavior.SequentialAccess);
Answer: D
Microsoft최신덤프 70-561-Csharp 70-561-Csharp pdf 70-561-Csharp
NO.5 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET. The
application connects to a Microsoft SQL Server 2005 database.
You write the following code segment.
string queryString = "Select Name, Age from dbo.Table_1";
SqlCommand command = new SqlCommand(queryString,
(SqlConnection)connection));
You need to get the value that is contained in the first column of the first row of the result set returned by
the query.
Which code segment should you use?
A. var value = command.ExecuteScalar();
string requiredValue = value.ToString();
B. var value = command.ExecuteNonQuery();
string requiredValue = value.ToString();
C. var value = command.ExecuteReader(CommandBehavior.SingleRow);
string requiredValue = value[0].ToString();
D. var value = command.ExecuteReader(CommandBehavior.SingleRow);
string requiredValue = value[1].ToString();
Answer: A
Microsoft 70-561-Csharp 70-561-Csharp
NO.6 }
NO.7 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET. The
application connects to a Microsoft SQL Server 2005 database.
You write the following code segment.
string query = "Select EmpNo, EmpName from dbo.Table_1;
select Name,Age from dbo.Table_2";
SqlCommand command = new SqlCommand(query, connection);
SqlDataReader reader = command.ExecuteReader();
You need to ensure that the application reads all the rows returned by the code segment.
Which code segment should you use?
A. while (reader.NextResult())
{
Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));
reader.Read();
}
B. while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));
reader.NextResult();
}
C. while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));
}
reader.NextResult();
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));
}
D. while (reader.NextResult())
{
Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));
}
reader.Read();
while (reader.NextResult())
{
Console.WriteLine(String.Format("{0}, {1}",reader[0], reader[1]));
}
Answer: C
Microsoft 70-561-Csharp 70-561-Csharp pdf 70-561-Csharp
NO.8 }
You need to copy the transaction data to the database of the application.
Which code segment should you insert at line 11?
A. reader.Read()
bulkCopy.WriteToServer(reader);
B. bulkCopy.DestinationTableName = "Transactions";
bulkCopy.WriteToServer(reader);
C. bulkCopy.DestinationTableName = "Transactions";
bulkCopy.SqlRowsCopied += new
SqlRowsCopiedEventHandler(bulkCopy_SqlRowsCopied);
D. while (reader.Read())
{
bulkCopy.WriteToServer(reader);
}
Answer: B
Microsoft인증 70-561-Csharp 70-561-Csharp 70-561-Csharp 70-561-Csharp덤프
11. You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET. The
application uses Microsoft SQL Server 2005.
You write the following code segment. (Line numbers are included for reference only.)
01 String myConnString = "User
02 ID=<username>;password=<strong password>;Initial
03 Catalog=pubs;Data Source=myServer";
04 SqlConnection myConnection = new
05 SqlConnection(myConnString);
06 SqlCommand myCommand = new SqlCommand();
07 DbDataReader myReader;
08 myCommand.CommandType =
09 commandType.Text;
10 myCommand.Connection = myConnection;
11 myCommand.CommandText = "Select * from Table1;
Select * from Table2;";
12 int RecordCount = 0;
13 try
14 {
NO.9 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET. The
application connects to a Microsoft SQL Server 2005 database.
The application throws an exception when the SQL Connection object is used.
You need to handle the exception.
Which code segment should you use?
A. try
{
if(null!=conn)
conn.Close();
// code for the query
}
catch (Exception ex)
{
// handle exception
}
finally
{
if(null==conn)
conn.Open();
}
B. try
{
conn.Close();
// code for the query
}
catch (Exception ex)
{
// handle exception
}
finally
{
if(null!=conn)
conn.Open();
}
C. try
{
conn.Open();
// code for the query
}
catch (Exception ex)
{
// handle exception
}
finally
{
if(null!=conn)
conn.Close();
}
D. try
{
conn.Open();
// code for the query
}
catch (Exception ex)
{
// handle exception
}
finally
{
if(null==conn)
conn.Close();
}
Answer: C
Microsoft시험문제 70-561-Csharp 70-561-Csharp자격증 70-561-Csharp 70-561-Csharp dumps
NO.10
NO.11 catch (Exception ex)
NO.12 }
NO.13 myConnection.Close();
NO.14 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET.
The application contains a TextBox control named txtProductID. The application will return a list of active
products that have the ProductID field equal to the txtProductID.Text property.
You write the following code segment. (Line numbers are included for reference only.)
01 private DataSet GetProducts(SqlConnection cn) {
02 SqlCommand cmd = new SqlCommand();
03 cmd.Connection = cn;
04 SqlDataAdapter da = new SqlDataAdapter(cmd);
05 DataSet ds = new DataSet();
06
07 da.Fill(ds);
08 return ds;
09 }
You need to populate the DataSet object with product records while avoiding possible SQL injection
attacks.
Which code segment should you insert at line 06?
A. cmd.CommandText = string.Format("sp_sqlexec 'SELECT ProductID,
Name FROM Product WHERE ProductID={0} AND IsActive=1'", txtProductID.Text);
B. cmd.CommandText = string.Format("SELECT ProductID, Name FROM
Product WHERE ProductID={0} AND IsActive=1", txtProductID.Text);
cmd.Prepare();
C. cmd.CommandText = string.Format("SELECT ProductID, Name FROM
Product WHERE ProductID={0} AND IsActive=1", txtProductID.Text);
cmd.CommandType = CommandType.TableDirect;
D. cmd.CommandText = "SELECT ProductID, Name FROM Product WHERE
ProductID=@productID AND IsActive=1";
cmd.Parameters.AddWithValue("@productID", txtProductID.Text);
Answer: D
Microsoft덤프 70-561-Csharp 70-561-Csharp 70-561-Csharp 70-561-Csharp
NO.15 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET.
You need to ensure that the application can connect to any type of database.
What should you do?
A. Set the database driver name in the connection string of the application, and then create the
connection object in the following manner.
DbConnection connection = new OdbcConnection(connectionString);
B. Set the database provider name in the connection string of the application, and then create the
connection object in the following manner.
DbConnection connection = new OleDbConnection(connectionString);
C. Create the connection object in the following manner.
DbProviderFactory factory =
DbProviderFactories.GetFactory("System.Data.Odbc");
DbConnection connection = factory.CreateConnection();
D. Create the connection object in the following manner.
DbProviderFactory factory =
DbProviderFactories.GetFactory(databaseProviderName);
DbConnection connection = factory.CreateConnection();
Answer: D
Microsoft pdf 70-561-Csharp dump 70-561-Csharp 70-561-Csharp인증 70-561-Csharp
NO.16 }
You need to compute the total number of records processed by the Select queries in the RecordCount
variable.
Which code segment should you insert at line 16?
A. myReader = myCommand.ExecuteReader();
RecordCount = myReader.RecordsAffected;
B. while (myReader.Read())
{
//Write logic to process data for the first result.
}
RecordCount = myReader.RecordsAffected;
C. while (myReader.HasRows)
{
while (myReader.Read())
{
//Write logic to process data for the second result.
RecordCount = RecordCount + 1;
myReader.NextResult();
}
}
D. while (myReader.HasRows)
{
while (myReader.Read())
{
//Write logic to process data for the second result.
RecordCount = RecordCount + 1;
}
myReader.NextResult();
}
Answer: D
Microsoft인증 70-561-Csharp 70-561-Csharp
12. You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET.
The application uses data from a Microsoft SQL Server 2005 database table. A Web page of the
application contains a GridView server control.
You write the following code segment. (Line numbers are included for reference only.)
01 private void LoadGrid()
02 {
03 using (SqlCommand command = new SqlCommand())
04 {
05 command.Connection = connection;
06 command.CommandText = "SELECT * FROM Customers";
07 connection.Open();
08
09 }
10 }
You need to retrieve the data from the database table and bind the data to the DataSource property of the
GridView server control.
Which code segment should you insert at line 08?
A. SqlDataReader rdr = command.ExecuteReader();
connection.Close();
GridView1.DataSource = rdr;
GridView1.DataBind();
B. SqlDataReader rdr = command.ExecuteReader();
GridView1.DataSource = rdr.Read();
GridView1.DataBind();
connection.Close();
C. SqlDataReader rdr = command.ExecuteReader();
Object[] values = new Object[rdr.FieldCount];
GridView1.DataSource = rdr.GetValues(values);
GridView1.DataBind();
connection.Close();
D. DataTable dt = new DataTable();
using (SqlDataReader reader = command.ExecuteReader())
{
dt.Load(reader);
}
connection.Close();
GridView1.DataSource = dt;
GridView1.DataBind();
Answer: D
Microsoft인증 70-561-Csharp시험문제 70-561-Csharp자격증 70-561-Csharp자료 70-561-Csharp 70-561-Csharp자격증
13. You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET.
The application contains a DataSet object named OrderDS that has the Order and OrderDetail tables as
shown in the following exhibit.
You write the following code segment. (Line numbers are included for reference only.)
01 private void GetOrders(SqlDataConnection cn) {
02 SqlCommand cmd = cn.CreateCommand();
03 cmd.CommandText = "Select * from [Order];
Select * from [OrderDetail];";
04 SqlDataAdapter da = new SqlDataAdapter(cmd);
05
06 }
You need to ensure that the Order and the OrderDetail tables are populated.
Which code segment should you insert at line 05?
A. da.Fill(OrderDS);
B. da.Fill(OrderDS.Order);
da.Fill(OrderDS.OrderDetail);
C. da.TableMappings.AddRange(new DataTableMapping[] {
new DataTableMapping("Table", "Order"),
new DataTableMapping("Table1", "OrderDetail")});
da.Fill(OrderDS);
D. DataTableMapping mapOrder = new DataTableMapping();
mapOrder.DataSetTable = "Order";
DataTableMapping mapOrderDetail = new DataTableMapping();
mapOrder.DataSetTable = "OrderDetail";
da.TableMappings.AddRange(new DataTableMapping[]
{ mapOrder, mapOrderDetail });
Da.Fill(OrderDS);
Answer: C
Microsoft pdf 70-561-Csharp pdf 70-561-Csharp pdf
14. You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET.
The application contains a SqlDataAdapter object named daOrder. The SelectCommand property of the
daOrder object is set.
You write the following code segment. (Line numbers are included for reference only.)
01 private void ModifyDataAdapter() {
02
03 }
You need to ensure that the daOrder object can also handle updates.
Which code segment should you insert at line 02?
A. SqlCommandBuilder cb = new SqlCommandBuilder(daOrder);
cb.RefreshSchema();
B. SqlCommandBuilder cb = new SqlCommandBuilder(daOrder);
cb.SetAllValues = true;
C. SqlCommandBuilder cb = new SqlCommandBuilder(daOrder);
daOrder.DeleteCommand = cb.GetDeleteCommand();
daOrder.InsertCommand = cb.GetInsertCommand();
daOrder.UpdateCommand = cb.GetUpdateCommand();
D. SqlCommandBuilder cb = new SqlCommandBuilder(daOrder);
cb.RefreshSchema();
cb.GetDeleteCommand();
cb.GetInsertCommand();
cb.GetUpdateCommand();
Answer: C
Microsoft dumps 70-561-Csharp pdf 70-561-Csharp dump
15. You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET. The
application connects to a Microsoft SQL Server 2005 database.
The connection string of the application is defined in the following manner.
"Server=Prod;Database=WingtipToys;Integrated
Security=SSPI;Asynchronous Processing=true"
The application contains the following code segment. (Line numbers are included for reference only.)
01 protected void UpdateData(SqlCommand cmd) {
02 cmd.Connection.Open();
03
04 lblResult.Text = "Updating ...";
05 }
The cmd object takes a long time to execute.
You need to ensure that the application continues to execute while cmd is executing.
What should you do?
A. Insert the following code segment at line 03.
cmd.BeginExecuteNonQuery(new AsyncCallback(UpdateComplete), cmd);
Add the following code segment.
private void UpdateComplete (IAsyncResult ar) {
int count = (int)ar.AsyncState;
LogResults(count);
}
B. Insert the following code segment at line 03.
cmd.BeginExecuteNonQuery(new AsyncCallback(UpdateComplete), cmd);
Add the following code segment.
private void UpdateComplete (IAsyncResult ar) {
SqlCommand cmd = (SqlCommand)ar.AsyncState;
int count = cmd.EndExecuteNonQuery(ar);
LogResults(count);
}
C. Insert the following code segment at line 03.
cmd.StatementCompleted += new
StatementCompletedEventHandler(UpdateComplete);
cmd.ExecuteNonQuery();
Add the following code segment.
private void UpdateComplete (object sender, StatementCompletedEventArgs e) {
int count = e.RecordCount;
LogResults(count);
}
D. Insert the following code segment at line 03.
SqlNotificationRequest notification = new
SqlNotificationRequest("UpdateComplete", "", 10000);
cmd.Notification = notification;
cmd.ExecuteNonQuery();
Add the following code segment.
private void UpdateComplete(SqlNotificationRequest notice) {
int count = int.Parse(notice.UserData);
LogResults(count);
}
Answer: B
Microsoft덤프 70-561-Csharp dump 70-561-Csharp 70-561-Csharp
NO.17 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET. The
application connects to a Microsoft SQL Server 2005 database.
You need to separate the security-related exceptions from the other exceptions for database operations at
run time.
Which code segment should you use?
A. catch (System.Security.SecurityException ex)
{
//Handle all database security related exceptions.
}
B. catch (System.Data.SqlClient.SqlException ex)
{
for (int i = 0; i < ex.Errors.Count; i++){
if (ex.Errors[i].Class.ToString() == "14") {
//Handle all database security related exceptions.
}
else{
//Handle other exceptions
}
}
}
C. catch (System.Data.SqlClient.SqlException ex)
{
for (int i = 0; i < ex.Errors.Count; i++){
if (ex.Errors[i].Number == 14){
//Handle all database security related exceptions.
}
else{
//Handle other exceptions
}
}
}
D. catch (System.Data.SqlClient.SqlException ex)
{
for (int i = 0; i < ex.Errors.Count; i++){
if (ex.Errors[i].Message.Contains("Security")){
//Handle all database security related exceptions.
}
else{
//Handle other exceptions
}
}
}
Answer: B
Microsoft 70-561-Csharp최신덤프 70-561-Csharp 70-561-Csharp
NO.18 finally
NO.19 {
NO.20
NO.21 }
NO.22 {
NO.23 }
NO.24 You create an application by using the Microsoft .NET Framework 3.5 and Microsoft ADO.NET.
The application contains a DataSet object named orderDS. The object contains a table named Order as
shown in the following exhibit.
The application uses a SqlDataAdapter object named daOrder to populate the Order table.
You write the following code segment. (Line numbers are included for reference only.)
01 private void FillOrderTable(int pageIndex) {
02 int pageSize = 5;
03
04 }
You need to fill the Order table with the next set of 5 records for each increase in the pageIndex value.
Which code segment should you insert at line 03?
A. string sql = "SELECT SalesOrderID, CustomerID, OrderDate FROM
Sales.SalesOrderHeader";
daOrder.SelectCommand.CommandText = sql;
daOrder.Fill(orderDS, pageIndex, pageSize, "Order");
B. int startRecord = (pageIndex - 1) * pageSize;
string sql = "SELECT SalesOrderID, CustomerID, OrderDate FROM
Sales.SalesOrderHeader";
daOrder.SelectCommand.CommandText = sql;
daOrder.Fill(orderDS, startRecord, pageSize, "Order");
C. string sql = string.Format("SELECT TOP {0} SalesOrderID,
customerID,
orderDate FROM Sales.SalesOrderHeader WHERE SalesOrderID > {1}",
pageSize, pageIndex);
daOrder.SelectCommand.CommandText = sql;
daOrder.Fill(orderDS, "Order");
D. int startRecord = (pageIndex - 1) * pageSize;
string sql = string.Format("SELECT TOP {0} SalesOrderID, CustomerID,
orderDate FROM Sales.SalesOrderHeader WHERE SalesOrderID > {1}",
pageSize, startRecord);
daOrder.SelectCommand.CommandText = sql;
daOrder.Fill(orderDS, "Order");
Answer: B
Microsoft인증 70-561-Csharp 70-561-Csharp 70-561-Csharp덤프 70-561-Csharp 70-561-Csharp자료
지금 사회에 능력자들은 아주 많습니다.it인재들도 더욱더 많아지고 있습니다.많은 it인사들은 모두 관연 it인증시험에 참가하여 자격증취득을 합니다.자기만의 자리를 확실히 지키고 더 높은 자리에 오르자면 필요한 스펙이니까요.70-561-Csharp시험은Microsoft인증의 중요한 시험이고 또 많은 it인사들은Microsoft자격증을 취득하려고 노력하고 있습니다.
댓글 없음:
댓글 쓰기