전체 글

IT Blog
회고 Docker Test 환경 구축 월요일에 docker로 test db 자동으로 만들어지게 만들었다. 프론트에서 로컬에서 서버 돌리는데 어려움을 겪는 거 같아서 우선 mysql만 yarn test:docker 하면 바로 docker로 test db 자동으로 만들어지게 만들었다. 만들고 나서 공유를 했는데, 팀원으로부터 redis, rtmp server, front 등 모든 거를 docker compose로 한번에 만드는게 좋을 것 같다는 피드백을 받았다. 그래서 나의 할 일로 남겨놨는데, 로그인 트러블 슈팅을 하느라 하지 못해 결국 다른 팀원이 하게 되었다..ㅜ. API 문서화 postman 작성 백엔드에서 만든 API 문서화를 했다. 성공했을 때 response와 실패했을 때 response를 각각..
· nestJS
설치 $ npm i --save-dev @nestjs/testing Unit Testing. Testing files should have a .spec or .test suffix. isolated testing 프레임워크로부터 독립적 dependency injection 가 없다 import { CatsController } from './cats.controller'; import { CatsService } from './cats.service'; describe('CatsController', () => { let catsController: CatsController; let catsService: CatsService; beforeEach(() => { catsService = new Cat..
회고 이번 주에 내가 한 일은 OAuth naver 로그인, 회원가입, Redis(ncp 의 Cloud DB for Redis) 연결이다. 금방 끝낼 수 있을 것 같았는데, OAuth 원리를 다시 이해하는 시간과, 오류 해결 하는 시간이 오래 걸렸다. 그리고 이번 주부터 nest.js를 사용한 구현을 했는데 이 또한 처음 하는 거다 보니 시간이 오래 걸렸다. OAuth - 구현하면서 nestJS의 Guard에 대해 배울 수 있었다. - 구현 중 callback url로 이동하지 않았다. 이를 백엔드 팀원에게 얘기 했고 같이 화면공유를 통해 원인을 찾아보았다. 같이 보면서 로그인 후 callback url에 https라 적어놔서 안된 것을 발견했다. 내가 맡은 일은 내가 모두 해결해야지 라는 생각에 도움을..
수학자로 유명한 유클리드(Euclid)는 최대공약수에 다음과 같은 성질이 있다는 것을 발견하였다. - a와 b의 최대공약수는 'b'와 'a를 b로 나눈 나머지'의 최대공약수와 같다. 즉, gcd(a, b) = gcd(b, a % b) - 어떤 수와 0의 최대공약수는 자기 자신이다. 즉, gcd(n, 0) = n def gcd(a, b): if b == 0: # 종료 조건 return a return gcd(b, a % b) print(gcd(1, 5)) # 1 print(gcd(3, 6)) # 3 print(gcd(69, 24)) # 3 print(gcd(81, 27)) # 27
문제 상황 네이버 부스트캠프에서 그룹프로젝트로 스트리밍 서버를 만들고 있었다. 백엔드인 나와 다른 팀원 1명은 페어 프로그래밍을 하면서 문제를 맞닥뜨렸다. 문제: OBS를 사용해 RTMP 수신 서버로 스트리밍 데이터를 보내고 다시 인코딩 서버를 거쳐 Object Storage에 m3u8, ts 파일을 저장했는데 화면이 없이 오디오만 스트리밍 된다. 해결 과정 hls 가 애플에서 만든거니까 인코딩할 때 Apple H.264로 바꿔서 하면 되지 않을까 해서 바꿔서 해봤더니 잘 됐다. 그래서 윈도우에서는 AMD h.264로 해봤는데 안됐다. 왜 윈도우에서는 안되는지 구글링을 해도 뭐가 원인인지 감이 안와서 GPT 한테 물어보았다. GPT 가 알려준 답변을 보며 백엔드 팀원과 함께 논의를 통해 먼저 우리가 사용..
https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 2번의 "틀렸습니다" 결과를 보고 질문 게시판을 보면서 반례들을 시도 해보면서 풀려고 했는데 결국 못풀어서 다른 사람의 풀이를 참조했다. 오답2의 코드는 cctv 감시영역을 확장할 때 매번 가장 많이 확장한 방향을 선택해서 확장해 나간다. 계속 틀려서 반례를 찾아봤다. 질문 게시판의 대부분의 반례를 통과해서 답답하던 중 통과되지 않는 반례를 찾았다. 이 반례를 통해 dfs + 완전 탐색..
· Cloud
VPC - Virtual Private Cloud 사용자 전용의 가상 네트워크 다른 사용자 네트워크와 논리적으로 완전히 분리됨 EC2와 같은 여러 AWS 서비스 리소스를 VPC 내에서 실행함 VPC를 더 작은 범위의 subnet으로 나눌 수 있음 CIDR 참고 Classless Inter-Domain Routing 클래스 기반 주소의 한계를 극복하기 위해 제안 IP를 지정된 범위로 나누고 묶을 수 있음 EX) 192.168.10.0/24 32 - 24 = 8 8bit -> 2의 8승 256 - 2 (첫번째, 마지막) => 254 개의 호스트 사용가능 간단한 예로 143.7.65.203/16 이라면 143.7.0.0 ~ 143.7.255.255 라우팅 테이블 라우팅 라우팅은 쉽게 말해 서로 다른 네트워크 ..
· nestJS
CLI 설치 $ npm i -g @nestjs/cli 프로젝트 구성 $ nest new 프로젝트 이름 # ex) $ nest new nest-project 프로젝트 시작 $ cd 프로젝트 이름 $ npm run start $ curl http://localhost:3000 Hello World!%
밤밭황제
밤밭