오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

분류 전체보기 209

[NestJS] NestJS Websocket [1]

1. Gateway 설치 먼저 nest로 구현된 socket 관련 패키지를 다운로드 받아준다. npm i --save @nestjs/websockets @nestjs/platform-socket.io websocket 구현을 위해선 gateway가 필요하다. gateway를 생성해주자. cd ./src nest g ga 라고 작성하면 아래와 같은 질문이 뜬다. socket이라고 적어주자. socket.gateway.ts라는 파일이 아래와같은 내용이 채워져 있을것이다. import { SubscribeMessage, WebSocketGateway } from '@nestjs/websockets'; @WebSocketGateway() export class SocketGateway { @SubscribeMe..

is_existed

변수명을 정하면서 is_existed라는 단어를 보면 항상 마음이 불편하다. exist는 분명 수동 표현이 없는 자동사인데 Boolean를 반환한다는 의미를 표현하기 위해서 억지로 수동형으로 만든 느낌이다. 그렇다도 does_exist나 exists 같은 단어들 역시 완전히 의미가 직관적이지 않다. is 대신 does를 붙이면 문법 나치처럼 보이고 exists라는 단어는 boolean을 반환한다는 의미가 충분히 드러나지 않는다. 이런 고민 끝에 최근에 읽은 엘레강트 오브젝트라는 책에서 답을 찾았다. is_present라고 하면 모두가 만족할 수 있는 답이된다. 그렇게 생각하지 않으시는 분들은 당신 말이 맞습니다~

글/🐕🐾 일기 2022.09.30

WebRTC는 어떻게 P2P 통신을 가능하게 하는가?[1]

비전공자인 내 입장에서 WebRTC는 학습했던 기술중에서는 손에 꼽히도록 어려운 개념중에 하나였다. WebRTC를 하기 위한 네트워크 관련된 개념이 특히 이해하기 어려웠다. 그것 뿐만 아니라 P2P를 맺기위한 다양한 프로토콜이 어디서 어떤식으로 맺어지는지 또 서버는 왜 이렇게 많이 등장하는지 STUN, TURN, 시그널링등 알 수 없는 말들 뿐이였다.. 고생을 토로하는 건 여기까지 하자! 이번 주제는 상당히 많은 양을 다루고 있기 때문에 여러개의 글로 이루어 질 것이다. 오늘은 WebRTC 전반에 대해서 다뤄보도록 하겠다. 코드는 없으니 주의하자.. 1. WebRTC 전체 과정 먼저 당연히 WebRTC가 어떤 기술인지 한마디로 정의해봐야한다. WebRTC는 Web Real Time Communicatio..

Technology/Webrtc 2022.09.27

트리 순회 순서 변경 python

https://algospot.com/judge/problem/read/TRAVERSAL algospot.com :: TRAVERSAL 트리 순회 순서 변경 문제 정보 문제 트리를 순회하는 알고리즘은 트리의 모든 노드들을 특정 순서에 맞춰 방문하지만, 트리는 배열처럼 1차원적인 구조가 아니기 때문에 단 한 가지의 당연한 algospot.com import sys input = sys.stdin.readline def get_sub_tree(root, inorder): root_idx = inorder.index(root) left_tree = inorder[:root_idx] right_tree = inorder[root_idx + 1:] return root_idx, left_tree, right_tr..

Algorithm 2022.09.04

Http Status Code에 대한 짧은 생각

어제 팀 회의를 하면서 HTTP Status Code 를 팀 컨벤션을 정하기로 했다. 회의하면서 약간 의아했던 부분을 적어둔다. * 다른 유저 A를 팔로우하는 경우, A가 탈퇴한 유저인 경우에 200번대 응답을 보내기로 정했다. * 유저가 존재하지 않는 경우, 400번대 응답을 보내기로 했다. 이 부분이 잘 이해가 되지 않았다. 물론 일종의 약속이니까 그냥 진행해도 상관없지만 200번대 응답은 성공한 응답을 의미하는데 위의 예에서는 요청이 성공하지 않았는데 200번대 응답을 보내준다는게 뭔가 마음에 걸렸다. 또 탈퇴한 것과 유저가 존재하지 않는 것 이 두가지 모두 유저에게는 똑같이 서비스에 해당 유저가 존재하지 않는 것을 의미한다. 탈퇴와 존재하지 않음을 구분할 수 있는 이유는 순전히 유저를 완전히 삭제..

글/🐕🐾 일기 2022.08.31

페이지네이션

페이지네이션이 들어가 있는 List API를 개발할 때 page_size를 조절해서 넘길 수 있도록 query_param 추가해주도록 하자. 고정된 페이지 사이즈 값을 정해서 주었을 때, 리스트 UI가 화면을 꽉 채워서 추가로 페이지네이션을 못할 수 있다고 한다. UI 변경해야될 때마다 바꾸는 것보다 가져올 수 있는 최대 page_size값 만 정해두고 클라단에서 필요에 따라 변경해서 사용하는게 편할 듯.

글/🐕🐾 일기 2022.08.27

[Typescript] Typescript 기본 세팅

맨날 프로젝트 세팅때마다 찾는게 번거로워서 정리해둔다. 먼저 프로젝트 초기화를 해준다. npm init 이제 필요한 패키지를 받아주자. npm install -D express typescript ts-node nodemon @types/node @types/express 여기서 nodemon은 라이브 컴파일을 지원하는 패키지로 파일 변경시 타입스크립트에서 자바스크립트로 자동으로 빌드해주는 패키지이다. 꼭 받아주도록 하자. tsconfig.json 파일을 생성해준다. tsconfig.json 파일은 타입스크립트의 규칙을 정해주는 설정 파일이다. npx tsc --init // tsconfig 생성 package.json 파일 수정 "scripts": { "start": "node dist/app.js",..