본문 바로가기

내일배움캠프 Node 4기/TIL

(38)
내배캠 12/19 TIL Param과 Query 차이점 - 왠지는 모르겠지만 이 두가지가 굉장히 헷갈려서 쪼금 고생했다. 파라미터같은 경우는 매개변수, 즉 글번호 1, 2... 등등으로 할때 (현재 작성하는 티스토리 블로그 글도 순차적으로 번호가 매겨지는것 같다.)그 번호를 지칭하고, 쿼리는 쉽게 얘기하면 지금도 구글에 암궈나 쳐 보면 주소창에 search? 어쩌고저쩌고 뒤에 주렁주렁 붙어있는데, ? 이후 부분이라고 보면 된다. 이게 DB에서도 쓰이는데 사실상 그 개념과 다르지 않다. SQL 쿼리는 해당 정보를 찾기 위해 DB에 어떠어떠한 정보를 찾고있다는 명령문이고, 웹에서의 쿼리 역시 웹(검색엔진)에서 이러이러한 검색을 하고싶다는 뜻이니까. 트위터 클론 시작 - 전에 드림코딩에서 끊어놓은 강의가 있어서 내배캠 진행하면서 같이..
내배캠 12/17 TIL 프로그래머스 알고리즘 레벨0 - 사실 알고리즘 레벨 0짜리는 단순한 연산문제(?)에 가깝다. 그래서 무슨 알고리즘 어쩌고 하기 전에 우선 레벨 0문제들부터 정복하자는 계획을 세웠다. 오늘 10문제를 풀었는데, 특이할 사항이 있다면 Reduce 메소드인데 += 연산할때 특효약이랄까 그냥 for 문 돌려서 하는것보다 명확해서 좀 더 익숙해지기 위해 노력해야겠다. DB 트랜잭션 Isolation - 트랜잭션은 독립적이어야한다. 그러나, 수많은 트랜잭션들이 거의 동시다발적으로 오가는 실제 상황에서 독립성을 어느 정도로 유지하느냐가 관건이다. 독립성이 높을수록, 즉 lock을 걸어 안전하게 할수록 성능은 떨어지고, 독립성을 낮출수록 각종 현상이 생기기 마련이다. 격리(Isolation)레벨이 0부터 3까(Seri..
내배캠 12/16 TIL Mongo DB - save 와 create의 차이 - 이번 과제에서 본인은 데이터 생성시 create를 사용했다. 그런데 save 역시 데이터 생성이 가능한지라 뭐가 다른지 찾아보았다. 내가 알게 된 내용은, 단순히 데이터를 받아 밀어넣는건 create 이고, 해시로 암호화를 하는 등의 가공작업을 거치려면 save를 쓴다는 것이였다. 추후 과정에서 비밀번호 암호화 관련한것(저번 미니플젝의 bcrypt같은) 이 있을테니 그때 좀 더 자세히 알아보려고 한다. Git Ignore의 중요성 - 플젝이나 과제를 마치고 신이나서 git init 하고 add, commit 하다가는, 오늘 내가 겪은일을 반복하게 되므로 'Tracking' 되고 있는 파일들이 뭔지 꼭 확인을 해야 하겠다. 그냥 신나서 git add했..
내배캠 12/15 TIL 1. E11000 키 중복에러 - 나처럼 연습한답시고 DB 만들어놓고 방치하는(?) 사람에게 주로 발생하는 에러인데 사실 의미는 어렵지 않다. 키가 Duplicate (중복) 되어 나오는 에러인데, 앞서 말했듯, 나처럼 쓸데없는 DB 만들어서 방치한 사람들에겐 기존에 안쓰고 잠자는 DB들을 삭제해주면 해결되는 문제다. 그런데 너무 과격한(?) 해법인것 같아서 다른 해법들도 찾아봤는데 좀 본인에게 어려워서;;; 확실히 숙달이 좀 되어야되겠다는 생각이 들었다. 몽고DB자체가 아직 미숙해서 발생한 문제. 2. 내림차순 정렬, createdAt in MongoDB - 저번에 했던 MySQL로는 내림차순은 Default 혹은 ORDER BY로 하면 되고, 타임스탬프도 테이블 생성시 DATETIME NOW()로 설..
내배캠 12/14 TIL 오류해결 - mongooseserverselectionerror connect econnrefused - 와 이거때문에 어제 저녁부터 오늘 오후 내내 골치아팠다... 물론 구글링에 이런저런 해법이 있다. stack overflow에도 뭐 4~5가지 해결책이 있고 그걸로 해결됐다는 사람도 많고 한데... 무슨 mongod를 실행하라니 뭐니... 그렇게 헤메다가 찾은 해법은 이거다. 나는 노드js를 제일 최신버전(18.xx)로 쓰고 있었는데 몽고 DB연결하는 URL에 localhost 를 127.0.0.1로 바꾸면 해결된다. 좀 더 찾아보니 이런걸 Loopback 주소라고 하는데 쉽게 설명하면 네이버 메일에 있는 '메일 내게쓰기'란 기능이랑 비슷하다고 보면 된다. 결국 localhost나 저 주소나 동일하다..
내배캠 12/13 TIL Node.js 입문주차 시작 - 사실 어제부터 시작했어야되는데 어제는 다른것들을 좀 하느라고 정작 노드 관련한공부는 오늘부터 시작했다 - 그냥 노드의 전반적인것들과 모듈의 개념, async같은 비동기처리를 왜 배워야 하는지 등등 본격적으로 Node에 대해 공부하기 전 땅을 다졌다고 생각하면 되는 날이었다. 그중에 좀 주의할만한 것들을 몇개 나열해보자면 1. 노드는 서버가 아니다. 다만 자바스크립트 런타임 환경이라는 조금은 낮선 용어를 사용해야 하는데 원래 자바스크립트는 클라이언트(웹페이지)단의 동적인 조작을 위한 언어지만, 그것을 뛰어넘은 확장팩이라고 이해하면 좀 수월할것 같다. 2. Non blocking I/O, 즉 막힘없는 IN 과 OUT이라는 뜻인데, 이같은 특성때문에 동기적으로 처리해야 할 부분..
내배캠 12/12 TIL SQL 3중 조인 - 지금까지는 테이블 2개만 JOIN 문으로 데이터를 뽑아냈는데, 조인을 여러개 해서 더 자세한 데이터를 뽑아내는걸 배웠다. 사실 개념은 간단한데, 테이블 두개를 우선 조인하고, 3번째 테이블도 조인하고 1번째와 3번째, 2번째와 3번째를 이어주는 쿼리문을 작성하면 되는데 이게 처음엔 좀 이해가 안가서 여러번 다시 돌려봤던 기억이 난다 좀 몇번 더 해봐야 능숙해질것 같아서 다시 복습하고, GROUP BY 쪽을 공부하면 될것 같다. 전위 prefix 후위 postfix - 자바스크립트를 쪼금 공부 했어도 한국어로 '전위' '후위' 라고 하니까 사실 굉장히 당황했다. 쉽개말하면 숫자 1을 계속 더하는 number ++; 가 있다고 할때 이것을 후위 ++number; 이것을 전위라고 부르는데..
내배캠 12/9 TIL 오늘 TIL은 지난 1주일간 프로젝트 하면서 팀원들이랑 공동으로 썼던 KPT 회고로 대체하려 한다. 프로젝트명: 오늘 뭐먹죠?! KEEP 팀원간의 적극적인 소통 문제 해결이 잘 되지 않아도 붙들고 푸는 집념 프로젝트 기능 완벽 구현에 대한 욕심 본인이 담당한 기능의 구현 상황과 일정 관리를 잘 확인하는 것 추가 기능 구현에 대한 끝없는 열망 GitHub으로 협업했을때 지속적인 소통으로 큰 문제없이 진행한 것 각자 파트의 진행상황을 자주 점검하고 서로에게 알리며 진행이 늦어지는 팀원의 부담을 덜어주기 위해 적극적으로 도와줌 PROBLEM 처음 작성했던 S.A가 구체적으로 작성되지 못해서, 구현 할 기능이 늘어남에 따라 작업량이 예상치를 벗어났음 이미 선언한 변수에, 변수값을 제대로 확인하지 못했음 기능 구..