전체 글132 SQL쿼리 작성 기초 및 최적화 쿼리 작성에 필요한 기초 지식 MySQL은 영어 대소문자를 구분한다. 이유는 통상적으로 DB 내용이 디렉토리나 파일로 관리되는데 윈도우OS에선 디렉토리나 파일의 대소문자를 구분하지 않지만, 유닉스 계열에서는 대소문자를 구분하기 때문이다. 설정 파일에서 모두 소문자로만 저장되도록 할 수 있긴하다. 리터럴 표기법 문자열은 항상 홑 따옴표(')로 감싼다. 예약어와 충돌이 예상되는 경우 백 틱(`)으로 감싼다. (사실 예약어는 되도록 다른 곳에 사용하지 않는 게 정석이다.) 문자열과 상수 비교 시 숫자를 우선으로 하여 문자를 숫자로 변환한다. 숫자 값을 상수로 SQL에서 사용할 때는 DBMS가 자동으로 타입에 맞게 변경해준다. SELECT * FROM tab_test WHERE number_column='100.. SQL 2023. 1. 16. 시간복잡도와 공간복잡도 시간복잡도와 공간복잡도 시간복잡도와 공간복잡도는 알고리즘의 성능을 측정하는데 사용되는 개념 시간복잡도 시간복잡도는 알고리즘이 문제를 해결하는 데 걸리는 시간을 나타내는 것으로, 입력 크기에 따라 알고리즘의 수행 시간이 어떻게 증가하는지 분석합니다. 일반적으로 알고리즘의 최악의 경우 시간복잡도를 사용합니다. 시간복잡도는 주로 빅오 표기법(Big O notation)으로 표시되며, 입력 크기 n에 대한 알고리즘의 실행 시간이 O(f(n))으로 표기됩니다. 여기서 f(n)은 n의 함수이며, 상수값은 생략됩니다. 예를 들어, O(n)은 입력 크기 n에 대해 선형적으로 증가하는 시간복잡도를 의미합니다. O(n^2)은 입력 크기 n의 제곱에 비례하는 시간복잡도를 의미합니다. 공간복잡도 공간복잡도는 알고리즘이 문제를.. CS 2023. 1. 13. Socket.io 송수신 메소드 Socket IO 이벤트 통신 소켓IO 의 메소드의 특징은 클라이언트에서 발생하는 이벤트는 개발자가 임의로 설정할 수 있다는 점이다. 이벤트는 문자열로 지정하며 직접 이벤트를 발생시킬 수 있다. 전반적으로 노드 이벤트 핸들러 방식을 따르고 있다고 보면 된다. // 해당 이벤트를 받고 콜백함수를 실행 socket.on('받을 이벤트 명', (msg) => { }) // 이벤트 명을 지정하고 메세지를 보낸다. socket.emit('전송할 이벤트 명', msg) 이런식으로 메세지 마다 고유한 이벤트를 등록해 구별해서 송수신하면, 채팅방에서 '귓속말' 기능처럼 특정 어느 사람한테만 메세지를 송신한다던지 ..등 다양한 통신 기능을 구현할 수 있다. Socket IO 송수신 메소드 소켓 메세지 수신 // 접속된 .. Node.JS 2023. 1. 12. 23/01/11 WebSocket Buffer ?? 노마드 코더 클론 코딩을 진행 중 터미널에 찍힌 이상한 문자! Front에서 Back으로 웹소켓을 이용해 메시지를 보내는 중이었다 Front socket.send("hello from the browser") Back socket.on("message", (message) => { console.log(message) }) 정상적이라면 터미널에 hello from the browser이 출력 되어야 하지만 Buffer 이란 이상한 문자를 출력한다 알고 보니 메시지를 출력하는 과정에서 메시지를 영어로 받아오지 못하고 buffer에 저장되어 있는 16진수 방식으로 가져온 경우로 추측되었다고 한다. 해결방법 console.log(message);를 console.log(message.toString('utf8.. 트러블 슈팅 2023. 1. 11. 프로그래머스 Python 알고리즘 없는 숫자 더하기 https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 원소 ≤ 9 numbers의 모든 원소는 서로 다릅니다. 입출력 예numbersresult.. 프로그래머스 알고리즘 문제 2023. 1. 10. 실시간 통신 기술 종류 실시간 통신 종류 1. Polling HTTP 연결에서는 Stateless와 Connectionless 특징을 가지기 때문에 서버가 클라이언트에게 발송한 데이터가 생기더라고 서버가 일방적으로 클라이언트에게 응답을 보낼 수 없다. 요청을 받아야 응답을 보내는 구조로 클라이언트가 요청을 보낼 때까지 기다려야 한다. 이것을 해결한 방식이 Polling 방식이다. 요청을 주기적으로 계속 보내면서 서버가 전달 하고자 하는 내용이 있는지, 이벤트가 발생했는지 확인해서 가져오는 것이다. HTTP 오버헤드가 상당히 증가한다는 단점을 지니고 있다. 적합한 서비스 실시간 메시지 전달이 중요하지 않은 서비스 잦은 요청에 대응할 수 있는 서버를 지닌곳 2. Long Polling Polling과 유사하게 동작하지만 조건과 설.. CS 2023. 1. 9. 내일배움캠프 청소의 원조 팀 KPT회고 1. Keep 협업으로 구현해야하는 기능을 기한 내에 완성시켰다. 다들 포기하지 않고 기능구현을 위해 노력했다. 깃 브랜치 전략 사용 실제로 배포될 main 브랜치 개발된 코드가 합쳐질 dev 브랜치 기능을 추가하고자 하는 경우에는 feature/ 브랜치를 dev 브랜치로부터 만들어 개발하고 난 후, dev 브랜치에 PR을 날림 브랜치 접근 설정 직접 push를 금지시키고, PR로 병합하는 경우에 컨트리뷰터의 리뷰가 필요한 최소 갯수를 설정. 깃허브의 issue를 사용하여 개발이 필요한 사항들을 관리 구현 가능하도록 DB 스키마를 변경하고 프로젝트에 반영 깃으로 협업 원활 2. Problem 개발에 제대로 참여하지 못 한 팀원 존재 이론과 문법이 제대로 학습되지 않은 상태로 실전에 투입됨 주변에서 적절하.. 프로젝트 2023. 1. 6. Express Cookie-Parser Cookie-parser란? 요청된 쿠키를 쉽게 추출할 수 있도록 도와주는 미들웨어 입니다. express의 request(req) 객체에 cookies 속성이 부여됩니다. node의 npm 패키지에 포함되어 npm install cookie-parser --save를 통해 install하여 사용할 수 있습니다. 예제 코드) var express = require('express'); var cookieParser = require('cookie-parser'); var app = express(); app.use(cookieParser()); app.get('/', function(req, res) { console.log('Cookies: ', req.cookies) }) app.listen(8080.. Node.JS 2023. 1. 6. Git commit 메세지 컨벤션 커밋 유형 · init : 초기 설정 · feat : 새로운 기능 추가 · fix : 버그 수정 · docs : 문서 추가 / 작성 · style : 스타일 관련 기능(코드 포멧팅, 세미콜록 누락, 줄바꿈, 코드 자체 변경이 없을 경우) · refactor : 코드 리펙토링 · test : 테스트 코드 추가 / 수정 · build : 빌드 업무 · ci : CI 관련 설정 수정에 대한 커밋 · chore : 패키지 매니저 수정, 그 외의 것(ex, gitinore 등) 커밋 규칙 1. 제목과 본문을 빈 행 분리 2. 제목 행 50자로 제한 3. 제목 행의 첫 글자는 대문자로 시작 4. 제목 행 끝에 마침표를 넣지 않는다. 5. 제목 행에 명령문을 사용하고, 과거형을 쓰지 않는다. 6. 본문은 72.. Git 2023. 1. 5. Node Cannot set headers after they are sent to the client 에러 Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client at ServerResponse.setHeader (_http_outgoing.js:470:11) The error "Error: Can't set headers after they are sent." means that you're already in the Body or Finished state, but some function tried to set a header or statusCode. When you see this error, try to look for anything that tries to send a header after some .. 트러블 슈팅 2023. 1. 4. dotenv 사용하기 코드에 누출되어선 안되는 기밀정보를 보통 루트 폴더 밑에 .env파일을 만들어 관리한다. git을 사용할 때도 .gitignore 파일에 env를 추가하여 중요한 정보는 git에 등록되지 않게끔 하는 방법도 있다. 1. 먼저 dotenv npm 모듈을 설치한다. $ npm i dotenv 2. .env 파일을 루트 폴더 밑에 작성한다. DB_HOST=localhost DB_USER=root DB_PASS=s1mpl3 3. 그 다음 node.js 환경의 파일들에 아래와 같이 추가하면 사용할 수 있다. // index.js require("dotenv").config(); console.log("DB_HOST:", process.env.DB_HOST); console.log("DB_USER:", proces.. Node.JS 2023. 1. 2. 테스트 프레임워크 Jest Jest는 출시한지 얼마 지나지 않아 주목받았는데요, 페이스북에서 개발한 프론트엔드 라이브러리인 React.js와도 궁합이 아주 좋기 때문에 엄청난 성장세를 보이며 2020년 기준 JavaScript 개발자들 사이에서 가장 많이 사용되는 테스팅 프레임워크로 뽑혔습니다. Jest는 다른 테스팅 프레임워크와 비교하면 여러가지 장점이 있지만, 그 중 가장 제일이라고 생각되는것은 테스트 코드의 표현이 다른 프레임워크보다 훨씬 간결합니다. Jest Configs 설정하기 Jest의 경우 jest.config.js 파일을 정의하거나, CLI 환경에서 추가적인 옵션을 설정하여 커버리지를 출력하거나, 실시간 모니터링 등 다양한 기능을 사용할 수 있습니다. 특정 경로의 테스트 파일을 무시하고 모든 Test Case(ex.. Node.JS 2022. 12. 30. 이전 1 ··· 3 4 5 6 7 8 9 ··· 11 다음 반응형