본문 바로가기

전체 글45

git으로 프로젝트 시작하기 지금은 익숙해졌지만, 프로젝트를 처음 할 당시에는 프로젝트를 어떤 식으로 시작해야할지 몰랐다. 그래서 프로젝트를 시작하는 방법을 정리해보았다. 우선 나는 git을 사용하여 github 원격저장소에서 프로젝트를 관리한다. (대부분 개발자들이 사용함.) github에 새로운 repository를 생성한 후, 주소를 복사한다. CLI 명령어로 프로젝트 폴더로 들어가서 프로젝트 폴더 주소에서 git init 명령어를 입력한다. 경우에 따라 다르지만, 빠른 생성을 위해서 git init -y를 해주어도 된다. 이제 github에서 만든 repository를 관리하기 위해 git remote add origin [1번에서 복사한 주소]를 입력한다. (origin대신 사용하고 싶은 이름을 넣어도 되지만, origin.. 2021. 11. 15.
console 종류에 대해서... console.log 평범한 로그 일반적으로 찍어 볼때 console.dir 객체 로깅 객체를 볼때 dir로 보는게 더 좋다. console.time, console.timeEnd 시간 로깅 time과 timeEnd 사이의 코드가 실행되는데 걸리는 시간을 측정. 코드 효율성 테스트 //사용법 console.time("test") //시간 측정하고 싶은 알고리즘 console.timeEnd("test") console.error 에러 로깅 console.trace 호출 스택 로깅 이벤트 루프 원리 연습할 때 유용 console.table 배열안의 객체를 테이블 형식으로 로깅 2021. 11. 14.
리눅스 폴더 삭제 명령어 CLI에서 폴더를 만들고 삭제하는 일이 거의 없어서 명령어를 한번씩 찾아보곤 한다. 매번 찾아보기 귀찮아서 자주 잊어버리는 폴더 삭제 명령어를 기록한다. 우선 폴더 생성 명령어이다. mkdir [폴더명] - 폴더 생성 명령어 폴더 삭제 명령어 rmdir [폴더명] - 안이 비어있는 폴더만 삭제 가능. rm -r [폴더명 or 파일명] - 파일이나 폴더를 삭제해줌.(하위폴더도 모두 삭제) rm -f [파일명] - 파일을 삭제해줌. rm -v [폴더명 or 파일명] - 삭제된 파일이나 폴더의 경로를 log로 보여줌. rm으로 쉽게 삭제할 수 있지만, 복구가 되지 않기 때문에 항상 조심히 사용하자. 참고 webisfree 2021. 11. 11.
socket.io란? 웹 소켓을 사용하여 채팅방에 적합한 구조로 만든 패키지이다. 채팅방 구조가 아닌 경우에는 불필요할 수도 있다. 프론트에서 socket.io 셋팅 이벤트 리스너를 자유롭게 만들 수 있다, 서버로 데이터를 보낼 때에도 이벤트 이름과 함께 데이터를 보낸다. const socket = io.connect("http://localhost:8005", { // ws가 아닌 http로 작성한다, 소켓을 지원하는 브라우저인지 처음에 확인하기위해서 설정한다. 맨 처음에는 폴링으로 요청을 하고, 소켓을 지원하는 브라우저일 경우, 웹소켓으로 송수신한다. // 처음부터 웹소켓으로 통신하고 싶다고 하면, 밑에 코드와 같이 transports: ["websocket"]을 설정해준다. path: "/socket.io", // 이 .. 2021. 11. 10.
웹 소켓(websocket)이란? 기존의 http방식은 요청 한번에 응답을 한번하고 서버와 연결이 끊는다. 반면에 소켓은 통로를 만들어 놓고, 실시간으로 양방향 데이터를 전송하는 기술이다. 웹소켓 이전에는 폴링이라는 기술을 사용하였다. 폴링은 특정 시간마다 서버에 요청하여 변한게 있는지 확인하고, 데이터를 받아오는 방식이다. 시간에 따라 숏폴링, 롱폴링으로 구분하는데 어째뜬 연결을 끊었다가 다시 연결하는 과정이 비효율적이다. 그래서 나온 것이 웹소켓 방식이다. 웹소켓은 ws프로토콜을 사용한다. 옛날 브라우저 중 지원 안되는 것도 있다. 프론트에서 소켓 셋팅 const webSocket = new WebSocket("ws://localhost:8005"); // 서버포트와 공유하므로 ws프로토콜뒤에 포트는 서버포트와 같게 한다. (여기가 .. 2021. 11. 9.
프로그래머스 - 피보나치 수 문제 피보나치 수는 0,1,1,2,3,5,8,13,21 ... 이런식으로 전의 수와 전전의 수를 더한 값이 계속 이어지는 수열이다. 처음에는 단순하게 재귀함수로 풀어 보았다. function solution(n) { if (n === 0) return 0; if (n === 1) return 1; return (solution(n - 1) + solution(n - 2)) % 1234567; }처음 0과 1은 그대로 리턴하고 3번째 숫자(인덱스2)부터 규칙을 적용하여 재귀로 풀었다. 하지만, 큰 수가 들어갈 때는 재귀하는 횟수가 많아 콜스택 에러, 런타임 에러가 났다. 또, 함수를 한번 호출하면 두번의 호출을 더 하기 때문에 시간 복잡도는 O(2^n)으로 매우 비효율적이다. 사진처럼 단지, 피보나치의 7번째 .. 2021. 11. 8.