분류 전체보기 (45) 썸네일형 리스트형 TIL 0415(데이터베이스) 데이터베이스 데이터의 집합 / 저장소 데이터를 저장하고 관리하는 체계적인 방법을 제공하는 시스템. 데이터베이스 관리 시스템 ( DBMS) 데이터를 어떻게 저장하고 관리하는지에 따라 분류 가능 RDBMS( Relational DBMS) 관계형 데이터를 관리하는 DBMS 데이터를 테이블 형태로 저장하고, 관계라는 개념으로 이어준다(데이터 간의 연결성이 중요) SQL을 사용하여 데이터를 조작한다. SQL: RDBMS에서 데이터를 관리하기 위해 설계된 언어 대표적으로 MySQL, PostgreSQL가 있다. NoSQL(Not Only SQL) SQL을 사용하지 않는 DBMS(Redis, MongoDB) 비관계형 데이터베이스 관리형. 키-값, 도큐먼트, 그래프 등 다양한 데이터 모델을 사용하여 데이터를 저장한다... TIL 0409 (Express , 싱글톤 패턴) Expres란 NodeJs를 위한 웹 애플리케이션 프레임워크 라우팅 엔드포인트(URI) 및 특정한 요청 메소드(GET, POST 등)에 대하여 응답하는 방식을 결정하는 것. 다음과 같은 구조를 가진다. app.METHOD(PATH, HANDLER) app.GET('/home', goHome) app: express의 인스턴스 METHOD: http 요청 메소드 (GET,POST,PUT,DELETE ...) PATH: 서버의 경로(엔드포인트) HANDLER: 경로가 일치할 경우, 실행되는 함수 미들웨어 요청과 응답, 그리고 애플리케이션의 요청-응답 주기 중 그 다음 미들웨어 함수에 대해 액세스 권한을 가지는 함수. 데이터를 주고 받는 중, 중간 매개역할을 하며 요청을 수행하기 전에 특정 액션을 취해준다. .. TIL 0408(nestJs 정의, 웹 앱 아키텍처&HTTP프로토콜/ RestFul API) 1.NestJs란 2. 웹 앱 아키텍처 & HTTP 프로토콜 3. RestFull API NestJs란 NestJs 타입스크립트를 지원하는 서버 어플리케이션 프레임워크이다. 고도화된 아키텍처를 제공해서, 확장가능하고 유지보수가 쉬운 서버 애플리케이션을 만들 수 있게 도와준다. 웹 앱 아키텍쳐 웹의 기본 구조 웹 브라우저 : html/css 명세에 따라 html 파일 해석 및 표시 웹 서버 : 브라우저로부터 http요청을 받아들여, html 같은 웹페이지를 반환(정적인 정보) 웹 어플리케이션 서버 : 동적인 정보 처리하여 정적으로 제공(사용자 장치에 어플리케이션을 수행해주는 미들웨어) 데이터베이스 서버 기본적인 동작 방식 URL 입력 -> 서버 컴퓨터의 html파일들이 다운받아져서 화면에 그려짐 -> 버턴.. Date-fns & DayJs Date 라이브러리 비교 1. Day.js - 객체 생성이 간단 - format 함수를 통해 원하는 형태로 출력가능 - 별도 설정하지 않으면 localtimezone에 맞춰 출력 - moment.js 경량화라 기능에 따라 별도 plugin 설치 필요 - size : 2.8 2. Date-fns - JS의 Date 객체를 조작하기 위한 도구 제공 형태( Date 객체를 반드시 만들어줘야함 ) - 트리쉐이킹으로 필요한 부분만 가져오기 가능 - size : 19.5 둘 디 UTC는 별도로 플러그인 설치해야함 https://grepper.tistory.com/66 리펙터링 2판 1장/2장 정리 챕터1 리펙터링: 첫 번째 예시 1-2 예시 프로그램을 본 소감 프로그램이 새로운 기능을 추가하기에 편한 구조가 아니라면, 먼저 기능을 추가하기 쉬운 형태로 리펙터링하고 나서 원하는 기능을 추가한다. 리펙터링이 필요한 이유는 변경 때문이다. 잘 작동하는 코드를 추후에도 변경할 일이 없다면, 리펙터링을 하지 않아도 문제가 없다. 프로그램이 원하는 동작을 하게 만드려면, 일단 수정해야 할 부분을 찾아야한다. 이 과정이 어렵다면, 시간이 더 오래 걸리고 실수를 저질러 버그를 만들 수 있다. 프로그램의 작동방식을 쉽게 파악할 수 있도록 여러 함수와 프로그램 요소로 재구성해서 구조를 바로잡으면 수정하기가 더 수월해진다. 1-3 리펙터링의 첫 단계 리펙터링하기 전에 제대로 된 테스트부터 마련한다. 테스트는 반드시 .. 참조와 복사 let a = 10; let b = a; b=20; console.log(a); 위와 같은 코드가 있을 때 콘솔에 찍혀나오는 결과 값은 무엇인가? 답은 10이다. 그럼 다음 코드를 확인해보자. let o = { isLoading: false } let o2 = o; o2.isLoading = true; console.log(o.isLoading); 위 코드에서 콘솔에 찍히는 결과 값은 무엇일까? 답은 true다. 언뜻 동일해보이지만 결과값이 상이한 두 코드의 차이점은 변수에 담기는 데이터의 타입이다. 첫번 째 코드는 변수에 기본형 데이터타입이 할당되었고, 두번 째 코드에는 객체형 데이터타입이 할당되었다. 기본형 데이터타입 (숫자, 문자, boolean, null, undefined)들은 해당 값이 들어있.. 첫번째 프로젝트:hacker news(8-9) UI 구현 및 상태관리 comment 영역 구현 해커뉴스 사이트의 댓글창은 대댓글을 달 수 있게 되어있다. 한 게시글에 댓글은 여러 개가 달릴 수 있고, 또 하나의 댓글에 여러개의 댓글이 다시 달릴 수 있는 구조이다. 따라서 comment라는 값은 여러개의 데이터들을 한번에 담을 수 있는 배열로 전달된다. 이 댓글 값을 뿌려주기 위해서는 데이터의 깊이가 몇 단계까지 있는지를 확인해야하는데, 가장 상위에 있는 값을 살폈을 때 안에 존재하는 모든 깊이의 데이터들을 다 열어보지 않는 이상 사실상 알 수 있는 방법이 없다. 이것을 해결하기 위해 재귀호출을 사용한다. 재귀호출이란 하나의 함수에서 자기 자신을 다시 호출하는 것을 말한다. 댓글 같은 경우엔 각각의 글들을 표시해주는 방식이 똑같다. 이 말은 즉, 댓글이나 대댓글이나 처리하는.. 변수와 상수 변수와 상수는 둘 다 데이터를 담는 그릇이다. 둘 사이의 차이점은 데이터 할당 이후에 데이터를 변경할 수 있는가 없는가 차이이다. 변수는 처음 할당해놓은 값을 수차례 변경 가능하고 마지막에 넣은 값이 최종값으로 유지된다. let age = 10; age = 20; age = 30; 반면 상수는 경우 값을 변경할 수 없다. 상수를 다른 값으로 변경하려고 하면 오류가 발생한다. const age = 10; age = 20; // 오류 주의할 점이 있다면, 상수에 객체를 할당할 때이다. 상수에 객체를 할당하게 되면, 상수가 영향을 끼치는 범위가 객체 바깥 쪽에만 해당하게 된다. 따라서 상수에 담겨있는 객체 자체를 다른 객체나 값으로 변경하려고 할 때에만 오류가 발생하게 되고, 객체 내부의 속성들의 값은 상수 .. 이전 1 2 3 4 5 6 다음 목록 더보기