전체 글 20

[DB] 뷰(View) 란?

뷰(view) 란?뷰(view)는 데이터베이스 작업 시 기본 테이블에서 유도된 가상 테이블이다. 뷰 테이블 (view table)이라고도 한다. 뷰는 사용자에게 접근이 허용된 데이터만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도되며, 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주되고 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다. 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화한다. 데이터베이스에서 뷰(view)는 위와 같은 사전적인 의미를 갖는다. 위의 내용을 요약하면 아래와 같다.데이터베이스에 존재하는 일종의 가상 테이블실제 데이터베이스에 데이터를 적재하지 않음실제 존재하는 테이블처럼 보임 뷰(view)의 주요 이점 중 하나는 ..

DB 2024.05.09

[Git]commit username이 root로 설정되는 이유

실제 실 서버 내부에서 개발 작업 후에 commit & push를 하는 경우는 많이 없겠지만 가끔씩 모종의 이유로 작업을 해야 되는 경우가 있다.  이때, 아래 사진과 같이 Git 커밋에 사용되는 전역 사용자 정보가 올바르지 않게 설정되지 않았을 경우 다음과 같은 경고 문구가 나타난다. 클라우드를 대여해서 처음 os 세팅을 하거나 컨테이너 내부에 git을 설치하고 commit을 할 때, 종종 이런 경고문을 확인할 수 있다.   실제 원격 레퍼지토리에 가보면 실제 사용중인 시스템 사용자 이름을 기반으로 로그가 남겨있는 걸 확인할 수 있다.  해결 방법은 간단하다. 본인의 깃헙 username과 email을 등록하면 된다. 이후 전역으로 설정된 정보에 따라 위와 같은 문구가 나오지 않고 정상적으로 올라가는 ..

Git 2024.05.01

[Authentication] 인증/인가란?

개요서비스에서 사용자의 신원을 검증하고 식별된 사용자에 맞춰 서비스를 제공하기 위해서는 별도의 검증 프로세스가 필요하다.예를 들어 아이디, 패스워드를 입력해서 사용자가 서비스에 가입된 유저인지 검증하는 로그인 기능이 그 예시이다.서비스에서 이러한 절차를 인증/인가 방식이라고 한다.인증(Authentication):신원을 확인하는 프로세스를 말함사용자가 특정 시스템에 로그인하거나 특정 서비스에 접근할 때, 실제 유저인지 인증하는 개념EX) 핸드폰 본인인증, ID, PW를 통한 로그인 행위인가(Authorization):인증된 사용자가 특정 리소스에 대한 접근 권한을 부여받는 개념사용자가 접근 가능한 작업의 범위를 결정EX) 관리자 권한으로 실행, 파일 시스템 접근 여부정리하면 인증은 사용자의 신원을 확인하..

Server 2024.05.01

[JS] 가비지 컬렉션(Garbage Collection)

현재 회사에 주 백엔드가 node로 되어있기 때문에, 자바스크립트, 타입스크립트에 대한 기본적이지만 핵심적인 내용들을 다뤄볼까 한다.(그 밖에 기본 CS 적인 부분들도 하나씩 다룰예정 )그중 오늘은 가비지 컬렉션에 대해서 알아보고 자바스크립트에서 가비지 컬렉션이 어떻게 발생하는지 알아보겠다.가비지 컬렉션이란(GC)이후 글은 가비지 컬렉션을 GC라고 칭한다. c, c++와 같은 저수준의 언어를 사용해 개발하면 malloc과 free 함수를 사용해서 직접 메모리를 할당하고 해제하며 개발할 수 있다. 직접적인 메모리 관리를 통해서 성능 최적화나 하드웨어의 코어적인 개발에 있어서 장점을 제공하지만, 메모리 관리는 개발자 본인이 해야 되기 때문에 메모리 오류나 누수가 발생할 우려가 있다.저수준언어란?컴퓨터가 직접..

Language/JS & TS 2024.05.01

[AWS] 도메인 구매 없이 Node 환경에서 TLS(SSL) 빠르게 인증하기 (EC2+ Open SSL)

오늘은 AWS 의 EC2 인스턴스에서 빠르게 TLS(SSL) 인증을 하는 방식에 대해서 소개하겠다. 도메인 없이 Public IP 를 발급받은 EC2 인스턴스에서 간단한 테스트를 위한 개발을 할 때, 주로 사용하는 방식이다.(실제 배포하는 서비스에서는 사용하기 좋은 방식이 아니기 때문에 테스트용으로만 사용하면 좋을 것 같다.) AWS에서 Route53, ACM(Amzone Certification Manager)를 사용해서 인증을 받을 수 있지만, 도메인 구매와 약간의 비용이 발생하기 때문에, 이전에 사이드 프로젝트로 스트리밍 관련된 서비스를 개발 했을 때, 이 방식을 적용했었다.  Route 53, ACM을 통한 인증방식은 나중에 정리해서 업로드 하겠다.    Amazon Route 53 | DNS 서..

카테고리 없음 2024.05.01

[AWS] EC2 시작하기

AWS의 다양한 서비스 중에서 VMware나 virtualbox와 같이 가상 서버를 구축하고 사용할 수 있는 서비스인 EC2(Amazon Elastic Compute Cloud)를 빠르게 세팅하고 설정하는 법에 대해서 정리하려고 한다. 우선 AWS 계정에 가입 및 로그인을 하면 다음과 같은 화면이 나온다. 이후, 아래 이미지에 표기된 것처럼 서비스-검색-EC2를 검색하고 클릭하여 들어간다.  이후 인스턴스 시작 버튼 클릭.   본인이 사용할 인스턴스의 이름 및 사용할 OS를 선택한다. 본인이 사용할 OS 선택 후, 해당 OS의 버전을 선택하면 된다.(본인은 Ubuntu 20.04 LTS 버전을 선택)   이후, 인스턴스 유형을 선택한다. 인스턴스 유형은 대여할 인스턴스의 CPU, 메모리, 스토리지 및 네..

Devops/AWS 2024.05.01

[AWS] Intro

내가 다니고 있는 회사는 본인포함 개발자가 2명뿐인 교육 계열 스타트업이다.  시니어 없이 프론트엔드 개발자 분과 함께 스타트업에서 서비스 운영을 위해서 경험하고 다루었던 AWS 서비스들에 대해서 하나씩 다루어보고자 한다!  AWS 카테고리에 있는 테마들은 회사 및 개인 프로젝트에서 이미 사용했던 경험이 있는 내용과 앞으로 AWS 클라우드 환경에서 적용시켜 나갈 항목들이 될 것 같다.

Devops/AWS 2024.05.01

[Trouble Shooting] Express PayloadTooLarge 413 Error 해결

현재 우리 회사의 백엔드 서비스는 Express + PM2 기반으로 서버들로 구성되어 있다.(상세한 서비스 인프라 구성은 다음에 설명하겠다!) 최근 서비스 출시에 앞서 MVP 형태의 서비스를 출시했는데, 푸시를 담당하는 백엔드 서버 단에서 Express Payload Too Large 413 에러가 발생했다. 해당 에러가 발생한 원인과 문제 해결 방식에 대해서 작성하려고 한다.  문제상황  문제 상황을 말하기에 앞서서 현재 회사에서 운영중인 서비스는 B2B, B2C 기반의 초등학교 방과 후 시스템을 관리해 주는 시스템이다.학교 내부에 강사, 코디분들이 주로 사용하며 주요기능으로는 학생, 수업 관리 학교 방과 후 전반의 시스템을 관리해 주는 시스템의 일종이다. 이 많고 많은 기능 중 에서 특히 민감(?)한..

Error Log 2024.05.01

[node] Ubuntu20.04에 node LTS install

서버에서 맨날 node 설치하는데 잊어버려서 기록한다. target OS: ubuntu20.04 How to Install $sudo apt-get update $sudo apt-get install -y ca-certificates curl gnupg #curl, gnupg, ca-certificates 설치 $sudo mkdir -p /etc/apt/keyrings # GPG key 저장용 $curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg #node 저장소에 GPG키 로드 및 저장, GPG키는 저장소에서 패키지 신뢰용으로 사용..

Server 2023.10.28

[ITerm2] 터미널에서 "You have mail." 메시지 확인하기

언제부턴가 ITerm2 Shell 창에 You have mail.이라는 문구가 계속 나타났다. 대수롭지 않게 생각하다가 최근에 터미널에서 작업할 일이 많이 있다 보니, 계속 걸리적거렸다. 운영체제단에 메일을 받을 수 있나? 뭔 메일이 있다는 건지 모르겠고 걸리적거려서 서치를 해보니 시스템단에서 어떤 동작에 대해 사용자에게 알리고 싶을 때, 해당 문구가 나오는 거라고 한다. 결론적으로는 누군가 내 PC로 메일을 보낸 것이 아니라, 특정 스크립트나 이벤트가 발생했다고 알려주는 거라고 한다.(일종의 경고(알림) 메시지) 다음 커맨드를 입력하면 어떤 내용이 날아왔는지 볼 수 있다. $mail 해당 커맨드로 확인을 해보니, 이전에 작업하던 파이썬 스크립트가 cron 스케줄러로 계속 돌고 있었다 :( cron 식을..

ETC 2023.10.23