no image
Ch1. A Tour of Computer Systems(1.1 ~ 1.6)
프로그램 실행 이전에 어떤 일이 일어나는 가를 탐구 1-1. Information is bits + Context 소스 프로그램 : 비트들의 연속, 8 비트라 불리는 바이트로 구성되어 있다. 대부분의 컴퓨터 시스템에서는 바이트 표준으로 텍스트 문자를 표현한다. hello.c 프로그램은 일련의 byte로 저장이된다. (Figure 1.2) 각 바이트는 일부 문자와 해당하는 정수 값을 의미한다. 이후 \n 개행 문자에 의해 줄 바꿈이 일어난다. ASCII 문자로 구성된 파일을 텍스트 파일이라고 한다. 그 외에 다른 모든 파일들은 바이너리 파일이다. 시스템의 모든 정보는 모두 비트 묶음으로 표시된다. 동일한 바이트 시퀀스더라도 정수형, 실수형, 문자열, 기계어로 나타낼 수 있다. 프로그램 실행시, 각 문자열을..
2022.11.03
no image
알고리즘 이론 - 정렬
☑️ To-do 정렬 알고리즘 정리하기 주요 정렬 알고리즘 안보고 코딩 해보기 ✔️ 버블 정렬 ✔️ 삽입 정렬 ✔️ 선택 정렬 ✔️ 셸 정렬 ✔️ 퀵 정렬 ✔️ 도수 정렬 CSAPP Ch 1.6 까지 정리하기 1. 버블 정렬 루프를 돌면서 인접 데이터간 대소 관계 비교 후, swap 연산 수행 루프가 하나씩 돌 때마다 오른쪽 원소가 정렬된다. 서로 이웃한 원소만 교환하므로 안정적이다. def bubble_sort(array): for i in range(len(array)): for j in range(len(array) - 1 - i): if array[j] > array[j + 1]: array[j], array[j + 1] = array[j + 1], array[j] return array 뒤에서 ..
2022.11.03
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