분류 전체보기 46

[Database] PostgreSQL Commands - DDL

개요지난 시간에는 PostgreSQL의 간략한 개요와 특징에 대해서 알아보았습니다. 이번 시간에는 PostgreSQL에서 제공하는 SQL Commands 들을 알아보고 간략하게 실습해보는 시간을 가져보겠습니다.테이블 기초CREATE: 테이블, 인덱스, 뷰, 시퀀스 등과 같은 새로운 데이터베이스 개체를 만드는 데 사용됩니다.// 출처: https://www.postgresql.org/docs/current/sql-createtable.htmlCREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [ { column_name data_type [ STORAGE { PLAIN | EXTE..

Database 2024.07.15

[Database] RDBMS - PostgreSQL

개요이번 시간에는 RDBMS에 대해서 간략하게 알아보고, 그 중에서 PostgreSQL에 대해서 심도있게 파헤쳐보겠습니다.RDBMS란?RDB의 데이터 관리를 위한 다양한 기능을 제공하는 소프트웨어입니다. 다음과 같은 특징을 가지고 있습니다. Software LayerRDBMS 는 데이터베이스와 사용자 혹은 애플리케이션 사이에 존재하는 소프트웨어 입니다. 데이터, 데이터베이스 엔진 및 데이터베이스 스키마를 관리하여 데이터의 구성 및 조작을 용이하게 합니다. Functions and ServicesData Definition: 데이터베이스 구조 (테이블, 인덱스, View) 등을 정의하는 도구를 제공합니다.Data Manipulation: 데이터의 삽입, 업데이트, 삭제 및 쿼리가 가능합니다.Data Con..

Database 2024.07.10

[Database] NoSQL 이란?

NoSQL의 정의NoSQL 이라는 용어는 비관계형 데이터베이스 유형을 가리키며, 이 데이터베이스는 관계형 테이블과는 다른 형식으로 데이터를 저장합니다. 그러나 NoSQL 데이터베이스는 언어마다 관습화된 API, 선언적 구조의 쿼리 언어, 쿼리별 언어를 사용하여 데이터 관리를 할 수 있습니다. 이것이 바로 해당 데이터베이스가 not only SQL 데이터베이스라고 불리는 이유입니다. NoSQL 데이터베이스 사용처높은 확장성과 가용성이 주요 장점인 NoSQL 데이터베이스는 실시간 통신 및 빅 데이터에 주로 사용됩니다.이해 관계자로부터 요청되는, 다양하고 시시각각으로 변하는 요구 사항에 빠르게 적응함으로써 민첩한 개발 패러다임에 자연스럽게 활용되는 이점 때문에 DX 적으로 좋은 경험을 가지고 있습니다. NoS..

Database 2024.07.10

[Database] RDB

개요데이터베이스의 기초에 대해서 학습해봤던 지난 시간에 이어, 데이터베이스 종류 중에서 중요한 부분을 차지하고 있는 관계형 데이터베이스 (RDB) 에 대해서 알아보겠습니다. 관계형 데이터베이스, RDB 란?관계형 데이터베이스는 데이터가 하나 이상의 열과 행의 테이블(또는 '관계')에 저장되어 서로 다른 데이터 구조가 어떻게 관련되어 있는지 쉽게 파악하고 이해할 수 있도록 사전 정의된 관계로써, 데이터를 구성하는 정보 모음입니다. 관계는 이러한 테이블 간의 상호작용을 기반으로 설정되는 여러 테이블 간의 논리적 연결입니다. RDB 의 주요 개념구조테이블(Tables): RDB에서 데이터는 행과 열로 구성된 테이블에 저장됩니다. 각 테이블은 Business Entity(예: 고객, 주문)를 나타내며 테이블의 ..

Database 2024.07.04

[Database] 데이터베이스의 기초

개요다양한 종류의 개발 프로젝트를 진행하면서 뗄래야 뗄 수 없던 것이 있었습니다. 바로 데이터베이스입니다. 프로젝트를 진행하면서 이해 관계자 혹은 기획자의 비즈니스 요구 사항을 분석하고 이를 소프트웨어 요구 사항으로 분리, 그리고 데이터 스키마 설계를 하는 과정은 너무나 당연한 수순이 되었습니다. 하지만 RDB, NoSQL, In-memory DB 등등 다양한 형태의 데이터베이스를 알게 되면서 각각의 상황에 따라 적합한 형태의 데이터베이스를 선택하는 것이 Well-designed Architecture를 설계함에 있어서 매우 중요하다는 것을 깨닫게 되었습니다. 그에 따라 기존에 알고 있던 데이터베이스의 지식들을 정리해보고자 합니다. 데이터베이스란?데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음으..

Database 2024.07.02

[WriterSide] Publishing and Access Control

개요 개발 중이던 프로젝트의 규모가 비대해지면서 문서화의 절실함을 느끼게 되었습니다. 그에 따라 다양한 문서 툴을 비교해보게 되었고, 실제로 사용해보면서 제가 느낀 각각의 특징은 다음과 같습니다.1. Notion 어찌보면 가장 보편적이고 강력한 문서툴이라고 할 수 있습니다. 기본적으로 제공해주는 다양한 템플렛들이 존재하고, 은둔고수들이 잘 정리해놓은 무료 템플렛 또한 여럿 존재하기 때문에 가장 먼저 후보에 올려놓은 문서툴이었습니다. 또한, 프로젝트 단위로 프라이빗한 공간에 작성하고 이를 한정된 사용자만 볼 수 있기 때문에 여러 팀원들과의 커뮤니케이션이 원활하였습니다. 허나, 한글을 사용하면 마지막 글자가 씹힌다거나, 네트워크 상태가 조금이라도 좋지 못하면 그 사이에 작성했던 문서들이 통으로 날아..

AWS 2024.04.24

Golang 입문기 - 문법 4

서론 이전 글까지 Golang에서 활용하는 타입에 대해서 공부해보았습니다. 이번 블로그를 끝으로 길고 길었던 타입에 대한 설명에 대한 마지막 투고가 될 것으로 예상합니다. Properties of types and values Underlying types (기본 타입들) 각 타입 T 에는 기본 타입들이 있습니다. T가 미리 선언된 Bool, 숫자 또는 문자열 타입 중 하나이거나 리터럴 타입이면 해당 기본 타입은 T 그 자체입니다. 그렇지 않으면 T의 기본 타입은 T가 선언에서 참조하는 타입의 기본 타입입니다. 타입 제약 조건의 기본 타입인 타입 매개 변수의 경우 항상 인터페이스입니다. type ( A1 = string A2 = A1 ) type ( B1 string B2 B1 B3 []B1 B4 B3 ..

Golang 2024.02.11

Make a Scheduler With AWS EventBridge

문제 사항 AWS Lambda의 Cold Start 문제로 인해 최대 15초 정도 시간이 소요되는 API가 존재 요구 사항 10분마다 해당 Lambda를 호출해주어서 Lambda Container가 Terminating 상태에 빠지지 않게 조치 필요 호출 비용을 최소화하기 위해서 트래픽이 가장 많이 몰리는 특정 시간에만 Warming 해주는 조치 필요 조치 사항 AWS EventBridge를 활용해서 Lambda를 정기적으로 호출해주는 Cron 작업을 선언해주었고, 이를 AWS CDK를 활용하여 IaaC 특성을 살려주었다. 활용한 코드 예시는 다음과 같다. import {Construct} from 'constructs' import * as cdk from 'aws-cdk-lib' import * as..

AWS 2023.11.21

Golang 입문기 - 문법 3

서두 저번 게시글에서는 Golang의 여러 타입에 대해서 알아보았다. 이번 시간에는 추가적인 Golang 타입에 대해서 알아볼 예정이다. Interface Types (인터페이스 타입) 인터페이스 타입은 타입의 집합을 정의한다. 인터페이스 타입의 변수는 인터페이스 타입 집합에 있는 모든 타입의 값을 저장할 수 있다. 이러한 타입을 인터페이스를 구현한다고 칭한다. 인터페이스 타입의 초기화되지 않은 변수 값은 nil이다. InterfaceType = "interface" "{" { InterfaceElem ";" } "}" . InterfaceElem = MethodElem | TypeElem . MethodElem = MethodName Signature . MethodName = identifier . ..

Golang 2023.11.20

Deploy Selenium to the AWS Machine

요구사항 Selenium Grid를 AWS Machine (ex. EC2, ECS, EKS 등등)에 배포하기 배포된 Selenium을 외부에서 접근해서 사용하기 실패한 이력들 1. EC2 https://github.com/SeleniumHQ/docker-selenium/blob/trunk/docker-compose-v3.yml 간단하게 docker-compose로 구성된 위 파일을 그대로 EC2에 배포해서 테스트 해보았다. docker-compose -f docker-compose-v3.yml up -d EC2 인스턴스는 Ubuntu 22.04 버전을 사용하였으며, 보안 그룹으로 3000-8000의 포트들을 모든 Ipv4 주소에 열어놓았다. 그리고 해당 Selenium을 테스트하는 코드는 다음과 같이 P..

AWS 2023.11.18