안녕하세요. IT 엘도라도 에 오신 것을 환영합니다.
글을 쓰는 것은 귀찮지만 다시 찾아보는 것은 더 귀찮습니다.
완전한 나만의 것으로 만들기 위해 지식을 차곡차곡 저장해 보아요.   포스팅 둘러보기 ▼

기타 IT 지식 (Etc) (6)

[데이터 표현 형식] XML, JSON, YAML

개발자라면 XML, JSON, YAML에 최소 한 번은 들어본 적이 있을 것이다. 아마도 XML과 JSON은 웹에서 서버와 클라이언트가 데이터를 주고받을 때 사용하는 형식, 그리고 YAML은 어떠한 설정 파일을 작성할 때 사용하는 형식 정도로 알고 있을 것이다. 사실 그 정도로만 알고 있어도 실무에서 크게 문제가 되지는 않지만, 한 번 정도는 각각의 개념을 깔끔히 정리해두면 좋겠다는 생각에 이번 포스팅을 작성하게 되었다. 그렇다면 본격적으로 XML, JSON, YAML의 개념에 대해 알아보도록 하자. * 본 포스팅의 내용에 직접적인 도움을 준 유튜브 '얄팍한 코딩 사전' 채널에 감사의 마음을 표합니다. (영상 링크는 게시글 하단 참조) 1. XML, JSON 1-1. XML, JSON의 필요성 웹에서 서..

[정규 표현식] 기본 개념의 이해 (프로그래밍 언어 공통)

정규 표현식(Regular Expression), 줄여서 정규식은 주어진 문자열에서 원하는 패턴의 부분 문자열을 탐색하거나 다른 문자열로 바꾸고 싶을 때 사용하는 하나의 도구이다. 이때 중요한 것은 정규식은 프로그래밍 언어와 독립적인 도구라는 것이다. 즉, 프로그래밍 언어별로 정규식을 사용하기 위한 별도의 문법을 제공하고 있을 뿐, 정규식이 특정 프로그래밍 언어만의 고유한 문법은 아니다. 그렇기 때문에 정규식을 한 번만 제대로 배워두면 어느 프로그래밍 언어에서든 쉽게 정규식을 사용할 수 있게 된다. 이번 포스팅에서 다루고자 하는 것은 정규식 그 자체의 기본 개념이다. 각 프로그래밍 언어별로 정규식을 사용하는 방법은 조금씩 다른데, 이에 대해서는 여기서 다루지 않겠다. 하지만 이 포스팅의 내용을 완전히 이..

[운영체제] 프로세스 (Process), 쓰레드 (Thread)

1. 프로세스 (Process) 1-1. 개념 프로그램(Program)은 특정 작업을 수행하기 위한 일련의 명령어들로 이뤄진 하나의 실행 파일을 의미한다. 프로세스(Process)는 메인 메모리에 로드되어 실행 중인 특정 프로그램의 인스턴스를 의미한다. 프로세스는 시스템으로부터 공간적 자원(= 메모리 공간)과 시간적 자원(= CPU 시간)을 일정량 할당받아서 특정 작업을 수행한다. 운영체제는 각 프로세스에게 할당된 시스템 자원들을 관리하는 역할을 수행한다. 1-2. 특징 각 프로세스는 서로 겹치지 않는 독립된 메모리 공간(Code, Data, Heap, Stack 영역)을 할당받는다. 가상 메모리 시스템에 의해 하나의 프로세스는 다른 프로세스의 메모리 공간에 접근할 수 없도록 제한된다. 다른 프로세스의 ..

[네트워크] OSI 7 계층 참조 모델 (OSI 7 Layer Reference Model)

오늘날 우리는 다양한 종류의 컴퓨터, 노트북, 스마트폰, 태블릿 등의 기기들을 활용하여 인터넷 상에서 서로 통신을 한다. 인터넷은 전 세계의 수많은 통신 기기들이 유선 혹은 무선으로 상호 연결되어 있는 하나의 거대한 네트워크이다. 그래서 www, 즉 Word Wide Web이라는 용어를 사용하는 것이다. 그렇다면 어떻게 서로 다른 기기들이 네트워크 상에서 통신을 할 수 있는 것일까? 이를 이해하기 위한 개념이 바로 OSI 7 계층 참조 모델(OSI 7 Layer Reference Model)이다. 이에 대해 한 번 알아보자. 1. 네트워크의 역사 네트워크의 시초는 미국 국방부(DoD)의 산하 연구기관이었던 방위고등연구계획국(DARPA)에서 연구용으로 제작한 아르파넷이다. 그 당시 아르파넷 상에서 서로 통..

[바이트열 인코딩] Base64

이번 포스팅에서는 바이트열을 문자열로 인코딩하는 방식에 대해 알아본다. 문자열을 바이트열로 인코딩하는 방식(ex. ASCII, ANSI, UTF-8 등)이 아니므로 방향성에 주의하자. 바이트열 인코딩 방식에는 여러 종류가 존재하지만, 대표적으로 Base64만 소개한다. 1. Base64 개념 Base64는 바이트열을 문자 코드에 영향받지 않는 64개의 ASCII 문자들로만 이뤄진 문자열로 인코딩하는 방식을 말한다. 화면에 출력 가능한 ASCII 문자가 128개가 되지 않기 때문에, ASCII 문자로 표현할 수 있는 최대 진법은 64진법이다. 임의의 바이트열을 64개의 문자들만 이용해서 표현하기 때문에 64진법이라고 하는 것이며, 이러한 이유로 Base64라는 이름이 붙게 되었다. 참고로, Base64도 ..

[문자열 인코딩] ASCII, ANSI, UTF-8, UTF-16 등

이번 포스팅에서는 문자열을 바이트열로 인코딩하는 방식에 대해 알아볼 것이다. 바이트열을 문자열로 인코딩하는 방식(ex. Base 64)이 아니므로 방향성에 주의하자. 문자열 인코딩 방식에는 여러 종류가 존재하지만, 몇 가지 대표적인 인코딩 방식만을 소개한다. 1. ASCII (American Standard Code for Information Interchange) 흔히들 아스키 코드라고 부르는 것으로, 최초의 문자열 인코딩 방식이다. 7bit로 하나의 문자를 표현하기 때문에, 총 128개의 문자를 표현할 수 있다. 이름에서 나타나 있듯이 영어를 위한 인코딩 방식이기 때문에 일본어, 중국어, 한국어와 같이 다른 언어의 문자들은 표현할 수 없다. 이러한 단점을 보완하기 위해 등장한 문자열 인코딩 방식이 ..