본문 바로가기

분류 전체보기45

리눅스 폴더 삭제 명령어 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.