== , === 차이점 == : 두 피연산자의 값의 타입이 다를 경우 자동으로 일부 피연산자의 타입을 변환한 후 값을 비교 : 즉 데이터 타입은 비교하지 않고 단순 값만 비교하는 느슨한 비교 : 문자 == 숫자 => 문자를 숫자로 변환 후 값 비교 : Boolean
: ECMA Script의 약자로 ECMA International 에서 만든 Javascript 표준안.: 예를 들어, Javascript ES6는 ECMA Script 6 표준을 따르는 Javascript 라고 한다.: ES 뒤의 숫자는 버전을 말하며 2015년에
const: 재할당 / 재선언 불가능 => 상수에 이용let: 재할당 가능 / 재선언 불가능 => 변수에 이용var: 재할당 / 재선언 가능 / 블록스코프를 따르지 않음 => 볼록 내 선언되어도 외부에서 사용가능하기 때문에 사용 지양var 사용 지양하는 이유?: 변수는
javascript: 싱글 스레드 프로그래밍 언어런타임: 프로그래밍 언어가 구동되는 환경자바스크립트의 런타임의 종류로는 웹브라우저(크롬,파이어폭스,익스플로러 등) 프로그램과 Node.js라는 프로그램이 있다.Node.js: JS언어가 구동되는 환경
참조타입의 데이터 복사 = 값이 저장된 '메모리의 주소' 를 복사하는 것: 참조 타입 데이터가 저장한 '메모리 주소 값' 을 복사하는 것을 의미: 그렇기 때문에 복사된 변수를 수정하게 되면 원본 값에 영향을 줌🎯 중첩객체가 존재하는 경우 해당 복사는 얕은복사로 이루어
: 변수를 선언하고 값을 할당하지 않은 상태: 원시값으로, 선언한 후에 값을 할당하지 않은 변수나 값이 주어지지 않은 인수에 자동할당됨텍스트: 전역 객체의 속성 중 하나로, 전역 스코프에서의 변수이기도 하다. 따라서 undefined 변수의 초기 값은 undefinde
통신이라고 하면 막연하게 전산장비들 먼저 떠오르는데, 코드캠프 강의를 통해 내가 다른 분야에서의 통신만을 통신으로 생각하고 있었다는 걸 깨달았다. 내가 개발자로서 배우는 통신은 다른 영역이었다. 역시 아는 만큼 보인다는 말이 괜히 나온게 아닌가보다. : 두 컴퓨터간의
API를 제작하다 VS code의 다른 파일로부터 함수나 변수를 가져와 사용하는 상황에 직면했을 때, export를 사용하는 경우도 있고 export default를 사용하는 경우도 있었다. 그렇다면.. 그 둘의 차이는 뭘까? 한번 알아보자!일단 export defau
MVC 패턴이란? Model, View, Controller의 약자로, 하나의 프로젝트나 애플리케이션을 구성할 때 그 구성요소를 역할로 구분한 디자인 패턴이다. 디자인 패턴이란? 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라
Template literals이란? : ES6가 도입한 새로운 문자열 표기법이다. : 내장된 표현식을 허용 하는 문자열 리터럴이다. 특징 템플릿 리터럴은 일반 문자열과 비슷해 보이지만, ‘ 또는 “ 같은 통상적인 따옴표 문자 대신 백틱(backtick) 문자 `를
구조 분해 할당, 쉽게 말해 이름 그대로 구조를 분해하고 다시 할당해주는 것을 의미한다.배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 해주는 Javascript 표현식이다.간단하게 예를 들어 보자위 x 라는 배열을 분해하여 y , z, 삼십, 그리
REST API란 Representational State Transfer 의 줄임말으로 HTTP를 통해 CRUD(Create, Read, Update, Delete)를 실행하는 API를 뜻한다.API 이름이 마치 홈페이지 주소처럼 생겼고, 여러개의 엔드포인트를 가지고
Docker란 가상머신과 비슷하지만, docker는 추가적인 운영체제 설치가 필요가 없기 때문에 가상머신보다 훨씬 빠르고 자원을 효율적으로 사용할 수 있는 일종의 가상머신이라고 생각하면 될 것 같다. docker를 사용하는 이유로는 협업을 하기 위해선 컴퓨터의
Callback callback 함수는 상황에 따라 크게 2가지로 분류할 수 있다. 1. 다른 함수의 인자로 이용되는 함수 2. 이벤트에 의해 호출되어지는 함수 1번의 경우부터 살펴보자 아래의 예시를 보면 add함수의 매개변수로 다른 함수를 넣어줘서 add함수를
카카오톡을 이용하다 보면 위와 같은 일을 한번쯤은 마주쳐 본 경험이 있을 것이다. 이번 글을 통해서 이는 무엇이고 어떤 원리로 작동이 되는지 알아보자! 스크래핑 스크래핑이란 쉽게 말해 어떤 특정한 웹 사이트에 가서 그 사이트의 HTML을 긁어오는 것을 의미한다.
package.json에 대해서 알아볼건데, 이를 위해서 간단하게 npm에 대해서 먼저 알아보도록 하자!Node Package Manager의 약자로 node.js를 위한 패키지 매니저이자, node.js를 위한 오픈소스 생태계이다.npm은 node.js에서 사용하는
살아가다보면 한번쯤은 회원가입을 해본 경험이 있을텐데, 회원가입을 하게 되면 내 개인 정보가 어떻게 처리되는걸까? 회원가입을 하게 되면 유저의 정보를 DB에 저장하게 되는데, 이때 비밀번호도 저장하게 된다. 만약 누군가가 나쁜 마음을 먹고 DB를 해킹하게 된다면
JWT란? JSON Web Token의 줄임말로, 토큰 기반 인증 시스템에서 사용되는 암호화 방식이다. > 토큰 기반 인증 시스템 ? 기존의 서버 기반 인증 시스템은 서버 측에서 유저들의 정보를 기억하고 있어야 했다. 세션을 이용해서 유저의 인증 기록을 저장하는데,
지난 블로그의 JWT(Json Web Token)을 읽어보셨다면, 알 수 있겠지만 토큰의 종류와 어떻게 작동되는지에 대해 간단하게 알아보았다. 오늘 블로그에선인증(Authentication)이 무엇이고,인가(Authorization)란 또 무엇인지에 대해 알아보자!
지난 블로그에서 JWT 와 인증,인가에 대해 알아보았는데, 이번 블로그에서는 앞의 개념들이 사용되는 로그인 프로세스에 대해서 알아보자!개발 공부를 하기 전, 항상 궁금했던 것 중 하나가 로그인 프로세스인데, 그래서인지 로그인 부분이 배우면서도 재밌게 공부했던 부분 중
이번 블로그에선 web storage와 cookie에 대해서 알아보자!HTML5부터 제공하는 기능으로, 해당 도메인과 관련된 특정 데이터를 서버가 아니라 클라이언트 웹브라우저에 저장할 수 있도록 제공하는 기능을 의미한다.쿠키(cookie)와 비슷한 기능이며, Web S
Express를 기반 으로 돌아가는 Node.js의 서버 프레임워크이다.TypeScript(타입 스크립트)를 지원 하는 효율적이고 확장 가능한 Node.js의 서버 애플리케이션 프레임워크이며, OOP (Object Oriented Programming), FP (Fun
Typescript란? 자바스크립트의 확장된 언어로서, 자바스크립트에 타입을 부여한 언어 다. 타입스크립트는 자바스크립트와 달리 브라우저에서 실행하려면 파일을 한번 변환해 주어야 하는데 변환 과정을 컴파일(complile) 이라고 부른다. 예를 들면 ts -> js
데이터베이스 접근법에는 여러가지 방법이 있지만 오늘 이야기해 볼 TypeORM은 ORM(Object-Relational Mapper)의 종류 중 하나다.그렇다면 ORM이란 무엇일까?ORM이란 Object Relational Mapping의 약자로, 직역하면 객체-관계
Remote Dictionary Server의 약자로, NoSQL으로서, Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터 베이스 관리 시스템 (DBMS)이다.데이터베이스, 캐시, 메세지 브로커로 사용되며 인메모리 데이
Microservice란? 한 프로젝트를 여러 작은 서비스로 분리하여 개발하고 운영, 배포하는 방법이다. 지금까지 강의에서 배우고 내가 적용했던 방식은 Microservice 이전의 방식인 모놀로식 아키텍처(Monolitick Architecture)이다. >모놀로
ERD란? Entity-Relationship Diagram의 약자로, 직역하면 개체-관계 모델이다. 관계형 DB를 구성할 때 테이블간의 관계를 그림으로 표현한 것이라 생각하면 된다. ERD의 예시를 들자면, 위의 사진과 같다. 위의 사진은 영화관 웹페이지를 구성한
Test Driven Development 의 약자로 직역하면 테스트 주도 개발이다.반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현하는 것을 말한다.쉽게 이해를 돕자면 다음 한마디로 끝
nestJS를 이용해서 서버를 구축하던 중 데이터 베이스 쪽을 만지다 아래와 같은 오류가 발생했다. 평소 같았으면 의존성 주입을 제대로 안해줬구나! 하고 해결했을텐데, 웬걸... 이미 의존성 주입 똭!똭! 되어있는 것이었다. 이것 때문에 몇시간을 썼는지 모르겠다. 그래
http사이트에서 로그인을 하거나, 등등 업무를 볼 때 한번쯤 브라우저 창에서 위험할 수 있다는 경고를 받은 적이 한번 쯤은 있을 것이다. 이유는 모른 채 그런가 보다~ 하고 넘어갔는데 오늘 wireshark를 통해 http 통신을 모니터링 해보면서 왜 위험한지 배우게
이번에 과제로 외부 API인 결제솔루션 Portone(Iamport)를 이용해서 결제 API 만들기 실습을 보았다. 예전부터 배워보고 싶었던 부분이여서 설렜지만, 별도의 강의 없이 맨바닥에서 완성해보는 첫 과제여서인지, 어디서부터 어떻게 시작해야 하는지부터 감도 못잡
처음으로 구글 클라우드를 이용해서 인스턴스(instance)를 하나 만들어 봤다.해당 인스턴스 내에서 docker를 이용하기 위해 설치는 했다.해당 명령어 apt install docker-compose하지만 아래와 같은 오류가 발생하였다.이럴 때 sudo apt up
: 서로 다른 출처(origin)를 가진 주소로 요청이 들어왔을 때 발생할 수 있는 에러: 출처(origin)란, port번호까지 포함한 url을 의미예를 들어 이러한 url(http://localhost:3000/tokens/phone)에서 origin은ht
mysql db에 저장된 데이터를 soft 삭제처리한 후(ORM으로는 typeORM 사용), 삭제된 항목을 같이 조회하고 싶거나 복구하고 싶을 때는 withdeleted 와 restore를 이용하면 처리가능하다!: 위 사진처럼 resolver파일에 query문을 작성하
오늘 강의에서 최신버전으로 서버를 열었더니, 열리지가 않았다. 이문제를 해결하기 위해 package.json에서 버전을 조정하고, 시작했는데도 여전히 해결되지 않았다. 하지만 멘토님은 머지않아 곧 해결해주셨는데, 바로 yarn.lock을 삭제하고 다시 yarn ins
데이터 오염 ?의도적 또는 우연적인 행위 때문에 기억 장치나 디스크에 저장된 데이터의 의미가 바뀌거나 사라져 데이터의 무결성이 침해를 받는 현상.데이터 오염을 방지하기 위해선 transaction을 사용하면 된다.transaction에 대해 알아보자!!보통 자주 사용되
: Domain Name System의 약자로, IP주소를 도메인으로 바꿔주는 시스템이다.: 예를 들면, 127.0.0.1과 같은 IP주소를 도메인(localhost)으로 바꿔준다.웹사이트마다 각각 다른 IP 주소를 보유하고 있는데, 주소창에 IP주소를 입력해야지만,
Firewall이란? 영어로 봐서 낯설 수는 있는데, 우리가 익히 잘 알고 있는 방화벽을 의미한다. 이는 침입차단시스템으로 부르기도 하는데, 우선 사전적 정의로는 '미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크
SSL은 Secure Socket Layer의 약자로, 직역하면 보안 소켓 계층을 의미한다.인터넷을 통해 전송되는 데이터를 인증하고, 암호화, 복호화를 위한 웹 브라우저 및 서버용 프로토콜이다. 흔히 인증서라고 불린다.HTTPS는 HTTP(Hyper Text Trans
Kubernetes란? 컨테이너 관리자로 컨테이너 운영을 자동화하기 위한 도구이다. 쿠버네티스와 동일한 기능을 하는 도구에는 메소스(Mesos), 도커 스웜(Docker Swarm) 등이 있다. 이런 도구를 컨테이너 오케스트레이션 도구라 하며, 많은 수의 컨테이너
오늘은 gitflow-workflow에 대해 배웠다.다음주면 프로젝트 기간에 접어들텐데, 이제 '진짜 github'를 사용할 시기가 다가온 것 같다. 지금까지 내가 사용해 온 git은, 하나의 branch에 내 소스를 push하고, 코드캠프에서 진행하는 알고리즘 테스트
서버리스란? 이름에서부터 알 수 있듯이, 서버리스 서비스란 서버가 없다는 뜻으로 백엔드 서버 없이도 해당 서비스가 실행된다. >그럼 그런 일이 어떻게 가능한 것일까? 구글 Cloud Function을 이용해서 함수 단위로 배포를 진행하게 되면, 인스턴스를 따로 관리하
CI/CD란? Continuous Integration 과 continuous deployment의 약자로, 직역하면 지속적인 통합 + 지속적인 배포를 뜻한다. 아마 대략적으로 무엇을 의미하는지 짐작할 수 있었겠지만, 쉽게 설명하자면 개발 단계부터 배포까지 자동화 하
내가 생각한 문제 원인은 직역하면 알 수 있듯이, resolver에는 API를 정의했지만, graphql schema에는 정의되어 있지 않기 때문이다. 위의 코드가 처음에 내가 작성한 코드이다. 무엇이 문제일까.... 바로\~\~~ graphql에서 타입지정을 안
첫 프로젝트를 진행하면서 백엔드 서버와 DB서버를 GCP(google cloud platform) 을 이용해서 처리했다.처음 배울 땐, DB를 만들고 누구나 접속을 할 수 있게 공개 IP에 승인된 네트워크 주소를 0.0.0.0/0 으로 작성했다.하지만 실제로 배포를 한
현재 스터디 카페 관련 서비스 개발 프로젝트를 진행하고 있다. 처음 해보는 프로젝트라 부딪히는 난관이 많았지만, 오늘 이야기하고자 하는 주제는 그 중 하나다! 그건 바로!좌석 상태를 업데이트 해주는 것이다!!좌석을 이용중인지, 이용을 끝난 좌석인지 상태를 체크해주어야
Jest? 자바스크립트에서 테스트 코드를 작성하는 것을 도와주는 여러가지 프레임워크들이 있지만, 그 중에 Jest에 대해 알아보겠습니다. Nest.js에서는 JavaScript 테스트 프레임워크인 jest를 기본 테스트 프레임워크로 지원하고 있습니다. 테스트 코드