동기(synchronously)와 비동기(asynchronously)blocking 요청에 대한 결과가 동시에 일어난다. 한 줄 씩 읽고 시작지점과 끝 지점이 같다.non-blocking. 요청에 대한 결과가 동시에 일어나지 않는다.자바스크립트에서 제공하며 비동기를 간
push로 넣고, pop으로 빼고 LIFO(last in first out), FILO(first in last out)unshift로 넣고, pop으로 빼고 FIFO(first in first out), LILO(last in last out) 의 형태를 가진다.루트
업로드중..재귀함수는 재귀함수를 사용하지 않고 반복문으로 문제를 풀 수 있지만 배열이 얼마나 중첩되어있는지 알 수 없을때 사용하면 편리하다.리턴문으로 자기 자신(함수)을 계속 호출하여 조건에 맞을경우 그 값을 리턴하고 함수는 종료된다. 계속적으로 stack이란 공간에
할당을 하여 같은 주소값을 바라보게 되는 복사이다.원본을 변경하면 복사본이, 복사본을 변경하면 원본이 변경된다.1.slice()2.spread문법3.Object.assign()요런 세가지 방법등이 있는데, 이러한 방법을 이용해 복사를 하면 단순객체복사와 다르게 같은 참
업로드중..배포하기 위해 클라이언트 코드를 배포하기 알맞게 정적으로 변환 시키는 것.소스 코드 파일을 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정이나 결과물.Source code -> build -> executable file빌드 자동화를 도와주는 도구-다
서버 스프린트를 진행했는데 콘솔을 어떻게 찍어야할지 고민하고 콘솔보는데만 1시간이 더걸렸다.포스트맨을 이용해서 내 로컬호스트와 경로를 설정하고 내가 알고자하는 것을 쿼리로 작성해서 send를 누르면 내가 작업하고 있는 vs코드 터미널창에 콘솔이 찍히는 것을 확인할 수
크롬이 사용하는 v8엔진이 자바스크립트 해석을 잘해서 크롬브라우저가 빠르다. v8해석엔진을 이용해 살을 붙쳐 출시를 한 게 node.js다.자바스크립트라는 언어를 브라우저 내에서 말고도 다른 환경에서 쉽게 실행할 수 있도록 node.js를 만들었다.즉, node.js는
리소스가 존재하는 곳. 한 컴퓨터가 네트워크로 연결된 하나, 또는 그 이상의 컴퓨터들에게 뭔가를 해주면 그 server해주는 컴퓨터가 'server' 이다.리소스를 사용하는 것. 서버의 역할을 받는 것.클라이언트가 요청을하면 서버는 응답을 한다.이것을 2-Tier 아키
컴포넌트의 갯수가 많지 않을때는 props로도 충분하고, 컴포넌트 갯수가 많더라도 리덕스 없이 개발을 할 수 있지만 리덕스를 사용하면 상태관리 로직을 컴포넌트로부터 분리하여, 표현에 집중한 보다 단순한 함수 컴포넌트로 만들 수 있게 된다.store는 모든 state를
자바스크립트는 웹 사이트에서 스크립트를 작성하는데 사용 되는 프로그래밍 언어이며 브라우저와 돔등을 다룸으로써 기본적으로 클라이언트 개발을 할 수 있다.자바스크립트로 는 서버측에 접근하지 못하는데 여기서 노드제이에스를 사용함으로써 브라우저 외부에서 자바스크립트 코드를 실
네트워크란 무엇일까?컴퓨터와 컴퓨터가 메일 같은 걸 보내거나 홈페이지를 보거나 하는... 세계가 이어져서...이것이 인터넷이다.. 같은거...?⁉️ 그렇다면 물류 네트워크같은 데서 사용하는 네트워크는 다른 것 일까...?인터넷은 물론 '물류', '신경', '도로', '
널리 활용해 온 전통적인 아키텍처다.하나의 애플리케이션 안에 모든 컴포넌트를 포함하는 구조다.구조가 단순해 개발과 배포가 간편하다.하나의 애플리케이션 안에 모든 컴포넌트를 포함하는 구조로 구조가 단순해 개발과 배포가 간편하다는 장점이 있는 일체형 시스템이다.로드 밸런서
마이크로서비스 하나는 독립적인 프로세스 하나를 의미한다.개발과 배포에 상호 독립적이다.개술 독립성을 가진다.독립적인 데이터 저장소를 가질 수 있다.각 마이크로서비스는 각자 가진 네트워크 기능으로 통신할 수 있다.모놀리식 아키텍처를 단독으로 실행 가능한 다수의 모듈로 분
selenium 모듈을 이용해 크롬창을 띄워 검색해 블로그에 들어가며 블로그 제목을 긁어오고, cheerio 모듈을 이용해 다른 사이트의 DOM을 긁어오는 크롤링을 해봤다.
Node.js를 이용한 express 서버에 요청이 왔을 때, 요청한 사용자의 IP를 얻는 방법requestIp 모듈을 받고, get요청이 들어올때 사용자 IP가 콘솔에 찍힐 수 있도록 작성했었는데, 밑의 코드로 작성해 로컬에서 get요청을 하면 ::1 이 콘솔에 출력
AWS 메뉴에서 EC2 서비스 검색 후 인스턴스 시작 → Ubuntu 인스턴스 선택 후 검토 및 시작 (18버전 권장)생성되는 인스턴스를 원격으로 제어하기 위해 SSH 연결을 통한 원격접속이 필요하므로 원격접속을 위해 필요한 key를 생성하고 다운로드 한다.새 키 페어
s3 접속 → 버킷만들기 → 버킷이름 설정후 아시아 태평양(서울)리전 → 버킷만들기 → 버킷 클릭후 속성 탭 클릭 → 정적웹사이트 호스팅 편집 → 활성화 선택 → 인덱스와 오류문서에 index.html 작성후 변경 사항 저장 → 권한 탭 클릭 → 퍼블릭 엑세스 차단 옵
1) 서버에서 타임 스탬프 얻기 2) 클라이언트에서 타임 스탬프얻기 2) 타임 스탬프를 원하는 형식대로 사용하기
aws에서 제공하는ec2는 인스턴스를 키고 끌때마다 IP가 달라진다.클라이언트와 연동, 도메인 연결등 고정적인 IP가 필요한 서비스에서는 IP가 변경되는 문제가 발생할 수 있다.ec2 → 네트워크 및 보안 부분 탄력적 IP → 탄력적 IP 주소 할당 → 할당 버튼 클릭
Install Start 접속 비밀번호 설정
Next js 모든 페이지 Pre-rendering<사전렌더링> ⇒ 더좋은 퍼포먼스, 검색엔진최적화(SEO)정적생성과 서버사이드 렌더링의 차이점? 언제 html 파일을 생성하는가정적 생성 (Static Generation)프로젝트가 빌드하는 시점에 html 파일
프로젝트 폴더 생성디버거를 진행할 파일 작성왼쪽 사이드바 4번째 디버거로 이동상단 드롭바 클릭 후 ‘Run Current File’ 선택후 초록버튼 누르면 현재 켜져있는 파일 실행Add config(폴더이름) 클릭후 Node.js 선택하면 프로젝트 폴더에 .vscode
📌 노드 버전 업데이트 후 npm install -g typescripttsconfig.json 파일 생성후 밑의 코드 작성 & .ts 확장자 파일명 생성 후, 코드 작성을 하면된다..ts 파일은 브라우저에서 읽지 못한다. js 코드만 읽을 수 있음! 그러므로 ts
📌 어플리케이션 개발 단계부터 배포 때까지 모든 단계들을 자동화를 통해 조금 더 효율적이고 빠르게 사용자에게 빈번이 배포할 수 있도록 만드는 것.버그수정, 새기능이 메인 레포에 주기적으로 빌드되고 테스트되어 머지되는 것을 말한다.point 1. 코드 변경사항을 주기적
fabric js를 이용해 캔버스에 텍스트를 작성할 수 있는데, 3가지가 있다.fabric.Text캔버스에 텍스트가 그려지고 글씨체, 사이즈 조절, 색상변경등은 가능하지만 텍스트 내용 수정이 불가능하다.fabric.Textbox캔버스에 텍스트가 그려지고 글씨체, 사이즈
이메일 비밀번호
vscode extention live server가 잘 작동하지 않을떄settings에서 auto save 검색 → Files: Auto Save를 afterDelay로 설정 → Files: Auto Save Delay를 600(0.6초)로 설정하면 자동으로 0.6초
유저명 변경하기 참고
ansi - 표준1정규화 - tabla 한개 구조2정규화 - 1 : N 관계 구조3정규화 - N : N 관계일시 테이블이 한개 더 붙는 구조Entity 1 - N TableEntity 1 - 1 SequenceCode Type 1 - N CodeWorkflow 1 -
dom에 접근하는 방법에 대해 처음 접한게 querySelector라 그런지 자연스레 querySelector를 항상 사용해왔는데, getElementById의 속도가 더 빠르다는 글을보고 궁굼해져 찾아보았다.querySelector가 getElementById보다 느
프로젝트 진행중, 폼을 수정할때 서버에서 저장된값을 가져와 input 태그의 defaultValue로 값을 넣어주고 있었다.해당 input값을 수정후 저장도 잘 되었고, 문제 없이 동작하는 듯 하였다.그러던 중, 다음 주소검색 모듈을 이용해 input값을 변경하는 로직
301: 새로운 페이지로 영구적인 이동.307: 현재 서버가 다른 위치의 페이지로 요청에 응답하고 있지만 요청자는 향후 요청 시 원래 위치를 계속 사용해야 한다.308: 영구적인 redirection브라우저에서 뒤로 가기 버튼을 무용지물로 만든다. https:
클라이언트에서 서버로 http 요청을 보낸다 → 기다리다가 서버에서 해당 클라이언트로 전달할 이벤트가 발생하는 순간 응답을 보내며 연결이 종료된다.다수의 클라이언트에게 동시에 이벤트가 발생할 경우 서버의 부담이 증가한다.클라이언트에서 서버로 http 요청을 보낸다 →
무분별한 로그로 로그확인이 어렵지 않게 하기 위해 로그레벨을 사용한다.TRACE > DEBUG > INFO > WARN > ERROR > FATALTRACE: 추적레벨은 DEBUG보다 좀 더 상세한 정보를 나타낸다.DEBUG: 프로그램을 디버깅하기 위한 정보를 지정한다
개발환경마다 다른 .env파일을 사용하려면
vue로 작성된 프로젝트에 input type file을 사용해 파일 업로드 기능을 만든 뒤 안드로이드에서 input을 눌러도 아무 반응이 없었다.찾아보니 웹에서는 정상적으로 작동하지만 안드로이드에서 정상적으로 작동하기 위해선 웹앱 코드를 수정해야된다는 정보를 알게 되
mkcert 설치하기mkcert를 적용할 프로젝트의 최상위 디렉토리에서 명령어 실행vite.config.ts 파일에 적용하기 위한 모듈 설치vite.config.ts 파일에 적용
mkcert를 적용해 localhost에서 https 프로토콜 사용하는 방법mkcert installmkcert를 적용할 프로젝트 폴더로 이동후 명령어 입력하면 localhost-key.pem 파일과 localhost.pem파일이 생성됨vite 프로젝트에서 mkcert
지역적으로 좁은 범위에서 본인이 책임지고 구축하는 네트워크사용하는 쪽에서 케이블 설치, 라우터 배치 등을 해 자유롭게 네트워크를 만들 수 있다.떨어져 있는 지역의 LAN끼리 통신사업자(KT, LG, SKT)의 통신 케이블을 빌려서 연결한 네트워크도시, 지역, 국가간 가
허브에 케이블로 연결되어 있는 기기는 동일 케이블에 연결되어 있는 것과 같은 취급을 받는다.신호의 증폭과 재생 증폭만 하는 기계로 리피터(Reapter)라는 것이 있는데, 리피터는 케이블 사이에 연결하는 기계로 허브처럼 케이블을 많이 연결할 수 없다.복수의 기기를 연
HTML 문서에서 이벤트가 발생한 요소에서 상위 요소로 이벤트가 전달되는 동작을 말한다.HTML 요소는 중첩된 구조를 가지고 있고, 이벤트는 하위 요소에서 상위 요소로 전파되는데, 두 가지(이벤트 캡처링, 이벤트 버블링) 현상이 있다.이벤트가 상위 요소에서 하위 요소로
프로그래머스 문제 중 '문자열 다루기 기본' 문제가 11번 케이스만 통과되지 않는 상황이 생겼다...질문하기를 보니 11번 케이스에 대한 질문 몇개가 있었고 11번 케이스에 'e'가 들어간다는 것을 알 수 있었다..!자바스크립트에서는 지수를 나타낼 때 e를 붙여 사용하
ListPage.vue 컴포넌트(부모)에 검색이 가능한 로직과 공통으로 사용하는 DataTable.vue 컴포넌트(자식)가 있고 부모 컴포넌트 내의검색 로직안의 검색 버튼을 눌렀을때 검색 조건에 맞는 데이터를 불러와야함!ref를 사용해 컴포넌트에 참조를 할당하면 해당
Docker MariaDB 설치