Skip to content

Instantly share code, notes, and snippets.

@lhy880518
lhy880518 / webflux.md
Created April 4, 2021 13:58
리액트 프로그래밍, 웹플럭스
  • 서버에서의 리액트 프로그래밍

    • 리소스의 효율적 사용 - 리액트 이전에는 멀티쓰레드로써 병렬처리를 했지만, 쓰레드의 확장만으로는 CPU와 메모리의 제한이 있기에 비동기와 논블로킹의 새로운 프로그래밍 모델이 제안
    • 논블로킹은 일반적인 쓰레드를 통한 비동기 작업과는 다르게, 쓰레드를 점유하지 않고 작업을 수행하여 하나의 쓰레드 내에서 동시에 많은 작업을 수행 할 수 있습니다. 이와 같이 작업을 하는데 있어서 너무 많은 트래픽이 몰릴경우 문제가 발생 하거나 성능이 제대로 나오지 않을수 있기에 Back-pressure (배압, 역압)을 통해 요청의 갯수를 제한하여 ‘고가용성’을 보장
    • 좋은 성능을 보인다기 보다는 ‘고가용성’의 단어를 쓴 이유는 non-blocking을 통해 애플리케이션의 실행속도의 퍼포먼스가 좋아진다는 아니기 때문입니다. 오히려 속도적인 성능은 더 나빠질 수도 있습니다. 다만, 작은 고정된 수의 스레드와 적은 메모리로 최대한의 효율을 내면서 확장 할수 있다는 의미
      • IOT 프로그래밍에서 과연 서버가 고 가용성을 중시하는 리액트 프로그램이 왜 필요한가? 서버가 제한된 환경은 아니지 않는가
  • 동기와 비동기

    • 동기
      • 동기
  • 동기 방식에서 멍때림의 해결 해결방법은 스레드를 늘리려서 처리

@lhy880518
lhy880518 / lambdaMediaConvert.md
Last active March 24, 2021 14:45
lambda media convert
'use strict';

const aws = require('aws-sdk');
aws.config.region = 'ap-northeast-2';
aws.config.mediaconvert = {endpoint : 'endpoint'};
const s3 = new aws.S3();
const bucket = 'bucket';
const supportVideoTypes = ['mp4', 'webm', '3gp', 'mpeg', 'quicktime', 'ogg', 'mov'];
const ffmpeg = require('fluent-ffmpeg');
@lhy880518
lhy880518 / videos.md
Last active August 14, 2020 01:55
동영상 S3업로드 및 그에 대한 고민

필요 요건 정리

  • 등록화면 : 앱 또는 브라우저에서 동영상파일 aws s3로 업로드
  • 상세화면 : 업로드 된 동영상을 aws cloudFront를 통하여 앱, 브라우저로 재생

문제점 발생

  • 코덱에 따라서 브라우저에서 지원해주지 않는 상황이 발생한다.

해결방안

  • S3에 파일 업로드를 진행하면서 코덱이 H.264가 아닌것만 Aws MediaConvert에 Create Job을 통하여 컨버팅 시키는 작업을 진행
  • MediaConvert 작업을 진행함에 있어 에러 발생 시 CloudWatch를 통하여 로그 수집 및 Slack 채널에 해당사항 공유 작업까지 완료
@lhy880518
lhy880518 / resize.md
Last active July 15, 2020 05:33
lambda edge image resizer

개요

클라이언트에서 올라오는 이미지를 어떻게 다룰것인가.

  1. 이미지 올릴때마다 해당 이미지의 여러가지 사이즈를 다 올린다.(서버에서 하던지 S3+Lambda로 해결하던지)
  2. Lambda Edge 를 이용해서 Origin Response에서 Response값으로 리사이징한 이미지를 주고 이를 캐싱한다. 람다 엣지 구조

S3서버 용량의 절약을 도모할 수 있으므로 2번으로 진행하기로 결정하였다.

과정

  • lambda에서 사용할 정책을 만듭니다.
@lhy880518
lhy880518 / gitbranch.md
Created June 16, 2020 12:37
git 을 이용한 branch 활용 방안 및 협업방법

어디를 참고하였는가.

https://woowabros.github.io/experience/2017/10/30/baemin-mobile-git-branch-strategy.html (edi

어떻게 하는가.

  1. local, origin, upstream에는 각각의 master, develop이 존재
  2. local develop에서 작업할 branch생성
  3. local branch 작업 후 origin push전에 remote master를 pull 하여 merge작업 진행
  4. local branch를 origin branch에 push
  5. origin develop에 origin branch를 merge
  6. origin develop에서 upstream develop으로 pull request를 날린다.(upstream에는 개인의 branch가 올라가서는 안된다.)
@lhy880518
lhy880518 / countWeek.md
Last active March 19, 2020 08:04
시작일부터 특정일까지의 주말 갯수를 계산하는 쿼리
SELECT 
    '2020-03-14',
    '2020-03-23',
    -- 해당 일자의 번호를 구합니다. 일요일 = 1, 토요일 = 7
    DAYOFWEEK('2020-03-14') x1,
    -- 시작일부터 토요일까지의 문자열을 구합니다. 20200314 = 토요일이기때문에 마지막 w
    SUBSTR('wdddddw',
        DAYOFWEEK('2020-03-14')) x2,
	-- 다음날부터 종료일까지의 문자열을 구해서 첫 문자열에 더해줍니다.
@lhy880518
lhy880518 / useragent.md
Last active March 3, 2020 04:17
User Agent
  • PC

    • 크롬 user-agent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36
    • 익스 user-agent = Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
    • 사파리 user-agent = Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/534.54.16 (KHTML, like Gecko) Version/5.1.4 Safari/534.54.16
  • Mobile

  • 아이폰 사파리

@lhy880518
lhy880518 / mySolve.md
Created February 21, 2020 05:29
Use 'history.pushState' generate history Back Error

window.onpopstate = function(event) {
    if(document.referrer){
        window.location.href = document.referrer;
    }else{
        window.location.href = "my main url";
    }
}
@lhy880518
lhy880518 / learn.md
Created January 21, 2020 08:35
머신러닝

머신러닝

지도학습

  1. 개와 고양이를 두고 계속해서 이게 고양이냐 개냐에 따른 답변으로 학습을 시키는 방법
  2. Y의 형태에 따라 두가지 로 나뉘어짐()
    • 분류
      • 타겟변수 Y가 이산형변수(특정한 값만 가질 수 있는 변수)인 경우
        • 개,고양이
        • 얼굴인식
  • 스팸메일
@lhy880518
lhy880518 / first_day.md
Last active January 2, 2020 07:41
머신러닝 기초
'''
1. 파이썬 머신러닝을 위한 아나콘다 설치 및 Microsoft visual studio build tools 설치

1. 넘파이 
    1) 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지원하는 패키지
    2) 루프를 사용하지 않고 대량 데이터의 배열 연산을 가능하게 하므로 빠른 배열 연산 속도를 보장

'''
import numpy as np