전체 글 63

git stash 특정 파일만 잠시 치워두기

브랜치를 오가며 파일을 수정하는 상황은 아니었지만, 작업을 하다 발견한 사소한 오류를 까먹기전에 수정해야겠다는 생각이 들었다. 다만, 수정하게 되면 지금 작성하고 있는 로직에 영향을 주는 문제인 이상한 상황. 단순히 stage에 올리지 않고, 커밋하면 되는 상황이 아닐 수 있다면, stash로 특정 파일만 잠시 치워둘 수 있다. git stash push file1_path file2_path 이렇게 잠시 치워두고, 작업하던 코드를 커밋하고나서 다시 수정한 오류를 적용하려면, pop으로 apply와 drop을 동시에 해주면 된다. git stash pop

Tools 2023.04.29

23.04.29. express routes index에서의 export 이름 설정

Issue Express를 미들웨어로 사용하던 중, routes 폴더에서 index.js를 사용기 위해 아래와 같이 코드를 만들었다. const express = require("express") const router = express.Router() const usersRouter = require("./users") const postsRouter = require("./posts") const commentsRouter = require("./comments") router.get("/", async (req, res) => { res.send("") }) module.exports = { router, usersRouter, postsRouter, commentsRouter } 그리고선, app..

daily 2023.04.29

23.04.29. Sequelize와 Mongoose의 차이?

Mongoose와 Sequelize는 모두 JavaScript로 작성된 ORM(Object-Relational Mapping) 라이브러리로서, 각각 MongoDB와 SQL 데이터베이스를 다루는 데 사용된다. 그러나 둘은 사용하는 데이터베이스 유형과 사용 방식에 차이가 있다. 1. 데이터베이스 유형(이름만 봐도 당연하지만...) Mongoose는 NoSQL 데이터베이스 중 하나인 MongoDB를 다루는 데 사용한다. MongoDB는 document-oriented 데이터베이스로, JSON과 유사한 데이터 모델을 사용한다. 반면에 Sequelize는 SQL 데이터베이스를 다루는 데 사용한다. SQL 데이터베이스는 테이블과 열로 구성된 데이터 모델을 사용한다. 2. 스키마 정의 방식 Mongoose는 스키마를..

daily 2023.04.29

23.04.28. sequelize로 mySQL migration하기

mongoose를 이용해서 mongoDB를 쓸 때 보다, 초기에 설정할 것이 많다. cli로 모델을 설정하는건 익숙치 않다보니, 요약해서 정리해봤다. 환경은 mode.js 에서 미들웨어로 express를 쓰고, ORM으로 sequelize를, DB는 mySQL을 사용하는 경우이다. 로그인 기능을 구현하기 위해 JWT를 사용하고, 쿠키에 저장하는 방식을 쓰기 위해 cookie-parser도 설치해야 한다. # 라이브러리 설치 npm install express sequelize mysql2 cookie-parser jsonwebtoken # sequelize-cli, nodemon 라이브러리를 DevDependency로 설치합니다. # 서비스에 쓰는 툴이 아니라 개발에만 사용하기 때문에, -D 옵션으로 D..

daily 2023.04.29

23.04.29. ORM과 ODM의 같은점과 다른점

node.js 강의를 듣고, 과제를 구현하면서 MongoDB ↔ mongoose와 MySQL ↔ sequelize를 사용해봤다. mongoose는 noSQL인 MongoDB를 편리하게 사용할 수 있게 해주는 ODM이고, sequelize는 MySQL과 같은 SQL을 편리...(?)하게 사용할 수 있게 해주는 ORM이다. 둘의 차이는 관계형 데이터베이스이냐, document 또는 noSQL 방식의 데이터베이스냐의 차이인데, 조금 더 공부하는 차원에서 정리해 보면, Database icons created by Smashicons - Flaticon ORM과 ODM은 모두 데이터베이스와 상호작용하는 프로그래밍 도구이지만, ORM은 관계형 데이터베이스와 작동하고 ODM은 NoSQL 데이터베이스와 작동한다. 두..

daily 2023.04.29

23.04.29. Foreign Key Convention?

사소한 궁금증이지만, 보통은 어떤식으로 하는게 좋을지 궁금해서 찾아봤다. 컨벤션, 관행? 이라는건 결국 개발자스러워지기위한 첫 단추라고 생각한다. 서로 읽으며 불편하지 않게 만드는 것. 그것이 하찮지 않다고 생각하는게 중요하다. Sequelize에서 기본적으로는 모델과 관계 설정에 사용되는 foreign key는 해당 모델 이름과 같은 단어를 포함하여 다양한 방식으로 이름짓는다. 예를 들어, User 모델과 Post 모델 간의 일대다 관계에서, User 모델의 id가 Post 모델에서 foreign key로 사용되는 경우, Sequelize에서는 해당 foreign key를 "UserId"로 작성하는 것이 일반적이다. 다른 방법으로는 FK(foreign key)를 앞에 붙이는 경우도 있다. 예를 들어, ..

daily 2023.04.29

PWM 주파수 조절발생기 SY-LD213과 라즈베리파이 시리얼 통신하기

라즈베리파이와 주파수 조절 발생기 SY-LD213를 시리얼 통신으로 연결하기 SY-LD213은 디바이스마트에서 파는 PWM 주파수 조절발생기이다. 고가의 function generator를 쓸 필요까지 없는 간단한 PWM 신호가 필요할 때 요긴한데, 우선 저렴해서 좋다. aliexpress에도 비슷한 종류의 제품이 많은데, 우선 바로 사서 해볼 수 있는 디바이스마트에서 구매했다. 가격차이도 별로 안나고. 전압 입력, VIN+에 라즈베리파이에서 공급 전원을 넣어주고, VIN- 에는 라즈베리파이의 그라운드 핀을 연결해주면 된다. 나는 라즈베리파이 전원공급을 파워서플라이를 통해서 했기 때문에 라즈베리파이 power 핀과 ground를 서로 연결했다. 핀 번호로는, 4: 5V PWR 6: GND 8: UART0..

23.04.24. node.js, express, mongoose, mongoDB 관계, 구조

본격적으로 백엔드 기초를 공부하면서 프레임워크나 라이브러리를 한둘 사용하기 시작했다. Node.js: JavaScript 런타임 환경으로, 서버 사이드 애플리케이션 개발에 사용 Express: Node.js를 기반으로 하는 웹 프레임워크로, HTTP 요청과 응답을 처리하고, 라우팅, 미들웨어 등을 제공 Mongoose: MongoDB를 조작하기 위한 Node.js의 객체 모델링 라이브러리로, MongoDB에 데이터를 추가, 수정, 삭제 및 검색하는데 사용 MongoDB: 분산형 NoSQL 데이터베이스로, JSON 형식의 데이터를 저장하며, 대용량 데이터 처리 및 확장성이 뛰어납니다. 정리하면, Node.js는 서버 애플리케이션을 작성하는 데 사용되며, Express는 Node.js 애플리케이션의 웹 요청..

daily 2023.04.25

23.04.19. programmers 코딩테스트 문제 풀기[6]

최대공약수와 최소공배수 문제 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 제한 사항 두 수는 1이상 1000000이하의 자연수입니다. 입출력 예 n, m, return 3, 12, [3, 12] 2, 5, [1, 10] 최대공약수와 최소공배수를 반환하는 함수이다. 최대공약수는 두 수중에 작은수부터 1씩 감소시키면서 둘다 나누어떨어지는 가장 첫번째 수를 찾는 방식을 택했다. 최소공배수는 두 수를 곱한 값에서 최대공약수를 나눠주면 된다...

daily 2023.04.20

23, 16주차

16주차 이번주는... 코딩테스트 문제를 풀었다. 28시간정도 40문제 가량. 가장 어려운 문제라고 해도 프로그래머스 사이트에서는 레벨 1정도인 문제였고 재미있게 풀었으나 조금은 아쉬운 순간이다. 천천히 레벨을 높여가면서 해결해봐야겠다. 코딩테스트 문제의 기본을 풀어가면서, 자바스크립트 문법과 실행 컨텍스트에 대해서 조금 더 잘 이해할 수 있었던 것이 이번주의 수확이었다. 가장 기본이 되는 객체, 배열, 문자열, 함수 등을 활용해서 머리로 생각한 논리를 구현하는 연습을 했다. 특히 보기만해도 읽기 귀찮아 했던 재귀함수라던가, map, filter, reduce 메서드 사용 방법에 대해서 조금은 체득할 수 있었다. 각 메서드를 많이 써보고 나니, 일종의 python의 list나 dictionary comp..

daily 2023.04.20
728x90