Skip to content

mingjuu/CppConsoleTextEditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ ์ฝ˜์†” ๊ธฐ๋ฐ˜ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ

๐Ÿ“Œ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ์„ค๊ณ„ ๊ณผ๋ชฉ์˜ ํ…€ํ”„๋กœ์ ํŠธ๋กœ, C++ ๊ธฐ๋ฐ˜์˜ ์ฝ˜์†” ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒฐ๊ณผ๋ฌผ์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋‹จ์œ„ ์ถœ๋ ฅ, ๋ฌธ์ž์—ด ์กฐ์ž‘, ํ…์ŠคํŠธ ํƒ์ƒ‰ ๋ฐ ์ˆ˜์ • ๊ธฐ๋Šฅ ๋“ฑ์„ ํฌํ•จํ•˜๋ฉฐ, ๋””์ž์ธ ํŒจํ„ด ์„ ํ™œ์šฉํ•œ ๊ฐ์ฒด์ง€ํ–ฅ์  ์„ค๊ณ„๋ฅผ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.


๐ŸŽฏ ๊ณผ์ œ ๋ชฉํ‘œ

  • test.txt ํŒŒ์ผ์„ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ์ž๋™ ๋กœ๋“œ
  • ํ•œ ํŽ˜์ด์ง€๋Š” 20๋ผ์ธ ร— 75๋ฐ”์ดํŠธ ๊ธฐ์ค€์œผ๋กœ ์ถœ๋ ฅ
  • ์‚ฌ์šฉ์ž์˜ ๋ช…๋ น์–ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ…์ŠคํŠธ ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฒ€์ƒ‰, ์น˜ํ™˜ ๋“ฑ์„ ์ฒ˜๋ฆฌ
  • ์‹ฑ๊ธ€ํ†ค ๋””์ž์ธ ํŒจํ„ด์„ ํ™œ์šฉํ•œ ๊ตฌ์กฐ์ ์ธ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ๊ตฌํ˜„
  • ๋น„์ •์ƒ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

๐Ÿงฉ ๋””์ž์ธ ํŒจํ„ด ์ ์šฉ

โœ” ์‚ฌ์šฉํ•œ ํŒจํ„ด: Singleton Pattern

์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” TextEditor ํด๋ž˜์Šค์— ์‹ฑ๊ธ€ํ†ค(Singleton) ํŒจํ„ด์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

  • TextEditor๋Š” ํ…์ŠคํŠธ ํŽธ์ง‘์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ ์ „๋ฐ˜์—์„œ ๋นˆ๋ฒˆํ•˜๊ฒŒ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜๋กœ ์ œํ•œํ•จ์œผ๋กœ์จ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ๋ฐฉ์ง€ํ•˜๋„๋ก ์˜๋„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹ค์ œ ๊ตฌํ˜„์—์„œ๋Š” static ํฌ์ธํ„ฐ์™€ getInstance() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ ๋ฐ ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ ์ฃผ์š” ํŒŒ์ผ ๊ตฌ์„ฑ ๋ฐ ์„ค๋ช…

ํŒŒ์ผ๋ช… ์„ค๋ช…
TextEditor.h ํŽธ์ง‘ ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋Š” ํ•ต์‹ฌ ํด๋ž˜์Šค์ด๋ฉฐ, Singleton ํŒจํ„ด์ด ์ ์šฉ๋จ
File.h ํ…์ŠคํŠธ ํŒŒ์ผ ์ฝ๊ธฐ, ํŽ˜์ด์ง€ ์ •๋ณด ์œ ์ง€ ๋“ฑ ์ž…์ถœ๋ ฅ ๊ด€๋ฆฌ ๋‹ด๋‹น
InputView.h ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” UI ๋ ˆ๋ฒจ ์ธํ„ฐํŽ˜์ด์Šค
PrintFile.h ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ˜์†”์— ์ถœ๋ ฅ (20๋ผ์ธ ร— 75๋ฐ”์ดํŠธ ๊ธฐ์ค€)
RequesParser.h ๋ช…๋ น์–ด๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ๊ฐ ๋ช…๋ น์— ๋งž๋Š” ์ธ์ž๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ
main.cpp ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์ . ํŒŒ์ผ ๋กœ๋”ฉ, ๋ฉ”๋‰ด ์ถœ๋ ฅ, ์‚ฌ์šฉ์ž ๋ช…๋ น ์ฒ˜๋ฆฌ ๋ฃจํ”„ ๋“ฑ

โš™๏ธ ์ฃผ์š” ๋ช…๋ น์–ด ๊ธฐ๋Šฅ

๋ช…๋ น์–ด ์„ค๋ช…
i(line, index, text) ํ•ด๋‹น ๋ผ์ธ์˜ index ์œ„์น˜์— ๋ฌธ์ž์—ด ์‚ฝ์ž…
d(line, index, length) ํ•ด๋‹น ๋ผ์ธ์˜ index ์œ„์น˜๋ถ€ํ„ฐ length ๋ฐ”์ดํŠธ ์‚ญ์ œ
s(word) ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋œ ๋ผ์ธ์„ ํŽ˜์ด์ง€ ์ตœ์ƒ๋‹จ์— ์œ„์น˜์‹œํ‚ค๋ฉฐ ์ถœ๋ ฅ
c(target, replacement) ๋ชจ๋“  target ๋ฌธ์ž์—ด์„ replacement๋กœ ์น˜ํ™˜
t ํŽธ์ง‘๋œ ๋‚ด์šฉ์„ ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ์ข…๋ฃŒ
n ๋‹ค์Œ ํŽ˜์ด์ง€ ์ถœ๋ ฅ
p ์ด์ „ ํŽ˜์ด์ง€ ์ถœ๋ ฅ

โœ… ์ž…๋ ฅ ์˜ˆ์‹œ

์ž…๋ ฅ: i(1,10,hello) โ†’ 1๋ฒˆ์งธ ๋ผ์ธ 10๋ฒˆ์งธ ์œ„์น˜์— 'hello' ์‚ฝ์ž…  
์ž…๋ ฅ: d(2,10,3)     โ†’ 2๋ฒˆ์งธ ๋ผ์ธ 10๋ฒˆ์งธ ์œ„์น˜๋ถ€ํ„ฐ 3๋ฐ”์ดํŠธ ์‚ญ์ œ  
์ž…๋ ฅ: c(hello,bye)  โ†’ 'hello' ๋ฌธ์ž์—ด ์ „์ฒด๋ฅผ 'bye'๋กœ ๋ณ€๊ฒฝ  
์ž…๋ ฅ: s(bye)        โ†’ 'bye'๊ฐ€ ์žˆ๋Š” ์ฒซ ๋ผ์ธ์„ ํ™”๋ฉด ์ƒ๋‹จ์— ์ถœ๋ ฅ  
์ž…๋ ฅ: t             โ†’ ์ €์žฅ ํ›„ ์ข…๋ฃŒ  

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published