State 패턴을이용해서 csv파일 읽기

H
HYUNWOO KIMStudent at nextinstitute
State 패턴을이용해서
csv파일 읽기
Nextinstitute 김현우
CSV 파일
CSV 파일
• MS-DOS나 그 이전부터 사용된 스프레드 시트데이터 포맷.
• 표준규약으로는 RFC4180이 있다.(2005년 이후에 표준)
RFC4180
• 각각의 데이터를 필드라고 부르고 필드의 모음을 레코드라고
한다.
• 필드의 구분은 컴마(,), 레코드의 구분은 CR(r),LF(n) 으로 되
어 있다.
• 필드는 쌍따옴표로 전체를 감싸거나 감싸지 않을 수도 있다.
• 쌍따옴표로 둘러싸는 것을 “이스케이프 한다”라고 한다.
• 필드가 컴마,이중따옴표,CR,LF이 있을때는 필드를 이스케이프
해야 한다.
• 이스케이프 된 필드의 이중따옴표는 “”으로 표시 한다.
State 패턴
부모클래스의 포인터
• 부모 클래스의 포인터는 자식클래스의 포인터를 가리킬수 있다.
스테이트가 따로 멤버 변수가 없기 때문에 고민없
이 스테틱으로 만들고 매번 동적할당
하지 않아도 된다. 물론 매번 동적할당하고 상태
가 변할때 이전 상태를 delete 해도 된다.
모니터는 스테이트 포인터를 갖고 있으면서
스테이트를 상속받은 State_disable와 State_enable를
상황에 따라 갖는다
State_disable일때는
State_enable로
State_enable일때는
State_disable로 바뀐다.
CSV에 대한 스테이트 패턴
기본적인 동작
• 핸들러는 스트링을 입력 받아서 html형식으로 바꿔 준다.
• 파서는 각문자를 분류한다.
• 파서는 스테이트와 컨텍스트를 가지고 있다.
• 스테이트는 문자와 컨텍스트를 받고 컨텍스트를 동작 시킨다.
• 컨텍스트는 필드,레코드를 다루는 역할을 한다.
기본적인 동작
• 하나의 필드를 나타내는 스트
링객체,
• 하나의 레코드를 나타내는 스
트링 객체의 큐
• 전체를 나타내는 레코드의 큐
• 각각의 문자에 따라서 필드에
넣거나, 필드를 레코드에 넣고
비우거나, 레코드를 전체에 넣
고 비운다.
상태변화를 그림으로 그리면
기본 줄바꿈
이스케이프
이스케이프
끝남
컴마
컴마
컴마
나머지
n,나머지
쌍따옴표
컴마,r,n,나머지
쌍따옴표
쌍따옴표
n,나머지
쌍따옴표
r
n
r
r
필드가 바뀐다.
필드에 넣는다.
저장하지 않고 이스케이프로
다 필드에 넣는다.
저장하지 않고 이스케이프 끝남
저장하고 이스케이프
필드가 바뀐다.
필드에 넣는다.
저장하지 않고 이스케이프로
레코드 바꿈
1 of 10

Recommended

amugona study 1회 by
amugona study 1회amugona study 1회
amugona study 1회who7117
820 views27 slides
amugona study 2nd by
amugona study 2ndamugona study 2nd
amugona study 2ndwho7117
292 views29 slides
R변경구조 by
R변경구조R변경구조
R변경구조Morris Kim
1.8K views33 slides
컴퓨터개론08 by
컴퓨터개론08컴퓨터개론08
컴퓨터개론08Edward Hwang
429 views16 slides
Asynchronous agents library(aal)pdf by
Asynchronous agents library(aal)pdfAsynchronous agents library(aal)pdf
Asynchronous agents library(aal)pdfHYUNWOO KIM
474 views22 slides
Microsoft pp lpdf by
Microsoft pp lpdfMicrosoft pp lpdf
Microsoft pp lpdfHYUNWOO KIM
334 views15 slides

More Related Content

Featured

Google's Just Not That Into You: Understanding Core Updates & Search Intent by
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
6.5K views99 slides
How to have difficult conversations by
How to have difficult conversations How to have difficult conversations
How to have difficult conversations Rajiv Jayarajah, MAppComm, ACC
5.2K views19 slides
Introduction to Data Science by
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data ScienceChristy Abraham Joy
82.4K views51 slides
Time Management & Productivity - Best Practices by
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
169.7K views42 slides
The six step guide to practical project management by
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
36.6K views27 slides
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... by
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
12.7K views21 slides

Featured(20)

Google's Just Not That Into You: Understanding Core Updates & Search Intent by Lily Ray
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray6.5K views
Time Management & Productivity - Best Practices by Vit Horky
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky169.7K views
The six step guide to practical project management by MindGenius
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius36.6K views
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... by RachelPearson36
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson3612.7K views
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... by Applitools
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools55.5K views
12 Ways to Increase Your Influence at Work by GetSmarter
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
GetSmarter401.7K views
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G... by DevGAMM Conference
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference3.6K views
Barbie - Brand Strategy Presentation by Erica Santiago
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago25.1K views
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well by Saba Software
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software25.2K views
Introduction to C Programming Language by Simplilearn
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
Simplilearn8.4K views
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr... by Palo Alto Software
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
Palo Alto Software88.4K views
9 Tips for a Work-free Vacation by Weekdone.com
9 Tips for a Work-free Vacation9 Tips for a Work-free Vacation
9 Tips for a Work-free Vacation
Weekdone.com7.2K views
How to Map Your Future by SlideShop.com
How to Map Your FutureHow to Map Your Future
How to Map Your Future
SlideShop.com275.1K views
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -... by AccuraCast
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
AccuraCast3.4K views

State 패턴을이용해서 csv파일 읽기

  • 3. CSV 파일 • MS-DOS나 그 이전부터 사용된 스프레드 시트데이터 포맷. • 표준규약으로는 RFC4180이 있다.(2005년 이후에 표준)
  • 4. RFC4180 • 각각의 데이터를 필드라고 부르고 필드의 모음을 레코드라고 한다. • 필드의 구분은 컴마(,), 레코드의 구분은 CR(r),LF(n) 으로 되 어 있다. • 필드는 쌍따옴표로 전체를 감싸거나 감싸지 않을 수도 있다. • 쌍따옴표로 둘러싸는 것을 “이스케이프 한다”라고 한다. • 필드가 컴마,이중따옴표,CR,LF이 있을때는 필드를 이스케이프 해야 한다. • 이스케이프 된 필드의 이중따옴표는 “”으로 표시 한다.
  • 6. 부모클래스의 포인터 • 부모 클래스의 포인터는 자식클래스의 포인터를 가리킬수 있다. 스테이트가 따로 멤버 변수가 없기 때문에 고민없 이 스테틱으로 만들고 매번 동적할당 하지 않아도 된다. 물론 매번 동적할당하고 상태 가 변할때 이전 상태를 delete 해도 된다. 모니터는 스테이트 포인터를 갖고 있으면서 스테이트를 상속받은 State_disable와 State_enable를 상황에 따라 갖는다 State_disable일때는 State_enable로 State_enable일때는 State_disable로 바뀐다.
  • 8. 기본적인 동작 • 핸들러는 스트링을 입력 받아서 html형식으로 바꿔 준다. • 파서는 각문자를 분류한다. • 파서는 스테이트와 컨텍스트를 가지고 있다. • 스테이트는 문자와 컨텍스트를 받고 컨텍스트를 동작 시킨다. • 컨텍스트는 필드,레코드를 다루는 역할을 한다.
  • 9. 기본적인 동작 • 하나의 필드를 나타내는 스트 링객체, • 하나의 레코드를 나타내는 스 트링 객체의 큐 • 전체를 나타내는 레코드의 큐 • 각각의 문자에 따라서 필드에 넣거나, 필드를 레코드에 넣고 비우거나, 레코드를 전체에 넣 고 비운다.
  • 10. 상태변화를 그림으로 그리면 기본 줄바꿈 이스케이프 이스케이프 끝남 컴마 컴마 컴마 나머지 n,나머지 쌍따옴표 컴마,r,n,나머지 쌍따옴표 쌍따옴표 n,나머지 쌍따옴표 r n r r 필드가 바뀐다. 필드에 넣는다. 저장하지 않고 이스케이프로 다 필드에 넣는다. 저장하지 않고 이스케이프 끝남 저장하고 이스케이프 필드가 바뀐다. 필드에 넣는다. 저장하지 않고 이스케이프로 레코드 바꿈