CS
[DB] char VS varchar 선택기준
https://www.inflearn.com/course/lecture?courseSlug=real-mysql-part-1&unitId=226561&tab=curriculum 학습 페이지 www.inflearn.com* 잘못된상식 : 무조건 varchar이 좋다. * varchar로 저장 && 업데이트 하는경우ABCD 를 ABCDE로 수정 -> db는 implace로 해당자리그대로 수정가능한지 체크 -> 불가능하면 delete marking && 새로운 빈공간탐색후 저장단점 : 단편화문제 * 해결 : char(10) 으로 선언미리 10칸이 할당되므로 그대로 해당자리에 ABCDE로 수정가능함. * 결론 길이가 제한적이고 (7~10자) && 자주 변경되는 컬럼의경우(ex: indexed 컬럼)char로 선언..
where IN 절의 한계, 해결
* 한계 : 100개가 넘는경우, 풀스캔을함* 해결 : In절에 담는 값을 Promise.all을 이용해 분할처리(20개씩) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ이전과는 달리 이번에는 where id in (ID) 에 포함되는 ID의 개수가 100개를 초과해서 인덱스를 사용하지 못하고 테이블 풀 스캔을 하는 쿼리의 문제였습니다.위 쿼리는 장바구니, 구매완료, 결제페이지 등에서 신청하는 강의들의 정보를 가져오는 쿼리입니다.(수강바구니)이 쿼리가 평소에는 문제가 없었지만, 이번 이벤트의 경우 125개의 강의를 100% 할인하는 것이 원인이 되었습니다.한번에 125개 강의를 모두 담아서 일괄 결제 (어차피 0원이니) 하는 수강생분들이 급증했기 때문입니다.이 문제..
브라우저에 주소를 치면 일어나는일 (node 관점)
https://medium.com/zigbang/nodejs-event-loop%ED%8C%8C%ED%97%A4%EC%B9%98%EA%B8%B0-16e9290f2b30 NodeJS Event Loop파헤치기안녕하세요! 직방 서비스개발그룹 백엔드팀 아파트파트에서 근무중인 김범준입니다. 이번 포스팅에서는 NodeJS의 Event Loop에 대한 내용을 정리해보려 합니다. 그럼 같이 시작해 볼까요?medium.com Express, Node.js, Event 내의 프로세스를 중심으로 브라우저에 http://localhost:3000/blog/230801.html을 입력한 순간부터 서버로부터 응답을 받을 때까지 무슨 일이 일어나는지 분석해 보겠습니다. 루프, LibUV 및 OS(Linux).1. 브라우저 요..
[HTTP] 클라에서 서버로 데이터 전송 과정
* POST 폼 전송과정1. 나의 form을 가지고 웹브라우저(크롬)이 HTTP 메시지(req)로 만들어준다.post인경우, body에 input들을 넣는다. //get인경우, url경로에 넣는다. 제목을 입력하세요: 내용을 입력하세요: 취소 등록 //reqPOST /add HTTP/1.1Host: localhost:3030Content-type: application..
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 해결
* 문제 : app.js에서 update후 응답을 2개 보냈기 때문이다. (res.json && res.redirect)* 원래 나의 의도 : update후 다시 redirect를 보내 홈화면을 재 렌더링 하고자 했다.app.patch('/update-task-status', (req, res) => { const { taskId, status } = req.body; // console.log(taskId); // console.log(status); const task = db.get('tasks').find({ id: taskId }).value(); if (task) { db.get('tasks') .find({ id: taskId })..
const 개념 종결 c++ // 매개변수 const, 함수뒤 const, 리턴값앞 const
1. 매개변수 const매개변수가 가르키는 곳의 데이터를 못바꾸게함2. 함수뒤 const이 함수내에서 맴버변수의 데이터를 못바꾸게함3. 리턴값앞 const나를 부른곳에서 맴버변수의 데이터를 못바꾸게함class AAA{public : void setVector(vector & inputVec); //매개변수 inputvec의 내용을 바꿀수있는 함수! void printVec() ; // 멤버변수인 name을 바꿀수있는 함수! const string& getNameRef(); //나를 부른곳에서 name을 바꿀수있음 private: string name;}class AAA{public : void setVector(const std:: vector & inputVec); //매개변수 in..
REST API
*API 란? 앱들간에 통신하는 방법을 말한다. 내 코드로 남의 시스템을 실행(CRUD)시키는것을 말한다. ex) 내 코드로 트위터의 글을 만든다. / 가져온다. / 수정한다. / 삭제한다. https://api.twitter.com/2/tweets/13214235235235{ data:{ "id":"141352352535", "text":"네카라쿠배" } } * REST? REST는 다음 4가지 제약조건을 만족해야 합니다. (https://ko.wikipedia.org/wiki/REST) - 자원의 식별 - 메시지를 통한 리소스 조작 - 자기서술적 메서지 - 애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어 * REST API? HTTP로 통신할때, 잘짜여진 API를 말한다. / 위 조건들을 만족하는 ..