반응형

분류 전체보기 373

[알고리즘] 알고리즘 공부 2일차

힙(Heap)과 이진 트리(Binary Tree)는 둘 다 트리 구조를 기반으로 하지만, 그 목적과 특징에서 차이가 있습니다. 아래에 주요 차이점을 정리해 보았습니다. 1. 구조적인 차이 • 힙(Heap) • 완전 이진 트리(Complete Binary Tree)로 구성됩니다. • 즉, 마지막 레벨을 제외한 모든 레벨이 꽉 차 있으며, 마지막 레벨도 가능한 왼쪽부터 노드가 채워져 있습니다. • 부모와 자식 간의 우선순위 조건을 만족해야 합니다. • 최대 힙(Max Heap): 부모 노드의 값이 자식 노드의 값보다 크거나 같다. • 최소 힙(Min Heap): 부모 노드의 값이 자식 노드의 값보다 작거나 같다. • 이진 트리(Binary Tree) • 노드당 자식 노드가 최대 2개인 트리입니다. • 구조적..

코딩/알고리즘 2024.12.26

[알고리즘] 알고리즘 공부 1일차

알고리즘의 정의.1. 컴퓨터에서 실행하도록 컴퓨터가 이해할 수 있는 게 프로그램2. 위의 내용을 작성하기전에 사람이 이해할 수 있도록 작성한 것. 정렬 알고리즘 숫자를 한번 움직여서 고정시키는 것을 "라운드"라고 한다.  완전 탐색 알고리즘n! 선택정렬 알고리즘n2 데이터 구조란?데이터의 순서와 위치 관계를 결정한다. - 데이터를 메모리에 저장할 때, 데이터의 순서나 위치 관계를 규정한 것이 데이터 구조  리스트 데이터를 일직선으로 정렬산 데이터 구조

코딩/알고리즘 2024.12.24

[Mongodb] 몽고디비 설정하기 및 기본 CRUD

설치 명령어brew tap mongodb/brewbrew install mongodb-community@7.0brew services start mongodb-community@7.0 기본설정import mongoose from 'mongoose';const { PORT, MONGO_URI } = process.env;mongoose .connect(MONGO_URI) .then(() => { console.log('Connected to MongoDB'); }) .catch((e) => { console.error(e); });// MONGO_URI 가 mongodb://localhost:27017/[테이블이름]  스키마 설정import mongoose from 'mongoose';..

코딩/Node.js 2024.12.09

[koa] Import / export syntax 적용하기

원래는 import, export를 무조건 esm 이라는 라이브러리를 이용해야했지만, 해당 문법이 이미 최신 node에서 사용이 가능하다. 즉 수정할 곳은 두곳인데, 한개도 생략이 가능하다. // package.json 파일 추가"type": "module" 아래가 생략이 가능한 부분.// .eslintrc.json { "env": { "node": true, "es2021": true }, "extends": ["eslint:recommended", "prettier"], "globals": { "Atomics": "readonly", "SharedArrayBuffer": "readonly" }, "parserOptions": { "ecmaVersion": 2020..

코딩/Node.js 2024.12.09

[koa] koa 학습하기 - 2 - 컨트롤러 적용

yarn add koa-bodyparser // index.js// 내용 수정한다const Koa = require('koa');const Router = require('koa-router');const bodyParser = require('koa-bodpareser');const api = require('./api');const app = new Koa();const router = new Router();router.use('/api', api.routes());// 라우터 적용전에 적용app.use(bodyParser());// app 인스턴스에 라우터 적용app.use(router.routes()).use(router.allowedMethods());app.listen(4000, () => ..

코딩/Node.js 2024.12.08

[koa] 코아 프레임워크 학습 - 1 - 라우팅 기능적용

express 개발자들이 express의 단점을 고치고자 했으나 내부구조가 변경되어야 하므로React처럼 view 즉, 미들웨어 부분만 따로 빼서 만든 프레임워크입니다.express처럼 여러 기능이 내장되어 있는 게 아니라서 추가로 설치해야합니다. express를 사용할 줄 아나 원활히 사용한다고 생각되지 않아, 해당 코드를 학습합니다. index파일 하나에 넣고 코드를 적용할 수 없어, 해당 코드를 분할합니다. yarn add koa koa-routeryarn add koa koa-router/// index.jsconst Koa = require('koa');const Router = require('koa-router');const api = require('./api');const app = ne..

코딩/Node.js 2024.12.08

[Git] 추적파일 목록 갱신하기, 추적내용 초기화

간혹 추적하는 파일을 갱신해야할때가 있다. 바로 프로젝트 초창기에 진행되는데, 이걸 모르고 있었다.그래서 항상 프로젝트 밀고 진행. 내용은 gitignore를 생성이 늦었을 때, 발생하는데npm init, yarn init 등 해당 파일을 추적시 같이 node_modules가 추적 되는 경우가 있다. .gitignore를 최신화한다.shell 명령어를 친다.git rm -r --cached .git add .git commit -m "Refresh .gitignore tracking"적용 내용을 확인한다.

코딩/Git 2024.12.07

[yarn] yarn 설치 불가 이슈(다층구조 충돌이슈)

yarn으로 koa 프레임워크를 이용하여, 노드환경을 구성하려고 한다.그런데, 이러한 에러가 발생하길래 무엇인가해서 봤더니, 내용에 정답이 있다.  Usage Error: The nearest package directory (/Users/맥북/2024.12/techofReact/blog/blog-backend) doesn't seem to be part of the project declared in /Users/맥북.- If /Users/맥북 isn't intended to be a project, remove any yarn.lock and/or package.json file there.- If /Users/맥북 is intended to be a project, it might be that y..

코딩/Node.js 2024.12.07

[NODE] JWT 기능 구현.

기존에 일했던 곳은 세션으로 로그인을 구현했는데, 이력서에 하도 포폴 내 사용가능이라길래 JWT라고 하도 사람들이 그러길래 기능 구현을 해보았다.JWT 내 만료시간, 서명, 내용이 들어간다. 그런데, 이거 완전 stateless라고해서 찾아보니 어허~딱히 그러지도 않네...기존에 서버의 경우 uuid를 통해 session을 만들어왔다.그런데, 이건 뭐;;;로그아웃 기능을 구현해보니, 탈취점이 확실히 보인다.서버에서 cookie로 리프레쉬토큰만 저장해두는데, 로그아웃시 리프레쉬 토큰을 삭제한다.리프레쉬는 서버에 저장하고 상대적으로 유효시간이 짧은 accesstoken을 저장하지 않게 구현했다.로그인시 accessToken 내 만료시간 확인해서 로그인 시키는 구조인데, 이게 탈취되면 막을 방법이 없는 것. ..

코딩/Node.js 2024.11.01
728x90