모도리는 공부중

2022.02. 내 궁금증, 검색한 것들, 공부 및 개발 일기 본문

내 지식 정리/날것 그 자체

2022.02. 내 궁금증, 검색한 것들, 공부 및 개발 일기

공부하는 모도리 2022. 2. 5. 20:52
728x90
반응형

5일

더보기

주말을 이용하여 node.js/express.js/restful api 등의 이해를 완벽히 끝내놓고자 게으름 끝에 카페에 나와 공부를 시작했다. 확실히 게으름 피우는 몸은 집에 가둬둘 것이 아니라 움직여 밖으로 나와야한다는 것을 다시금 깨닫고 공부하는 중이다.

시간은 왜 이리 야속하게도 빠른지.. 오늘 공부 가능 시간이 얼마 남지 않았으므로 좀 더 열차게 공부하자.

 

오랜만에 전에 듣다가 말았던 sk planet youtube 강의를 다시 꺼내서 듣고 있다.

https://www.youtube.com/watch?v=SGU_UMDVEdM&list=PL9mhQYIlKEhfedWZfhcP6JCb83gDo1T9r 

오늘~내일 중으로 완강하고 restful api를 빠르게 들어갈 수 있도록 노력해보자.

강의를 듣던 중에 댓글을 봤더니 도움이 될만한 글 링크가 확인되었다.

 

nodejs의 내부 동작 원리 (libuv, 이벤트루프, 워커쓰레드, 비동기)

참조문서 https://github.com/nodejs/node https://nodejs.org/ko/docs/guides/event-loop-timers-and-nexttick/ https://medium.com/the-node-js-collection/what-you-should-know-to-really-understand-the-node..

sjh836.tistory.com

 

Node.js의 기초(내부 아키텍처, 이벤트루프와 워커, 비동기의 이해)

1. Nodejs 란? 2009년에 Ryan Dahl이 발표했다. 노드는 구글의 V8 JavaScript 엔진에 기반한다. 싱글스레드 기반 비동기 이벤트 위주 IO를 사용하는 고도의 확장성을 가진 시스템이다. 간단한 작업을 수행하

sjh836.tistory.com

 

글을 읽다가 스레드 개념이 다시 한 번 궁금해져서 제대로 다시 학습하고자 또 검색

 

동시성 프로그래밍/ 비동기 프로그래밍

이번 시간에 배울 것은 1\. 프로세서, 코어, 프로그램과 프로세스, 스레드의 개념에 대해 알아봅시다 2\. 비동기 프로그래밍과 동시성 프로그래밍에 대해 알아봅시다3\. 병렬성 프로그래밍에 대해

velog.io

 

Node.js | Thread Pool

스레드 풀(Thread Pool) 스레드가 생성될 때 컴퓨터 내부적으로 운영체제(OS)가 요청을 받아들여 메모리공간을 확보해주고 그 메모리를 스레드에게 할당해준다. 스레드는 동일한 메모리영역에서 생

velog.io

 

 

멀티 스레드 / 비동기 병렬 처리

멀티 스레드 / 비동기 병렬 처리

velog.io

 

 

Node 개발자라면 알아야 할 기본 지식 (JavaScript )

Node 개발자라면 알아야 할 기본 지식을 한번 짚고 넘어가자는 의미에서 글을 쓰겠습니다. Node와 JavaScript Node는 구글에서 개발한 C++ 기반의 V8 엔진으로 빌드된 이벤트 기반 자바스크립트 런타임(

dahanweb.tistory.com

Thread(스레드): 프로세스 내에서 실행되는 작업 흐름의 단위

  • 프로세스 하나 당 한 스레드를 가지는 것이 보통이며
    프로세스 환경에 따라 여러 스레드를 실행할 수 있다. <- 멀티 스레딩

Thread Pool(스레드 풀): 퍼포먼스 향상을 위해 미리 스레드를 만들어 놓는 것

  • 생성시 os가 요청을 받아들여 확보해준 메모리 공간에서 할당받는다.
    스레드는 동일한 메모리 영역에서 생성·관리되지만
    생성·수거하는 작업이 프로그램 퍼포먼스에 지대한 영향을 줄 수 있기에 미리 생성해둔다.

7일

더보기

어제 공부하던 건 퇴근하고 집에 가서 이어서 하도록 하고,

오늘은 rest api를 구성하기 위해서 api doc 작성을 할 수 있는 swagger에 대한 공부가 필요하다.

금주 중으로 rest api data push test를 해야하므로 빠르게 학습하자.

 

 

행정업무에 밀려 못했다..

행정 업무야.. 나 좀 고만 괴롭혀.

 

10일

더보기

어제도 궁금했던 건데 왜 사수가 npm install(재설치)하자마자 해결된 back과 front 연결 화면이 내가 테스트분석용으로 만든 로컬 back단에서는 안되는걸까? (ㅂㄷㅂㄷ)

 

제쳐두고, 다른 개발용 환경 back에서 npm run start를 실행하면 vuetify로 연결된다.

이것은 app.js에서 route가 index.js로 연결시켜주고, index.js는 res.render('index', { title: 'Express' }); 를 렌더한다.

index.ejs로 연결되면 Welcome to <%= title %>를 띄우도록 되어있지만 화면에 비치는 것은 front단의 HelloWorld.vue

중간에 연결해주는 무엇인가가 더 끼어있는 것인데 어떻게 빠지게 된 건지는 잘 모르겠다. 컴포넌트가 연결된 것 같은데 이건 내가 몰라도 되는 걸까.. (먼산)

 

내가 해야하는 것은 localhost:3000/api로 값을 보내주는 작업들이다. 해보자.

 

 

rest api 사용 규칙

 

REST API URI 규칙

API 개발을 하면 할수록 URI를 어떻게 명명할지 고민하게 되었고 이번 기회에 URI를 어떻게 정하면 되는지 한번 알아 봤다. 지금껏 내가 잘못하고 있는게 많구나 생각이 들기도 했다.Representational St

velog.io

 

 

RESTful API 설계 규칙

프로젝트를 하면서 API를 설계할때 늘상 헷갈리는 것이 Rest API입니다. 한번 정리해두고 늘 참고합시다. Representational State Transfer (REST) refers to a group of software architecture design constraint..

one-it.tistory.com

http method가 항상 헷갈린다. 아직 코딩이 덜 적응돼서 그런 거겠지. 빨리 적응하자.

11일

더보기

swagger api 문서를 그냥 읽으려니 영 이해가 잘 안 가서 검색

 

[Javascript/Node.js Express] API Router 서버, Swagger 적용하기

Swagger 는 참 알수록 매력적인 프레임워크입니다. http://www.swagger.io/ 기본적으로 API Documenta...

blog.naver.com

위 글에서는 swagger-jsdoc도 설치하라고 하지만 내가 작업중인 기존 프로젝트는 swagger-ui-express 하나로 전부 작업된 것 같으니 jsdoc은 킵해두고 진행

 

GitHub - scottie1984/swagger-ui-express: Adds middleware to your express app to serve the Swagger UI bound to your Swagger docum

Adds middleware to your express app to serve the Swagger UI bound to your Swagger document. This acts as living documentation for your API hosted from within your app. - GitHub - scottie1984/swagge...

github.com

 

https://swagger.io 

 

API Documentation & Design Tools for Teams | Swagger

 

swagger.io

https://www.openapis.org 

 

Home - OpenAPI Initiative

Something great just got better, get excited!

www.openapis.org

 

db 연결하면서 마주친 error.

(node: 12348) UnhandledPromiseRejectionWarning: TypeError: Assignment to constant variable.

 

[ javascript 코딩 ] 자바스크립트 변수 선언 - const 키워드

자바스크립트에서 변수 선언은 아래 세가지 키워드를 사용하는 방법이 있습니다.  var / let / const 마지막으로 const 키워드에 대해 알아 볼까 합니다. ■ const 키워드 const 키워드는 앞서 알아본 le

jamesdreaming.tistory.com

 

12일

더보기

https://jhonnywest.tistory.com/81

 

node.js mysql 접속/SELECT/INSERT

npm install --save node-mysql node-mysql node.js에서 mysql에 접근할수 있게해주는 모듈 var mysql = require('mysql'); var conn = mysql.createConnection({ host : 'localhost', //db접속 주소 user : 'root..

jhonnywest.tistory.com

모르겠어? 궁금해? 그럼 무조건 콘솔 찍어. 를 한 번 더 깨닫게 해주었던 블로그 글. 정말 내게 큰 설명이 됐다.

conn.query(sqlQuery, (err, rows, fields) => {
	if (err) {
    	console.log(err);
    } else {
    	console.log(rows);
        console.log(fields);
    }
})

craeteconnection 함수 대신에 나는 다른 로직을 사용했기 때문에 이 부분은 또 공부가 필요하다.
아무든 database.js와 dbCofig.js를 연결해서 db 접속정보는 creatpool에 담아 conn에 연결했고,
conn.query를 이용하여 만들어놓은 sql query 변수를 함수에 담아 쿼리문과 콜백함수를 인자로 전달.
rows는 콜백함수의 인자로 행의 정보를 담는 배열이 된다. fields는 컬럼의 정보를 담는다.

rows:  [
  {
    Email: 'modory@studying-modory.com', 
    PasswordHash: '2020',
    Name: '모도리',
    gender: '여',
    Phone: '010-1234-5678',
    InstituteName: '모도리는공부중'    
  }
]
fields:  [
  ColumnDefinition {
    _buf: <Buffer 01 00 00 01 06 37 00 00 02 03 64 65 66 0f 74 65 73 74 5f 73 74 65 70 2d 61 64 6d 69 6e 04 75 73 65 72 04 75 73 65 72 05 45 6d 61 69 6c 05 45 6d 61 69 ... 443 more bytes>,       
    _clientEncoding: 'utf8',
    _catalogLength: 3,
    _catalogStart: 10,
    _schemaLength: 15,
    _schemaStart: 14,
    _tableLength: 4,
    _tableStart: 30,
    _orgTableLength: 4,
    _orgTableStart: 35,
    _orgNameLength: 5,
    _orgNameStart: 46,
    characterSet: 224,
    encoding: 'utf8',
    name: 'Email',
    columnLength: 400,
    columnType: 253,
    flags: 16388,
    decimals: 0
  },
  ColumnDefinition {
    _buf: <Buffer 01 00 00 01 06 37 00 00 02 03 64 65 66 0f 74 65 73 74 5f 73 74 65 70 2d 61 64 6d 69 6e 04 75 73 65 72 04 75 73 65 72 05 45 6d 61 69 6c 05 45 6d 61 69 ... 443 more bytes>,       
    _clientEncoding: 'utf8',
    _catalogLength: 3,
    _catalogStart: 69,
    _schemaLength: 15,
    _schemaStart: 73,
    _tableLength: 4,
    _tableStart: 89,
    _orgTableLength: 4,
    _orgTableStart: 94,
    _orgNameLength: 12,
    _orgNameStart: 112,
    characterSet: 224,
    encoding: 'utf8',
    name: 'PasswordHash',
    columnLength: 800,
    columnType: 253,
    flags: 0,
    decimals: 0
  },
  ...(반복 후략)
]

담겨나온 json 형태의 값을 보고 있자니, mongoDB 빨리 공부해야겠다는 생각이 든다. 정말로 mongoDB로 할 수 있는 것들은 조금 더 간단하게 처리해버리고 싶은 욕구가 샘솟는다. 우선은 mariadb로 결정했으니 당장 할 것에 집중하자.

그리고 rows를 그대로 변수에 담았더니 아주 깔끔하게 나온다.

[
	{
		"Email": "modory@studying-modory.com",
		"PasswordHash": "2020",
		"Name": "모도리",
		"gender": "여",
		"Phone": "010-1234-5678",
		"InstituteName": "모도리는공부중"
	}
]

좋다.. rows를 넣었기 때문에 중괄호가 한 번 덧씌운 상태로 들어가는구나.

14일

더보기

나는 npm install 후에 npm audit fix가 일상화되어있는데 이게 같이 작업하는 위치에서 맞는지 아닌지 잘 모르겠다. 아무튼, 나는 audit fix를 한 후에 작업을 진행했는데 상대방은 그렇지 않아서 git pull을 하기 위해 git stash를 통해 내것을 임시저장했다. 그리고 git stash pop을 하고 싶은데 그게 잘 안된다.. commit을 하라는 것 같은데 나는 상대방 것을 방금 pull했는데 뭘 commit하란 말인가.

 

[GIT] 실행취소와 Commit 삭제: reflog, reset, checkout, revert - ECE - TUWLAB

프로그램을 작성할 때 에디터가 제공해야 할 가장 중요한 기능을 세 가지 꼽는다면, 자동완성(Tab)과 복붙(Ctrl+C,V), 그리고 실행취소(Ctrl+Z)를 들 수 있습니다. GIT에서는 개발자가 실수를 만회할 수

www.tuwlab.com

파일 수정 내용을 head 상태로 초기화하는 방법

git checkout -- [초기화할 파일명]

위 방법을 이용했다. 이미 npm audit fix를 해버렸기 때문에 frontend의 package-lock.json에는 변화가 생겨버렸고 이것을 다시 원상복구해줘야 한다. 원복을 위해 초기화 명령어를 사용했더니 frontend/package-lock.json에 있던 M 표시가 드디어 사라졌다.

 

git 원격 저장소를 2개를 붙여서 관리하고자 검색 → git remote set-url

 

Git : 원격 repository의 연결 url 변경

참고url : https://help.github.com/articles/changing-a-remote-s-url/ Git : 원격 repository의 연결 url 변경 맨 처음 로컬에 Git repository를 아래처럼 세팅 했을 때를 전제하고 아래 연결 url을 변경한다...

geoseong.tistory.com

 

 

Git - 리모트 저장소

원격 저장소라 하더라도 로컬 시스템에 위치할 수도 있다. “remote” 저장소라고 이름이 붙어있어도 이 원격 저장소가 사실 같은 로컬 시스템에 존재할 수도 있다. 여기서 “remote” 라는 이름은

git-scm.com

 

날마다 해야 안 까먹으려나..

 

 

Git - 브랜치와 Merge 의 기초

Merge 시에 발생한 충돌을 다루는 더 어렵고 요상한 내용은 뒤에 고급 Merge 에서 다루기로 한다.

git-scm.com

 

내 작업물을 master에 merge하기 전에 원격 저장소 작업물을 먼저 pull해오려고 했는데 그걸 잊고 merge를 먼저 해버렸다. 내 작업물이 삭제되는 큰 사고가 일어나면 안되므로 ㅜㅜㅜ 급하게 서치서치.

어느 글에서는 git merge --abort를 하면 된다고 하지만 그 명령어는 coflict 상황에서만 가능한 것인지 내 상황에서는 먹히지 않았다.

fatal: There is no merge to abort (MERGE_HEAD missing).

이런 결과만 내뱉을 뿐.. 그래서 다른 글을 찾았다.

 

git. commit, add, pull, merge 취소

git은 기능이 많아서 그런지 다들 너무 어려워 합니다. 하지만 하나도 어렵지 않지만 알고 있는 자만 어렵지 않습니다. 그래서 오늘은 하나 더 알고 있는것을 남기기 위해서 글을 적어봅니다. 일

mrgamza.tistory.com

git reset --merge ORIG_HEAD

ORIG_HEAD는 이전에 작업한 곳의 HEAD를 의미한다. pull이나 merge를 한 경우 ORIG_HEAD를 남기게 되어 잘못 작업한 경우 이 명령어를 이용하면 된다고 한다.

위 글에 나오는 --option(soft, mixed, hard)은 나중에 git study 공간에서 따로 테스트하며 익혀야겠다.

15일

더보기

깃을 버전으로 관리할 수 있다는 것을 보고 신기해서 일단 킵해두기

 

깃(git) 시작하기 3. 버전 만들기 (git config / git commit)

이제는 현재 깃의 상태를 '버전'으로 저장하는 것을 알아보자. 파일의 변화, 소스의 변화 등, '어떤 작업이 완결된 상태', '의미있는 상태 변화'를 '버전'으로 해서 저장하는 방법을 알아보자. 1.

psklog.tistory.com

원격 저장소 주소 바꾸고 나서 동기화 설정하는 방법까지 나와있음

 

[Git] git remote repository 변경하는 방법

Git에서 리모트 저장소(remote repository)를 다른 주소 URL로 변경하고자 합니다. 예를들어 두 개의 git 리모트 저장소 있는 경우 한 쪽에서 다른 쪽으로 바꾸는 경우가 있겠죠.

webisfree.com

 

나중의 나를 위해 (여기 와서 기억하고 가면 좋겠다만) 킵

 

git 저장소에 민감 정보 올라갔을 때 조치 | 특정 커밋만 삭제

주니어라면 한번쯤은 겪을 상황이지만? 다시는 겪고 싶지 않은 상황... 바로 git에 secret key를 올려버린 것이다... 아찔! 급하게 레파지토리를 비공개로 전환하고 수습을 해야했다. 문제의 파일을 .

dog-foot-story.tistory.com

 

git rm --cached 파일 삭제 :: 마이구미

이번 글은 Github 저장소에 있는 파일을 삭제하는 법을 다뤄본다. 이게 무슨 말인가? 예를 들어보겠다. 상황을 들어보자. 작업이 완료되어 저장소에 push를 날렸다. 하지만 모르고 작업에 필요했지

mygumi.tistory.com

 

Git remote branch 가져오기

Jihun's Development Blog

cjh5414.github.io

16일

21일

22일

더보기

강의를 듣다가 궁금해져서 Buffer.allocUnsafe에 대해 검색

https://yceffort.kr/2021/10/understanding-of-nodejs-buffer

https://runebook.dev/ko/docs/node/buffer

 

Node.js - Buffer - Buffer Source Code:lib/buffer.js Buffer 개체는 고정 길이 바이트 시퀀스를 나타내는 데 사

 

runebook.dev

 

runebook.dev는 node.js 17.4 공식 문서를 번역한 곳인 것 같다. 확실히 상세하니 좋네.

25일

더보기

만들기 바빠서 이것도 거의 못했구나 내가..

28일

 

728x90
반응형
Comments