전체 글 178

Nodejs 데이터 베이스 셋팅하기

models/user.js: 사용자 테이블과 연결됨 provider: 카카오 로그인인 경우 kakao, 로컬 로그인(이메일/비밀번호)인 경우 local snsId: 카카오 로그인인 경우 주어지는 id models/post.js: 게시글 내용과 이미지 경로를 저장(이미지는 파일로 저장) models/hashtag.js: 해시태그 이름을 저장(나중에 태그로 검색하기 위해서) 시퀄라이즈가 자동으로 생성해주는 코드 대신 다음과 같이 변경 모델들을 불러옴(require) 모델 간 관계가 있는 경우 관계 설정 User(1):Post(다) Post(다):Hashtag(다) User(다):User(다) 모델간의 관계들 associate에 작성 1대다: hasMany와 belongsTo 다대다: belongsToMany..

Node.js 2021.01.05

Docker File

1. 이미지를 생성하는 법 개발한 애플리케이션을 컨테이너화를 할 때 가장 먼저 생각나는 방법은 아래와 같다. 1. 아무것도 존재하지 않는 이미지(우분투, centOS 등)로 컨테이너를 생성 2. 애플리케이션을 위한 환경을 설치하고 소스코드 등을 복사해 잘 동작하는 것을 확인 3. 컨테이너를 이미지로 커밋 위와 같은 방법은 애플리케이션이 동작하는 환경을 구성하기 위해 일일이 수작업으로 패키지를 설치하고 소스코드를 깃에서 복제하거나 호스트에서 복제해야한다. (너무 귀잖다.) 하지만 도커는 위와 같은 일련의 과정을 손쉽게 기록하고 수행할 수 있는 빌드 명령어를 제공한다. 완성된 이미지를 생성하기 위해 컨테이너에 설치해야 하는 패키지, 추가해야 하는 소스코드, 실행해야 하는 명령어와 셸 스크립트 등을 하나의 파..

Docker 2021.01.04

Docker 이미지

모든 컨테이너는 이미지를 기반으로 생성되므로 이미지를 다루는 방법을 꼭 알고 있어야 한다. 이미지의 이름을 구성하는 저장소, 이미지 이름, 태그를 잘 관리하는 것뿐만 아니라 이미지가 어떻게 생성되고 삭제되는지 이미지의 구조는 어떻게 돼 있는지 알아보자. 도커는 기본적으로 도커 허브라는 중앙 이미지 저장소에서 이미지를 내려받는다. 기본적으로 docker create, docker run, docker pull의 명령어로 만들고 검색하고 내려받는다. 대부분이 이미 제공하거나 다른 사람들이 제공했기 때문에 APP 이미지를 직접 만들지 않아도 손쉽게 사용할 수 있다. 내가 사용하고 싶은 이미지가 있는지 docker search (이미지) 명령어를 통해 찾아볼 수 있다. 1. 도커 이미지 생성 1. 컨태이너 생성..

Docker 2021.01.04

중독과 습관 - 스스로 착취하는 삶에 대하여

담배는 끊기는 쉽다. 나는 이미 수백 번 해봤다. -마크 트웨인 약물 중독과 습관의 공통점 나쁜 습관이란 무엇을까? 바로 "우리가 하지 않기를 바라는 것들"이다. - 손톱 물어뜯기 -> 조금 귀찮은 나쁜 습관 - 흡연 -> 수명을 단축하고 주변에 해악을 끼치는 습관 중독 약물 사용은 우리의 뇌가 작동하는 방식과 뇌신경의 구조를 변화시킨다는 사실을 발견해냈다. 중독 약물의 파괴력은 어마어마하다. 몸에 해로운 정도가 아니라, 아예 정신 기능의 근원을 지배해버린다. '정신자극제'라고도 불리는 이 약물들은 다른 일반적인 약물이 개별적인 신경 시스템에 영향을 미치는 것과 달리, 인간 행동의 원천 담당하는 도파민의 활동을 통째로 장악한다. 일단 뇌가 약물을 만나 한번 쾌락을 맛보면 모든 주의력을 약물에 쏟도록 지시..

프로젝트 구조 갖추기

NodeBird SNS 서비스 만들어보자.. 기능: 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉 express-generator 대신 직접 구조를 갖춤 프런트엔드 코드보다 노드 라우터 중심으로 볼 것 관계형 데이터베이스 MySQL 선택 1. 폴더 생성 (프로젝트 넣을 폴더) 2. npm init 작성 3. 필요한 패키기 설치 4. npx sequelize init { const error = new Error(`${req.method} ${req.url} 라우터가 없습니다.`); error.status = 404; next(error); // error 미들웨어로 넘김 }); app.use((err, req, res, next) => { res.locals.message = err.me..

Node.js 2021.01.03

스택, 큐 개념과 코드

스택 스택은 말 그래도 쌓아올린다는 것이다. 무엇을? 데이터를 순서대로 메모리에 올리고 꺼낸다는 것이다. 특징 - 같은 구조와 크기의 자료를 정해진 방향으로만 쌓고 꺼낼 수 있다. - 메모리에 삽입하는 연산을 Push라고 한다. - 메모리에 삭제하는 연산을 Pop이라고 한다. - 마지막에 삽입된 자료가 가장 먼저 삭제된다. (후입선출) - 비어있는 스택에서 원소 추출하려고 하면 Underflow, 메모리가 꽉 찾을 때 더 넣으려고 하면 Overflow라고 한다. 예) 방문 기록, 실행 취소, 후위 표기법 계산 큐 큐의 개념은 도로로 생각하면 한 방향 일반통행이라고 생각하면 된다. 우리가 원한다고 유턴할 수 있는 것이 아니고 한 번 들어오면 반대쪽으로 나갈 수 밖에 없는 구조를 가진다. 즉 선입선출 스택의..

알고리즘 2021.01.03

습관 촉진 - 감당하기 힘든 고통에 대하여

소나무와 사이프러스 나무에 닥친 폭풍은 자신의 강인함을 증명할 좋은 기회다. -호찌민- 계획대로 흘러가는 삶은 없다. 인생은 스트레스로 가득하다. 절대 계획대로 흘러가는 법이 없다. 원하는 일을 할때보다 하고 싶지 않은 일을 할 때가 더 많고, 삶은 제멋대로 자신의 수를 척척 두며 거침없이 앞으로 나아간다. 우리를 둘러싼 상황은 언제나 예측 불가능한 경로로 흐른다. 인간의 신체는 스트레스를 받으면 아드레날린과 코르티솔을 포함한 호르몬을 분비하는데 이는 인간이 사고, 감정, 행동에 큰 영향을 끼친다. 사리를 분별하고 목표를 수립하고 실행 계획을 탐구하는 등 뇌가 융통성 있게 판단하는 데 사용하는 고차원적 인지 프로세스 기능을 저하시킨다. 즉 스트레스를 겪는 상태에서 수행되는 의사결정은 늘 고통스러울 수 밖..

Hash

블록체인, 암호화폐 기술에 항상 등장하는 것 중 하나가 해쉬함수이다. 해쉬함수란 간단히 말하면 어떤 길이의 데이터를 입력해도 정해진 길이의 결과를 주는 함수를 이야기한다. 특징. - 어떤 길이의 데이터도 입력으로 사용될 수 있다. - 결과는 정해진 길이로 나온다. - 계산 시간이 합리적으로 추정 가능해야한다. - 입력 길이에 제한이 없기 때문에 최소한 입력 길이에 선형적으로 비례하는 특성은 있어야한다. - 결과값이 중복될 일은 거의 없다. - 입력값을 알 수 없다. - 결과값을 알려주고 입력값을 찾을 수 있는 특벽한 공식이 없다. 나는 좀 더 자세한 설명은. www.youtube.com/watch?v=Vi0hauJemxA ( 내 youtube 채널 아님 )에서 설명을 들었다. 소스 예제는 (program..

알고리즘 2021.01.01

MongoDB CRUD 작업하기

CREATE 몽고디비는 컬럼을 정의하지 않아도 됨 자유로움이 장점, 무엇이 들어올지 모른다는 단점 자바스크립트의 자료형을 따름(차이점도 존재) ObjectId: 몽고디비의 자료형으로 고유 아이디 역할을 함 save method로 저장 컬렉션 간 관계를 강요하는 제한이 없으므로 직접 ObjectId를 넣어 연결 사용자의 ObjectId를 찾은 뒤 댓글 컬렉션에 넣음 Read find로 모두 조회, findOne으로 하나만 조회 첫 번째 인수로 조회 조건 입력 가능 - $gt나 $or같은 조건 연산자 사용 두 번째 인수로 조회할 필드를 선택할 수 있음(1은 추가, 0은 제외) 정렬은 sort 메서드로 함 limit 메서드로 조회할 다큐먼트 개수 제한 skip 메서드로 건너뛸 다큐먼트 개수 제공 Update ..

DB/NoSQL 2021.01.01

mongoDB설치 (몽구스 ODM 사용)

MySQL같은 SQL 데이터베이스와는 다른 유형의 데이터 NoSQL의 대표주자인 mongoDB(몽고디비) 사용 JOIN: 관계가 있는 테이블끼리 데이터를 합치는 기능(몽고디비 aggregate로 흉내 가능) 빅데이터, 메시징, 세션 관리 등(비정형 데이터)에는 몽고디비 사용하면 좋음 1. mondgoDB 설치 mongoDB 공식 사이트(https://www.mongodb.com/try/download/community) Window Next를 눌러 다음으로 넘어가다가 Complete로 모든 프로그램 기능 설치 Install MongoD as a Service 체크 해제하기 컴퍼스도 같이 설치하는 옵션에 체크하여 설치 워크벤치와 비슷한 기능을 함 윈도의 경우 C:\에 data 폴더를 만들고 그 안에 db ..

DB/NoSQL 2020.12.31