시작은 미미하나 끝은 쥬쥬하리라.

CS 8

[개발자 상식] json과 XML 뭐가 다를까 ?

json과 XML json XML 요약 기본적으로 json과 XML 모두 데이터의 교환을 위한 형식으로 사용됩니다. 현재도 두 형식은 활발히 사용되고 있고 많은 사랑을 받지만 주요한 차이점과 장단점들이 존재합니다. XML은 오랜 기간 사용된 데이터 형식으로 아직도 많은 시스템에서 사용하고 있으며, json은 그 장점으로 최근 들어서 점점 XML을 대체해 가고 있는 데이터 형식입니다. json 개요 텍스트 기반 데이터 교환 형식 key value의 쌍으로 이루어진 객체 또는 배열로 표현 각 key와 value는 문자열, 숫자, bool 타입, 배열, 객체 등 다양한 데이터 타입을 가질 수 있음 일반적으로 Web에서 Client Server 간 데이터 교환에 사용 목적 JavaScript에서 데이터를 쉽게 ..

CS/Dev Ack 2024.01.16

[개발자 상식] eMMC vs SSD

eMMC vs SSDeMMCSSDeMMC embedded Multi Media Card 노트북, 태블릿, 스마트폰 및 기타 임베디드 시스템과 같은 전자 장치에 일반적으로 사용되는 전자 장치 유형 사양 일반적으로 플래시 메모리와 컨트롤러를 단일 패키지에 결합한 소형 내장형 스토리지 솔루션 -> 장치의 마더보드에 직접 납땜 되어 있음 성능 eMMC의 성능은 장치의 전체 속도와 기능에 영향을 크게 받으며, 성능이 SSD에 비해 떨어지는 경향이 있음 -> 보급형 등의 장비에 사용 내구성 및 수명 eMMC의 저장소는 쓰기 및 읽기 작업의 전체 동작 횟수가 제한되어 있음 -> 집중적인 Write 작업 시 저장소는 더 빨리 마모 -> 스마트폰 혹은 태블릿 등의 가벼운 기기에 사용하는 경우에는 수명에 크게 영향 받지 ..

CS/Dev Ack 2024.01.14

[개발자 상식] 저레벨 언어 / 고레벨 언어 / 어셈블리어

고레벨 언어 / 저레벨 언어 / 어셈블리어 고레벨 언어 저레벨 언어 어셈블리어 고레벨 언어 High Level Programming Language, 사람이 이해하기 쉽게 작성된 프로그래밍 언어 -> 컴퓨터 아키텍쳐의 세부사항을 숨기는 프로그래밍 언어 -> 읽기, 쓰기 및 보수유지 난이도가 쉬운 편에 속함 -> 변수, 함수 등과 같은 기능을 지원 -> JIT(Just In Time) 컴파일러와 인터프리터에 의해 저레벨 언어(어셈블리어, 기계어)로 번역되어 실행 -> 복잡한 컴파일 과정을 거치기 때문에 다소 실행속도가 느린 편 ex) C언어, JAVA 등 저레벨 언어 Low Level Programming Language, 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어 -> 기계 코드, 하드웨어에 가까운 ..

CS/Dev Ack 2024.01.14

[개발자 상식] 메모리 반도체 구조 정리

메모리 반도체 구조 정리 메모리 반도체 종류 컴퓨터 메모리 구조 메모리 종류 메모리 반도체 종류 반도체 : 데이터 저장 용도 RAM : 데이터를 저장하고 저장한 정보를 Read/Write 할 수 있는 휘발성 메모리 -> 저장 방식에 따라 DRAM과 SRAM으로 구분 ROM : 저장된 데이터를 Read만 할 수 있는 비휘발성 메모리 -> 플래시 메모리 등 메모리 반도체의 성능 : 데이터의 저장량(대용량) + 데이터 Read/Write 속도(고속) + 전력의 효율성(저전력) 컴퓨터 메모리 구조 -> 계층 구조의 하단으로 갈수록 Load에 많은 시간 소요 : 레지스터가 가장 빠른 속도로 액세스 -> 계층 구조 하단으로 갈수록 많은 저장 공간 지원 : Magnetic Tape이 가장 많은 공간 제공 -> Cac..

CS/Dev Ack 2024.01.14

[개발자 상식] 빅 엔디안과 리틀 엔디안

빅 엔디안과 리틀 엔디안 빅 엔디안 리틀 엔디안 기타 빅 엔디안(Big Endian) - 가장 중요한 바이트(Most Significant Byte, 이하 MSB)를 가장 낮은 주소에 데이터를 저장하는 방식 - MSB부터 시작하여 LSB 순서대로 저장 - 네트워크 통신 프로토콜인 TCP/IP, 일부 프로세스 아키텍처(IBM Power PC)에서 사용 - 0x100번지부터 12 34 56 78의 데이터를 저장하는 경우(빅 엔디안 형식) 리틀 엔디안(Little Endian) - 가장 중요한 바이트(Most Significant Byte, 이하 MSB)를 가장 높은 주소에 데이터를 저장하는 방식 - LSB부터 시작하여 MSB 순서대로 저장 - x86 아키텍처 기반의 대부분의 컴퓨터 시스템에서 사용 - 0x1..

CS/Dev Ack 2023.07.02

[System Programming] 라이브러리 - 동적 라이브러리, 정적 라이브러리의 이해

라이브러리 - 동적 라이브러리, 정적 라이브러리의 이해 라이브러리(Library) 정적 라이브러리(Static Link Library) 동적 라이브러리(Dynamic Link Library) 라이브러리 요약 라이브러리(Library) - 소프트웨어 개발에 자주 사용되는 함수들의 중복 작성을 줄이기 위해 표준화된 함수 및 데이터 타입을 모아 놓은 것 - 사용을 위해서는 헤더 파일을 삽입하는 과정이 필요 - 프로그램에 연결되는 시기에 따라 정적 링크와 동적 링크로 구분 장점 - 코드 재사용 용이 - 코드 내부를 숨겨서 기술 유출을 방지 - 개발 시간의 단축 - 신뢰성 향상 - 컴파일 시간을 단축 정적 라이브러리(Static Link Library) - 링커가 프로그램에 필요로 하는 부분을 라이브러리에서 찾아..

CS/System 2023.07.02

[개발자 상식] 헝가리안 표기법

헝가리안 표기법 개요 표기법 개요 헝가리인 Charles Simonyi 가 MS에서 개발 책임자로 근무하던 당시 제안한 표기법이다. 표기법을 제안하였던 80년대에는 개발 환경이 지금에 비해 매우 부실하였기에 큰 파장을 불러일으켰다고 한다. 표기법은 접두어로 사용되며 현재는 IDE의 발달로 사용하지 않는 것을 권고한다. 장점 1. 변수명으로 데이터 타입을 유추할 수 있다. 2. vi나 emacs 등으로 터미널에서 작업하는 경우 즉, IDE 없이 작업하는 경우 유리하다. 3. 같은 의미를 가지는 서로 다른 타입의 변수들 간 중복을 피할 수 있다. 단점 1. 코드의 가독성이 떨어진다. 2. 데이터 타입을 변경하는 경우 변수명 또는 함수명을 변경해야 한다. 3. C/C++ 언어의 경우 시스템 아키텍처에 따라 데..

CS/Dev Ack 2023.07.01

[System Programming] 프로세스 간 통신 - IPC의 개요와 종류

프로세스 간 통신 IPC의 개요와 종류 IPC 개요 IPC 표준 IPC 종류 PIPE named PIPE Shared Memory Memory Map Socket Message Queue IPC 정리 기타 IPC 개념 IPC 개요 프로세스 간의 통신이 이루어지는 것을 IPC라고 한다. 기본적으로 하나의 프로세스는 독립적으로 존재하여 타 프로세스에 직접적인 접근이 불가능하지만, 운영체제의 커널이 IPC(Inter Process Communication)를 제공하여 각 프로세스들이 동시에 접근 가능한 메모리 즉, 프로세스들이 공유 가능한 메모리 영역을 통해 데이터를 주고 받을 수 있게 제공하고 있다. 각 프로세스들은 IPC를 이용하여 통신을 할 수 있다. IPC 표준 System V IPC System V ..

CS/System 2023.06.11