본문 바로가기

반응형

분류 전체보기

(291)
리액트 (React) & 리덕스 (Redux) 리액트 (React) 리액트(React)는 메타에서 개발한 오픈 소스 자바스크립트 라이브러리로 프런트엔드 개발자들이 많이 사용한다. SPA(Single Page Application)을 전제로 하고 있으며, Dirty checking과 Virtual DOM을 활용하여 업데이트해야 하는 DOM 요소를 찾아서 해당 부분만 업데이트하기 때문에 동적인 모던 웹에서 빠른 퍼포먼스를 낸다. 또한 기본적으로 프레임워크가 아닌 라이브러리라서 다른 프레임워크에 간편하게 붙여서 사용이 가능하며, 웹 프런트엔드 개발의 표준으로 자리 잡아 있다. 컴포넌트 리액트에서는 사용자가 정의해서 태그를 만드는 것을 컴포넌트라고 표현한다. 매우 빠른 속도로 복잡해지는 웹사이트 내에서 정보가 조금만 증가해도 그 정보를 표현하는 html은 ..
라즈베리파이 컴퓨트 모듈 4 & I/O 보드 라즈베리파이(Raspberry PI)는 영국의 라즈베리파이 재단이 학교에서의 기초 컴퓨터 과학 교육용 프로젝트의 목적으로 개발한 초소형, 초저가 PC로 키보드, 마우스, 모니터만 연결하면 일반 데스크톱과 유사하게 사용이 가능하다. 또한 리눅스(Linux) 운영체제를 기반으로 하여 세부적인 설정을 제공하며 프로그래머에게 맞춤형 환경을 제공한다. 라즈베리파이 컴퓨트 모듈 4 라즈베리파이파이 컴퓨트 모듈은 주로 임베디드 제품 개발에 사용되며, 프로세스 자동화 등과 같은 산업 및 상업용 애플리케이션 개발 등의 용도를 가져, 단일 보드 컴퓨터인 일반 라즈베리파이와는 다소 차이가 있다. 컴퓨트 모듈의 경우 일반 라즈베리파이보다 크기가 작고, 사용자 정의 폼 팩터 개발이나 온 보드 eMMC 스토리지를 원하는 사용자에..
MNIST 머신 러닝 개요 MNIST는 우리가 새로운 프로그래밍 언어를 배울 때 'Hello World'를 출력하는 것처럼, 딥러닝을 처음 배울 때 반드시 처음 거쳐야 하는 과정이다. 이는 28 x 28 크기의 숫자 이미지와 0~9까지의 정답으로 이루어져 있다. MNIST 데이터베이스 MNIST 데이터베이스 (Modified National Institute of Standards and Technolgy database)는 숫자0부터 9까지의 손글씨로 이루어진 대형 데이터베이스로, 다양한 화상 처리 시스템을 트레이닝하기 위해서 일반적으로 사용된다. MNIST 데이터베이스는 6만 개의 트레이닝 이미지와 만개의 테스트 이미지를 포함하고 있다. 딥러닝 아키텍처 딥러닝의 기본 아키텍처는 입력층, 은닉층, 출력층으로 나뉜다. 우선 ..
몽고디비(MongoDB)를 사용하는 이유 마이클 카힐 몽고 디비 랩스 부사장은 연례 개발자 컨퍼런스 기조연설에서 "몽고 DB의 도큐먼트 모델은 다양한 유형의 데이터와 워크로드를 반영하고, 단일 API로 복잡한 워크로드를 쉽게 구성할 수 있고, 몽고 DB가 개발자에게 인기를 얻는 건 자연스럽게 생산성을 높일 수 있기 때문이다."라는 발언을 하였다. 실제로 몽고 DB는 전 세계에서 2억 6천5백만 건 이상 다운로드되었고, 37000여 곳의 유료 고객을 가지고 있다. 또한 국내에서도 연초 400여 곳의 고객사 규모가 540개로 늘어나며, 빠르게 시장에 안착했다. 개발자의 생산성을 저해하는 원인으로 경직된 아키텍처, 비싼 비용, 부족한 확장성의 관계형 데이터베이스(RDB)를 지목한 그는 혁신을 빠르게 하는 데이터베이스 플랫폼은 우아한 개발자 경험을 제..
가비지 컬렉션 (GC : Garbage Collection) 가비지 컬렉션 (GC)과 장단점 Garbage Collection(이하 GC)은 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중 불필요해진 영역을 해제하는 기능으로, 여기서 불필요해진 영역은 어떤 변수도 가리키지 않게 된 영역을 의미합니다. GC의 장점으로는 유효하지 않은 포인터 접근, 이중 해제, 메모리 누수와 같은 버그를 줄이거나 막을 수 있고, 단점으로는 수집이 일어나는 타이밍이나 점유 시간을 예측하기 어려워서 실시간 시스템에 비적합 할당한 메모리가 해제되는 시점을 알 수 없습니다. 또한 GC는 사람과 같이 판단력을 갖춘 것이 아니기 때문에 지워야 할 내용들을 100% 잡아내지 못한다는 한계점을 가지고 있습니다. GC 루트 가비지 컬렉션(GC)은 초기에 모든 객체를 쓰레..
메모리 누수 (Memory leak) 현상과 사례 메모리 누수 (Memory leak) 메모리 릭 현상은 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상으로, 불필요한 메모리가 해제되지 않으면서 메모리 할당을 잘못하는 경우 발생합니다. 이러한 현상이 발생하는 여러 가지 이유가 있지만, 그중 여섯 가지에 대해 알아보겠습니다. 메모리 누수 사례 첫번째로 잘못된 이벤트 핸들러 관리 시 발생하는 경우입니다. 하단의 예시 코드를 실행하면 C#에서의 delegate/event 추상화로 인한 메모리 누수가 발생하는 현상을 확인할 수 있습니다. using System; class Program { static void Main(string[] args) { UILayout layout = new UILayout(); while (true) { for..
파워쉘 (PowerShell) 파워쉘(PowerShell)은 명령 줄 셸, 스크립팅 언어 및 구성 관리 프레임워크로 구성된 플랫폼 간 작업 자동화 솔루션으로 장단점과 활용을 중점으로 알아보겠습니다. 파워셸 (PowerShell)의 장단점 및 활용 우선 장점부터 살펴보겠습니다. 파웨셸은 기존의 명령 프롬프트(CMD)에서 사용할 수 있는 명령어들을 전부 지원합니다. 또한 Alias(별칭) 기능을 이용하여 자주 쓰는 유닉스 스타일 명령어를 사용 가능합니다. 객체 기반의 파이프라인 입출력을 통해 소스의 양을 줄여주고, 리소스를 절약하며, 가독성을 증가시키실 수 있다는 장점도 존재합니다. Visual studio 연동이 가능하며, Microsoft.NET Framework와 완벽 연동되어 원격지의 컴퓨터를 쉽게 관리할 수 있습니다. 그러나 단..
카산드라 (Cassandra)와 하둡(Hadoop)의 단점 지난 글에서 이야기한 몽고 디비(MongoDB)의 단점에 이어서 오늘은 NoSQL 중 카산드라와 하둡의 단점 및 문제점에 대해 알아보겠습니다. 카산드라 (Cassandra)의 단점 우선 카산드라는 두 개 이상의 테이블을 결합하여 데이터를 검색하는 join이나 데이터베이스 관리 시스템 또는 트랜잭션의 성공과 실패가 분명하고, 상호 독립적이며, 일관되고 믿을 수 있는 시스템에서의 상호작용의 단위인 transaction을 지원하지 않습니다. 또한 Index 등의 검색을 위한 기능도 매우 단출하여, row key와 칼럼 두 가지에 대한 인덱스만 가능하고, super column family의 하위 칼럼에 대한 인덱싱이 불가능합니다. 그리고 Key 값을 통한 범위 검색은 데이터 분산 방식을 OPP(Order Pr..
몽고 디비 (MongoDB)의 단점 NoSQL의 단점 데이터베이스를 목적에 맞게 관리하기 위해서는 다양한 조건을 따져보아야 합니다. 그중 기존에 사용 중인 데이터베이스 관리 시스템(DBMS)을 NoSQL 방식으로 변경하기 위해서는 어떠한 단점이나 문제점이 발생할 수 있는지에 대해 먼저 생각해 보아야 합니다. 이 글에서는 몽고 디비의 단점 및 문제점에 대한 내용을 다루어 보겠습니다. 몽고 디비 (MongoDB)의 단점 첫 번째로 몽고 디비는 데이터 업데이트 중 장애가 발생하면 데이터가 손실될 수 있다는 치명적인 단점을 가지고 있습니다. 이러한 문제점이 발생하는 이유가 몇 가지 존재하는데 분산 처리 시스템을 사용하여 데이터의 부분 결함 가능성이 있고, 데이터 갱신 및 입력 시 바로 디스크에 쓰지 않으며, 쓰기가 비동기식으로 이루어지기 때문입니..
NoSQL 프로그램 별 특징 및 장단점 NoSQL 프로그램 별 특징 및 장단점 데이터베이스를 관리하기 위해 사용되는 다양한 프로그램 중 비관계형(non-relational) 데이터베이스 관리 시스템(DBMS)은 데이터를 유연하게 처리하고, 수평적인 확장성을 가지는 등의 특징이 있습니다. NoSQL에 기반을 둔 몽고디비(MongoDB), 아파치 카산드라(Apache Cassandra), 아파치 하둡(Apache Hadoop)의 특징 및 장단점에 대해 알아보겠습니다. 몽고디비 (MongoDB) 몽고디비는 NoSQL 데이터베이스의 한 종류인 도큐먼트 데이터베이스로 데이터를 관리하기 위해 JSON(JavaScript Object notation) 형식을 통해서 데이터를 입력 및 출력하고, BSON(BInary JSON) 형식으로 데이터를 저장한다는 ..

반응형