본문 바로가기

전체

(142)
23.01.26 TIL - Prisma(1) 1. Raw Query Raw Query는 데이터베이스에 SQL(Structured Query Language)을 이용하여 직접 쿼리(Query)를 요청하는 것을 뜻합니다. 장점 1)SQL만 알고 있더라도 데이터베이스와 상호작용 가능 2)엄청나게 긴 쿼리를 수행하거나 트랜잭션을 직접적으로 관리할 수 있다. ※ Node.js에서 Raw Query를 사용하려면 AWS RDS에서 대여받은 MySQL에 연결을 도와주는 데이터베이스 드라이버가 필요 -> mysql2라는 라이브러리로 가능 mysql2 연결속성 1)host : mysql2 데이터베이스 드라이버가 접속할 데이터베이스의 주소를 나타냅니다. 2)user : AWS RDS 데이터베이스의 계정명 3)password: AWS RDS 데이터베이스의 비밀번호 4)..
24.01.25 TIL - SQL(2) 1. SQL의 종류 1) DDL(Data Definition Language): 데이터를 정의할 때 사용하는 언어로, 테이블이나 데이터베이스를 생성, 수정, 삭제와 같은 행위를 할 때 사용합니다. i) CREATE ATABASE, TABLE, VIEW, INDEX 등을 생성할 때 사용합니다. ii) DROP DATABASE, TABLE, VIEW, INDEX 등을 삭제할 때 사용합니다. iii) ALTER DATABASE, TABLE 등의 속성을 변경할 때 사용합니다. 2) DML(Data Manipulation Language): 데이터베이스에서 데이터를 조작할 때 사용하는 언어로 데이터의 저장, 삭제, 수정, 조회와 같은 행위를 합니다. i) SELECT 일반적으로 TABLE에서 원하는 데이터들을 조..
error: MongoServerError: E11000 duplicate key error collection node.js에 mongoDB를 연동하다가 발생한 에러이다. 코드를 간소화하는 과정에서 skema의 필드의 이름을 좀 더 명확한 이름으로 정의하려고 원래의 프로젝트에서 이름만 변경했는데 post메소드를 thunder client로 시험하는 과정에서 문제가 발생했다. get메소드에서는 문제가 없어서 원래 필드와 다른 이름을 가진 데이터는 직접 삭제했기에 눈치채지 못했는데, post를 하면서 원래의 이름과 같은 필드명을 가진 필드에서 문제가 발생한 것이다. 그래서 몽고디비 아틀라스 사이트에 들어가서 직접 지워주고 다시 post를 시도하니 해결되었다. 이렇게 프로퍼티에 unique 문제가 발생했다는 표시가 있다. 이 문제가 발생한 필드를 지워주니 정상적으로 post메소드가 동작하였다. 에러 문제를 해결하기 전..
24.01.24 TIL - MySQL(1) 1. RDB vs NoSQL 비관계형 데이터베이스(NoSQL)은 데이터형식이 비교적 자유로워 작업이 빠르다. 저장(Write)과 읽기(Read) 작업이 빨라 복잡한 비즈니스 로직 없이 주로 데이터 읽기와 쓰기에 중점을 둔 서버에서 사용한다. 빅데이터 환경이나 단순 페이지뷰가 많은 어플리케이션에서 사용. ex) mongoDB 이에 반해 관계형 데이터베이스는 테이블이라는 개념이 존재함. 테이블은 열(column)과 행(row)를 가지는데 이는 엑셀과 유사한 형태로 보면 된다. 각 행(row)는 고유한 데이터를 나타내며, 각 열(column)은 데이터의 속성을 표현하고 사용자의 구성요소를 뜻한다. 이 테이블(표)들간에 서로 연관관계(Relationship)을 가질 수 있고 이런 관계를 통해 더욱 복잡한 쿼리를..
24.01.23 TIL- ubuntu 앞선 글에 이어서 EC2를 연결하려고 하는데 처음 해보니 여러 시행착오를 겪었다. 1. permition denied AWS EC2에 접속하기 위해 GIT bash에 ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피 이것을 집어넣었다. 하지만 경고문이 뜨고 강의에서 본대로 yes를 쳤지만 permition denied 키페어의 권한 설정이 문제인가 하고 찾아보던 중 경로가 문제라는 사실을 깨달았다. 당연히 로컬에 폴더가 존재하는 위치에서 열어야된다고 생각했는데 알고보니 키페어의 존재하는 경로에서 열어야 했던 것이다. 이렇게 ubuntu를 띄우기에는성공했다. 2. 포트 3000 추가 기본적으로 EC2는 22번 포트만 열려있는데 이것을 local환경인 3000번 포트에서 열려면 다음의 과정을..
24.01.22 TIL- EC2 오늘은 배포에 대해 배웠다. 그전 프로젝트에서는 devOps를 맡아주신 분이 있었고, 대개 백엔드에 맡아주곤 하셔서 관심을 가지지 않았던 부분이다. 하지만 이번에 백엔드를 배우면서 배포쪽도 기본은 알고 있어야 할 것 같아 정리해 봤다. AWS- EC2를 써볼것이고, 가비아 (https://www.gabia.com) 라는 사이트에서 도메인을 구매할 것이다. 가비아에서 할인 이벤트를 하는 도메인 중 (500원/1년)인 것도 있어서 그것을 테스트용으로 사용할 것인데, 1000원 이하는 카드결제가 안되므로 무통장입금(가상계좌)로 결제하는 것이 좋다. 1. EC2 instance 생성 1) AWS EC2에서는 컴퓨터 하나의 단위를 Instance라고 부르는데 이것은 서버 컴퓨터 하나를 대여한다는 것과 같다. co..
프로그래머스 1단계 - 나누어 떨어지는 숫자 배열 처음에 내가 생각한 방식 역시 filter를 사용하여 삼항연산자로 푸는 방식이었다. 하지만 문법적으로 자잘한 에러가 났고 배열 메소드의 사용법을 잘 익혀야겠다고 생각하게 되었다. 특히 answer에 arr.filter를 할당하는 것이 헷갈렸던 점이다. filter를 쓰고 또 조건문에서 push를 써야된다고 생각하니 로직이 꼬였다. function solution(arr, divisor) { var answer = arr.filter(v => v%divisor == 0); return answer.length == 0 ? [-1] : answer.sort((a,b) => a-b); } 결국 문법적인 에러에 계속 부딪혀 푸는 방식을 수정하여 function solution(arr, divisor) { var..
24.01.18 TIL - node 기초(1) 1. Node.js : Chrome V8 Javascript 엔진으로 빌드된 JavaScript 런타임 1) 이벤트투프 2) 논블로킹 I/O : 시스템의 실행흐름을 제어하는 방식. 여러 작업을 동시에 처리할 수 있음 3) 싱글 스레드 : 하나의 스레드르 사용. 동시에 하나의 작업만을 처리. 싱글스레드로 동작하지만 I/O 작업이 발생한 경우 이를 비동기적으로 처리하여 여러작업을 동시에 처리 javascript를 브라우저가 아닌 컴퓨터에서 브라우저 없이 실행하게 도와주는 환경. 핵심적인 코어 라이브러리 + V8 엔진 + libuv라는 라이브러리가 가능하게 한다. 여기서 libuv는 Node.js가 비동기 I/O작업을 수행할 수 있게 해주는 중요한 라이브러리. 요청을 효율적으로 처리할 수 있다. 장점 싱글 스..