1월 14일 (화)
## 페어 프로그래밍 과정
1. 문제를 받고 요구하는 프로그램의 입출력을 파악했다. (문자열 -> 배열/맵)
2. 기본 개념을 이해하기 위해 1시간 정도 각자 공부했다.
3. tokenizer, lexer, parser 의 기능과 입출력에 대해 서로 논의하고 의견을 맞췄다.
- tokenizer : 문자열을 입력받아 의미를 가진 단위별로 분류하고 배열로 출력
- lexer : tokenizer의 배열을 입력받아 의미(type, value)를 부여하고, 정리된 요소들을 비어있는 배열에 push하고 출력
*만약 중첩 배열일 경우 대괄호 단위로 그 범위를 count하여 child의 속성으로 가지도록 구현하면 좋겠다고 생각*
- parser : 입력받은 배열의 포함관계를 계산해서 추상 트리 구조로 출력
4. 방식
- 타이머를 설정해두고 서로 프로그램의 얼개를 짜본 후 서로에게 설명하면서 이해하기
- 스켈레톤 코드 작성해보고 서로 의견 맞춰 나가기
- 구현 과정에서 서로 지식 부족으로 인해 의도대로 구현이 힘들었다
- 구현이 힘드니 오후 4시쯤 돼서는 타이머가 무용지물이었다
5. 시도한 것들
1. tokenizer 정규표현식을 사용하여 의미 나누기 -> 정규표현식 지식 부족 **실패**
2. tokenizer 문자열을 배열에 담아 forEach 메서드를 사용해보려 노력 -> 대괄호나 공백 분리 못함 **실패**
3. tokenizer 문자열 메서드를 사용해보려 노력 -> 대괄호나 공백 분리 못 함 **실패**
Design & Code
스켈레톤 코드
문제를 어려우면 쉽게 만들기
가장 쉬운 패턴을 찾고 그거부터 해결하기
문제를 이해하는 과정. 디자인하는 재미
Debugging
프로그램을 짜는 건 디버깅의 연속이다
콘솔 대신 breakpoint, watch 등을 사용해 확인하기
의심이 되는 부분에 breakpoint를 걸고 분석하기
console 쓰지 않기
테스트 코드 작성
컴파일 언어와 인터프리터 언어
컴파일 과정
어휘분석(tokenizer, lexer) -> 구문분석(parser)
그 결과 추상 구문 트리 또는 parse 트리 가 생성됨.
HTML 파서에 대해 알아보기
파서에 대해 이해가 안되면 그냥 따라서 해보기
클린 코드
인자값을 주고 반환하는 코드를 만들면 코드가 테스트 가능해짐
node.js 모듈을 써서 import export 할 수 있음
오늘 배운 것
컴퓨터의 구성요소. cpu가 어떻게 돌아가는지 간단하게 유튜브를 보면서 배웠다.
문제를 실제 코드로 옮기지는 못했지만, 공부하고 나서 문제가 이해를 할 수 있게 됐다.
문제 수도 코드 작성 완료.
디버그, 테스트 코드 작성하는 습관 들이기
Last updated
Was this helpful?