유의적 버전(Sementic Versioning, SemVer)을 통해 버전 표기방법을 많이 사용합니다. 버저닝 규칙은 다음과 같습니다.💡 Major.Minor.Patch-LabelMajor, Minor, Patch는 각각 숫자를 통해 나뉘게 됩니다.ex) 1.11.2, 1.8.0-beta Major가장 큰 변화를 뜻하고, 보통 이전 버전과 호환이 불가능하거나 거대한 변화가 있을때 하나 증가시킵니다.Minor와 Patch는 다시 0으로 초기화 시켜줍니다.ex) 2.8.7 → 3.0.0Minor기능이 추가되었을때 숫자를 증가시킵니다.기능이 추가되었다고해서 이전 버전의 하위 호환성을 깨트리지 않습니다.Patch버그 수정, 텍스트 변경등의 자잘한 수정을 할때 증가 시킵니다.Label선택사항으로 alpha..
JSON이란? JSON(Javascript Object Notation)은 여러 형태의 데이터 구조화된 객체에 담아 처리하는 포맷 입니다. 즉, 숫자, 문자, 참 또는 거짓 등 모든 시리얼화 가능한 값(Serializable Value) 또는 Key-Value로 이루어진 객체(Object)에 담아 처리하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 포맷입니다. 가공된 JSON데이터는 텍스트 기반이기 때문에 사람이 쉽게 저장된 데이터를 읽고 수정할 수 있다는 장점이 있습니다 💡Serializable? 💡 직렬화(Serialization), 역직렬화(Deserialization) 직렬화란 Object를 Byte형태로 변환하는 기술을 뜻합니다. 즉, 객체를 저장하거나 메모리, DB, 파일등으로 데이터를 옮길..
해시 함수는 소프트웨어의 성능과 보안을 책임지는 매우 중요한 요수 중 하나이며, 데이터양이 많아져도 일관된 성능을 보장하는 구조로 설계할 수 있고 민감한 데이터의 변조를 막을 수 있기 때문입니다. 해시 함수(Hash Function)란? 알고리즘의 한 종류로써 임의의 입력값을 입력받아 항상 고정된 길이의 해시 값으로 변환하는 함수입니다. 변환 전 입력값은 문자, 숫자 등 거의 모든 형태의 입력값을 사용할 수 있습니다. 변환 후 데이터 값을 해시 값이라고 하며 바이너리 형태로 반환됩니다. 이러한 과정을 해싱(Hashing)이라고 하며 해싱에서 사용하는 함수를 해시 함수(Hash Function)라고 합니다. 특징 입력값이 동일하면 계산한 결과값도 동일합니다. 입력값의 길이와 상관없이 해시 값의 길이는 동일..
비전공자 및 기획자 등 현업에서 사용하는 필수 지식들을 간단하게 정리하고자 합니다. 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와 같은 단어를 한 번 이상 들어봤어도 이 단어들이 무슨 뜻인지, 문자열 인코딩이 정확이 무엇인지 모르는 경우가 많아 이번 포스트에서 살펴 보도록 하겠습니다. 위와 같이 글자가 깨지거나 보이지 않는 문제가 발생한걸 자주 본적이 있으셨을 겁니다. 호환되지 않은 문자열을 인코딩을 사용하여 문자를 읽었기 때문입니다. 컴퓨터가 처음 등장했을 때 모든 프로그램은 영어와 일부 특수문자만 지원을 했습니다. 그러나 여러 국가에서 컴퓨터를 사용하기 위해 국가별로 사용하는 언어를 표현하고자 독자적인 규칙을 만들기 시작했습니다. 문자열 인..
쓰레드(Thread), 프로세스(Process), 컨텍스트 스위칭(Context Switching) 대해 알아 보겠습니다. 프로세스(Process)란 먼저 컴퓨터에서 프로그램을 실행시키는 작업을 상상해볼께요. 배틀그라운드를 한다고 할때 프로그램을 실행시키죠? 배틀그라운드 프로그램을 실행하는겁니다. 프로그램은 즉, 어떠한 작업을 위해 실행할 수 있는 파일을 말합니다. 그 프로그램이 실행되고 있는 상태를 프로세스(Process)라고 합니다. 즉, 프로세스는 메모리에 올라와 CPU를 할당받고 프로그램이 실행되고 있는 상태 또는 프로세스는 운영제체로 부터 자원을 할당받는 작업의 단위, 컴퓨터에서 실행중인 컴퓨터 프로그램을 의미합니다. 스레드(Thread)란 스레드란 프로세스가 할당받은 자원을 이용하는 실행의 단..