전체 글

공부한 것을 정리하기 위해 만든 블로그 입니다.
CS/네트워크

[코딩 연습] 자바로 HTML 구문 분석하는 코드 구현해보기

본 글은 공부를 위해 작성된 글입니다. 설명이 많이 부족하거나 미흡할 수 있습니다. 학습 대상 XML DOM 정규표현식 Tokenizer, Lexer, Parser XML XML은 EXtensible Markup Language의 약자로, HTML과 똑같이 문자 기반의 마크업 언어입니다. 다만 HTML과는 만들어진 목적이 다릅니다. HTML은 데이터의 구조를 보여주는데 초점이 맞춰져 있다면, XML은 데이터를 저장하고 전달하기 위해 디자인 된 언어입니다. 또한 XML 태그는 HTML 태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의할 수 있습니다. Markup Language란? Markup Language는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지입니다. 일반적으로 데이..

디자인패턴/OOP

객체지향 프로그래밍 공부하기 (Object Oriented programming)

본 글은 생활코딩의 강의를 제 나름대로 정리한 글입니다. 객체 서비스를 구현하다보면, 로직이 다양해지고 복잡해집니다. 이러한 복잡성을 해소하기 위해 사람들이 고안한 방법 중 하나는 로직을 그룹화 하고, 추상화하는 것입니다. 그룹화를 함으로써 같은 기능을 하는 로직별로 관리할 수 있고, 추상화를 함으로써 코드가 간결해질 수 있습니다. 객체란 무엇인가? 서로 연관되어 있는 로직(변수 및 메소드)을 그룹화를 하는 기능을, 프로그래밍 언어에서 지원합니다. 여기서 그룹화된 하나하나의 단위들을 객체라고 부릅니다. 이렇게 하나의 로직을 객체로 관리를 함으로써, 하나의 로직을 여러곳에서 재사용 이 가능해집니다. 객체지향 프로그래밍 언어 하지만 하나의 로직을 여러곳에서 재사용을 하다보니 다양한 문제가 발생할 수 있죠. ..

CS/운영체제

자바로 간단한 CPU 구현하기

자바로 CPU 구현하기 들어가며 🚩 목적 CPU 명령어 Fetch, Decode, Execute을 간단하게 구현함으로써 CPU가 어떻게 동작하는지에 대해 공부한다. 🛻 알아야하는 지식 2진수 표기법과 비트 연산 Bit Shift Bit Masking 💡 프로그램 구현 사항 CPU 구현 사항 기본 처리 단위를 16비트를 기준으로 한다. ALU는 두 레지스터에 저장된 값 A, B를 계산해서 목적 레지스터에 저장한다. ALU는 +, -, |, & 연산자만을 이용한다. 메모리 주소를 정수를 입력으로 받으면, 기계어로 변환하여 사용한다. 구현할 Class Terminal : 입력을 받아 instruction 을 메모리에 저장하기 위한 Class CPU : Decode 와 ALU 를 포함하는 Class Decode..