본문 바로가기
반응형

전체 글122

undefined 와 null 의 차이 기본적으로 둘의 차이는 undefined는 자바스크립트 엔진이 명시적으로 부여하는 경우가 있고, 사용자가 직접 할당하는 경우도 있다. null은 사용자가 직접 할당해야만 사용된다. 자바스크립트 엔진은 사용자가 응당 어떤 값을 지정할 것이라고 예상되는 상황임에도 실제로는 그렇게 하지 않았을 때 undefined를 반환한다. 아래는 그 세가지 경우. 값을 대입하지 않은 변수, 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할 때 return 문이 없거나 호출되지 않는 함수의 실행 결과 변수는 변경가능한 데이터가 담길 수 있는 공간 / 식별자는 그 변수의 이름 let a = []; a.length = 3; a //[ empty, empty, .. 2021. 3. 17.
간단하게 정리한 얕은 복사와 깊은복사 자바스크립트 데이터 타입에는 크게 두가지가 있는데, Primitive Type(원시 타입)과 Reference Type (참조 타입)이 그것이다. let a = 123; let b = a; console.log(a === b); //true a = 0; console.log(a === b); //false 원시타입(숫자, 문자열, 불린, null, undefined) 데이터는 원본 a의 값(value)을 사본 b에 = 을 이용해서 대입했을 때, 원본 a 의 값을 변경해도 b의 값이 변경되지 않는다. 이는 원시타입 데이터는 변수에 할당될 때 메모리 상에 고정된 크기로 "새로" 저장되기 때문에, 변수가 선언(let이나 var로 생성했을 때), 초기화(최초로 변수에 값을 지정함), 할당(변수에 = 을 사용해서.. 2021. 3. 10.
알고리즘 풀이 노션링크 www.notion.so/735a56bd6e234f3b9a1866dcd29bb6d5 알고리즘 시간 복잡도 Big O / Big Ω www.notion.so 2021. 3. 8.
파이널 프로젝트와 코드스테이츠 수료 회고 4주간(사실 3주반) 파이널 프로젝트를 끝내고 5개월간의 코드스테이츠 부트캠프 여정을 끝냈다. 파이널 프로젝트 후기 배포링크 : https://todogg.cf 파이널 프로젝트를 하기 전 2주간 퍼스트 프로젝트를 진행했었다. 2주는 짧은 시간이기 때문에 완성도 높은 결과물을 만들어내진 못했지만 4명이 함께 그간 배운 코딩스킬로 무언가를 만드는 시도를 정확히는 협업 시도를 해봤다는 데에 의미가 있었다. 나는 파이널 프로젝트를 퍼스트 프로젝트와 같은 멤버로 진행했는데, 개인적으로 마음이 맞는 좋은사람들과 함께하는 것이 얼마나 좋은지 다시금 깨달을 수 있었던 것 같다. 물론 팀장으로서 프로젝트를 진행하는데 이미 퍼포먼스나 개개인의 특징을 파악하고 시작한 것이 큰 도움이 되었다. 무엇보다 중요한건 서로 잘 맞는.. 2021. 2. 16.
export로 환경변수 만들고 process.env로 사용하기 export 환경변수명 = 값터미널에서 export 키워드로 환경변수를 추가해줄 수 있다. 보통 DB 접속시 사용하는 패스워드를 프로젝트 파일에 하드코딩해서 남기는 경우 패스워드가 유출될 수 있기 때문에 작성하지 않고, 환경변수를 이용해서 작성하곤 한다. 추가한 환경변수는 프로젝트에서 process.env.환경변수명으로 사용할 수 있는데, 환경변수를 터미널에서 추가하고, 환경변수 목록을 출력해도 저장되어있는데 process.env로 불러오면 undefined 가 출력되는 경우가 있다. 이는 프로젝트가 실행되고 있는 터미널에서 환경변수를 추가하지 않았을 경우 발생한다. 해결하기 위해선 DB에 패스워드로 접속하는 프로젝트의 터미널에서 export 키워드로 환경변수를 추가해주어야 한다. 내 경우엔 VS COD.. 2020. 12. 8.
TIL1208 [MVC 패턴] ORM Sequelize 사용 Sequelize와 Sequelize-cli 를 모두 사용했습니다 MVC (Model, View, Controller) 역할 Model - 뷰에 표현되는 데이터 View - 모델에서 데이터를 받아 사용자에게 보이는 페이지 Controller - 사용자와 상호작용하며 사용자의 명령을 받아 Model을 변경시키고 변경된 사항을 View에 전달 ORM (Object Relation Mapping)을 사용하는 이유 ORM을 사용하면 객체(데이터)를 DB에 넣을 때 SQL문을 직접 사용하지 않아도 된다. 개발자가 ORM을 통해 명령을 전달하면 ORM은 명령에 맞는 SQL문을 DB에 전달해서 DB에 변경사항을 만든다. ORM은 일종의 SQL 번역기라고 생각할 수 있다. 모델 작성 npx sequelize-cli i.. 2020. 12. 8.
Common JS (+이벤트루프) 모듈 내보내기, 불러오기 require - NodeJS 에서 사용되고있는 CommonJS 키워드 import - ES6에서 도입된 키워드 두 키워드 모두 하나의 파일에서 다른 파일의 코드를 불러온다는 동일한 목적을 가진다. 위에서 나온 두 키워드로 모듈(다른파일의 코드, 라이브러리)를 불러오려면 해당 모듈에서 exports 키워드를 통해 다른 파일에서 불러올 수 있도록 설정해주어야 한다. exports와 module.exports의 차이는 여기서 확인 이벤트 루프 콜스택 - 함수 호출시 함수는 콜스택에 들어가 pop() 순서대로 실행된다 힙 - 객체들은 힙 안에 할당된다 큐 - 지연시간이 종료된 함수가 실행을 기다리기 위해 저장되는 곳. 큐에서 순서대로 콜스택에 들어가 실행된다 Web APIs - 비동기.. 2020. 11. 22.
React 처음 쓸 때 유의할 점 react app 퀵스타트 npx create-react-app my-app //my-app 디렉토리에 React 프로젝트 생성 cd my-app npm start //프로젝트 실행 JSX를 쓰는 이유 JSX는 컴파일링 되면서 최적화되므로 빠르다. Type-safe (어떠한 연산도 정의되지 않은 결과를 내놓지 않는 것. 즉, 예측 불가능한 결과를 나타내지 않는 것) 하며 컴파일링 과정에서 에러를 감지 할 수 있다. HTML에 익숙하다면, JSX를 사용하여 더 쉽고 빠르게 템플릿을 작성 할 수 있다. JSX를 사용하지 않고 React를 사용할 수 있으나 React.createElement()등의 메서드를 사용해야하고, 쓰는 경우보다 번거롭다. createElement()를 사용한 예시 위아래 결과는 같다... 2020. 11. 22.
늦은 node.js basic-server 만들기... 기본설정 expressjs.com/ko/starter/hello-world.html const http = require('http'); const { report } = require('process'); const PORT = 5000; const ip = 'localhost'; 서버설정 ( 라우팅, CORS, 에러 ) request.on()에서 'data', 'end' 처럼 이벤트에 콜백함수가 붙은것은 모두 비동기로 처리된다. const server = http.createServer((request, response) => { console.log( `http request method is ${request.method}, url is ${request.url}` ); //request 객체의 .. 2020. 11. 18.
반응형