[데이터베이스] 정규화
2023. 1. 8. 19:31
데이터베이스
들어가며 이번에 새로 팀 프로젝트를 시작하며 데이터베이스 모델링을 맡게 되었다. 개념적 데이터 모델링을 통해 서비스에 필요한 엔티티 도출부터 시작해서 어느 정도 데이터 모델링을 끝마쳤다. 내가 한 데이터 모델링에 대한 확신이 없어 좀 더 좋은 데이터베이스 설계에 대한 고민이 들기 시작했다. 자료를 찾아보던 중 정규화 작업을 통해 데이터 모델링이 단계적으로 잘 이루어졌는지 점검할 수 있다는 것을 알게 되었다. 정규화라는 단어에 대해서만 들어보았지 실제로 어떤 과정을 거쳐 정규화 작업이 이루어지는지 몰라 이번 기회를 통해 공부하게 되었고, 공부한 내용을 잊지 않고자 이렇게 글로 남긴다. 이 글은 여러 블로그 자료를 공부하며 나름대로 이해한 바를 바탕으로 정리한 내용이니 내용 상에 오류가 발견될 수 있다. 치..
[JavaScript] 예시를 통해 알아보는 this
2022. 12. 28. 14:46
프로그래밍 언어/JavaScript
JavaScript에서 this 는 함수 호출 방법에 의해 결정된다. 예시1) 객체 메소드의 this const phone = { name: 'Galaxy Note 3', getName: function () { console.log("getName: ", this); }, } phone.getName(); // output: getName: {name: 'Galaxy Note 3', getName: f} getName 메소드의 호출자가 phone 객체이므로, getName 실행 시 this 는 phone 객체이다. 예시2) 전역 객체에서의 this const phone = { name: 'Galaxy Note 3', getName: function () { console.log("getName: ", ..
[TypeScript] Conditional Types, extends, infer
2022. 12. 25. 22:20
프로그래밍 언어/TypeScript
Conditional Types TypeScript에서 삼항 연산자를 이용해 타입을 지정하는 방식입니다. 예시) TypeScript에 내장된 Utility Types의 Extract 타입 type Extract = T extends U ? T : never T extends U 가 참이면 T를, 그렇지 않으면 never를 반환합니다. 삼항 연산자의 조건문에 올 수 있는 문법에는 extends 키워드 밖에 없습니다. extends extends 키워드는 슈퍼 클래스를 서브 클래스에게 상속해 줄 때 사용하는 키워드입니다. 타입 지정 시, extends 키워드는 T extends U 에 대해 T 는 U 에 포함된다는 의미입니다. extends 키워드가 사용되는 조건문 예시를 살펴보며 제대로 이해한 게 맞는지 ..
[TypeScript] 기본 타입
2022. 12. 20. 17:35
프로그래밍 언어/TypeScript
TypeScript 의 기본 타입에는 boolean, number, string, array, tuple, enum, any, void, null, undefined, never, object 등이 있습니다. 이에 대해 하나씩 예시와 함께 살펴보겠습니다. 불린(Boolean) true 혹은 false 값을 나타냅니다. let isExist:boolean = false; 숫자(Number) TypeScript의 모든 숫자는 부동 소수 값입니다. 16진수, 10진수 리터럴에 더불어 2진수, 8진수 리터럴도 지원합니다. // 10진수 리터럴 let decimal: number = 3; // 16진수 리터럴 let hex: number = 0xf00d; // 2진수 리터럴 let binary: number = ..
[원티드 백엔드 챌린지 코스 수강] AWS 인프라 관련 요소들 살펴보기
2022. 12. 19. 17:05
AWS
들어가며 이번 달 원티드 백엔드 챌린지 코스 주제는 백엔드 인프라 설계 with AWS 였다. 첫 수업에서는 AWS 인프라 관련 요소들에 대해 살펴보았습니다. AWS 인프라 관련 요소들에는 AWS API Gateway, AWS S3, AWS ELB, AWS CloudFront, AWS Secret Manager 등이 있다고 합니다. 한 번의 수업만 듣고는 다 이해하지 못해 따로 공부하는 시간을 가졌고 이번 글을 통해 수업 내용에 제가 공부한 내용을 추가해 학습 내용을 정리하는 시간을 가지려고 합니다. 여러 자료를 찾아보며 나름대로 정리한 내용이라 부정확한 정보가 있을 수 있으니 언제든지 잘못된 정보가 있다면 댓글로 남겨주시기 바랍니다. 앞에서 언급했다시피 AWS 인프라 관련 요소들에는 AWS API Ga..
[Nest] WebSocket 서버 구성하기(feat. Socket.io)
2022. 12. 12. 19:58
라이브러리 & 프레임워크/NestJS
WebSocket이란? WebSocket(ws) 이란 http 프로토콜과 같이 프로토콜의 일종이며, 클라이언트와 서버(브라우저와 서버)를 연결하고 언제든 양방향(주고 받는) 통신 또는 데이터 전송이 가능하도록 하는 기술입니다. 이번 게시글에서는 WebSocket 프로토콜을 기반으로 구축된 Socket.io 라이브러리를 이용하여 WebSocket 서버를 구성 후 연결 테스트를 해보겠습니다. 역시나 NestJS 의 공식문서에 설명이 잘 되어 있어 이를 참고했습니다. https://docs.nestjs.com/websockets/gateways#gateways Documentation | NestJS - A progressive Node.js framework Nest is a framework for bui..
[Network] IP Class
2022. 12. 9. 15:53
컴퓨터 과학/네트워크
네트워크 클래스의 등장 배경 우리는 이제껏 IPv4 체계의 IP 주소를 사용해 왔기 때문에 이미 인프라가 IPv4 환경으로 구축되어 있습니다. 따라서 이미 구성된 인프라를 최대한 활용하기 위해서 IPv4 체계의 IP 주소를 사용하는 네트워크의 규모에 따라 관리하기 쉽도록 클래스라는 이름으로 나누기 시작했습니다. 이는 네트워크 클래스의 등장으로 이어졌습니다. 네트워크 클래스란? 네트워크 클래스는 IPv4 네트워크를 규모에 맞게 잘 사용하기 위해 등장한 개념입니다. IP 주소에서 어떻게 네트워크 주소와 호스트 주소를 구분할 수 있을까? -> 클래스를 이용해 네트워크 주소와 호스트 주소를 구분할 수 있다. 예시) 203.240.100.1 203.240.100.1 IP 가 C 클래스이기 때문에 204.240.1..
[Network] IP 주소
2022. 12. 9. 14:57
컴퓨터 과학/네트워크
IP 주소란? IP 주소 : 네트워크 환경에서 컴퓨터 간 데이터를 주고받기 위해 각 컴퓨터에 부여된 네트워크 상 주소 각기 떨어져 있는 컴퓨터들이 데이터를 주고받기 위해서는 각 컴퓨터들의 주소가 존재해야 합니다. 그 주소가 바로 IP 주소입니다. IP 주소는 네트워크 주소 + 호스트 주소로 구분됩니다. 네트워크 주소는 인터넷 상에서 네트워크를 구분하는 역할을 하고, 호스트 주소는 특정 네트워크 안에 존재하는 기기들을 구분하는 역할을 합니다. IP와 IP 주소의 차이 우리는 흔히들 IP 주소와 IP 를 동일한 개념으로 사용하는 경우가 많은데요. 사실 차이가 있으니 이에 주의해서 사용해야 합니다. IP : 프로토콜 IP 주소 : 인터넷 상에서 데이터를 주고받을 때 사용되는 각 컴퓨터들의 주소 IP 주소 부여..