본문 바로가기
프로젝트/사이드 프로젝트

TDD기반 개발 프로젝트1: 프로그램의 목표 설정하기

by soypablo 2023. 6. 23.

개발에 들어가기 전에, 우리의 프로그램이 어떤 목표를 가지고 있는지 명확히 설정하는 것이 중요하다.

이전 글에 언급했듯, 프로그램의 목표는 문자열|파일을 입력으로 받아, 특정 패턴을 가지는 문자열의 영역을 볼드처리(마크다운 에서는 '**'나 '_ _'로 감싸는 것을 말한다.)하는 프로그램이다.

우리가 명확히 해야할 목표는 다음과 같다.

  1. '특정 패턴'은 어떤 패턴인가?
  2. '특정 패턴'을 어떻게 탐지할 것인가?
  3. '특정 패턴'을 어떻게 볼드처리 할 것인가?

1. '특정 패턴'은 어떤 패턴인가?

특정 패턴은 크게 몇가지 분류로 나뉜다.

  1. 불릿포인트 이후에 오는 제목(또는 키)
  2. 숫자 리스트 이후에 오는 제목(또는 키)
  3. 숫자 리스트가 먼저 오고 불릿포인트가 결합된 패턴
  4. 불릿포인트가 먼저 오고 숫자 포인트가 오는 경우
  5. 불릿포인트 이후에 오는 제목(또는 키)

마크다운에서 목록을 만들기 위해 '*'나 '-'를 사용한다.
내가 볼드처리할 패턴은 이후에 오는 키(제목) 문자열을 말한다.

원 문자열

여러가지 ~니다 로 끝나는 말을 알려드리겠습니다.

* 감사합니다: 감사하다는 뜻
* 고맙습니다: 고맙다는 뜻
* 안 감사합니다: 안 감사하다는 뜻
* 즐겁습니다: 즐겁다는 뜻

볼드 처리 이후

여러가지 ~니다 로 끝나는 말을 알려드리겠습니다.

* **감사합니다**: 감사하다는 뜻
* **고맙습니다**: 고맙다는 뜻
* **안 감사합니다**: 안감사하다는 뜻
* **즐겁습니다**: 즐겁다는 뜻
  1. 숫자 리스트 이후에 오는 제목(또는 키)

1 의 경우와 거의 동일한데, '*', '-'대신 숫자리스트를 구성하는 '1.'과 같은 문자열을 사용한다.

원 문자열

여러가지 ~니다 로 끝나는 말을 알려드리겠습니다.

1. 감사합니다: 감사하다는 뜻
2. 고맙습니다: 고맙다는 뜻
3. 안 감사합니다: 안 감사하다는 뜻
4. 즐겁습니다: 즐겁다는 뜻

볼드 처리 이후

여러가지 ~니다 로 끝나는 말을 알려드리겠습니다.

1. **감사합니다**: 감사하다는 뜻
2. **고맙습니다**: 고맙다는 뜻
3. **안 감사합니다**: 안감사하다는 뜻
4. **즐겁습니다**: 즐겁다는 뜻
  1. 숫자리스트가 오고 그 이후에 불릿포인트가 결합된 패턴
채소와 과일의 예시를 알려드리겠습니다.

1. 채소
* 감자: 감자는 쌍떡잎식물 통화나물목 가지과의 여러해살이 식물로,벼, 밀, 옥수수와 함께 세계 4대작물에 해당한다.
* 고구마: 고구마는 메꽃과의 여러해살이 뿌리채소로, 녹말이 많고 단맛이 나는 혹줄기를 가진 재배용 작물이다.

2. 과일
* 수박: 수박은 전 세계에서 두번째로 가장 많이 재배되는 과일이다.
* 사과: 사과는 사과나무의 열매로, 세계적으로 널리 재배되는 열매 가운데 하나이다. 평과(苹果), 빈파(頻婆)라고도 한다.

볼드 처리 이후

채소와 과일의 예시를 알려드리겠습니다.

1. **채소**
* **감자**: 감자는 쌍떡잎식물 통화나물목 가지과의 여러해살이 식물로,벼, 밀, 옥수수와 함께 세계 4대작물에 해당한다.
* **고구마**: 고구마는 메꽃과의 여러해살이 뿌리채소로, 녹말이 많고 단맛이 나는 혹줄기를 가진 재배용 작물이다.

2. **과일**
* **수박**: 수박은 전 세계에서 두번째로 가장 많이 재배되는 과일이다.
* **사과**: 사과는 사과나무의 열매로, 세계적으로 널리 재배되는 열매 가운데 하나이다. 평과(苹果), 빈파(頻婆)라고도 한다.
  1. 불릿포인트가 오고 그 이후에 숫자리스트가 결합된 패턴

3번과 비슷하다.

원 문자열

채소와 과일의 예시를 알려드리겠습니다.

* 채소
1. 감자: 감자는 쌍떡잎식물 통화나물목 가지과의 여러해살이 식물로,벼, 밀, 옥수수와 함께 세계 4대작물에 해당한다.
2. 고구마: 고구마는 메꽃과의 여러해살이 뿌리채소로, 녹말이 많고 단맛이 나는 혹줄기를 가진 재배용 작물이다.

* 과일
1. 수박: 수박은 전 세계에서 두번째로 가장 많이 재배되는 과일이다.
2. 사과: 사과는 사과나무의 열매로, 세계적으로 널리 재배되는 열매 가운데 하나이다. 평과(苹果), 빈파(頻婆)라고도 한다.

볼드 처리 이후

채소와 과일의 예시를 알려드리겠습니다.

* **채소**
1. **감자**: 감자는 쌍떡잎식물 통화나물목 가지과의 여러해살이 식물로,벼, 밀, 옥수수와 함께 세계 4대작물에 해당한다.
2. **고구마**: 고구마는 메꽃과의 여러해살이 뿌리채소로, 녹말이 많고 단맛이 나는 혹줄기를 가진 재배용 작물이다.

* **과일**
1. **수박**: 수박은 전 세계에서 두번째로 가장 많이 재배되는 과일이다.
2. **사과**: 사과는 사과나무의 열매로, 세계적으로 널리 재배되는 열매 가운데 하나이다. 평과(苹果), 빈파(頻婆)라고도 한다.

2. 특정 패턴을 어떻게 탐지할 것인가?

문자열에서 특정 패턴을 찾는데 사용되는 정규표현식을 사용할 것이다.
파이썬에서는 re모듈을 사용하면 된다.

3. 탐지 된 패턴을 어떻게 볼드처리 할 것인가?

마찬가지로 re모듈의 sub기능을 사용할 것이다.