no image
알고리즘 이론 - 재귀
☑️ To-do 재귀 알고리즘 정리하기 하노이의 탑 로직 완벽 이해하기 N-Queens 로직 완벽 이해하기 CSAPP Ch 1.3 까지 정리하기 재귀(Recursion) 팩토리얼 함수로 구현하기 def factorial(n: int) -> int: if n > 0: return n * factorial(n - 1) else: return 1 math.factorial() : 인자가 정수가 아니거나 음수가 들어오면 ValueError 예외 처리를 내보낸다. 직접 재귀(direct) 자신과 동일한 함수를 호출하는 방식 간접 재귀(indirect) a( ) 가 b( ) 호출 ↔ b( ) 가 a( ) 호출 유클리드 호제법 GCD를 재귀적으로 구하는 방법 math 모듈에서는 math.gcd(integers) 로 ..
2022.11.03
no image
파이썬 알고리즘 기초 점검 / 정리
☑️ To-do 컴퓨팅 사고로의 전환 문제 다 풀기(파이썬) 컴퓨팅 사고로의 전환 문제 다 풀기(자바) ~15번 -> (❌중단) New 문제 풀기! do-it 알고리즘 Ch 2까지 보고 정리하기 새로 안 내용 위주! 복합문의 구조 [keyword] [식]: -> header ... 명령문 -> suite .. 파이썬 스타일 가이드 PEP 8 클래스명 : 카멜 케이스 함수명 : 스네이크 케이스 인덴트 : 4 $$sum = n * (n + 1) // 2$$ 가우스 덧셈 1부터 n까지 정수의 합 구하는 방법 비교 연산자 사용 🆚 드모르간 법칙 # 비교 연산자를 사용하는 방법 if 10 각 조건을 부정하고 논리곱을 논리합으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면 원래의 조건 과 같다. 🔎 모든 조건..
2022.10.30
no image
Mini Project
JWT? JWT(JSON Web Token) 유저를 인증하고 식별하기 위한 토큰 기반 인증 이미 서명된 토큰!! 민감한 정보를 담지 않는다!! 누구나 디코딩을 한다면 해당 정보를 볼 수 있기 때문! (https://jwt.io/) 해당 사이트에서 암호화 알고리즘을 통해 디코딩을 제공해준다! 공개키 / 개인키 방식으로 → 안전하게 인증 과정 수행가능 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함된다. JWT는 별도의 인증 과정 없이 헤더에 포함되어 있는 JWT 정보를 통해 인증한다. 서버에 키가 있어야 수정할 수 있다. 각각의 정보에 대한 걸 해시와 같은 암호화 알고리즘을 적용하여 저장한다. Cookie 로그인 시, id, pw를 쿠키에 저장하고 서비스 이용시 인증이 필요할 때는 쿠..
2022.10.30
no image
[Krafton Jungle] 탐험 스타또
📄 My history 2019 : #코딩응애 #새내기 19년도에 소프트웨어 학과에 들어오면서 1학년때는 학생회, 봉사활동, 서포터즈, 대외활동 같이 학교 생활을 즐기고 새로운 사람들을 만나고 성인이 되면서 자유를 즐기느라 바빴던 것 같다. 그리고 초반엔 어릴 때부터 준비해오던 진로와 다른 진로여서 이전에 갖고 있던 꿈에 대한 미련도 남아있어서 항상 새로운 도전을 갈망했고 오히려 개발로 가기 힘들 것 같다는 생각을 여러번 했다. (+ 자퇴나 휴학 생각도...) 1학년때 다룰 줄 아는 언어는 C랑 파이썬 밖에 없었고 이것도 그냥 책보고 따라치는 정도 그 이상도 이하도 아니었다. 그러다가 20년도에 갑자기,, 코로나 때문에 대면 대학 생활은 1학년때가 처음이자 마지막이 되었다^^.. 어쩌면 1년만 망나니로 ..
2022.10.29
no image
[BE/Node.js] AWS S3에 log 저장하기
⚠️ 문제 지금까지 배포 후 웹 서버에서 문제가 발생하면 인스턴스에 들어가서 에러를 보고 해결하는 방법으로 프로젝트를 진행해왔었다. 오류 해결이야 이렇게 하면 되지만 실 서비스를 운영할 때는 로그 관리도 해야하기 때문에 로그 기록의 필요성을 느꼈다. 🏃 시도 Try 1 : 로그 파일 만들기 morgan : HTTP 요청을 로깅해주는 node.js 의 서드파티 모듈 winston : 로그 파일 저장 및 로그 레벨 관리를 도와주는 node.js 의 서드파티 모듈 우선 기본적인 로거 파일은 아래와 같이 작성했다. 📄 logger.js require('dotenv').config(); const winston = require('winston'); const winstonDaily = require('winst..
2022.10.04
no image
[WebRTC] mediasoup로 webRTC SFU 구현하기
What is mediasoup? SFU(Selective Forwarding Unit) SFU는 오디오, 비디오 스트림을 엔드포인트로 부터 받고 다른 모든 사람들에게 미디어를 전달한다. node.js Library 서버 없이는 작동될 수 없으며 반드시 node.js 애플리케이션 내에서 임포트되어야한다. Signaling agnostic 💡 agnostic : '불가지론자, 불가지론의'. 뭐 이런 뜻이라는 데 그냥 '독립적인' 정도로 해석하면 될 것 같다. 시그널링 프로토콜이 필요하지 않다. 모든 존재하는 WebRTC 엔드포인트에 지원이 가능하다. mediasoup :: Overview Cutting Edge WebRTC Video Conferencing mediasoup.org SFU 하나의 피어는 오..
2022.10.02
no image
[BE/GitLab] GitLab Pipelines로 배포 자동화하기
⚠️ 문제 프로젝트를 ec2에 배포 할 때, 변경 사항이 생길 때마다 리포지토리 pull을 받고 pm2 를 다시 돌리고 하는 작업을 반복했다. 이 과정에서 pm2의 모든 프로세스를 kill 하고 다시 restart 하는 일을 반복했는데, restart를 할 때면 계속 같은 문제에 직면했다…😭 "Current process list running is not in sync with saved list. npm differs. Type 'pm2 save' to synchronize." 이 에러가 떴는데, 기존에 돌아가던 pm2의 모든 프로세스를 중단했는데도 이미 기존 프로세스는 돌아가고 있는 걸로 나오는 거였다….. Not in sync? · Issue #4556 · Unitech/pm2 What's goi..
2022.10.01
no image
[Contribute] 첫 오픈소스 컨트리뷰트
🥳 오픈 소스 컨트리뷰트 어렵지 않다 mediasoup를 이용해서 프로젝트 기능 개발을 하는데 webrtc의 transport 부분에서 에러가 나길래 에러 코드 부분을 뜯어보다가 파고 파는 도중에 ... 진짜 사소한 오타를 발견했다..! 당연히 ‘in’ 이 두 번 쓰인 게 오타가 맞을 테지만..ㅎ 다시 한번 확인하기 위해서 RPT 프로토콜 공식 도큐먼트를 확인했다. 오타가 맞았고 이런 단순한 걸로 PR을 보내도 되나 한참을 고민하고 다른 사람들이 보낸 PR들에서 오타 수정에 대한 PR이 많이 있는지 찾아보았다. 보통 이런식으로 코드 컨벤션에 대한 오타 수정 PR 이 많이 있었고 내가 찾은 오타는 기능과는 무관한 고작,,, 주석이라서,, PR을 보내기가 망설여졌다.. 😭😭 그래서 하나만 보내기에는 너무 작..
2022.09.28
no image
[Webinar] 첫 웨비나 연사 참여기
☁️ Overview 지난 주 화요일, 9월 20일에 ICT 멘토링에서 주최하는 '2022 ICT 멘토링 GitLab Meetup 2차 웨비나'에 두 번째 세션 연사로 참여하게 되었다. 지금 ICT 멘토링 한이음 프로젝트에서 멘티로 참여하고 있는데 뜻 밖의 좋은 기회가 주어졌다. 8월에 한이음에서 주최하는 깃랩 파이프라인을 이용한 배포 핸즈온 수업을 듣고 우수 수료자로 선정된 적이 있는데, 이때 우수 수료자들을 대상으로 발표 기회를 주셔서 참여하게 되었다. 매번 개발 웨비나나 컨퍼런스에 청중으로 참여할 때면 나도 언젠가는 연사로 참여할 날을 꿈꿔왔는데 생각보다,, 빨리 기회가 찾아와서 기대나 설렘보다 잘할 수 있을까 걱정이 앞섰다...😔 ☀️ Introduction 발표 주제는 ICT 멘토링 참여자들을 ..
2022.09.26