#변수 .question 값으로 변환된 표현문이 변수에 할당되어 담기는 과정 설명 .answer 1)변수는 데이터 저장소에 이름을 붙이고 (선언) 그 저장소 안에 데이터를 넣는 것이다(할당) 2)상황에 따라 변할 수 있는 값 let(선언) myname= 'steve
2번째 •문자열 1.Goal 2.learn -문자열은 index로 접근가능하지만 쓸 수는 없음(read-only) -문자열 타입과 다른 타입 사이에 +연산자를 쓰면, 문자열 형식으로 변환 1)length str.length 문자열의 전체길이를 반환 2)str.i
변수 •let vs var -변수를 생성하는 키워드 -2005년 이후로 let이 생성 •변수 두 번 선언하면 에러 -같은 변수를 여러 번 선언 하면 에러가 발생 -파이썬과 다르게 그 값이 바뀌는게 아니라 에러가 발생한다 상수 •상수 -변화하지 않는 변수를 선언할 때
배열은 순서가 있는 값index : 순서element : 순서에 해당하는 값배열은 대괄호를 이용해서 만듬값을 조회할려면 값을 변경하고 싶으면.이중 배열이중 배열의 구조를 이해해놓자!push배열 맨 끝에 요소를 추가pop배열 맨 끝 요소를 삭제반복문을 이용해 배열의 요소
한사람에 대해 정보를 담을 경우, 일일히 변수를 선언하는 것은 너무 귀찮음배열로 그 사람의 정보를 담을 경우, 각 인덱스가 어떤 정보를 나타내는지 '미리' 알고있어야함모른다면 각 인덱스가 뭘 담고있는지 알지못함그렇기 떄문에 객체를 사용한 사람에 대해 어떤 정보를 담고
원시형의 종류: 문자형(string), 숫자(number), 불린(boolean), 심볼(symbol), null, undefined형, bignit 총 일곱 가지원시값은 '값 그대로' 저장, 할당되고 복사'하나'의 정보만을 가지고 있는데, 예전에는 데이터 저장소의 한
배열을 풀어서 인자로 전달하거나, 배열을 풀어서 각각의 요소 넣을 때에 사용뭉쳐있는 값들을 펼치는 것spread를 사용하면 배열을 쉽게 합칠 수 있음파라미터를 배열의 형태로 받아서 사용할 수 있음, 파라미터가 가변적일 때 유용값들을 뭉쳐서 만드는 것구조 분해 할당은 s
'단순하게 생각하면 함수 안에 어떤 값이 없을 때 다른데 가서 찾는거다'하지만 이런 이해만 가지고는 클로저를 사용할수 없다.클로저의 장점인 캡슐화, private, 이런 말을 설명할 수 없기 때문이다.자바스크립트 엔진의 구조는 Call stack과 메모리 힙으로 이루어
사본을 만들어내지않고 원본을 참조하도록 복사한 척을 하는 것obj2에 값을 바꿨는데도 불구하고 obj1의 값도 바뀐 걸 확인할 수 있다.obj2가 obj1과 같은 곳을 참조하고 있기 떄문이다완벽하게 원본과 사본을 나눠 복사하는 방법하지만 object.assign()의
자바스크립트에서 함수는 일급 객체변수에 할당 할 수 있음다른 함수의 인자로 전달될 수 있음다른 함수의 결과로 리턴될 수 있음함수를 변수에 할당할 수 있기 때문에, 함수를 배열의 요소나 객체의 속성값으로 저장할 수 있음함수를 인자로 받을 수 있고, 함수의 형태로 리턴할
DOM (The Document Object Model) BOM (Brower Object Model) 브라우저와 관련된 객체들의 집합 브라우저 객체 모델의 최상위 개체는 window라는 객체, 이 DOM은 이 window객체의 하위 객체 DOM 이란 00HTML문
과거에는 C, 포트란, 코볼같은 절차적 언어를 사용하였다. 하지만 소프트웨어가 점점 더 발전하면서 코드가 복잡해지기 시작하였고 절차적 프로그래밍 순서가 꼬이기 시작하였다("스파게티 코드") 이러한 문제를 극복하기 위한 대안으로 나온게 객체지향적 프로그래밍이다.절차적 프
프로토타입 Prototype 은 Prototype Link와 Prototype Object로 이루어져있다. 자바스크립트에서 모든 객체는 부모 역할을 담당하는 객체와 연결되어있습니다. 이 부모 객체를 Prototype(프로토타입) 객체 또는 프로토타입이라고 합니다.
상속을 위해 사용하는 키워드User는 클래스 People을 상속 받았기 때문에 User 안에 없는 addHobby 메서드 역시 사용할 수 있습니다.extends가 User.prototype.\[Prototype]을 Person.prototype.으로 설정하기 때문에 U
요청을 보낸 후 해당 요청의 응답을 받아야 다음 동작을 실행하는 방식예시) 은행 업무를 보러가면 번호표를 뽑고 기다린 후에 차례가 되었을 때 내 업무를 볼 수 있고, 내 업무가 끝나야 다음 사람이 업무를 진행할 수 있다, 내가 업무를 보고 있는 동안 다른 업무를 보지못
비동기적 처리방식과 콜백에 대해 알고나니, 그 작동원리가 궁금해져 찾아보게되었다비동기적 처리방식은 한번에 하나의 동작만 수행하는 것이 아니라 동시에 많은 작업을 수행해야 하는데, 자바스크립트의 경우 단일 스레드 기반 언어라 한 순간에 하나의 작업만을 처리할 수 가
프로미스 콜백에 대해서 간단히 공부하고 난 후에는 이제는 프로미스에 대해서 배울 차례입니다. 프로미스는 콜백함수가 계속해서 연결되는 경우, 코드도 보기 힘들어지고 계속 물고 늘어지기 떄문에 에러가 발생할 가능성이 높아지는데 이에 대한 해결책으로 나온 것입니다. 콜백
promise를 사용할 때 위와 같은 프로미스의 문제점은 에러가 발생할 경우, 몇 번째 then()에서 문제가 발생한 건지 찾아내기가 힘듭니다. function 앞에 async가 붙으면 해당 함수는 항상 프라미스를 반환합니다.await함수는 async 함수 안에서만 작
http 트랜잭션 해부에 나오는 예시인데, const http라는 변수에 무엇을 불러오는 걸까 궁금해서 찾다보니, 'http'라는 모듈을 불러옴을 알게되었습니다. 하지만 node.js를 시작할 때 이걸 왜 불러오는걸까요?http 모듈은 TCP/IP를 기반으로 둔 프로토
이벤트 노드의 많은 객체는 이벤트를 발생시킵니다. 이러한 객체들은 events.EventEmitter라는 인스턴스를 이용합니다. Node.js에서는 이벤트 모듈과 EventEmitter 클래스가 내장되어 있습니다. 이를 사용하여 이벤트와 이벤트 핸들러를 연동시킬 수
HTTP Transaction 클라이언트가 웹서버와 리소스를 주고받기 위해 HTTP 형태로, 요청 명령과 응답 결과로 구성되어있다. 1. 서버 생성 모든 웹 서버 애플리케이션(WAS)는 웹 서버 객체를 만들어야합니다. 이때 createServer를 이용 이 서버
Stream http 트랜잭션 해부를 이해하기 위한 두번째 '스트림'입니다. 1. 스트림이란? 공식문서에서는 '스트리밍 데이터 작업을 위한 추상 인터페이스' 라고 합니다. 네! 무슨 말인지 모르겠습니다! 여러 블로그에 공통적으로 설명하는 특징은 "데이터를 쪼개서 처리
Express는 Node.js를 개발을 더 빠르게 쉡게 할 수 있도록 도와주는 웹 프레임워크입니다. express를 사용하지않고 http 내장 모듈만을 사용하여 웹서버를 만든다고 치면이렇게 될 것입니다.하지만 express를 사용할 경우, 코드가 간결해집니다.이렇게 코
Express의 request 객체에는 키-값 쌍의 쿼리 매개변수가 포함된 'query'라는 속성이 포함되어있습니다.url 내의 쿼리 스트링을 가져오려면 req.query를 사용해야햡니다.이렇게 path라는 topic뒤에, query string을 req.query를
시스템에 설정한 전역변수를 환경변수라고 합니다.터미널에서 명령어 export를 입력하면 기록된 환경변수를 확인할 수 있고 새로운 환경변수를 추가할 수 있습니다.갑자기 환경변수?규모있는 프로젝트를 진행할 때, API Key나 포트와같이 공개할수 없는 정보가 유출될 우려가
쿠키는 클라이언트 측에서 웹브라우저에 저장되는 데이터 입니다.왜 클라이언트 측에 데이터를 저장하냐면 HTTP의 특징 중에 Connectionless와 Stateless 때문입니다. 매번 연결할때마다 다시 접속해서 인증을 받는 것은 비효율적입니다. State를 유지해주기
토큰 기반 인증방식에 대해 살펴보기 전에 서버 기반 인증방식에 대해 살펴볼려고 합니다.서버 기반 인증방식 일 경우에는 서버 측에서 유저들의 정보를 기억하고 있어야했습니다.저번 시간에 세션은 서버측에 저장한 다는 것에 대해서 살펴봤습니다. 유저의 수가 엄청 많다면 이 세
OAuth2.0 이란 인증을 위한 표준 프로토콜의 한 종류, 보안 된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공하는 프로세스를 단순화하는 프로토콜 중 한 방법입니다.OAuth는 인터넷 사용자들이 비밀번호를 제공하지않고 다른 웹사이트 상의 자신들의 정보에 대해
가비지 컬렉션은 프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 정리하는 것입니다.자바스크립트는 두 개의 가비지 콜렉션 방법을 사용합니다.한 객체를 참조하는 변수의 수슬 추적하는 방법입니다.객체를 참조하는 변수는 처음에는 특정 메모리에 대해 하나뿐이지만, 변수의
Fetch를 통해 HTTP API를 하다 Axios를 알게되어, fetch와의 차이점과 같이 axios가 뭔지 찾아보았습니다.Node.js를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리 입니다.브라우저로부터 XMLHttpRequest를 만듭니다
데이터를 보내는 중에,headers 에 Content-type 왜 application/json이 들어가야하는가 생각이들어서 정리하고자합니다. HTTP headers에 쓰이는 content-type은 request에 실어 보내는 데이터(body)의 type 정보를 표현
그디어 2022년 3월 17일 처음으로 First project 첫 모임을 한 시간 정도 가졌습니다. 처음 느낀 소감으로는... ice breaker 같은 느낌이었습니다.팀원에 대해 소개하자면 한 분은 외국에 거주하시는 분이셨고 한분은 야간에 주로 일하셔서 다크써클이
2022.03.19 오전 10시 ~ 12시 40분 회의시간 2시간 40분이었습니다.두 번쨰 모임의 안건은 5개 정도 였습니다. 다음 안건을 말하면서 결과를 소개하겠습니다.총 6개가 나왔는데,수입맥주, 바틀샵이 유행하고 있는데 맥주를 인터넷에 판매하지못하니 인터넷에 맥주
2022.03.22 화요일다들 와이어프레임과, api툴과 스키마와 나도 플로우 차트를 준비해왔습니다.하지만 한 분이 오지않아서 두분에서 진행했습니다.둘이서 이런 저런 애기를 나누는데, 똑같이 같은 느낌을 받았다는 걸 알 수 있었습니다.어떤 느낌이냐면, 예상보다 사이즈카
!\[](https://images.velog.io/images/tastestar/post/ebef3a7f-a9d3-4277-a12e-b39b1d02ded1/image.png2022.03.26 토요일기획 마무리 회의를 진행했습니다. 회의를 진행할 때마다 저의
module.exports, exports
Seqeulize query
캬악...! 같은 팀원이 프론트엔드를 담당했는데...갑자기 애기가 되지않은 TS쓰고..redux를 쓰고...알고봤더니 남이했던 코딩을 그대로 가져오다보니, 해당 기술을 쓸려고 아득바득 거리고 계셨습니다. 왜그랬을까.. 그래서 다 지웠습니다! 클론코딩은 아무 의미가 없으
첫 번째 프로젝트 'TILog'가 끝났습니다. 다같이 모여서 각자 만들걸 발표하는데, 완성되지 못한 걸 꺼내는 느낌이란.. 다시는 이런 일이 벌어지지않게 해야겠다. 다짐한 순간이었습니다.프로젝트 중간에 잘하면 완성하지못하겠다라는 생각이 들어서.. 잠을 더 줄여가면서
프로젝트때, 이미지 업로드 해야하는 기능이 필요했습니다.처음에는 이미지 째로 넣을려고 하니, 데이터베이스에 계속 오류가 떴습니다. 이유인즉슨 너무 길다는 것이엿습니다. 찾아보니 base64코드 그대로 넣으면 변환이 필요 했습니다.그래서 다른 경우를 찾다보니 다들 mul
다른 팀에서 두명이 빠져서, 그 팀원분이 같이 팀했으면 좋겠다고 연락이 왔는데 그분들과 팀을 맺게 되었습니다. 애초보다 많은 5명의 팀이 되었씁니다!전에 같이 팀을 했었던 한 분이 팀장을 하고싶다고해서, 그분이 팀장이 되었습니다. 그리고 아이디어 기획 회의를 하는데..
Next.js는 서버사이드렌더링(SSR)을 쉽게 구현할 수있게 도와주는 프레임워크입니다Browser에서 실제로 보이는 화면을 어디서 최종적으로 만들어서 보여주는지, 어떻게 만들어주는지에 따라서 SSR과 CSR로 나누어집니다.자세한건 여기..https://vel
타입스크립트(TypeScript)는 마이크로소프트(MS)에서 개발한 오픈소스 프로그래밍 언어입니다.컴파일 언어, 정적 타입 언어자브스킬브트는 동적 타입의 인터프리터 언어로 런타임에서 오류를 발견할 수 있습니다. 이에 반해 타입스크립트는 정적 타입의 컴파일 언어이며 타입
npm init : package.json 파일 생성npm install -g typescript : grobal로 typescript 설치tsc --init : tsconfig.json 파일 생성Express에서 필요한 모듈 설치npm install --save-de
!\[](https://velog.velcdn.com/images/tastestar/post/93fcfa2f-5730-4afd-9154-b101377269fd/image.png)타입스크립트를 생성하고 typeorm을 생성하면 자동적으로 user라는게 뜨게됩니다
프로젝트를 마치고, 면접 준비를 하다보니 Node.js가 싱글 쓰레드 인줄 알고 있었는데, Node도 여러 스레드를 가지고 있지만!, 자바스크립트 실행하는 스레드가 하나라 싱글 스레드라는 걸 알게되었습니다.그래서 Node.js가 어떻게 돌아가는지 정확하게 집고넘어갈려고
Node.js 비동기에 대해 알아보다가 비동기 작업이 libuv라는 라이브러리를 통해 진행된다는 걸 알게되었습니다. Node.js 구성을 보니 v8이라는 엔진과 libuv가 받치고 있던데, 크롬에서도 v8엔진을 사용하고, v8이 뭔지 궁금해서 찾아보게되었습니다.우리가
파이널 프로젝트에 jwt와 bcrypt를 도입하다보니 양방향과 단방향 암호화라는 걸 알게되었습니다. 단방향 암호화는 단순히 데이터베이스에 보이는걸 감추기 위해서 사용했지만, 당시에 사용하기 위해서 겉으로만 하고 어떤 기술인지 구체적으로 알아보지않아 정리해보고자합니다.사
DBMS(clear)데이터베이스 관리 시스템으로 사용자가 데이터에 관한 정보를 가능한 한 효율적으로 구성, 복원 및 검색 할 수 있도록 도와주는 소프트웨어입니다.서버와 분리되어있기 때문에 보안성이 좋고, 서버가 다운될 경우 DB도 영향받을 경우가 낮습니다. 스토리지 크
MQTT 안녕하세요! 오랜만에 포스팅합니다. 그 사이에 케이웨더라는 회사에 취직하게 되었고, 집안에 우환이 있었고 서울에 집을 구한다고 바빴습니다. 여러분 꼭 한달은 고시원에 살다가 한달 동안 부동산을 다녀보면서 최적의 장소를 찾아보세요. 2 - 3일 정도만 알아보았다
오늘 다뤄볼 내용은 express에서의 error 처리입니다. express는 비동기로 발생한 오류를 처리하지 못합니다. 이런 경우를 위해 next함수를 사용하지만 express는 이를 동기에서 오류와 같은 형태로 취급합니다.이러한 코드를 작성하고 에러가 났다면, 콘솔
처음에 이 코드를 보았을 때, 'exit'는 뭐 서버를 끄는 거겠고, 뒤에는 뭐지..하다가 iot와 연결되어있으니까 연결하고 데이터를 받고 시스템을 끄는 뭐 그런건 줄 알았습니다.오늘 살펴볼 내용은 process에 시그널 이벤트입니다.시그널은 운영체제에서 하나의 프로그
Node.js는 log를 효율적이게 관리 할 수 있게 도와주는 모듈 winson.js가 있습니다.개발할 때는 console.log를 사용해서 오류를 체크할 수 있지만, 실제 서버가 작동 중일 때는 사용할 수 없습니다.이럴 때 winston을 통해서 시스템을 운영하면서
가장 많이 사용되고 있는 메일링 관련 모듈다른 모듈에 의존성이 없는 독립된 모듈유니코드를 지원 한국어도 가능파일 첨부 기능을 지원일반 텍스트 뿐만 아니라 HTML을 본문 내용에 사용 가능TLS/STARTTLS를 사용해서 안전한 이메일 전송을 지원Oauth2 인증 지원S
Node.js 기본적으로 싱글 스레드로 동작하고, 단일 CPU 코어에서 실행됩니다. 이는 우리가 가지고 있는 서버가 8코어 혹은 16코어라고 해도 하나의 코어만 사용한다는 뜻이고, 자원을 모두 활용하지 못한다는 뜻입니다.(Node.,js는 기본적으로 32bit에서는 5
mqtt 회사에서 mqtt 통신해 테스트 할 수 있는 서버를 만들라는 업무가 내려왔습니다. mqtt에 rabbitmq와 mosquitto등이 있었지만, rabbitmq는 무슨 exchange하고 복잡해보이니 mqtt가 기존에 있고 간편하길래 해보았습니다. 이제 2주
디자인 패턴 회사에서 구매해 준 책인 디자인 패턴 책을 구매하게되서 읽게되었습니다. 이때까지 여러 책을 읽으면서 패턴에 대해서 읽었지만 제대로 정리한 적이 없어서 할려고합니다. 1. 싱글톤 패턴 싱글톤이란 전체 시스템에서 하나의 인스턴스만 존재하도록 보장하는 객
thread_workers 같은 경우는 한 프로세스에 여러 스레드를 동시에 사용하는 것이지만, child_process는 프로세스를 하나 더 생성하는 겁니다.스레드가 아니라 프로세스를 하나더 만들어서 사용하는 이유는 부피가 큰 작업을 Node.js에서 하지않고, 다른
다른 객체에 대한 액세스를 제어할 수 있는 패턴Subject라고 하는 다른 객체에 대한 액세스를 제어하는 객체=> 객체의 여러 기본동작을 다른동작을 할 수 있게 도와주는 걸 말합니다.데이터 검증: 프록시가 입력을 subject에 전달하기 전에 입력의 유효성을 검사합니다
[JS] Factory new를 사용하면 코드를 특정 유형의 객체에 바인딩함 팩토리를 사용함으로 클래스를 비공개로 유지할 수 있음 1. 캡슐화를 강제 person 객체가 제공하는 인터페이스만을 통해 privateProperties 접근할 수 있습니다. 2. 간
Stream Readable Writable Duplex Transform 1. 스트림 (1) Readable 스트림 데이터를 수신하는 방법에 non-flowing 과 flowing 두 가지 방법이 있습니다. Non-flowing 모드 작동 : readable 이
오늘 마주친 에러는 Connection Refused였습니다. 별거도 아닌 일로 하루를 날려버려서, 굉장히 답답한 하루를 보냈습니다.영어에서도 볼 수 있듯이, 연결이 거부되었다는 뜻입니다.PY에서 RabbitMQ와 통신을 해야되는 상황인데 계속해서 데이터 송수신이 되지
MQTT 다룰 때 잠깐 언급하고 넘어갔었었는데, 다시 이렇게 마주치게 되었습니다. 오늘 다뤄볼 내용은 messageMQ입니다. Node.js 디자인 패턴이라는 책에도 나오고, 다른 책에서도 messageMQ에 대해 다룰 때 항상 rabbitmq가 나와 설치와 연결 me