개요 클래스에 대해서 알아보기전 이러한 클래스가 생겨 날 수 있었던 배경이 무엇이었는지 알아야 합니다. 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 코드의 재사용성, 확장 가능성 그리고 유지보수의 용이성을 중요시한 프로그래밍 패러다임입니다. `JavaScript`는 원래 프로토타입 기반 언어로, 클래스 기반의 언어들과는 다소 차이가 있었습니다. 그러나 ES6 이후, `JS`에도 `class` 키워드가 도입이되면서, 개발자들에게 더 익숙한 클랙스 기반의 접근의 방식을 제공하기 시작하였습니다. 클래스 (Class) 클래스는 어떠한 객체(인스턴스)를 생성하기 위한 하나의 짜여진 설계도라고 생각하면 되겠습니다. 예를 들면 여러 개의 같은 붕어빵을 만들기위해 존재하는 하나의 ..
SQL vs NOSQL `SQL(Structured Query Language)`과 `NoSQL(Not only SQL)`은 데이터베이스 시스템의 두 가지 주요한 유형입니다. 이들은 데이터를 저장하고 조회하기 위한 다른 접근 방식과 구조를 가지고 있습니다. 다음은 `SQL`과 `NoSQL`의 주요 차이점과 각각의 장단점에 대한 설명입니다. SQL (관계형 데이터베이스) 구조화된 데이터 SQL 데이터베이스는 테이블과 열(Column)로 구성된 구조화된 데이터를 사용합니다. 데이터는 정해진 스키마에 따라 정확한 형식으로 저장됩니다. 관계 SQL 데이터베이스는 관계(Relationship)를 통해 여러 테이블을 연결할 수 있습니다. 이를 통해 데이터 간의 관계를 정의하고 관계형 모델을 사용하여 데이터를 조작하..
I. 개요 기존 `Map`에 `GeoTiff` 이미지를 렌더링 하는 기술은 성능과 안정성에 매우 취약한 문제점이 있었습니다. 이러한 문제점이 발생하는 원인으로는 렌더링 하는 기술이 불안정한 `Geoserver`에 대한 의존성이 매우 높기 때문입니다. 이러한 문제를 해결하기 위해 여러 방법을 사용을 하고는 있지만 근본적인 안정성이 떨어지는 문제를 해결하기에는 어려움이 있었습니다. 해당 보고서에서는 이러한 문제점이 어떤 부분에서 발생하고 있었는지, 어떠한 방법으로 개선을 했는지 이야기 해보도록 하겠습니다. II. AS-IS 우선 기존에 서버에 데이터를 저장하는 과정을 도식화 된 그림을 보도록 하겠습니다. 과정 자체를 보게 되면 tiff 파일 자체를 `Client`로 부터 입력을 받게 되면 `Server`는 ..
성능 데이터 모델링 성능 데이터 모델링의 정의 데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것. 모델링 시점 성능 향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 들지 않음. 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우, 성능 저하에 따른 재업무 비용을 최소화할 수 있음. 분석/설계 단계에서 데이터베이스 처리 성능을 향상 시킬 수 있는 방법을 주도면밀하게 고려해야 함. 고려사항 데이터 모델링을 할 때 정규화를 정확하게 수행한다. 데이터베이스 용량 산정을 수행한다. 데이터베이스에 발생되는 트랜..
데이터 모델의 이해 모델링의 정의 복잡한 현실세계를 단순화시켜 표현한 것. 사물과 사건에 대한 양상(Aspect)나 관점(Perspective)을 연관된 사람이나 그룹을 위해 명확하게 하는 것 현실세계 추상화 하여 반영 한 것. 모델링의 특징 추상화 : 현실세계의 일정한 형식에 맞추어 표현을 한다는 의미 단순화 : 복잡한 현실세계의 약속된 규약에 의해 제한된 표기법이나 언어로 표현 명확화 : 누구나 이해하기 쉽게 하기위해 대상을 정확하게 현상하는 기술 모델링의 세가지 관점 데이터 관점 : 업무가 어떤 데이터와 관련이 되어 있는지, 데이터간의 관계는 무엇인지에 대해서 모델링하는 것. 프로세스 관점 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 것. 상관 관점 : 업무가 처리하..
Symbol 우선 심볼은 원시 값 즉, `primitive` 값을 반환하는 내장 객체를 의미합니다. 그리고 `Symbol` 또한 원시 값으로 사용되고 있습니다. 같은 원시 값으로는 여러가지가 존재를 하는데 `number`, `string`, `boolean` 등이 있습니다. 심볼을 이용하게 되면 이러한 원시 값들을 고유한 하나의 토큰제공하거나 전역으로 사용할 수 있는 원시값을 생성해줍니다. 그렇다면 이러한 심볼은 어떻게 생성하고 사용하는지 알아보도록 하겠습니다. 생성자 심볼은 기본 값(원시 값) 이기 때문에 `new`연산자를 사용하지 않고 생성이 가능합니다. 그렇기 때문에 new 연산자를 통해 생성을 하고자 하면 에러가 발생 합니다. const symbol = new Symbol(); // TypeErr..