일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- express
- PAT
- 이론
- kubernetes
- mysql
- 쿠버네티스
- RAID
- 개념
- Docker-compose
- worker
- OpenStack
- docker
- 용어정리
- PaaS
- Docker Swarm
- nodejs
- 실습
- dockerfile
- IaaS
- RAPA
- 도커
- gns3
- MongoDB
- Javascript
- network
- 클라우드
- git
- 네트워크
- 명령어
- node.js
- Today
- Total
목록2022이전 (168)
융융이'Blog
단방향 해시 함수 보통 프로그래머는 아래의 두 가지 중 한 가지로 사용자의 패스워드를 저장한다. 단순 텍스트(plain text) 단방향 해시 함수(one-way hash function)의 다이제스트(digest) 일반적으로 단순하게 패스워드를 그냥 저장하는 경우는 없다. 단방향 해시 함수는 수학적인 연산을 통해 원본 메시지를 변환하여 암호화된 메시지인 다이제스트를 생성한다. 원본 메시지를 알면 암호화된 메시지를 구하기는 쉽지만 암호화된 메시지로는 원본 메시지를 구할 수 없어야 하며 이를 '단방향성'이라고 한다. 예를 들어 사용자의 패스워드가 "hunter2"라면 이 문자열을 흔히 사용하는 해시 알고리즘인 SHA-256으로 인코딩하여 아래와 같은 값을 얻을 수 있다. f52fbd32b2b..
os 노드는 os모듈에 정보가 담겨 있어 운영제체의 정보를 가져올 수 있습니다. const os = require('os') console.log("운영체제 정보 ----------"); console.log('os.arch():', os.arch()); console.log('os.platform():', os.platform()); console.log('os.type():', os.type()); console.log('os.updtime():', os.updtime()); console.log('os.hostname():', os.hostname()); console.log('os.release():..
global 브라우저의 window와 같은 전역 객체입니다. 즉 window.open 메서드를 그냥 open으로 호출할 수 있는 것처럼 global도 생략할 수 있습니다. 전역 객체라는 점을 이용하여 간단한 데이터를 파일끼리 공유할 때 사용하기도 합니다. globalA.js module.exports = () => global.message; globalB.js const A = require('./globalA'); global.message = '안녕하세요'; console.log(A()) // 안녕하세요 global 객체의 속성에 값을 대입하여 파일 간에 데이터를 공유할 수 있지만, 이를 남용하지말아야한다. 규모가 커질수록 어떤 파일에서 global객체에 값을 대입했는지..
SQL문장과 Mongo에서 사용하는 명령어를 비교한 것입니다. MySQL 용어 Mongo 용어 database database table collection index index row BSON document column BSON field join embedding and linking SQL 문장 Mongo 쿼리 문장 CREATE TALE USERS (a int, b int) db.createCollection("mycoll") INSERT INTO USERS VALUES (3,5) db.users.insert({a:3, b:5}) SELECT a, b FROM USERS db.users.find({}, {a:1, b:1}) SELECT * FROM users db.users.find() SELEC..
ORM 프레임워크(Oject-Relational-Mapping) 란? ORM은 데이터베이스와 객체지향 프로그래밍 언어간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법이다. 객체 관계 매핑이라고도 한다. 객체지향 언어에서 사용할 수 있는 '가상' 객체 데이터베이스를 구축하는 방법이다. ORM(Object-realtional Mapping)을 단순하게 표현하면 객체와 관계와의 설정이라 할 수 있다. ORM에서 말하는 객체(Object)의 의미는 우리가 흔히 알고 있는 OOP(Object Oriented Programming)의 객체를 의미한다는 것을 쉽게 유추할 수 있다. ORM 개념이 나온 이유는 코딩의 반복적인 부분을 줄일 수 있고 SQL의 의존적인 코딩에서 벗어나 생산적인 코딩이 가능하며 유지보수가..
MongoDB는 cascade On 과 같은 기능을 따로 제공하지 않는 거 같다. 아무리 검색을 해봐도 mongDB 모델링 할 때 따로 지정해주는 것이 없었던 같다.(앞서 1장에서 말했던 내용) 대신 MongoDB는 미들웨어를 통해서 cascade On과 같은 기능을 따로 만들어 줘야한다.(이걸 일일이 지정해준다니 미쳤군) 미들웨어를 만들어 낼 때 중요한 것은 pre와 post를 잘 구분해 줘야한다. 왜냐하면 내가 값을 저장할 때 pre를 이용하게 되면 생성전의 외래키값을 참조할 수 없기 때문이다. 번외로 나중에 ORM을 이용하면 belong_to 와 같은 것을 이용하면 편하게 구현할 것 같다. 다음에 알아보기로 하자 model/User.js ... //유저를 삭제할 때 UserSchema.pre('de..
controller/like.js module.exports = { toggle_like: async(req, res) => { const user = req.body.user; const { board_id } = req.params; let result = {}; const is_liked = await Like.findOne({$and: [{user: user}, {board: board_id}]}); // 해당 게시물에 좋아요 일때 if(is_liked){ await Like.findByIdAndDelete(is_liked); result = {data : false} } // 해당 게시물에 좋아요 아닐때 else{ //creat에 save명령어도 같이 실행된다. await Like.create(..
Comment.js module.exports = { //게시물에 댓글 작성하기 create: async (req, res) => { const { user } = req.body; let comment = new Comment({ content : req.body.content, board : req.params.board_id, user : user, }); result = await comment.save(); return res.json(result); }, //게시판에 해당하는 댓글 모두 불러오기 read: async (req, res) =>{ const result = await Comment.find({board: req.params.board_id}) .populate('user&#..