C# Log Write ์™€ Read

์•ˆ๋…•ํ•˜์„ธ์š”!!
๋„ค ์ง์žฅ์ธ 2๋…„์ฐจ ๋‰ด๋น„์ž…๋‹ˆ๋‹ค, ์„ ๋ฐฐ๋‹˜๋“ค ์ž˜ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ^โ€“^
์ €๋Š” ์ œ์กฐ์—… ํšŒ์‚ฌ์— ์žฌ์ง์ค‘์ด๋ฉฐ C# ์„ ํ™œ์šฉํ•ด ๋ฌผ๋ฅ˜ ์ด๋™์ด๋‚˜ ์ƒํƒœํ‘œ์‹œ ๋“ฑ ๊ฐ„๋‹จํ•œ(?) ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” Timer ๋ฅผ ํ†ตํ•ด ๋ฌผ๋ฅ˜ ๊ด€๋ จ ํ•ญ๋ชฉ์„ Logging ์ž‘์—…์œผ๋กœ ์—‘์…€์— ์ €์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฌด์—‡์„ ํ•˜๊ณ ์ž ํ•˜๋Š”์ง€

ํ”„๋กœ๊ทธ๋žจ์—์„œ Logging ์ž‘์—…์„ ํ•˜๋ฉด์„œ ์ž‘์—…์ž๊ฐ€ ํ•ด๋‹น Excel ํŒŒ์ผ์„ ๊ฐ„์„ญ์—†์ด ์—ด๋žŒํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • ํ˜„์žฌ ์ž‘์„ฑํ•œ ์ฝ”๋“œ ์ค‘ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๋ถ€๋ถ„

๊ธฐ์กด ์ฝ”๋“œ
using (swSave = new StreamWriter(strFilePath, true, Encoding.UTF8))
{
swSave.WriteLine(strBld);
}

  • using ๋ฌธ์„ ํ™œ์šฉํ•ด swSave(StreamWriter) ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฒฝ๋กœ(strFilePath) ์— ๋ฐ์ดํ„ฐ(strBld) ๋ฅผ Write ํ•ฉ๋‹ˆ๋‹ค.

  • ํ•˜์ง€๋งŒ ์ž‘์—…์ž๊ฐ€ Excel ํŒŒ์ผ์„ Open ํ•œ๋‹ค๋ฉด, ๋งค์ดˆ swSave ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ, ํ•ด๋‹น ๊ฒฝ๋กœ ํŒŒ์ผ์ด ์ด๋ฏธ ์—ด๋ ค ์žˆ์œผ๋ฏ€๋กœ IOException ๋ฐœ์ƒ โ†’ ๋ฐœ์ƒ ์‹œ๊ฐ„๋™์•ˆ Log Data ๋ˆ„๋ฝ

  • ๊ธฐ๋Œ€ํ•˜๋Š” ๋™์ž‘

๋Œ€์•ˆ 1. Excel ํŒŒ์ผ ์†์„ฑ์„ ์ฝ๊ธฐ์ „์šฉ์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
์ •๋ง 1์ฐจ์›์ ์ธ ์ƒ๊ฐ์ด์˜€์Šต๋‹ˆ๋‹คโ€ฆ ์ฝ๊ธฐ์ „์šฉ์œผ๋กœ ํ•˜๋‹ˆ swSave ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ํ•ด๋‹น ๊ฒฝ๋กœ ํŒŒ์ผ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์•ˆ 2. FileStream ์†์„ฑ์„ ์ง€์ •ํ•œ๋‹ค.
FileStream fsSave = new FileStream(strFilePath, FileMode.Append, FileAccess.Write, FileShare.Read);

using (swSave = new StreamWriter(fsSave, Encoding.UTF8))
{
swSave.WriteLine(strBld);
}

  • FileMode(Path์˜ ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ํ•  ํ–‰๋™์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค) : Append (ํŒŒ์ผ์„ ์—ด๊ณ  ํŒŒ์ผ์˜ ๋๊นŒ์ง€ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.)
  • FileAccess(๋‚ด๊ฐ€(๋ณธ์ธ ํ”„๋กœ์„ธ์Šค) ์ด ํŒŒ์ผ์„ ์—ด ๋•Œ์— ์ง€์ •ํ•  ๊ถŒํ•œ์„ ์˜๋ฏธ) : Write (ํŒŒ์ผ์— ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)
  • FileShare(๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค(์Šค๋ ˆ๋“œ)๊ฐ€ ํŒŒ์ผ์„ ์—ด ๋•Œ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ์ง€์ •) : Read (๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํŒŒ์ผ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” Write ํ•˜๋ฉด์„œ ์ž‘์—…์ž๋Š” Read ์†์„ฑ์œผ๋กœ ํŒŒ์ผ์„ Open ํ•˜๋ฉด ๋  ์ค„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์•„๋ž˜์™€ ๊ฐ™์€ ๋‘๊ฐ€์ง€ case ๊ฐ€ ๋ฐ˜๋ณต ๋ฌ์Šต๋‹ˆ๋‹ค.

case 1) ํŒŒ์ผ์ด Write ์ค‘์ผ ๋•Œ, ์ž‘์—…์ž๊ฐ€ Open ํ•œ ๊ฒฝ์šฐ ( ํ”„๋กœ๊ทธ๋žจ์ด ์„ ์ ํ•œ ๊ฒฝ์šฐ )
ํ•ด๋‹น ๊ฒฝ์šฐ๋Š” Excel ์—์„œ ์ฝ๊ธฐ์ „์šฉ์œผ๋กœ Open ํ• ์ง€ ๋ฌผ์–ด๋ด…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฐ์ดํ„ฐ ์—ด๋žŒ๋„ ๊ฐ€๋Šฅํ•˜๊ณ  Write ๋„ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

case 2) ํŒŒ์ผ์ด ์•„์ง Write ์•ˆํ•  ๋•Œ, ์ž‘์—…์ž๊ฐ€ ๋จผ์ € Open ํ•œ ๊ฒฝ์šฐ (๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์„ ์ ํ•œ ๊ฒฝ์šฐ )
ํ•ด๋‹น ๊ฒฝ์šฐ๋Š” Excel ์€ ์ผ๋ฐ˜ ํŒŒ์ผ์ฒ˜๋Ÿผ ์—ด๋ฆฌ๊ณ  ๋ฐ”๋กœ swSave ์—์„œ ํ•ด๋‹น ํŒŒ์ผ์ด ์—ด๋ ธ์œผ๋ฏ€๋กœ IOException ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋์œผ๋กœ ์“ฐ๋‹ค๋ณด๋‹ˆ ๋ง์ด ๊ธธ์—ˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ์‹ค ์š”์ฆ˜ ๋А๋ผ๋Š” ์ƒ๊ฐ์€ ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ ์ฐพ์•„๋ณด๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธ ํ•ด๋ณด์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ๋‘๋ฃจ๋ญ‰์‹คํ•˜๊ฒŒ ๊ฒ€์ƒ‰์„ ํ•˜๋‹ค๋ณด๋‹ˆ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋Š”๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ญ”๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋ฉด์„œ ๋˜‘๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณตํ•ด ๋งค๋„ˆ๋ฆฌ์ฆ˜(?) ์— ๋น ์ง€๋Š” ๋А๋‚Œ๋„ ๋“œ๋Š”๊ฑฐ ๊ฐ™๊ตฌ์š”. ๋ญ”๊ฐ€ ์ด๋ฒˆ ๊ณ„๊ธฐ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ์„ ํ•ด๋‚˜๊ฐ€๋ฉด์„œ ๋‹น์—ฐํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋ถ€๋ถ„๋“ค์„ ๋œฏ์–ด ๊ณ ์น˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ข‹์€ ๋ฐฉ๋ฒ•๊ณผ ๋„์›€๋ ๋งŒํ•œ ์ •๋ณด๋„ ๋ชจ๋‘ ํ™˜์˜์ž…๋‹ˆ๋‹ค!
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

โ€“์ฐธ๊ณ  URL : [C#] ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ๊ฒŒ ํŒŒ์ผ ์—ด๊ธฐ (FileAccess, FileShare)

1๊ฐœ์˜ ์ข‹์•„์š”

๋ณธ์ธ ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ํŒŒ์ผ์— ์—‘์„ธ์Šคํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ์ œ์ธ๊ฐ€์š”?

file๊ณผ file_old๋กœ ๋‚˜๋ˆ ์„œ file์—๋Š” ์ƒˆ๋กœ์šด ๋‚ด์šฉ์„ ์ ๊ณ  file_old๋ฅผ ์ œ๊ฐ€ ๋ณด๋Š” ๊ฒƒ์ด์ฃ , ์ œ๊ฐ€ ์—‘์…€์„ ๋‹ซ์•„์„œ file_old์— ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•  ๋•Œ file์˜ ๋‚ด์šฉ์„ file_old์— ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ฐฉ๋ฒ•์˜ ๋‹จ์ ์€ ๋ฉ”๋ชจ๋ฆฌ์ ์œผ๋กœ ์ข‹์ง€ ์•Š๋‹ค, ์ด๊ฑด file์ด ์•„๋‹Œ ๋ณ€์ˆ˜์— ๋‹ด์•„๋†จ๋‹ค ์˜ฎ๊ธฐ๋ฉด ๋ ๊ฑฐ๊ฐ™๊ตฌ์š”. ์‹ค์‹œ๊ฐ„์œผ๋กœ๋Š” ๋ชป๋ณธ๋‹ค ์ •๋„ ๊ฐ™์Šต๋‹ˆ๋‹ค.

3๊ฐœ์˜ ์ข‹์•„์š”

Read/Write๋ฅผ ๋™์‹œ์— ํ•ด์•ผ๋˜๋Š”๋ฐ, ์ด๊ฑธ ์—‘์…€ ํŒŒ์ผ๋กœ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์‹œ๋„๋ถ€ํ„ฐ๊ฐ€ ์ž˜๋ชป๋œ๊ฒ๋‹ˆ๋‹ค.
ํ•˜์ง€ ๋ง์•„์•ผ๋˜๋Š” ๊ฑธ, ์•ˆ๋˜๋Š”๊ฑธ, ํ•  ํ•„์š”๊ฐ€ ์—†๋Š”๊ฑธ ์–ต์ง€๋กœ ํ•˜๋ ค๊ณ  ํ•˜์ง€ ๋งˆ์„ธ์š”.
SQLite๋‚˜ LiteDB ๊ฐ™์€ ๋กœ์ปฌdb ์“ฐ์„ธ์š”.

3๊ฐœ์˜ ์ข‹์•„์š”

์ž๋งˆ๋ฆฐ๋‹˜ ๋ง์”€๋Œ€๋กœ ์™ธ๋ถ€ํˆด์„ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ œ์•ฝ ์กฐ๊ฑด์ด ๋ฌด์กฐ๊ฑด ๋ฐœ์ƒํ•˜๋ฉฐ,
์›ํ•˜๋Š” ๋™์ž‘์„ ํ•˜๋ฉด ์šด์ด ์ข‹์€๊ฒƒ์ด๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์•ˆ๋˜๋Š”๊ฒŒ ์ •์ƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ทฐ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๊ณ ์š”.
๋‹ค์Œ์œผ๋กœ ๊ผญ ์—‘์…€๋กœ ๋ด์•ผ๊ฒ ๋‹ค๋ฉด ์•„๋ฉ”๋ฆฌ์นด๋…ธ๋‹˜ ๋ง์”€๋Œ€๋กœ ์‹ค์‹œ๊ฐ„์„ ํฌ๊ธฐํ•˜๊ณ 
์“ฐ๊ธฐ ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒฝ์šฐ ๋ณ„๋„์˜ ์ž„์‹œ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋‹ค ์—๋Ÿฌ๊ฐ€ ์•ˆ๋‚  ๋•Œ ํ•œ๋ฒˆ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2๊ฐœ์˜ ์ข‹์•„์š”

๊ตณ์ด ์™œ ์ด๊ฑธ Read / Write๋ฅผ ๋™์‹œ์— ํ•˜์‹œ๋ ค๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‘๋ฒˆ์งธ ์ผ€์ด์Šค๋ฅผ ํฌ๊ธฐ๋ฅผ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค ใ…Žใ…Ž
ํ”„๋กœ๊ทธ๋žจ์—์„œ ํŒŒ์ผ์„ ์—ด๊ธฐ์ „ ์ด๋ฏธ ์—ด๋ ค์žˆ๋‹ค๋ฉด ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ ์‹คํ–‰์ด ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
๊ตณ์ด ํ•˜๊ฒ ๋‹ค๋ฉด ์•„๋ฉ”๋ฆฌ์นด๋…ธ๋‹˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๊ธดํ•œ๋ฐ โ€ฆ
๊ทผ๋ฐ ๊ฐœ์ธ์ ์œผ๋กœ ๊ฐ™์€ ์ œ์กฐ์—… ์ข…์‚ฌ์ž๋กœ์„œ ์ž‘์—…์ž์—๊ฒŒ ๋™์‹œ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค๊ณ  ์„ค๋“ํ•˜์‹œ๋Š”๊ฒŒ ์—ฌ๋Ÿฌ๋ชจ๋กœ ๋” ๋‚˜์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณจ๋จธ๋ฆฌ ์จ์„œ ๊ตฌํ˜„์„ ํ•ด๋‘ฌ๋ดค์ž ๋ถˆ์•ˆ์ • ํ•˜๊ฑฐ๋‹ˆ์™€ ๋‚˜์ค‘์— ํ”„๋กœ๊ทธ๋žจ์— ๋ป—์–ด๋ฒ„๋ฆฌ๋ฉด ์ž‘์—…์ž๋“ค ๋Œ€์‘ ์•„์‹œ์ฃ ?? ใ…‹ใ…‹

2๊ฐœ์˜ ์ข‹์•„์š”

๋งŽ์€ ์กฐ์–ธ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ์ œ๊ฐ€ ๋ถˆํ•„์š”ํ•œ ๋ถ€๋ถ„์— ์‹ ๊ฒฝ์„ ๋งŽ์ด ์“ด๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Tokhi ๋‹˜ ์˜๊ฒฌ์ฒ˜๋Ÿผ ์ž‘์—…์ž์—๊ฒŒ ์„ค๋“ํ•˜๋Š”๊ฒŒ ๋‚˜์„๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์—๋Š” ์ข€๋” ์˜๋ฏธ์žˆ๋Š” ์งˆ๋ฌธ์œผ๋กœ ๊ธ€ ์˜ฌ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!

1๊ฐœ์˜ ์ข‹์•„์š”

ํšŒ์‚ฌ์—์„œ ํ†ตํ•ฉ๋กœ๊น…(์—˜ํฌ)์„ ์ง€์›ํ•ด์ค„์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜
๋กœ๊น…์€ ์—˜ํฌ๊ฐ€ ๋Œ€์„ธ์ด๋ฉฐ~ ๋กœ๊น…์„ ์ž˜ ์Œ“์œผ๋ฉด bi์„ฑ ๋ฐ์ดํ„ฐ๋„ ์ €๋ ดํ•œ ๋น„์šฉ์œผ๋กœ ์‹œ๊ฐํ™”ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—˜ํฌ๋Š” ์„ค์น˜/ํด๋ผ์šฐ๋“œ๋กœ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ• ์ˆ˜ ์žˆ๋Š” ์Šคํƒ์ด๋ฉฐ ms ํด๋ผ์šฐ๋“œ ์“ธํ•„์š”์—†์œผ๋‚˜
ms๊ฐ€ ๊ด€๋ จ๊ธฐ์ˆ  ์ž˜ ์„ค๋ช…์„ ํ•ด์ฃผ์–ด์„œ ๋‹ท๋„ท์—์„œ๋„ ์‰ฝ๊ฒŒ ์“ธ์ˆ˜์žˆ์œผ๋‹ˆ ์•„๋ž˜ ๋‚ด์šฉ๋„ ์ฐธ๊ณ ํ•˜๋ฉด ๋„์›€๋ ๊ฒƒ๊ฐ™์Šต๋‹ˆ๋‹ค.

(์—‘์…€์ด ์•„๋‹Œ ํ‚ค๋ฐ”๋‚˜ ํ†ตํ•ฉ๋ทฐ์—์„œ ๋…ธ์ฝ”๋”ฉ ๋Œ€์‹œ๋ณด๋“œํ™” ํ• ์ˆ˜์žˆ๋Š”๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค)