목록분류 전체보기 (178)
한 걸음씩 기록하며
0. Analog & Digital Analog 아날로그는 “외부적인 원인에 의해 연속적으로 변하는 것들을 연속된 물리량"으로 나타내는 것을 뜻한다. 우리가 자연에서 얻는 신호는 대개 아날로그이다. (빛의 밝기, 소리의 높낮이나 크기, 바람의 세기 등) Digital 아날로그의 반대로서, 연속적이지 않고, 특정한 최소 단위를 갖는 이산적인 수치를 이용하여 나타내는 방식을 뜻한다. Sampling (표본화) 아날로그 자료 샘플을 일정한 주기로 채집하여 디지털로 변환하는 과정을 샘플링이라고 한다. 1. 디지털을 아날로그로 변환 DAC (Digital to Analog Converter) 디지털 신호를 아날로그 신호로 변환해주는 장치 즉 2진수의 디지털 신호를 연속적인 아날로그의 값으료 변환하는 장치이다. ..
*본 글은 아래의 이터레이션 글과 이어집니다. https://haksae.tistory.com/134 [Iteration, Iterable, Iterator]이란 무엇인가 1. Iteration Protocol 이터레이션 프로토콜이란 순회 가능한 자료 구조를 만들기 위해서 ES6부터 도입된 규약이다. 이는 객체 자료구조와 무관한 컬렉션 탐색 기능을 제공하기 위해 지켜야하는 구현 haksae.tistory.com 1. Generator 1) 제너레이터는 ES6에 도입된 함수로서, 이터러블을 생성하는 함수이다. (당연히 제너레이터로 만든 이터러블은 이터러블 프로토콜과 이터레이터 프로토콜을 따르는 객체이다.) 2) 제너레이터는 제너레이터 함수의 반환으로, 제너레이터의 이터러블에서 반환하는 이터레이터는 자기 자..
1. Iteration Protocol 이터레이션 프로토콜이란 순회 가능한 자료 구조를 만들기 위해서 ES6부터 도입된 규약이다. 이는 객체 자료구조와 무관한 컬렉션 탐색 기능을 제공하기 위해 지켜야하는 구현 규약이라고 할 수 있다. ES6 이전에는 배열, 문자열, DOM 콜렉션 등이 각자 방법으로 데이터를 순회할 수 있도록 구성되어 있엇지만, ES6에 들어서면서 이러한 순회 가능한 데이터들이 이터레이션 프로토콜을 준수하여 동일하게 동작하게 설계했다. 이터레이션 프로토콜에는 1) Iterable Protocol, 2) Iterator Protocol, 2가지가 있다. 1.1 Iterable Iterable Protocol 1. 오브젝트가 반복할 수 있는 구조여야한다. (ex: array, map, set..
0. 선행 지식 웹 생태계에는 다른 출처로의 리소스 요청을 제한하는 것과 관련된 두 가지 정책이 존재한다. 바로 CORS와 SOP다. SOP(Same Origin Policy) : 다른 출처의 리소스를 사용하는 것을 제한하는 보안 방식 Origin(출처) : URL의 Protocol, Host, Port를 통해 같은 출처인지 다른 출처인지 판단할 수 있다. Cross Origin : 다른 출처를 뜻한다. SOP를 통해 다른 origin을 걸러냄(동일출처만 허용함)으로써 보안에 도움을 준다. 만약 다른 출처의 리소스가 필요하다면, SOP를 푸어주는 CORS를 사용하는 것이다. 1. CORS (Cross-Origin Resource Sharing) CORS란 자신이 속하지 않은 다른 도메인, 다른 프로토콜 ..
1. ORM ORM이란 Object-Relational Mapping의 약자로서, 객체(클래스)와 관계(RDB)와의 설정을 의미한다. ORM은 객체와 관계형 데이터베이스의 데이터를 매핑해주는 역할을 수행한다. 객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용한다. 여기서 객체 모델과 관계형 모델 간에 불일치가 존재하는데, 이를 객체 간의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결하는 것이 바로 ORM이다. 데이터베이스 데이터 object 필드 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다. 대표적인 ORM Framework JPA/Hibernate JPA(Java Persistence API)는 자바의 ORM 기술 표준으로 인터페이스의 모음이다. 이러한 JPA ..
📋 Database는 크게 관계형 DB와 비관계형 DB로 나눌 수 있다. 본 글은 관계형 DB(SQL)과 비관계형 DB(NoSQL)을 비교하고, 어떤 상황에서 어떤 DB를 사용하는 것이 효과적인지 살펴보려고 한다. 1. SQL (Relational DataBase) SQL은 Structured Query Language의 약자로, "구조화된 쿼리 언어"를 의미한다. 즉 SQL은 DB 자체를 나타내는 것이 아닌 어떠한 유형의 DB와 상호 작용하는데에 사용하는 쿼리 언어이다. SQL은 쿼리 언어지만, 흔히 관계형 데이터베이스라는 의미로 사용된다. 관계형 데이터베이스는 가장 많이 사용되고 있는 DB의 한 종류이다. (고전적인 데이터 베이스) table로 이루어져 있고, table은 key와 value의 관계를..
1. Database Data는 컴퓨터에서 다루는 모든 자료들을 의미힌다. Database(이하 DB)는 컴퓨터에서 다루는 자료들을 통합하여 관리하는 데이터의 집합체를 의미한다. 📋 왜 데이터 베이스를 사용하는 것일까? 데이터를 오랜 기간 저장 및 보존하기 위해 메모리(RAM)에 존재하는 데이터는 휘발성이기 때문에 영구히 보존할 수 없다. 보관하고 싶은 데이터를 DB를 사용하여 저장하면 필요한 자료들을 계속해서 보존할 수 있다. 데이터를 체계적으로 관리하기 위해 데이터를 그냥 저장하면, 저장된 데이터들을 사용하기 어렵고 수많은 비효율을 양산해낼 것이다. DB는 데이터를 구조화하여 관리할 수 있게 해주며, 중복된 데이터를 없애고 효율적인 처리를 할 수 있도록 관리한다. 2. DBMS (Database Ma..
1. JSON JSON이란 Javascript Object Notation의 약자이다. 직역하면 자바스크립트 객체 표기법이다. JSON은 실제로 객체 표기법을 위해 만들어졌지만, 지금은 경량화된 파일 형식으로 쓰이고 있다. 복잡한 파일 형식은 파일 교환에 비효율적이기에, JSON은 파일 교환에 많이 사용된다. Ajax와는 별도의 개념이지만, JSON은 Ajax라는 서버와의 교신 방식에 짝꿍처럼 같이 쓰이고 있다. 일반적인 자바스크립트의 객체 형식은 다음과 같다. let jsObj = { name: "haksae", age: 20 nation: "korea" } 그러나 이를 JSON은 다음과 같은 형식으로 표기한다. 이러한 경량화된 파일 형식은 데이터 통신에 이점을 가진다. {"name": "haksae"..