TIL
-
TIL.99 Node.js_Project ArchitectureTIL/Node.js 2021. 1. 15. 22:23
이전까지는 Python / Django / MySQL만 다뤄보았다. 이를 이용해 1, 2차 프로젝트를 진행하였다. 하지만 한달 인턴 과정에서 Nest.js/TypeORM/MongoDB/Typescript 를 이용해 백엔드 API를 구현해야 했다. Nest.js 란 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션 을 구축하기위한 프레임 워크이다 Node.js가 무제노트처럼 새하얀 백지 상태에서 글을 작성하는 것이라고 한다면 Nest.js는 노트에 정해진 규칙과 구조(줄, 표 등의 구조)를 바탕으로 글을 작성해 나가는 것과 같다. 즉 정해진 규칙과 구조가 있으며 이를 따라 개발하기만 하면 안정성, 효율성 두가지를 모두 충족할 수 있다. (Django와 비슷한 역할이다, 다만 Nest.js에서는 p..
-
TIL.98 Node.js란?TIL/Node.js 2021. 1. 14. 21:49
Node란 비동기(Asynchronous) 이벤트-기반(event-driven) JavaScript 런타임 환경이다. javascript는 기본적으로 브라우저에 내장되어있다. 따라서 Node 이전까지는 javascript를 인터넷 브라우저에서만 실행할 수 있고, 브라우저의 환경에서만 사용할 수 있는 언어였다. Node를 이용해 Javascript를 유저 컴퓨터 환경에서 사용할 수 있게 되었고 즉, 브라우저의 밖으로 꺼내 유저가 사용할 수 있게 되었다고 한다. 따라서 javascript로 서버를 만들수도 있고 웹 스크래퍼를 만들어 웹페이지에 접속해서 정보들을 수집할 수 있게 되었다. 브라우저와는 별도로 작동할 수 있는 무언가를 만들 수 있게 된 것이다. 이렇게 javascrip를 사용할 수 있게되면서 자연..
-
TIL.97 PostgreSQL 기본 명령어TIL/PostgreSQL 2021. 1. 13. 19:40
PostgreSQL의 기본명령어를 알아보자. - PostgreSQL shell 진입 psql db_name -U user_name - DB 목록 조회(show databases) \list or \l - 테이블 목록 조회(show tables) \dt - DB 생성 create database db_name Database 소유하는 user 지정 create database db_name with owner=user_name - DB 명 변경 alter database db_name rename to db_name2 소유하는 user 지정 변경 alter database db_name owner 변경user_name -현재 존재하는 SCHEMA 조회 \dn - Schema 생성 1.CREATE SCHEM..
-
TIL.96 PostgreSQL 튜토리얼TIL/PostgreSQL 2021. 1. 12. 18:14
기업협업 프로젝트 간 Nest JS 와 Typescript 그리고 PostgreSQL 을 사용하여 진행하게 되었다. 기존 MySQL이 아니지만 동일한 관계형 데이터베이스로 간단한 설치 방법 및 권한부여, DB 조회 등을 알아보자. 1. PostgreSQL 설치 brew install postgresql 2. PostgreSQL 서비스 시작 pg_ctl -D /usr/local/var/postgres start 또는 brew services start postgresql 3. 실행 확인 postgres -V 4. postgreSQL 접속 psql postgres 5. 자동으로 postgres 라는 유저가 기본으로 생성된다고 하지만 나는 아래와 같이 단 하나의 유저만 생성되었다. postgres=# \du ..
-
TIL. 95 SQL DDL, DML, DQLTIL 2021. 1. 11. 21:27
이전까지는 Django 프레임워크를 이용하여 MySQL DB에 접근하여 CRUD를 사용 하였다. 기본적으로 MySQL에 원하는 데이터를 생성하고 수정하는 등의 업무를 수행하기 위해선 원래대로 라면, SQL 문을 알아야 하고 이를 이용해 CRUD등과 같은 업무를 수행할 수 가 있다 이전 Django 대해 알아볼 당시 한번 언급하였던 Django ORM 개념으로 내가 작성한 Python 문 -> SQL 문으로 데이터베이스가 알아 들을수 있는 문법으로 자동으로 변환시켜 준다. (migrations.py) 하지만 기본적으로 SQL 문은 가장 기본적으로 데이터베이스에 사용되는 언어이므로 반드시 숙지하고 있어햐 한다. 언제까지 Django ORM을 사용하여 이러한 과정을 Django에게 떠넘기게 된다면 SQL문 바..
-
TIL.94 Javascript_Promise 이해하기TIL/Javascript 2021. 1. 10. 21:07
Promise? “A promise is an object that may produce a single value some time in the future” 프로미스는 자바스크립트 비동기 처리에 사용되는 객체입니다. 여기서 자바스크립트의 비동기 처리란 ‘특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성’을 의미 Promise가 필요한 이유? 프로미스는 주로 서버에서 받아온 데이터를 화면에 표시할 때 사용합니다. 일반적으로 웹 애플리케이션을 구현할 때 서버에서 데이터를 요청하고 받아오기 위해 아래와 같은 API를 사용합니다. $.get('url 주소/products/1', function(response) { // ... }); 위 API가 실행되면 서버에다..
-
TIL.93 Javascript 비동기 처리 이해하기TIL/Javascript 2021. 1. 9. 22:25
비동기 처리? 자바스크립트의 비동기 처리란 특정 코드의 연산이 끝날 때까지 코드의 실행을 멈추지 않고 다음 코드를 먼저 실행하는 자바스크립트의 특성을 의미합니다 비동기 처리의 첫 번째 사례 비동기 처리의 가장 흔한 사례는 제이쿼리의 ajax입니다. 제이쿼리로 실제 웹 서비스를 개발할 때 ajax 통신을 빼놓을 수가 없습니다. 보통 화면에 표시할 이미지나 데이터를 서버에서 불러와 표시해야 하는데 이때 ajax 통신으로 해당 데이터를 서버로부터 가져올 수 있기 때문입니다. 그럼 ajax 코드를 잠깐 살펴보겠습니다. function getData() { var tableData; $.get('https://domain.com/products/1', function(response) { tableData = r..
-
TIL.92 Javascript_Reduce 함수TIL/Javascript 2021. 1. 8. 23:41
reduce() 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다. reduce를 덧셈 함수이긴 하나 그 부분만 있는 것이아니다. 대부분의 사이트에서 reduce 사용 예시를 덧셈으로 들고 있기 때문이다. 하지만 reduce는 map과 함께 굉장히 중요하고 강력한 녀석으로 맵리듀스라는 프레임워크도 있을 정도이다. 배열.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과 }, 초깃값); 이전값이 아니라 누적값이라는 것에 주의하셔야 합니다. 누적값이기 때문에 다양하게 활용할 수 있습니다. const array1 = [1, 2, 3, 4]; const reducer = (accumulator, currentValue) => accumula..