컴퓨터 기초 및 개념

컴퓨터 기초 및 개념

JSON이란?

JSON이란? JSON(Javascript Object Notation)은 여러 형태의 데이터 구조화된 객체에 담아 처리하는 포맷 입니다. 즉, 숫자, 문자, 참 또는 거짓 등 모든 시리얼화 가능한 값(Serializable Value) 또는 Key-Value로 이루어진 객체(Object)에 담아 처리하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 포맷입니다. 가공된 JSON데이터는 텍스트 기반이기 때문에 사람이 쉽게 저장된 데이터를 읽고 수정할 수 있다는 장점이 있습니다 💡Serializable? 💡 직렬화(Serialization), 역직렬화(Deserialization) 직렬화란 Object를 Byte형태로 변환하는 기술을 뜻합니다. 즉, 객체를 저장하거나 메모리, DB, 파일등으로 데이터를 옮길..

컴퓨터 기초 및 개념

해시 함수(Hash Funtion)란?

해시 함수는 소프트웨어의 성능과 보안을 책임지는 매우 중요한 요수 중 하나이며, 데이터양이 많아져도 일관된 성능을 보장하는 구조로 설계할 수 있고 민감한 데이터의 변조를 막을 수 있기 때문입니다. 해시 함수(Hash Function)란? 알고리즘의 한 종류로써 임의의 입력값을 입력받아 항상 고정된 길이의 해시 값으로 변환하는 함수입니다. 변환 전 입력값은 문자, 숫자 등 거의 모든 형태의 입력값을 사용할 수 있습니다. 변환 후 데이터 값을 해시 값이라고 하며 바이너리 형태로 반환됩니다. 이러한 과정을 해싱(Hashing)이라고 하며 해싱에서 사용하는 함수를 해시 함수(Hash Function)라고 합니다. 특징 입력값이 동일하면 계산한 결과값도 동일합니다. 입력값의 길이와 상관없이 해시 값의 길이는 동일..

컴퓨터 기초 및 개념

IT 필수 지식 - 1. IT 큰그림

비전공자 및 기획자 등 현업에서 사용하는 필수 지식들을 간단하게 정리하고자 합니다. 1. IT 큰그림 Infomation vs Data 개념 생선(Data) => 생선조림(Infomation) 숫자(Data) => 잔고(Infomation) Data는 가공되지 않은 값 Infomation은 가공되어 의미 있는 값 Program Data를 Infomation으로 만들어 의미있는 정보를 사용자가 이용할수게 해주는 것 은행앱, 날씨앱 등 IT 필수 프로세스 개발(프로그램) Data를 Infomation이 되도록 하는 일 프로그램을 만드는 일 개발자, 기획자, 디자이너, PM 등으로 구성 동작(서버) 프로그램이 동작하게 해주는 컴퓨터 전달(네트워크) 정보가 나에게 전해지는 전 과정 인터넷, 라우터, 방화벽 등 ..

컴퓨터 기초 및 개념

문자열 인코딩 개념(아스키 코드, EUC-KR, UTF-8, UTF-16, UTF-32)

문자열 인코딩은 실무 개발에서 중요한 개념이지만, 인코딩으로 인한 문제가 생기기 전까지는 배울 기회가 없는 기술 입니다. 아스키 코드, EUC-KR, UTF-8, UTF-16, UTF-32와 같은 단어를 한 번 이상 들어봤어도 이 단어들이 무슨 뜻인지, 문자열 인코딩이 정확이 무엇인지 모르는 경우가 많아 이번 포스트에서 살펴 보도록 하겠습니다. 위와 같이 글자가 깨지거나 보이지 않는 문제가 발생한걸 자주 본적이 있으셨을 겁니다. 호환되지 않은 문자열을 인코딩을 사용하여 문자를 읽었기 때문입니다. 컴퓨터가 처음 등장했을 때 모든 프로그램은 영어와 일부 특수문자만 지원을 했습니다. 그러나 여러 국가에서 컴퓨터를 사용하기 위해 국가별로 사용하는 언어를 표현하고자 독자적인 규칙을 만들기 시작했습니다. 문자열 인..

컴퓨터 기초 및 개념

[컴퓨터 기초] Thread, Process, Context Switching

쓰레드(Thread), 프로세스(Process), 컨텍스트 스위칭(Context Switching) 대해 알아 보겠습니다. 프로세스(Process)란 먼저 컴퓨터에서 프로그램을 실행시키는 작업을 상상해볼께요. 배틀그라운드를 한다고 할때 프로그램을 실행시키죠? 배틀그라운드 프로그램을 실행하는겁니다. 프로그램은 즉, 어떠한 작업을 위해 실행할 수 있는 파일을 말합니다. 그 프로그램이 실행되고 있는 상태를 프로세스(Process)라고 합니다. 즉, 프로세스는 메모리에 올라와 CPU를 할당받고 프로그램이 실행되고 있는 상태 또는 프로세스는 운영제체로 부터 자원을 할당받는 작업의 단위, 컴퓨터에서 실행중인 컴퓨터 프로그램을 의미합니다. 스레드(Thread)란 스레드란 프로세스가 할당받은 자원을 이용하는 실행의 단..

컴퓨터 기초 및 개념

[컴퓨터 기초] 메모리구조(Memory Structure)

메모리 구조에 대해 알아 보겠습니다. 프로그램 실행 순서 메모리 영역에 관해 이야기하기 전에 어떤식으로 프러그램이 실행되는지 과정을 살펴 보겠습니다. 프로그램의 정보를 읽어 메모리에 로드되는 과정을 보실 수 있으실텐데, 프로그램이 실행하게 되면 OS는 메모리(RAM)에 공간을 할당해줍니다. 할당해주는 메모리 공간은 4가지(Code, Data, Stack, Heap)가 있습니다. 코드(Code) 영역 우리가 작성한 소스코드가 들어 가는 부분. 즉, 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code)영역이라고도 부른다. 코드영역은 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수 등이 여기에 지정된다. 데이터(Data) 영역 전역변수와 static변수가 할당되는 영역 프..

컴퓨터 기초 및 개념

[컴퓨터 기초] 커널(Kernel)과 쉘(Shell)

간단하게 커널과 쉘의 개념에 대해 알아보도록 하겠습니다. 커널과 쉘 사용자가 입력한 명령어는 일련의 과정을 거쳐 하드웨어를 제어하게 됩니다. 사용자가 명령어를 작성하고 조작하기까지 이 사이에는 몇 가지의 과정을 거쳐서 수행을 하게 되는데, 우리가 명령어를 입력하게 되면 컴퓨터 내부에서는 쉘(Shell) 이 이를 받아들이고, 명령어를 해석하여 커널(Kernel) 을 통해 하드웨어를 조작합니다. 즉, 제일 하단에는 하드웨어가 있고, 그 위에는 커널, 커널위에는 쉘, 그리고 쉘 위에는 사용자가 존재하여 사용자 유저의 입력을 받게 됩니다. 커널 커널은 운영체제의 핵심입니다. 쉽게 말해, 소프트웨어와 하드웨어간의 커뮤니케이션을 관리하는 프로그램입니다. 운영체제에서 가장 중요한 구성요소로서 입출력을 관리하고 소프트..

jinnify
'컴퓨터 기초 및 개념' 카테고리의 글 목록