본문 바로가기

전체 글

(88)
[express] 데이터 업데이트(update, findAndModify) update // name이 Kwon Hyeok Jin인 문서를 찾아 name을 Kim Hyeok Jin으로 바꾸고 age 또한 15으로 바꾼다 db.test.update({ 'name': 'Kwon Hyeok Jin' }, { 'name': 'Kim Hyeok Jin', 'age': 15 }); 위 메소드를 사용할때 유의할 점은 name이 Kwon Hyeok Jin인 문서의 기존 데이터들은 전부 삭제가 되고 name, age로만 구성이 된다. mongodb.collection.update({ name: 'Kwon Hyeok Jin' }, { $set: { age: 15 } }); 위 메소드는 $set을 사용하였다. 이렇게 사용하면 기존 데이터들은 유지가 되고 age만 15로 변경된다. updateOne..
[express] mongodb 데이터 삭제(remove, delete) // name이 kwon Hyeok Jin인 데이터 모두 삭제 mongodb.collection.remove({ name : Kwon Hyeok Jin }) // name이 Kwon Hyeok Jin인 데이터 중 하나만 삭제한다. mongodb.collection.deleteOne({ name : Kwon Hyeok Jin })
[express] mongodb 데이터 삽입(insert, save) // name의 값을 Kwon Hyeok Jin을 가지는 데이터 삽입 mongodb.collection.save({ name : Kwon Hyeok Jin }) // name의 값을 Kwon Hyeok Jin을 가지는 데이터 삽입 mongodb.collection.insert({ name : Kwon Hyeok Jin }) save와 insert은 둘다 데이터를 삽입하는 메소드이다. 하지만 차이점은 save는 해당 키값이 이미 콜렉션에서 존재한다면 update를 하고 insert는 에러를 출력한다. save는 SQL에서 on duplicate key update와 같은 기능을한다.
[express] mongodb 데이터 검색(find, findOne) 컬렉션의 데이터를 전체 조회할때 mongodb.collection.find() // collection 데이터 전체조회 컬렉션의 특정 데이터가 포함된 데이터를 조회할때 // name이 Kwon Hyeok Jin이고 gender가 male인 데이터만 조회 mongodb.collection.find({ name : Kwon Hyeok Jin, gender : male }) 내부 오브젝트는 조건이다. SQL의 Where가 비슷한 기능을 한다. Where name = 'Kwon Hyeock Jin' and gender = 'male'인 셈이다. 쿼리 연산자를 사용하여 조회하는 것도 가능하다. // age의 값이 10이상 30 이하인 값을 조회 mongodb.collection.find( { “age”: { $g..
[React] Virtual Dom 이란 Virtual Dom Virtual Dom = Virtual(가상) + Dom(Document Object Model, 문서 객체 모델)이다. 가상 돔은 이전 UI 상태를 메모리에 유지해서, 변경될 UI의 최소 집합을 계산하는 기술이고, 이 기술 덕분에 불필요한 UI 업데이트는 줄고, 성능은 좋아진다. Dom 이란? DOM(Document Object Model)을 영어 뜻풀이 그대로 하자면 문서 객체 모델을 의미한다. 그렇다면 여기서 말하는 문서 객체란 무엇일까? 문서 객체란 html, head, body와 같은 태그들을 javascript가 이용할 수 있는 (메모리에 보관할 수 있는) 객체를 의미한다. 가상돔이 나오게 된 이유 어떠한 태그의 속성이나 값을 변경하려고 할때 DOM에 접근하는 자바스크립트..
[Node.js] express란 Express 는 가장 인기있는 Node 웹 프레임 워크 이며, 다른 많은 인기있는 Node web frameworks의 기본 라이브러리 입니다. Express는 다음과 같은 메커니즘을 제공합니다 HTTP 통신 요청(Request; GET, POST, DELETE 등)에 대한 핸들러를 만든다. 템플릿에 데이터를 넣어 응답(response)을 만들기 위해 view의 렌더링 엔진과 결합(integrate)한다. 접속을 위한 포트나 응답 렌더링을 위한 템플릿 위치같은 공통 웹 어플리케이션 세팅을 한다. 핸들링 파이프라인(reqest handling pipeline) 중 필요한 곳에 추가적인 미들웨어 처리 요청을 추가한다. 라우팅 라우팅은 URI(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등..
[JS] Promises & async & await asnyc/await 는 비동기 코드를 작성하는 새로운 방법이다. 이전에는 비동기코드를 작성하기 위해 callback이나 promise를 사용해야 했다. asnyc/await 는 실제로는 최상위에 위치한 promise에 대해서 사용하게 된다. Asnyc/await는 plain callback 이나 node callback과 함께 사용할 수 없다. async/await는 promise처럼 non-blocking 이다. async/await는 비동기 코드의 겉모습과 동작을 좀 더 동기 코드와 유사하게 만들어준다. 이것이 async/await의 가장 큰 장점이다. 문법 getJSON함수를 예로 들어보자. 이 함수는 promise를 반환하고, JSON 오브젝트로 resolve된다. 우리는 간단하게 이 함수를 호..
[JS] 리덕스(redux)가 무엇인가? 리덕스란? 리덕스는 프론트엔드 상태관리 라이브러리이다. 상태관리는 상태를 영어로 직역하면 state이다 즉, 리액트에서 사용하는 state를 관리하는 라이브러리이다. 하지만 꼭 리액트에만 치우쳐져 있지않고 순수한 자바스크립트에서도 사용할 수 있다는 점은 유의하자. 탄생계기 웹에 담는 데이터들이 방대해지고 관리해야할 상태(state)들이 방대해지면서 복잡하고 관리가 어려워 관리할 라이브러리가 자연스럽게 생겨났다. 기존에 컴포넌트 A 컴포넌트 D에 접근하려면 A -> B -> C -> D 접근해야했다. 하지만 리덕스를 사용하면 A -> Store -> D 로 접근할 수 있게 되어 좀 더 효율적이게 변하였다 즉, 컴포넌트끼리 상태를 공유하게 될 때 여러 컴포넌트를 거치지 않고도 손쉽게 상태 값을 전달 할 수 ..