230125(수)
🎄 성장일지 3.1
책 행복한 이기주의자(웨인 다이어)
의 내용에 자극받아 시작하는 소박한 성장기록
살아있는 꽃과 죽은 꽃은 어떻게 구별하는가?<br/> 성장하고 있는 것이 살아 있는 것이다.<br/> 생명의 유일한 증거는 성장이다!
🌳 키워드 (1.0)<br/> 최대한 간단하게 정리, 추후에 보면서 스스로 설명<br/> 🍉 경험 위주로 (2.0)<br/> 단순 정보를 전달하기보다 무엇을 배웠고 어떻게 해결했는지 짧고 간단하게 작성<br/> ❄️ 정해진 템플릿에 맞춰서 (3.0)<br/> 키워드, 경험 모두 좋다. 다만 매일 작성하기로 마음 먹은만큼 핵심만 간결하게 정리할 수 있게 템플릿을 작성 (3.1) 230102부터 시작되는 학습에 관한 내용 추가
🔑 오늘의 키워드
XML
- Extensible Markup Language로 데이터를 정의하는 규칙을 제공하는 다목적 마크업 언어
- 주로 다른 종류의 시스템, 특히 인터넷에 연결된 것들끼리 데이터를 쉽게 주고 받을 수 있게 할 목적으로 만들어졌다.
토큰
- 프로그래밍 언어에서 더 이상 나눌 수 없는 기본적인 언어요소(가장 작은 요소들)
- 하나의 키워드, 연산자 또는 구두점 등
정규표현식(정규식)
- 문자열에서 특정 문자 조합을 찾기 위한 패턴.
- 자바스크립트에는 RegExp로 정규식을 객체로서 사용할 수 있다.
- 이외에도 String의 match(), matchAll(), replace(), replaceAll(), search(), split() 메서드와 함께 사용할 수 있다.
Stack
- 데이터를 저장하기 위한 자료구조 중 하나
- 나중에 들어온 데이터가 먼저 나가는
Last In Frist Out(LIFO)
- 주로 push, pop 으로 데이터를 넣고 꺼낸다.
DOM
- 문서 객체 모델(Document Object Model)로, HTML과 XML 문서의 프로그래밍 인터페이스이다.
- HTML, XML을 트리구조의 형태로 저장한 것이다.
Tokenizer
- text를 의미론적 가장 작은 단위인 token으로 나누는 도구
Lexer
- Lexical Analyser의 약자로, 어휘 분석기를 의미한다.
- 토큰의 의미를 분석하는 역할을 한다.(토큰들에게 의미를 부여하는 역할)
Parser
- 입력 데이터를 가지고 구조적으로 나타낼 수 있게 도와주는 도구
- 토근화된 소스코드를 통해 AST(추상 구문 트리)를 만든다.
tokenizer -> lexer -> parser 예시
input: [1, [2, [3]], 'jayden is the best']
# tokenizer
['1', '[2,[3]]', '['jayden', 'is', 'the', 'best']']
# lexer
[
{type: 'number', value: '1'},
{type: 'array', value: '[2,[3]]'},
{type: 'array', value: '['jayden', 'is', 'the', 'best']'}
]
# parser
{
type: 'array',
child: [
{type: 'number', value: '1', child: []},
{type: 'array',
child: [
{ type: 'number', value: '2', child: []},
{ type: 'array',
child:[ {type:'number', value:'3', child: []} ]
}
]
},
{type: 'array',
child:[
{ type: 'string', value: 'jayden', child: [] },
{ type: 'string', value: 'is', child: [] },
{ type: 'string', value: 'the', child: [] },
{ type: 'string', value: 'best', child: [] },
]
}
]
}
📝 요약 및 하루 간단 회고
XML, HTML 등을 DOM(Document Object Model)으로 파싱하는 과정을 공부했다. 그리고 이 과정에서 토크나이저, 레서, 파서를 나눠서 전체적인 XML 파서를 구현해보는 중이다!
이제 무언가를 객체로 바라보고 프로그래밍을 하는 방법이 조금 익숙해지는 것 같다. 물론 그 구체적인 구현은 더 작성해보고 읽어야겠지만 말이다.<br/>
공부하를 하면서 객체지향의 사실과 오해
라는 책을 읽는 중이다. 이전에 읽다가 너무 은유적인 느낌에 포기했었다. 헌데, 지금 어느정도 객체지향을 공부하고 읽으니 너무너무 재미있고 잘 읽힌다. 또, 이 책의 저자가
얼마나 객체지향에 대해 많은 생각을 하시는지 느껴진다. 책을 읽으면서 정말 맘에 드는 책들은 그 내용을 정리해서 블로그에 올리곤 하는데, 이 책은 여기서 더 정리할 수가 있을까 싶을 정도로 추상화가 잘되어있다.(ㅋㅋ)
이런 책을 써주신 저자님께 정말정말 감사드린다.ㅠㅠ
오늘의 잘한 점
- 나만의 설계를 작고 작게 잘 나눈 점
- 파서 구현 시작한 점
- 타입스크립트 강의 시작한 점
- 객체지향에 대한 흥미가 계속 커지는 점
오늘의 아쉬운 점
- 기나긴 연휴가 끝나고 첫 날이라, 아주 쬐에끔 졸았다. 근데 사실 좀 졸 수도 있다고 생각해서 크게 아쉽진 않다. ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ
undefined