728x90

INNA - 환경설정 - 단축키 - 개인설정

 

아래 + 눌러 단축키로 설정할 키 먼저 입력

mvp 명령행 바로 입력에 

cycle_values video-rotate "<원하는각도>"

ex) 90도 회전 원할 시

cycle_values video-rotate "90"

 

 

 

 

728x90

https://github.com/kyleneideck/BackgroundMusic

 

GitHub - kyleneideck/BackgroundMusic: Background Music, a macOS audio utility: automatically pause your music, set individual ap

Background Music, a macOS audio utility: automatically pause your music, set individual apps' volumes and record system audio. - GitHub - kyleneideck/BackgroundMusic: Background Music, a macOS ...

github.com

 

출력 설정

입력 설정

Background music앱내 Output Device 설정

녹화 시 마이크 설정

728x90

WebRTC 특징

웹에서 사용할 수 있는 P2P 기술

  • 기본적으로 별도의 서버를 사용하지 않으므로 두 피어가 연결 방법을 공유하기 위한 가상의 신호 서비스인 Signalling 사용
  • 클라이언트가 동일 로컬 네트워크가 아닌 이상 다이렉트 소켓을 사용할 수 없는 경우(P2P연결불가)가 많으므로, 릴레이 서버인 TURN 서버를 사용
  • UDP 기반

  • 1:1 , 1:N, N:N 응용서비스 개발 모두 가능

1:1 - 카카오 보이스톡

1:N - 방송서비스 (대량 접속 환경에선 P2P 성격은 버려짐)

N:N - 화상회의형서비스

WebRTC 어려움

  • 관련 기술 문서 부족
  • UDP기반의 RTP프로토콜로 품질 불확실성
  • 고난이도의 미디어 처리

강의 : https://nomadcoders.co/noom

줌 클론코딩

WebSockets, SocketIO, WebRTC

요구사항 :

ExpressJS, app.get(), Pug, JS

Node v14.17.3 이상

pug

: html을 조금 더 세련되게 쓸 수 있는 템플릿 언어. express 뷰 엔진

node.js

__filename 은 현재 실행 중인 파일 경로

__dirname 은 현재 실행 중인 폴더 경로

위는 CommonJS 모듈내에서만 동작하며 ES모듈에서는 동작안하므로 아래 코드 추가 필요

import path from 'path';
const __dirname = path.resolve();

“Uncaught SyntaxError: Cannot use import statement outside a module” 에러시 package.json에 아래 코드 추가

 "type": "module",

express내에서 템플릿 엔진을 사용하려면
app.set으로 설정

https://expressjs.com/ko/guide/using-template-engines.html

Express와 함께 템플리트 엔진 사용

Express와 함께 템플리트 엔진을 사용 Express가 템플리트를 렌더링하려면 다음과 같은 애플리케이션 설정이 필요합니다. views, 템플리트가 있는 디렉토리. 예: app.set('views', './views') view engine, 사용할

expressjs.com

nodemon 특정 경로 파일 수정할때는 재시작되지 않도록 설정하려면 nodemon.js에 ignore 추가

{
    "ignore": ["src/public/*"],
    "exec": "babel-node src/server.js"
}

바벨은 그 자체로 아무것도 하지 않으므로 플러그인을 사용해야한다.

babel foundation에서는 plugin들을 포함한 번들파일을 포함한 preset을 제공하며 (plugin 자동 설치) "@babel/preset-env"는 공식적인 기본 프리셋이다.

https://developer.mozilla.org/ko/docs/Web/API/WebSocket

WebSocket - Web API | MDN

WebSocket 객체는 서버와의 WebSocket 연결을 생성하고 관리할 수 있는 API 들을 제공합니다. 이는 데이터를 전송하거나 주고 받는 등의 API 들을 포함합니다.

developer.mozilla.org

webSocket에는 아래와 같이 자유롭게 어트리뷰트를 추가하고 설정할 수 있다.

 socket["nickname"] = parsedMsg.payload;

SocketIO

소켓IO는 웹소켓의 일부분이 아니다. 대부분의 브라우저가 웹소켓을 지원하지만 미지원인 경우 롱폴링(long polling) 으로 연결이 이뤄진다.

*클라이언트가 서버에 있는 정보를 요청하면 지정한 시간동안 연결을 열어둔다. 서버에 정보가 없으면 클라이언트가 요청한 정보가 생길 때 까지 또는 지정한 시간이 끝날 때까지 해당 요청을 열어둔다. 지정 시간이 끝나면 클라이언트는 서버에 있는 정보를 다시 요청한다. 코멧은 서버가 클라이언트로 뭔가를 송신할 수 있을때까지 HTTP 응답 완료를 지연시킨다. 이 기법을 'GET' 또는 '미결 POST(pending -POST) 라고 부른다.

'Web Develop > Web Programming' 카테고리의 다른 글

Spring Boot시작하기  (0) 2021.08.10
html 기초  (0) 2021.01.07
반응형 웹 만들기  (0) 2017.03.23
HTML 5 미지원 브라우저 고려하기  (0) 2017.03.21
윈도우 웹서버 설치 및 HTML 실습기초  (0) 2017.03.09
728x90

nvm은 노드 버전 매니저로 인스톨이나 버전관리, 스위칭 등을 편하게 할 수 있다. 윈도우에선 그냥 설치해서는 node exit status 1이나 5가 떠서 설치 성공 후 적는 글

기존에 오류로 nvm use가 안되었다면 node, nvm을 다 제거 후 환경변수도 모조리 삭제 후 아래 과정대로 설치한다.

 

 

https://nodejs.org/en/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

에서 Node LTS 버전을 받아 설치 

 

* 설치 시 주의 점

- 설치 경로를 루트 (C:\) 로 잡는다. (예: C:\nodejs)

- 빈칸이 없도록 경로를 잡는다.

 

 

https://github.com/coreybutler/nvm-windows/releases

 

Releases · coreybutler/nvm-windows

A node.js version management utility for Windows. Ironically written in Go. - coreybutler/nvm-windows

github.com

에서 nvm 받아 설치 (인스톨러인 nvm-setup을 받는게 편하다)

 

마찬가지로

* 설치 시 주의 점

- 설치 경로를 루트 (C:\) 로 잡는다. (예: C:\nodejs)

- 빈칸이 없도록 경로를 잡는다.

 

 

 

 

'Development Environment' 카테고리의 다른 글

[Nuxt] server side - hot reloading안될 때  (0) 2022.11.28
[VS CODE] nuxt.js 디버깅하기  (0) 2021.10.28
728x90
  • node version 프로젝트별 관리
    • nvm이 이미 설치되어있다고 가정
    프로젝트 루트 폴더에서 아래 파일 생성
  • vi .nvmrc프로젝트 노드 버전을 위와 같이 작성 후 저장
  • 12.13.0
  • vi ~/.zshrc
# place this after nvm initialization!

autoload -U add-zsh-hook
load-nvmrc() {
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"

if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")

```
if [ "$nvmrc_node_version" = "N/A" ]; then
  nvm install
elif [ "$nvmrc_node_version" != "$node_version" ]; then
  nvm use
fi

```

elif [ "$node_version" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
}
add-zsh-hook chpwd load-nvmrc
load-nvmrc
#####################################
  •  위 항목 추가 후 source ~/.zshrc
  • vi ~/.bash_profile  로 아래 항목 추가 후
find-up () {
    path=$(pwd)
    while [[ "$path" != "" && ! -e "$path/$1" ]]; do
        path=${path%/*}
    done
    echo "$path"
}

cdnvm(){
    cd "$@";
    nvm_path=$(find-up .nvmrc | tr -d '[:space:]')

    # If there are no .nvmrc file, use the default nvm version
    if [[ ! $nvm_path = *[^[:space:]]* ]]; then

        declare default_version;
        default_version=$(nvm version default);

        # If there is no default version, set it to `node`
        # This will use the latest version on your machine
        if [[ $default_version == "N/A" ]]; then
            nvm alias default node;
            default_version=$(nvm version default);
        fi

        # If the current version is not the default version, set it to use the default version
        if [[ $(nvm current) != "$default_version" ]]; then
            nvm use default;
        fi

        elif [[ -s $nvm_path/.nvmrc && -r $nvm_path/.nvmrc ]]; then
        declare nvm_version
        nvm_version=$(<"$nvm_path"/.nvmrc)

        declare locally_resolved_nvm_version
        # `nvm ls` will check all locally-available versions
        # If there are multiple matching versions, take the latest one
        # Remove the `->` and `*` characters and spaces
        # `locally_resolved_nvm_version` will be `N/A` if no local versions are found
        locally_resolved_nvm_version=$(nvm ls --no-colors "$nvm_version" | tail -1 | tr -d '\->*' | tr -d '[:space:]')

        # If it is not already installed, install it
        # `nvm install` will implicitly use the newly-installed version
        if [[ "$locally_resolved_nvm_version" == "N/A" ]]; then
            nvm install "$nvm_version";
        elif [[ $(nvm current) != "$locally_resolved_nvm_version" ]]; then
            nvm use "$nvm_version";
        fi
    fi
}
alias cd='cdnvm'
  • source ~/.bash_profile
728x90

서드파티앱에서 내 앱으로 이동할 수 있게 하려면 (예: 결제취소,완료 시의 리다이렉트) 앱 스키마를 등록해줘야한다.

info.plist 의 URL types에 Add Row하여 URL types와 그 하위 항목들 추가

 

value에는 URL identifier에 패키지 이름 작성, URL Schemes의 아이템에는 (0부터 시작) 식별할 수 있는 앱 스키마 이름을 작성한다.

이후 새로 빌드

 

728x90

앱 내의 기본 텍스트가 영어로 나온다면 

info.plist 의 Localization native development region의 Value를 ko로 수정 후 새로 빌드

728x90

Xcode에서 Info.plist 에 Row 추가

 

아래와 같이 key 선택 후 value는 자유롭게 추가 후 새로 빌드

728x90

[ 기준 환경 ]

CentOS

SSD 가상서버 퍼스트클래스

인증서종류 : SSL보안 라이트 

 

모든 인증서를 받아 서버에 업로드

 

1. 인증서 파일 합치기

cat ssl.crt chain_all_ssl.crt > domain.pem

2. 만약 해당 합친 파일에 아래 내용이 개행되어있지않다면 vi로 열어 개행하여 저장

-----END CERTIFICATE----- -----BEGIN CERTIFICATE-----

 

3. 서버 시작 시마다 인증서 비밀번호 입력 생략하도록 복호화

openssl rsa -in ssl.key -out new_ssl.key

서버 구매 시 입력했던 비밀번호를 입력 

 

4. nginx 기본설정파일 수정

cd /etc/nginx/conf.d
vi default.conf

default.conf의 내용을 아래와 같이 수정 (domain이나 백엔드 url:port 등은 환경에 맞게 알아서 수정)

아래 예시 기준으로는 프론트의 백엔드 api 요청 주소가 https://domain.co.kr/api

server {
        client_max_body_size 50M;

        listen 80;
        server_name domain.co.kr;
        return 301 https://$host$request_uri;
}

server {
        client_max_body_size 50M;

        listen 443;
        server_name domain.co.kr;

        root  /var/www/project/dist;
        index index.html;

        ssl on;
        ssl_certificate /var/www/ssl/domain.pem;
        ssl_certificate_key     /var/www/ssl/new_ssl.key;
        ssl_protocols TLSv1.1 TLSv1.2;


        set $service_url http://127.0.0.1:3001;

        location /api/{
                proxy_read_timeout 5m;
                proxy_connect_timeout 5m;
                proxy_send_timeout 5m;

                rewrite ^/api(/.*)$ $1 break;
                proxy_pass http://127.0.0.1:3001;
                proxy_set_header Host $http_host;
                proxy_set_header X-Forwarded-Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
        }


        location / {
                try_files $uri $uri/ /index.html;
        }
}
~

 

그 뒤 nginx 재시작

systemctl restart nginx
728x90

터미널에서 쉘 - 새로운 원격연결 

 

ssh 선택 후 사용자 이름과 서버 아이피 입력

  + 를 눌러 서버 정보 저장

연결 

+ Recent posts