들어가며

자주 활용하는 도구를 내가 까먹는다.

Git

ignore

2.34기본 Merge 전략: recursive => ort
2.33ort Merge 전략 추가
2.25sparse checkout
2.24partial clone

git sinppet

git log --pretty=fuller
git filter-branch --env-filter 'export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"'
git log --author="이름" --name-only --pretty=format: | grep "\.cs$" | sort | uniq > author.txt

sparse-checkout

orphan

git checkout --orphan helloworld
git rm -rf .
git commit --allow-empty -m "helloworld"
git push origin helloworld

interpret-trailers

merge 전략

fast forward

  • base와 다른 브랜치가 참조하는 커밋들이 동일 선상에 위치하고 있다.
    • 이 때 두 브랜치는 Fast-foward 상태에 있다고 한다.

--ff fast-forward 관계에 있는 경우 새로운 commit을 생성하지 않고 브랜치의 참조 값만 변경되도록 --no-ff non fast forward merge 대상과 fast-forward 관계여도 강제로 merge commit을 생성하고 병합한다

squash

짓누르다

--squash feature 커밋들을 하나로 모아서 base에 합침

rebase

base 재설정 - 커밋을 복사 붙여넣어가기 (커밋 id가 달라짐)

Ref

Flow

  • https://qiita.com/ogomr/items/36350d515434d6674caa
---
title: Example Git diagram
config:
    theme: base
    gitGraph:
        mainBranchOrder: 1
        mainBranchName: dev
        showCommitLabel: true
    themeVariables:
        git0: "#00A0F0"
        git1: "#F0A000"
        git2: "#F0F000"
        git3: "#FF0000"
---

%% ref: https://mermaid.js.org/syntax/gitgraph.html

gitGraph TB:
    commit
    %% =========================== Feature
    branch feature/1-hello order: 0
    checkout feature/1-hello
    commit
    checkout dev
    merge feature/1-hello
    commit
    %% =========================== Release
    branch release order: 2
    checkout release
    commit tag:"0.0.1"
    checkout dev
    merge release
    checkout release
    %% =========================== HotFix
    branch hotfix/2-fix order: 3
    checkout hotfix/2-fix
    commit
    checkout release
    merge hotfix/2-fix
    commit tag:"0.0.2"
    checkout dev
    merge release
skinparam shadowing false
skinparam ArrowColor #dimgray
skinparam EntityBorderColor #gray
skinparam SequenceLifeLineBorderColor #gray
skinparam NoteBorderColor #grey
skinparam roundcorner 15
skinparam maxmessagesize 60

entity "feature/1-hello" as branch_fix     #00A0F0
entity "dev" as branch_dev             #F0A000
entity "release" as branch_release     #F0F000
entity "hotfix/2-fix" as branch_hotfix #FF0000


== dev client/server ==

branch_dev -> branch_fix : branch
branch_fix -> branch_fix : commit
branch_fix ->o branch_dev : Pull Request

== dist client ==
branch_dev -> branch_release : for release
branch_release -> branch_release : tag
note right
0.0.1
endnote
branch_dev o<- branch_release : merge

== hotfix client ==
branch_release -> branch_hotfix : branch
branch_hotfix -> branch_hotfix : commit
branch_release o<- branch_hotfix
branch_release -> branch_release : tag
note right
0.0.2
endnote
branch_dev o<- branch_release : merge

Git Commit Message

Message

emoji
Fix버그를 고친 경우🐞
Test테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X)🧪
Doc문서를 수정한 경우📔, 📜
Chore빌드 태스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X)
🙈 깃 이그로어
Feat새로운 기능을 추가할 경우
!BREAKING CHANGE커다란 API 변경의 경우
!HOTFIX급하게 치명적인 버그를 고쳐야하는 경우☢️
Style코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우
Refactor프로덕션 코드 리팩토링
Comment필요한 주석 추가 및 변경
Rename파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
Remove파일을 삭제하는 작업만 수행한 경우
DesignCSS 등 사용자 UI 디자인 변경
Tag🏷️
log🔊, 🔇
기타1🟥 🟧 🟨 🟩 🟦 🟪 🟫 ⬛ ⬜
기타2🔴 🟠 🟡 🟢 🔵 🟣 🟤 ⚫ ⚪
  • First line is important to tracking.
  • {tag}: {what i did} // {issue}
Update TryParse code gen to use CodeWriter. (#46928) 

* Update TryParse code gen to use CodeWriter.

Lint

Ref

git hook

${REPOSITORY_ROOT}/.git/hooks $GIT_DIR/hooks

git config core.hooksPath ./git-hooks

pre-commit

husky

etc

Ref

Github

Settings > Branches > Branch Protection Rule > Require status checks to pass before merging

Github Action

요금분(월)스토리지
Gtihub Free2,000500 MB
조직용 GitHub Free2,000500 MB

etc

schedule:
  cron: "0 0 */1 * *"


permissions:
  contents: write


이슈 라벨링

action:on holdHold it. Wait for the restart.
area:docsDocumentations
area:i18nLocalization
area:infrastructureInfrastructure-related issues
area:securitySecurity issue.
area:upstreamIssues with root cause from upstream 3rd parties
area:uxUI / UX issue.
comp:agentRelated to Agent component
comp:appproxyRelated to App Proxy component
comp:cliRelated to CLI component
comp:clientRelated to Client component
comp:commonRelated to Common component
comp:installerRelated to Installer
comp:managerRelated to Manager component
comp:storage-proxyRelated to Storage proxy component
comp:webserverRelated to Web Server component
comp:webuiRelated to WebUI component
dependenciesPull requests that update a dependency file
effort:easyNeed to understand only a specific region of codes (good first issue, easy).
effort:epicNeed to split into multiple sub-issues (epic).
effort:hardNeed to understand many components / a large extent of contextual or historical information.
effort:normalNeed to understand a few modules / some extent of contextual or historical information.
github_actionsPull requests that update GitHub Actions code
hacktoberfest-accepted
impact:breakingBreaking or highlighted changes.
impact:invisibleThis change is invisible to users (internal changes).
impact:visibleThis change is visible to users.
ossca-23OSS Contribution Academy mentee's contributions.
pending:backportWaiting for backports
platform:enterpriseBackend.AI Enterprise support.
platform:generalGeneral platform issues. Most issues are general.
require:config-updateLocal config update required. Consult the PR description or updated documentation.
require:db-migrationAutomatically set when alembic migrations are added or updated
require:pants-exportDependencies updated. You need to run pants export --resolve=python-default to make it working.
size:L100~500 LoC
size:M30~100 LoC
size:S10~30 LoC
size:XL500~ LoC
size:XS~10 LoC
skip:changelogMake the action workflow to skip towncrier check
skip:ciMake the action workflow to skip running lint, check, and test (use with caution!)
status:duplicateThis issue is duplicated.
status:help wantedExtra attention is needed.
status:invalidThis issue is invalid.
status:openWaiting for volunteer / assignnee.
status:rejectedThere is no plan to fix this issue.
type:bugReports about that are not working
type:enhanceEnhance component, behavior, internals without user-facing features
type:featureAdd new features
type:feedbackA suggestion about feature.
type:maintenanceMaintenance issue.
type:questionA question about feature.
type:refactorRefactoring current implementation.
urgency:blockerIT SHOULD BE RESOLVED BEFORE NEXT RELEASE!
urgency:1If no other duties are available, volunteer to help.
urgency:2With time limit, it should be finished within it; otherwise, resolve it when no other chores.
urgency:3Must be finished within a certain time frame.
urgency:4As soon as feasible, implementation is essential.
urgency:5It is imperative that action be taken right away.

.github/

.github/
  workflows/
  ISSUE_TEMPLATE/
    bug_report.md
  pull_request_template.md

codeql

Docker

# 컨테이너 확인(실행중)
docker ps
# 컨테이너 확인(실행중 + 중지)
docker ps -a

# 컨테이너 중지
docker stop

# 컨테이너 삭제
docker rm

# 컨테이너 로그
docker logs

# 이미지 목록(다운로드된)
docker images

# 이미지 다운로드
docker pull

# 이미지 삭제
docker rim

cmd

## open port
docker@default:~$ echo 'export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):8000' >> ~/.bash_profile

## install image
docker@default:~$ docker search ubuntu
docker@default:~$ docker pull ubuntu:latest

## run image
docker@default:~$ docker run -it --name jekyll ubuntu




docker@default:~$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
33b5f808449d        ubuntu              "/bin/bash"         About an hour ago   Up About an hour    0.0.0.0:8000->8000/tcp   jekyll

## backup image
docker@default:~$ docker commit 33b5f808449d github-pages
docker@default:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
github-pages        latest              3ccaea30ec80        About an hour ago   641.5 MB
ubuntu              latest              cdd474520b8c        45 hours ago        188 MB

## set volum from VirtualBox
docker@default:~$ docker run -it --name jekyll -p 8000:8000 -v /c/Users/pyoung/hello/netpyoung.github.io/:/site github-pages

docker@default:~$ docker start jekyll
docker@default:~$ docker attach jekyll

With Jenkins

# pull
git clone ...

# unit-test
docker run --rm \
-v /var/jenkins_home/workspace/${JOB_NAME}:/app \
-w /app \
ruby:2.3 sh -c "bundle install && bundle exec ruby app_test.rb"

# build
docker build --force-rm=true -t ${DOCKER_USER_ID}/ruby-app:latest .

# tag
docker tag ${DOCKER_USER_ID}/ruby-app ${DOCKER_USER_ID}/ruby-app:${BUILD_NUMBER}

# push
docker login -u ${DOCKER_USER_ID} -p {DOCKER_USER_PASSWOD}
docker push ${DOCKER_USER_ID}/ruby-app:${BUILD_NUMBER}
docker push ${DOCKER_USER_ID}/ruby-app:latest

# deploy
docker stop ruby-app
docker rm ruby-app
docker run -d -p 10000:4567 --name=ruby-app ${DOCKER_USER_ID}/ruby-app:${BUILD_NUMBER}

docker compose

version: '2'

services:
    app:
        build: .
        image: ${DOCKER_USER_ID}/ruby-app
    unit:
        image: ruby:2.3
        volumes:
            - ${WORKSPACE_PATH}/${JOB_NAME}:/app
        working_dir: /app
        command: bash -c "bundle install && bundle exec ruby app_test.rb"
    production:
        image: ${DOCKER_USER_ID}/ruby-app:${BUILD_NUMBER}
        ports:
            - 10001:4567
# pull
git clone ...

# unit-test
docker-compose run --rm unit

# build
docker-compose build app

# tag

# push

# deploy
docker-compose up -d production

swarm

DockerSwarm docker service update
--image localhost:5000/ruby-app:${BUILD_NUMBER}
ruby-app

Kubernetes kubectl set image
-f deploy/ruby-app.yml
app=localhost:5000/ruby-app:${BUILD_NUMBER}

Ref

https://github.com/skanehira/denops-docker.vim https://github.com/Silex/docker.el

이재홍의 언제나 최신 Docker

Tacademy: 컨테이너 기반 가상화 플랫폼 ‘도커(Doker)’의 이해

K-MOOC: 도커(Docker) 기초

https://www.44bits.io/ko/post/easy-deploy-with-docker

Jenkins

using war

  • https://www.jenkins.io/download/ 에서 war파일을 다운받아서 실행

  • 실행: java -jar jenkins.war --httpPort=9090

  • 초기패스워드: C:\Users\netpyoung\.jenkins\secrets\initialAdminPassword

using docker-compose

ports:
  - "50000:50000"
  - "8080:8080"
volumes:
  - "/c/Users/netpyoung/@DEVOPS/jenkins_home:/var/jenkins_home"
  • 실행단계
    • docker-compose.yml 볼륨 확인하고
    • Dockerfile plugins.txt확인
    • docker-compose up 으로 기동
  • 초기패스워드: /var/jenkins_home/secrets/initialAdminPassword

agent 설정

Restrict where this project can be run

java -jar agent.jar -jnlpUrl http://localhost:8080/computer/agent-blue/jenkins-agent.jnlp -secret 0fa596c72ab35d2bf966ddd0908e3b7be055c80785af51694fafed5e69ce2ca4 -workDir "C:\Users\netpyoung\@DEVOPS\slave2"
  • Run from agent command line, with the secret stored in a file:
echo 0fa596c72ab35d2bf966ddd0908e3b7be055c80785af51694fafed5e69ce2ca4 > secret-file
java -jar agent.jar -jnlpUrl http://localhost:8080/computer/agent-blue/jenkins-agent.jnlp -secret @secret-file -workDir "C:\Users\netpyoung\@DEVOPS\slave2"\

이미지 다운로드.

http://ftp.daum.net/ubuntu-releases/precise/ubuntu-12.04.4-server-amd64.iso

네트워크 설정.

  • 192.168.0.101을 먹고자 한다.

    sudo vi /etc/network/interface

      # This file describes the network interfaces available on your system
      # and how to activate them. For more information, see interfaces(5).
    
      # The loopback network interface
      auto lo
      iface lo inet loopback
    
      auto eth0
      iface eth0 inet dhcp
    
      # The primary network interface
      auto eth1
      iface eth1 inet static
      address 192.168.0.101
      netmask 255.255.255.0
      network 192.168.0.0
      gateway 192.168.0.1
      broadcast 192.168.0.255
      dns-nameservers 168.126.63.1 168.126.63.2 8.8.8.8
      mtu 9000
    

    sudo /etc/init.d/networking restart

  • ip addr에서 나온 ip와 mac주소를 iptime에 추가시켜주자.

  • http://repogen.simplylinux.ch/ 에서 저장소를 업데이트 시켜주자.

버츄얼박스 백그라운드.

$ VboxManage startvm {VM-Name} --type headless

JAVA

sudo apt-get install python-software-properties sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installer sudo apt-get install oracle-java7-set-default

Nginx 설치.

sudo apt-get install nginx
sudo rm /etc/nginx/sites-available/default
sudo rm /etc/nginx/sites-enabled/default

sudo vi /etc/nginx/sites-available/jenkins
upstream app_server {
        server 127.0.0.1:8080 fail_timeout=0;
    }

server {
    listen 80;
    listen [::]:80 default ipv6only=on;
    server_name ci.yourcompany.com;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://app_server;
            break;
        }
    }
}
sudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
sudo service nginx restart

jenkins 설치.

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu

    wget -q -O - https://jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
    sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
    sudo apt-get update
    sudo apt-get install jenkins

https://www.docker.com/products/docker-toolbox

http://stackoverflow.com/questions/7709993/how-can-i-update-jenkins-plugins-from-the-terminal

cd $JENKINS_HOME/plugins curl -O http://updates.jenkins-ci.org/download/plugins/cobertura.hpi curl http://yourservername:8080/reload

http://www.hugeinc.com/ideas/perspective/list-of-useful-jenkins-plugins

https://github.com/maxfields2000/dockerjenkins_tutorial

redmine

  • https://github.com/sameersbn/docker-redmine
  • https://github.com/mrliptontea/PurpleMine2
sudo docker-compose run --rm redmine app:backup:create

1517889369_redmine_backup.tar

sudo mkdir -p /srv/docker/redmine/redmine/backups

sudo docker-compose run --rm redmine app:backup:restore BACKUP=1517889369_redmine_backup.tar

OS Windows

Essential Program

language

xx

  • 코어격리
    • 컴퓨터 프로세스를 운영 체제 및 장치에서 분리하여 맬웨어 및 기타 공격으로부터 보호
    • VBS Visualization-Based Security
    • Hypervisor-Protected Code Integrity (HVCI)

Windows 11

reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
taskkill /f /im explorer.exe
explorer.exe

Ref

OS macOs

mermaid

https://github.com/mermaid-js/mermaid-cli

xattr

macOS extended attributes

extended attributes

xattr -d com.apple.quarantine {해당파일이름}

-p Print the value associated with the given attribute.

-l By default, the first two command forms either display just the attribute names or values, respectively. The -l option causes both the attribute names and corresponding values to be displayed. For hex display of values, the output is preceeded with the hex offset values and followed by ASCII display, enclosed by '|'.

-d Delete the given attribute.

-c CLear all Atrributes. -r If a file argument is a directory, act as if the entire contents of the directory recursively were also specified (so that every file in the directory tree is acted upon).

lipo

lipo -info lipo -create

XCFramework

otool

otool -L

install_name_tool

install_name_tool -id install_name_tool -change

disable Input Source Indicating Bubble

  • https://apple.stackexchange.com/questions/464783/what-s-that-coloured-icon-with-an-a-inside-it-in-text/465466#465466
sudo defaults write /Library/Preferences/FeatureFlags/Domain/UIKit.plist redesigned_text_cursor -dict-add Enabled -bool NO

Os Linux

명령어 현대화

ngrok비슷하게 로컬 터널 무료 : https://localtunnel.github.io/www/

RGBA채널 보는거 지원 가벼운 이미지뷰어: https://github.com/woelper/oculante

Ref

archlinux

# file: /etc/pacman.conf  

#[archlinuxfr]
#Server = http://repo.archlinux.fr/i686
#Server = http://repo.archlinux.fr/x86_64
$ sudo pacman -Sy yaourt
  • 한글설정
    • 참고 : http://fehead.tistory.com/159

`` txt` $ vi ~/.xinitrc export LANG=ko_KR.UTF-8 export XIM="nabi" export XIM_PROGRAM="/usr/bin/nabi" export XIM_ARGS= export GTK_IM_MODULE="xim" export XMODIFIERS="@im=nabi"

$ vi /etc/locale.gen ko_KR_.UTF-8 UTF-8 주석해재 $ locale-gen


- capslock을 ctrl로
 - xev 명령어를 이용 키코드를 확인하자.
 - http://efod.se/writings/linuxbook/html/caps-lock-to-ctrl.html

``` txt
keycode 66 = Control_L
clear Lock
add Control = Control_L
keycode 117 = Caps_Lock
add Lock = Caps_Lock

News

Rss

사이트

pope-tv

  • https://www.youtube.com/@포프티비

자꾸 봤던걸 또 보게 된다. 그냥 정리해놔서 봤던걸 또 보는 일이 없게 하자.

  • [코딩표준] 반올림도 마음대로 못한다고? Round() 함수 사용 금지 이유! 시청
    • .NET의 Math.Round 메서드는 기본적으로 "Banker's Rounding" 방식을 사용. 가장 가까운 짝수로 반올림.
    • double result = Math.Round(2.5); // 결과: 2
    • double result = Math.Round(2.5, MidpointRounding.AwayFromZero); // 결과: 3
    • 햇갈리니 별도의 함수를 만듬. MathUtil.Round_Normal / MathUtil.Round_Banker
  • [코딩표준] TODO 주석도 룰이 있다고? 이게 진짜 중요합니다! 시청
    • 문자열 검색. 모아서 통계, 그래프, 쉽게 찾기
    • ex) TODO(pyoung): blabla
    • 버그를 몇개 고칠게있다. TODO를 몇개 고칠게 있다. 템플릿이 있는게 무조건 좋음. 통계를 뽑고 추세를 확인 => 뭘 해야할지 알 수 있음.
  • [코딩표준] 왜 스트링 함수를 그대로 쓰면 안 되나? 시청
    • string compare시 모드가 많음.
    • 별도의 함수를 만들어서 햇갈리지 않게.
  • [코딩표준] 왜 C#의 새 문법을 금지했을까? 물음표 연산자 금지 이유 공개
    • 삼항연산자는 씀
    • 다른 언어에 흔하지 않은 널 관련 (??/?.)는 안씀.
  • [코딩표준] DateTime.Now를 절대 쓰지 않는 이유 시청
    • DateTime.Now를 금지하고, 대신 DateTime.UtcNow를 사용
    • 하나의 타임존으로 관리. 보여줄때만 변환
  • 전 이제 DB 스크립트 버전 관리 안 하려고요 시청
    • ORM(Object Relational Mapping)
      • 장점 많다.
      • 단점
        • 성능 저하 문제를 일으킬 수 있고
        • DB 테이블과의 매핑이 정확하지 않을 때도 있다.
    • DB access레이어를 코드로 관리하고 거기서 DB스키마를 뽑아내는게 좋다.
    • DB는 언제나 변한다
      • DB 스크립트 버전 관리를 하면 파일이 쌓이게 되는데 깨진것을 찾이 어렵다. 수정시 전체 다 정검하면서 고치지 않기 때문에.
    • 웹툴로 바꾸자.
      • 테이블을 고치면 ORM코드도 변경해야된다.
      • 데이터가 변경시 스냅샷을 찍어 저장 - 히스토리.
  • 방어적 프로그래머, 이렇게 폭망하다 시청
    • #skip
  • 두 권의 책으로 알아보는 효과적인 습관 형성 & 삶의 원칙! 시청
      • 아주 작은 습관의 힘 Atomic Habits 제임스 클리어
      • 원칙 PRINCIPLES 레이 달리오
    • 즐기는 일을 해라
  • 개발자가 전문가가 되는 방법! 필수 조건 3가지! 시청
    • 3가지
      • 빠른 작업 처리
      • 빨리 버그 수정
      • 장기적인 문제 해결 능력
    • 1번, 2번은
      • 공부 제대로, 머리가 좋아서, 지름길을 선택해서
    • 3번은
      • 제대로 원인 파악 및 해결
      • 과거에 대충 짜놓은 것들이 내 발목을 잡는다는 걸 알고 그거를 크게 뒤집어 고치는 거
  • 버그를 유발하는 enum의 괴상한 기본 동작
  • AI 도구 사용, 개발자에게 독인가 약인가?
  • 탑 개발자의 생산성을 100배 올리는 가성비 최고 AI 도구 시청
    • 자기가 뭘 원하는지 아는 사람에게는 코파일럿이 좋음.
    • 코파일럿 장점
      • 함수작성 의도 이해 자동완성.
        • 함수 시그네쳐, 주석, 예제
  • ChatGPT를 찬양하면 생기는 일 시청
    • 검증하는 작업이 피곤하다.
    • 영어에는 강하다. 변수/함수명짓기.
  • AI가 바꿀 미래: 당신의 직업은 안전합니까? 시청
    • 스킵
  • 이메일 관리는 하나로 충분합니다 시청
    • 여러개의 이메일을 관리하기 힘들다.
      • 과거 스팸 메일로 이메일을 여러개 쓰는 사람들이 있었다.
    • 1개의 이메일 주소로 여러개 만드는 법이 있음 + 필터
  • 왜 배열은 0부터 시작할까? 프로그래밍의 비밀 시청
    • 메모리 오프셋 개념
  • 진정한 1인분의 의미: 협업과 책임의 중요성 시청
    • 1.2인분을 하고 있어야만 1인분. (0.2는 남을 도와 줄 수 있는 여유)
  • 회사의 피드백: 주니어에서 벗어나기 위한 조언 시청
    • 스스로 답할 줄 알아야 / 다시 질문 해 주세요 => 이 정도는 아셔야 되요.
  • 회의 효율 극대화: 컴퓨터 대신 이걸 가져가야 하는 이유 시청
    • 공책. 요약하는 능력. 회의끝나고 그날 복기.
  • Git Sparse Checkout과 LFS: 모노리포 관리의 최적 솔루션
    • #git
  • 효율적인 Git 리포 관리: 서브모듈 대신 이것을 사용하면...?
    • #git
  • 한 방에 개발 환경 설정하기: Junction
    • #git
  • 멀티스레딩 마스터하기: 10년의 여정 시청
    • #멀티스레딩
    • 10년 정도면 단순하게 작성하는데 물이오르게됨.
  • 개선안 제시 못하면 주니어 시청
    • #주니어
    • 개선안을 제시를 못하거나 안해, 했는데 자꾸 아니래 => 주니어
    • 내가 무언가를 책임지는 부분이 있냐, 누군가의 지시없이 할 수 있는것이 충분히 많아졌냐.
  • 이런 테크 회사는 빤스런 시청
    • #빤스런
    • 컴파일러 경고를 건들지 않고 있다.
    • 디버그 빌드가 엄청 느리다. => 디버깅 하는 사람이 없다.
    • 기존 코드를 바꾸는 것을 엄청 무서워함.
    • 버그 대쉬보드의 버그 숫자가 줄지 않고 계속 오름.
    • TODO 커맨트를 박지 않는다.
    • TODO를 박을때 정해진 포맷이 없다.
  • 변화하는 코딩표준! Async 접미사! 시청
    • C#
    • MS와 다르게 사용하는 포프 C#코딩 스텐다드는 Async 접미사를 쓰지 않음.
      • Async를 뒤에 붙이면
        • 장점: 함수 이름보고 이 함수가 Async함수인지 알 수 있음.
        • 단점: 함수 이름이 길어짐. async/non async함수 전환시 함수이름 리펙토링 비용이 있음.
      • 디버그는 허용. 단, 릴리즈 빌드시 모든 경고는 에러이기에 Async 접미사를 안쓰는걸로 가자.
      • CS4014로 추정
  • 더 많은 정보가 필요하면 넌 주니어 시청
    • #주니어
    • 주니어 때는 사수의 부정적인 피드백을 굉장히 고마워 해야함
    • 버그에 대한 대응이 어떻게 되는지 꼼꼼히 보는 리드 혹은 프로젝트 매니저가 반드시 있어야 한다.
    • 이미 재현가능한(repro case) 버그가 있는데, 고칠 생각을 안하면 주니어
      • need more info 는 재현 불가능시 요청하는 것인데, 고칠 생각을 안하고 이용하는 사람들이 있다.
  • 함수, 이렇게 만들면 넌 주니어 시청
    • #주니어 #네이밍
    • 코드 연산을 그대로 함수명은 주니어
      • 유저 어카운트가 생성된지 7일 미만 참, 이상 거짓
        • IsUserCreatedWithin7days
          • 왜 생겨났는가? 특정한 날짜 구매페이지
            • 이 유저가 새로운 유저인가 (도메인: 새로운 유저)
              • IsNewUser
    • 함수 이름에 And/Or 가 들어가면 나쁜 함수 이름일 가능성이 높음.
    • 함수 외부에서 호출할때 그 사람한테 어떤 의미가 있는지를 알려주는 함수명.
  • 잊혀져 가는 중요한 프로그래밍 개념: 감시값 (sentinel value) 시청
  • 이 코드 못 짜면 넌 주니어 시청
    • #주니어
    • 사실 뭔가를 공부하고 면접을 봐야 한다, 이미 시니어는 아닌 경우가 많다.
    • 시니어 면접을 갔는데, 코딩 면접은 안보고 이야기만 한다
      • 그런 주니어들만 모인 회사다.
      • 자기는 시니어라고 믿고 있는 주니어들이 들어와 있다.
    • 5분 준다
      • 버블쇼트 O(n*n)
        • for (int i = 0; i < arr.Length - 1; ++i)
          • for (int j = 0; j < arr.Length - 1 - i; ++j)
            • if (arr[j] > arr[j + 1])
              • swap
      • 문자열 뒤집기
  • Assert 어디에 넣을지 모르면 넌 주니어 시청
    • #주니어
  • 스마트폰 알림 끄고 상사에게 칭찬 받는 법 시청
  • E0572. 마크다운의 잘못된 스펙. 이렇게 고쳐볼까? [자막] [시청]
  • E0571. 문서는 웬만하면 마크다운(markdown)으로 씁시다 [자막] [시청]
  • E0570. 문서를 못쓰면 넌 주니어 #주니어 [자막] [시청]
    • #주니어
  • E0569. 도메인 지식만 많으면 넌 주니어 #도메인 #주니어 [자막] [시청]
    • #주니어
  • E0568. 클린코드 때문에 취업 실패한 썰 [자막] [시청]
  • E0567. 예민하다 못해 까탈스런 동료를 두면 좋은 점 [자막] [시청]
  • E0566. 취업 전에 반드시 알아야 하는 자료구조들 [자막] [시청]
    • 트리, 해시맵 만들 수 있어야함
  • E0565. AI 기반 천사모드 검색엔진: 너무 한쪽에 치우치지 않은채 좋은 정보들을 얻을 수는 없을까? [자막] [시청]
  • E0564. 싱글톤 패턴은 안티 패턴인가? [자막] [시청]
  • E0563. 곧바로 취업되는 프로그래밍 언어, 가장 빨리 취업되는 공부법 [자막] [시청]
  • E0562. if/else 로직 제대로 못짜면 주니어 [자막] [시청]
    • #주니어
  • E0561. 테스트 코드 잘 짜는 프로그래머는 이걸 잘합니다 [자막] [시청]
  • E0560. 새새끼 프로그래머 [자막] [시청]
  • E0559. 자기 방어적 프로그래밍 [자막] [시청]
  • E0558. json 떡칠 좀 그만! [자막] [시청]
  • E0557. 섣부른 최적화를 할 능력은 되고? [자막] [시청]
  • E0556. 프로그래밍 Best Practice 책 추천 목록! [자막] [시청]
  • E0555. 고수 개발자들이 오픈소스 공헌 안 하는 이유 [자막] [시청]
  • E0554. 미리 reserve 안하는 넌 주니어 [자막] [시청]
    • #주니어
  • E0553. 테슬라 로봇을 돈 값 못하게 사용하는 법 [자막] [시청]
  • E0552. 내가 재활용하지 않는 사회 [자막] [시청]
  • E0551. 프로젝트 세팅 못하는 넌 주니어 [자막] [시청]
    • #주니어

  • E0550. 효율적인 테스트 코드 작성법 [자막] [시청]
    • 데이터 위주의 함수는 구현 후에 곧바로 테스트 코드 작성해도 됨.
      • 그 외의 경우는 버그가 나오면 테스트 코드를 작성해서 재발을 막을 것.
  • E0549. 버그 하나라도 못 고치면 넌 주니어 [자막] [시청]
    • #주니어
  • E0548. 문서 파일에서도 보이는 개발자 자질 [자막] [시청]
  • E0547. 남이 날 주니어 프로그래머로 보는 이유 [자막] [시청]
    • #주니어
  • E0546. 도움 자료의 혜택을 받는 사람은 정해져 있다? [자막] [시청]
  • E0545. 좋은 선생 vs 나쁜 선생 [자막] [시청]
  • E0544. 기발한 이름을 지으면 일어나는 일 (부제: 트라이의 어원) [자막] [시청]
  • E0543. 포프TV와 POCU 아카데미 [자막] [시청]
  • E0542. string 매개변수 버그로 배우는 올바른 코딩 습관 [자막] [시청]
  • E0541. 고객상담원에게 고맙다하지 말자 [자막] [시청]
  • E0540. 짤린 프로그래머 더 빡치게 하는 법 [자막] [시청]
  • E0539. memcpy 최적화 1, 2, 3 [자막] [시청]
  • E0538. 유튜브 광고 수익 높이는 법과 SEO [자막] [시청]
  • E0537. 버그를 줄이는 무식하고 간단한 습관 [자막] [시청]
  • E0536. 프로그래머라면 검증한다 [자막] [시청]
  • E0535. CPU에 최악인 조건문 최적화 [자막] [시청]
  • E0534. 이게 내 인생게임이 된 이유는? [자막] [시청]
  • E0533. UX에 아무 쓸모가 없는 URL? [자막] [시청]
  • E0532. 전기 면도기와 정수기의 UX [자막] [시청]
  • E0531. OOP는 허접한 개발자 때문에 발전했다? [자막] [시청]
  • E0530. 막코딩의 편안함 [자막] [시청]
  • E0529. 스마트폰으로 긴급대응 시스템 구축하기 (무려 공짜) [자막] [시청]
  • E0528. 버전 vs 데이터 마이그레이션 [자막] [시청]
  • E0527. 이거 안 하면 로그 남겨봐야 아무 소용 없음 [자막] [시청]
  • E0526. 외부 라이브러리와 버그 [자막] [시청]
  • E0525. 버그가 생기는 이유와 기초 예방법 [자막] [시청]
  • E0524. 대충주의로 직장생활이 가능한 기간은? [자막] [시청]
  • E0523. 즐기는 사람을 위해 안 가르치는 과목 [자막] [시청]
  • E0522. 프로그래밍 공부 순서, 프로그래머 테크트리 [자막] [시청]
  • E0521. 푸시 알림과 생산성 저하 [자막] [시청]
  • E0520. push 기반 인생 자동화 (로또 편) [자막] [시청]
  • E0519. 지문인식: 2만 원에 PC 보안 향상 [자막] [시청]
  • E0518. 단순 반복 업무 싫어하세요? 그럼 어떡하시려구요? [자막] [시청]
  • E0517. 탑 프로그래머의 데스크 셋업 [자막] [시청]
    • 데스크: 전동 높이조절 데스크
        • Desk: UpLift 900 Sit-Stand Ergonomic Desk Base + Ikea 상판
    • 바닥: 고무판(서서 일할때)
    • 의자: Herman-Miller Aeron - 머리있는거
    • 모니터: 델 U시리즈
    • 컴퓨터 캐이스: https://www.fractal-design.com/products/cases/define/define-r5/black/
    • Mouse: RollerMouse Red
    • Keyboard: Realforce 조용한 버전
    • Speakers: Rokit 5
    • Headset: Sennheiser PC 320 Game
    • Audio Interface: PreSonus AudioBox USB 2x2
    • 방송
      • WebCam: Logitech BRIO
      • Mic: Yeti Blue USB
    • 창정렬: Gridmove
  • E0516. 포프TV 꾸준 인기영상 TOP5 (2019년) [자막] [시청]
  • E0515. 2019년 포프TV 신작 베스트 5편 [자막] [시청]
  • E0514. 워라하(워크/라이프 하모니)를 위한 포프TV (인사 없음) [자막] [시청]
  • E0513. 못 이루는 신년계획이 더 좋을지도? [자막] [시청]
  • E0512. 주인의식을 가져라 [자막] [시청]
  • E0511. 유연근무제 조심하세요 [자막] [시청]
  • E0510. 명상하면 소원이 이뤄진다 [자막] [시청]
  • E0509. 워터폴의 귀환 [자막] [시청]
  • E0508. 오픈소스 라이선스 정리 [자막] [시청]
  • E0507. 튜닝의 끝은 순정. 개발 용 익스텐션 [자막] [시청]
  • E0506. 세 가지 종류의 문서화 이렇게 하세요! [자막] [시청]
  • E0505. 기억에 남는 POCU 아카데미 학생 [자막] [시청]
  • E0504. 과연 코칭이 가능한가? [자막] [시청]
  • E0503. 외주자는 회사정치에 신경 안 씁니다 [자막] [시청]
  • E0502. 아마존은 연봉 적게 주는 나쁜 회사? [자막] [시청]
  • E0501. 정말 기이한 직장동료 [자막] [시청]

  • E0500. 그래픽 프로그래머의 모니터 색감을 어떻게 설정하는가? [자막] [시청]
  • E0499. 올바른 변수 이름 짓는 법 [자막] [시청]
  • E0498. 반드시 알아야 할 비지니스 영어 축약어 [자막] [시청]
  • E0497. 전 실리콘밸리 기술이사가 말하는 회사 지분 vs 봉급 [자막] [시청]
  • E0496. 북미개발자의 개발용 노트북 추천 [자막] [시청]
  • E0495. 면접 가다가 똥 맞다 [자막] [시청]
  • E0494. 마인크래프트 개발자가 말하는 구글 스타디아 (3/3) [자막] [시청]
  • E0493. 헤일로 개발자가 말하는 구글 스타디아 (2/3) [자막] [시청]
  • E0492. 피파 개발자가 말하는 구글 스타디아 (1/3) [자막] [시청]
  • E0491. 아니, 너만 틀리다니까? [자막] [시청]
  • E0490. 업무대화 중 소설 안 쓰는 방법 [자막] [시청]
  • E0489. 까 먹는 프로그래밍 언어? [자막] [시청]
  • E0488. 팀 패스워드 관리 이렇게 하면 될까? [자막] [시청]
  • E0487. 패스워드 관리 프로그램 비교 [자막] [시청]
    • #프로그램
  • E0486. 스팸 메시지와 에티켓 [자막] [시청]
  • E0485. 면접 중 장점/단점 질문은 어떻게 답변해야 하지? [자막] [시청]
  • E0484. 면접관이 기술면접에서 보는 것 [자막] [시청]
  • E0483. 면접관에게 자기소개서란 [자막] [시청]
  • E0482. 커뮤니케이션 문제: 자기만의 용어를 고집하는 사람 [자막] [시청]
  • E0481. 꿈과 야망을 강요하는 사회 [자막] [시청]
  • E0480. 코딩은 자연계 대학 필수과목이어도 된다 [자막] [시청]
  • E0479. 나쁜 습관 고치기 [자막] [시청]
  • E0478. 무료 암호화폐 결제 API [자막] [시청]
  • E0477. 글로벌 서비스는 PayPal 결제로 [자막] [시청]
  • E0476. 익명성의 순기능, 솔직한 피드백 등 [자막] [시청]
  • E0475. 리드는 소신이 있어야 [자막] [시청]
  • E0474. 프로그래머의 수치: 복구 불가능한 버그 [자막] [시청]
  • E0473. 포큐 마감임박! 또 4개월을 기다릴텐가? [자막] [시청]
  • E0472. 내가 쓰는 C++1x: constexpr [자막] [시청]
    • #C++
  • E0471. 포큐 5월 학기 프로그래밍 입문 강좌 [자막] [시청]
  • E0470. 휴대기기의 발전과 게으르단 핑계 [자막] [시청]
  • E0469. 슬랙의 remind 기능 [자막] [시청]
  • E0468. 크롬캐스트와 아마존 파이어 TV [자막] [시청]
  • E0467. 내가 쓰는 C++1x: Conditional Variable [자막] [시청]
    • #C++
  • E0466. 기술면접 후 복습하시나요? [자막] [시청]
  • E0465. 공짜 고객상담 솔루션 [자막] [시청]
  • E0464. 법의 무늬와 목적 [자막] [시청]
  • E0463. 내가 쓰는 C++1x: 가변인자 템플릿(variadic template) [자막] [시청]
    • #C++
  • E0462. QR 코드의 컴백 [자막] [시청]
  • E0461. POCU 아카데미 오픈 [자막] [시청]
  • E0460. 포프의 경력/학력 정리 (2018년판) [자막] [시청]
  • E0459. 방어적 프로그래밍 [자막] [시청]
  • E0458. 헬로코딩: 프로그래밍 심화문제 풀이 강의 [자막] [시청]
  • E0457. 포프티비 전자책 증정 이벤트 [자막] [시청]
  • E0456. 클라우드 플레어로 웹서비스 향상하기 [자막] [시청]
  • E0455. 헬로코딩 2018 마지막 재탕 강연 [자막] [시청]
  • E0454. 2018년 가을 한국강연 일정 [자막] [시청]
  • E0453. 연령대별 해야할 일 [자막] [시청]
  • E0452. 내가 스마트폰을 쓰는 이유 [자막] [시청]
  • E0451. 열린 회사 (open company) [자막] [시청]

  • E0450. 모바일 페이의 승자? [자막] [시청]
  • E0449. 믿음과 학습속도 [자막] [시청]
  • E0448. 구글 갓과 프로그래밍 [자막] [시청]
  • E0447. Hash Table은 프로그래머의 기본기 [자막] [시청]
    • 해시태이블 만들 수 있는가
  • E0446. Visual C++의 유니티 빌드 기능 [자막] [시청]
    • #C++
  • E0445. 니 기억은 언제나 틀리다 [자막] [시청]
  • E0444. 레드오션? 블루오션? [자막] [시청]
  • E0443. C#의 정말 편한 Extension 메서드 [자막] [시청]
  • E0442. C# 밸리데이션 애트리뷰트와 값 타입 변수 [자막] [시청]
  • E0441. 퀄리티 안나오는 사람들의 특징 [자막] [시청]
  • E0440. 프로그래머가 국어를 못하면 [자막] [시청]
  • E0439. 일잘하는 사람과 시뮬레이션 능력 [자막] [시청]
  • E0438. Reverse OOP 패턴 [자막] [시청]
  • E0437. GitHub 인수와 GitLab 으로의 이주 [자막] [시청]
  • E0436. 미안해, 고마워 [자막] [시청]
  • E0435. 코딩스탠다드: 람다 [자막] [시청]
    • #코딩스탠다드
  • E0434. 만원의 가치 [자막] [시청]
    • 시간을 산다
    • 포프티비 책의 할인을 요구받았지만 거절 > 효율성을 사는데에 이 정도 가격은 낭비가 아니다.
  • E0433. 치과 [자막] [시청]
  • E0432. 포트폴리오의 가치 및 의미 [자막] [시청]
  • E0431. 새 프로그래밍 교육기관을 준비 중입니다 [자막] [시청]
  • E0430. 완벽한 건 없다 [자막] [시청]
  • E0429. 게임직군 :게임플레이 프로그래머 [자막] [시청]
  • E0428. 이력서 쓰는 법 [자막] [시청]
  • E0427. 컴퓨터는 추상적으로 돌지 않는다 [자막] [시청]
  • E0426. 그거 돈은 되니? [자막] [시청]
  • E0425. 게임직군: 모델러 (캐릭터, 환경) [자막] [시청]
  • E0424. 마인크래프트 개발했습니다 [자막] [시청]
  • E0423. 웹 서버 세팅 관리 [자막] [시청]
  • E0422. 싸게 회사 홈페이지 만들기 [자막] [시청]
  • E0421. 도서: 포프TV 1권 출간 [자막] [시청]
  • E0420. 2018년 4월 강연 일정 [자막] [시청]
  • E0419. Static HTML API 문서 만들기 [자막] [시청]
  • E0418. 전문용어 및 축약어 남발 [자막] [시청]
  • E0417. 아이폰용 수도쿠 게임 [자막] [시청]
  • E0416. 프로파일 기반 최적화 [자막] [시청]
  • E0415. 포프티비 검색엔진 (기술편) [자막] [시청]
  • E0414. 포프티비 검색엔진 소개 [자막] [시청]
  • E0413. 같은 시간대의 장단점 [자막] [시청]
  • E0412. [게임직군] FX 아티스트 [자막] [시청]
  • E0411. 로깅 파일 처리 및 재난 상황 탐지 [자막] [시청]
  • E0410. 언어별 부모 생성자 호출 방법 [자막] [시청]
  • E0409. 버그이야기: 스페이스 마린 편 [자막] [시청]
  • E0408. 프로그래머가 영어를 못하면 [자막] [시청]
  • E0407. 내부 vs 외주 팀 [자막] [시청]
  • E0406. 버그이야기: 콘솔 제조사의 삽질 [자막] [시청]
  • E0405. 코딩스탠다드: 생성자, setter, getter [자막] [시청]
    • #코딩스탠다드
  • E0404. 안에서만 새는 바가지? [자막] [시청]
  • E0403. 버그이야기 - 개발자의 거짓말 [자막] [시청]
  • E0402. 연봉협상 [자막] [시청]
  • E0401. 장기 기억력과 실력 [자막] [시청]

  • E0400. 엔지니어와 UX [자막] [시청]
  • E0399. 버그 이야기 - 야구게임 편 [자막] [시청]
  • E0398. 거짓말쟁이의 패턴 [자막] [시청]
  • E0397. 프로그래밍 첫 입문 전자책 [자막] [시청]
  • E0396. 비트코인과 세금 [자막] [시청]
  • E0395. [게임직군] UI 아티스트 [자막] [시청]
  • E0394. 비트코인 투자? [자막] [시청]
  • E0393. 코드몽키의 미래 [자막] [시청]
  • E0392. 개발용 맥 빌려 쓰기 [자막] [시청]
  • E0391. 노는 안드로이드폰으로 비트코인 채굴하기 [자막] [시청]
  • E0390. 소프트웨어 아키텍트의 코딩 [자막] [시청]
  • E0389. 프로그래머로 살아남기 위해 필요한 언어 둘 [자막] [시청]
  • E0388. 영미법 vs 대륙법 [자막] [시청]
  • E0387. 프로그래밍 입문 [자막] [시청]
  • E0386. 게임직군: 오디오 프로그래머 [자막] [시청]
  • E0385. 교수노조 파업을 보며 느낀 점 [자막] [시청]
  • E0384. 포토샵, 2도 출판, 프로그래밍 [자막] [시청]
  • E0383. 난 스타트업을 어떻게 준비해 왔나 [자막] [시청]
  • E0382. REST와 404 [자막] [시청]
  • E0381. stable sort 및 필수 스킬 [자막] [시청]
  • E0380. 진정한 리더 2 [자막] [시청]
  • E0379. 스키닝이란 무엇인가? [자막] [시청]
  • E0378. 울 아파트 전기차 충전 허가 상황을 보면 느낀점 [자막] [시청]
  • E0377. 와이파이 사이렌으로 긴급대응 [자막] [시청]
    • #알람
    • D-Link DCH‑S220
      • 와이파이 사이렌
      • 911 정말 심각한 문제
      • 912 문제는 문제인데 8시간 있다 고쳐도 상관 없는
  • E0376. 댓글 관리자 및 도덕심의 단계 [자막] [시청]
  • E0375. TypeMock으로 유닛테스트를 간편히? [자막] [시청]
  • E0374. 새 전자화폐: 포프코인 [자막] [시청]
  • E0373. 비밀번호 규칙 창시자의 사과 [자막] [시청]
  • E0372. 꼰대 꼰대질 [자막] [시청]
  • E0371. 다수처럼 보이는 소수 [자막] [시청]
  • E0370. 멘토 [자막] [시청]
  • E0369. 나는 모른다는 거짓말 [자막] [시청]
  • E0368. 게임기획 나올동안 프로그래머는 뭐하나 [자막] [시청]
  • E0367. 야근과 자기발전 2 [자막] [시청]
  • E0366. 코딩스탠다드: struct vs class [자막] [시청]
    • #코딩스탠다드
  • E0365. 주입식 교육의 장점 [자막] [시청]
  • E0364. 초중고등학교에서 배울 수 있는 것 [자막] [시청]
  • E0363. 좋은 키보드? [자막] [시청]
  • E0362. 넌 어차피 까인다 [자막] [시청]
  • E0361. BCIT 수석한 법 [자막] [시청]
  • E0360. 코딩스탠다드: 함수 작성 [자막] [시청]
    • #코딩스탠다드
  • E0359. 재택근무 직원용 시간관리 프로그램 [자막] [시청]
    • #프로그램
  • E0358. 게임직군: 네트워크 프로그래머 [자막] [시청]
  • E0357. 코딩스탠다드: 참조/포인터 매개변수 [자막] [시청]
    • #코딩스탠다드
  • E0356. 장기이익에 투자하라 [자막] [시청]
  • E0355. 생활습관을 고쳐야 좋은 엔지니어(프로그래머)가 된다 [자막] [시청]
  • E0354. 테슬라, 전기차, 자동주행차 [자막] [시청]
  • E0353. 시그래프 발표계기 [자막] [시청]
  • E0352. 대학을 통한 북미취업 [자막] [시청]
  • E0351. 선의의 거짓말은 없다 [자막] [시청]


  • E0300. 독커, Azure, AWS [자막] [시청]
  • E0299. 버그 만드는 걸 두려워하지 마라 [자막] [시청]
  • E0298. 팬레터, 나의 로망, 프로그래밍 언어 제작 [자막] [시청]
  • E0297. 공동창업자를 고를 때 [자막] [시청]
  • E0296. 캐나다 컴공학과 교수가 되다 [자막] [시청]
  • E0295. 가상현실 컨텐츠에서 주의할 점 [자막] [시청]
  • E0294. 좀비 사태에 대한 대비 [자막] [시청]
  • E0293. 숫자놀이 회사정치 [자막] [시청]
  • E0292. 실수 고치기 [자막] [시청]
  • E0291. 노말맵은 왜 파란가? [자막] [시청]
  • E0290. 도메인 드리븐 디자인 [자막] [시청]
  • E0289. 저수준의 중요성 [자막] [시청]
  • E0288. OOP는 중요하다. 하지만... [자막] [시청]
  • E0287. 조건문과 반복문이면 된다 [자막] [시청]
  • E0286. 남의 결정을 대신 내리지 말자 [자막] [시청]
  • E0285. 면접 중 회사 엿보기 [자막] [시청]
  • E0284. 영어가 한국어보다 좋은 언어다 [자막] [시청]
  • E0283. 버텍스 압축 [자막] [시청]
  • E0282. 북미취업가이드북 2판 출시 [자막] [시청]
    • 1판은 북미취업 이렇게 해야한다. 실패를 해도 잃을게 없는
    • 2판 비자문제(매년 바뀌지), 미국쪽이 어려운 이유, 캐나다 찍고 가는거에 대한 이점.
  • E0281. 구글 미워요 자바 싫어요 마소 짱짱 [자막] [시청]
  • E0280. 인터넷과 지식인 [자막] [시청]
  • E0279. 일상 훔쳐보기와 시간 때우기 [자막] [시청]
  • E0278. 싱글턴은 하나라니까? [자막] [시청]
  • E0277. 실리콘밸리 행, 포프TV 일정 변경 [자막] [시청]
  • E0276. 게임직군: 그래픽 프로그래머 [자막] [시청]
  • E0275. 한국인이 모르는 영어: no? [자막] [시청]
  • E0274. DB 관리자의 미래 [자막] [시청]
  • E0273. 클라우드 컴퓨팅, SLA, 릴리즈 스페셜리스트 [자막] [시청]
  • E0272. 신곡: 바람 부는 날 [자막] [시청]
  • E0271. 병가는 연차가 아니다 [자막] [시청]
  • E0270. DX12 개발자 페북모임 [자막] [시청]
  • E0269. 장애 이용하기 [자막] [시청]
  • E0268. 정적분석 vs 유닛테스트 [자막] [시청]
  • E0267. UTF8로 쳐바르자 [자막] [시청]
  • E0266. 보안전문가 [자막] [시청]
  • E0265. 헤일로 개발했습니다 [자막] [시청]
  • E0264. 랩노트 원노트 [자막] [시청]
  • E0263. 플로우는 하나만 [자막] [시청]
  • E0262. 뭐? 폴리글랏 프로그래밍? [자막] [시청]
  • E0261. 쥬니어니까 괜찮아 [자막] [시청]
  • E0260. 웹툰 까메오 출현 [자막] [시청]
  • E0259. 애져로 개발환경 관리하기 [자막] [시청]
  • E0258. 나는 엔지니어다 [자막] [시청]
  • E0257. 정규식은 이제 그만 [자막] [시청]
  • E0256. 주석과 가독성 [자막] [시청]
  • E0255. [보안] 해쉬와 암호화 [자막] [시청]
  • E0254. 공짜 과외선생을 한 이유 [자막] [시청]
  • E0253. 기회는 왔을때 잡는다 [자막] [시청]
  • E0252. 게임직군: UI와 툴스 프로그래머 [자막] [시청]
  • E0251. 주인님 자격증이 나오다 [자막] [시청]

  • E0250. 브렉싯과 소수삥뜯기 [자막] [시청]
  • E0249. 틀렸을 때의 즐거움 [자막] [시청]
  • E0248. 해적질 [자막] [시청]
  • E0247. 커피, 마약, 처방전 [자막] [시청]
  • E0246. 행/열기준 행렬 및 OpenGL 성능 [자막] [시청]
  • E0245. async void가 안좋은 이유 [자막] [시청]
  • E0244. Typeless 언어 [자막] [시청]
  • E0243. 원칙(소신)있는 코딩 [자막] [시청]
  • E0242. 이창호도 천재가 아니었다 [자막] [시청]
  • E0241. 커피와 프로그래밍 [자막] [시청]
  • E0240. C++ 네임스페이스 헛소리 [자막] [시청]
    • #C++
  • E0239. Async 쓸까말까 및 주의할 점 [자막] [시청]
  • E0238. 바이너리 잘 지원하는 무료 Git 서비스 [자막] [시청]
  • E0237. C++ 빌드속도 흑마법 [자막] [시청]
    • #C++
  • E0236. 한국인이 잘못쓰는 영어: Do You Mind? [자막] [시청]
  • E0235. 프리젠테이션 기법 - 잘난척을 해라 [자막] [시청]
  • E0234. C++17 모듈시스템! [자막] [시청]
    • #C++
  • E0233. 일 확실히 끝내기 [자막] [시청]
  • E0232. C# Shared 프로젝트 [자막] [시청]
  • E0231. 새로운 포프TV 컨텐츠 [자막] [시청]
  • E0230. 전기차는 환경보호? [자막] [시청]
  • E0229. 3D 프린팅 사기꾼 [자막] [시청]
  • E0228. LeftPad 대첩과 패키지관리 [자막] [시청]
  • E0227. 선입견을 가져라 [자막] [시청]
  • E0226. 프로그래밍의 반은 디버깅 [자막] [시청]
  • E0225. 가벼운 스타트업 [자막] [시청]
    • #책
    • 린 스타트업 - 에릭 리에스
    • The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses - Eric Ries
  • E0224. 포프TV 라이브 계획 [자막] [시청]
  • E0223. 포프티비 게스트가 적은 이유 [자막] [시청]
  • E0222. VISC = 자동 멀티스레딩? [자막] [시청]
  • E0221. 가치없는 토론 [자막] [시청]
  • E0220. 가상/증강 현실의 미래 [자막] [시청]
  • E0219. 게임개발자 다이어리 팟캐스트 [자막] [시청]
  • E0218. REST API와 버전 [자막] [시청]
  • E0217. 메타프로그래밍은 나쁘다 [자막] [시청]
  • E0216. 소프트웨어 vs 건축 설계사 [자막] [시청]
  • E0215. GOTO는 악마다? [자막] [시청]
  • E0214. [게임개발자분류] 애니메이터 / 리거 [자막] [시청]
  • E0213. 북미취업 2016 [자막] [시청]
  • E0212. 다시 게임프로그래머 [자막] [시청]
  • E0211. 모바일 개발은 자마린 [자막] [시청]
  • E0210. 성적이 나쁘긴 어렵다 [자막] [시청]
  • E0209. 유니티 게임오브젝트 [자막] [시청]
    • #유니티
    • 컴포넌트기반
    • 이벤트 브로드케스팅은 느리다
  • E0208. 정리해고 [자막] [시청]
  • E0207. scope 지정 코딩스타일 [자막] [시청]
    • #코딩스탠다드
  • E0206. 불쌍한 프론트엔드 개발자 [자막] [시청]
  • E0205. SQL에서 성능저하 없이 GUID쓰기 [자막] [시청]
  • E0204. Good Bye 캡콤 밴쿠버 [자막] [시청]
  • E0203. 역시 미래는 모바일 No 머신러닝 Yes [자막] [시청]
  • E0202. 새로운 기계의 영혼 [자막] [시청]
  • E0201. 포프TV Top 5, 그리고 뒷이야기 (2015) [자막] [시청]



  • E0100. 100회 기념, 대마법사, 오해를 풀자 [자막] [시청]
  • E0099. 텍스처 품질향상 꼼수 [자막] [시청]
  • E0098. Hi-Z 최적화 아이디어 [자막] [시청]
  • E0097. 게임이 접히는 이유 [자막] [시청]
  • E0096. 넥슨과 섬노예 [자막] [시청]
  • E0095. X같은 프로페셔널리즘 [자막] [시청]
  • E0094. 북미취업 가이드 그 후 [자막] [시청]
  • E0093. 유토피아 [자막] [시청]
  • E0092. 프라우드넷을 인수하라 [자막] [시청]
  • E0091. 싱글스레드 게임루프 [자막] [시청]
  • E0090. Lockless 참조카운터? [자막] [시청]
  • E0089. 불로초를 찾다 [자막] [시청]
  • E0088. UI는 아트여야만 한다? [자막] [시청]
  • E0087. 변호사보다 잘 버는 프로그래머 [자막] [시청]
  • E0086. 올바른 보너스 체계 [자막] [시청]
  • E0085. HeartBleed와 오픈소스 프로그래머 [자막] [시청]
  • E0084. 영어발음 Z [자막] [시청]
  • E0083. API 문서화 [자막] [시청]
  • E0082. 감기 예방법 [자막] [시청]
  • E0081. 함수 안 static 개체 [자막] [시청]
  • E0080. WPF는 힘들다? [자막] [시청]
  • E0079. 전자책 편집법 [자막] [시청]
  • E0078. 프로그래머 강연은 제발... [자막] [시청]
  • E0077. 유니티5 vs 언리얼4 [자막] [시청]
    • #유니티
    • 언리얼 소스 코드가 모두 공개가 돼 있다는 것 자체가 어떤 의미에서 보면은 배우는 사람들한 테 정말 좋지 않나
  • E0076. 리더와 시니어 [자막] [시청]
  • E0075. 책욕심 [자막] [시청]
  • E0074. Power 낮잠 [자막] [시청]
  • E0073. 논리력은 어떻게 판단하나? [자막] [시청]
    • 필연적 인과관계. A가 있어났으면 B는 반드시 일어나야 되는 상황.
    • 전제와 결론이 필연적 인과관계인지, 전제가 사실인지
    • 결론이 맞다, 아니다 라는 걸 판단 할 수 있는 사람
  • E0072. Debug 빌드를 유지하자 [자막] [시청]
  • E0071. 겸손한 개발자 [자막] [시청]
  • E0070. 내가 쓰는 C++11: Scoped Lock [자막] [시청]
    • #C++
  • E0069. C++에서 유니코드란 참 [자막] [시청]
    • #C++
  • E0068. 법감정: 상속세 폐지 [자막] [시청]
  • E0067. 쓸데없는 매일 아침회의 [자막] [시청]
  • E0066. 효율적인 프로그래머 [자막] [시청]
  • E0065. 유니티 무료버전에 필요한 기능 [자막] [시청]
    • #유니티
    • Asset Serialization 모드 중 텍스트(Force Text) 모드가 무료 버전에서 사용 가능해진 최초 버전은 Unity 4.2입니다
    • Unity 4.2 버전은 2013년 7월 22일에 출시되었습니다
  • E0064. 일사천리 일처리 [자막] [시청]
  • E0063. NuGet으로 라이브러리 관리를 간편히 [자막] [시청]
  • E0062. 커뮤니케이션 블랙홀 [자막] [시청]
  • E0061. 최적화 툴: Speed Cop [자막] [시청]
  • E0060. 한분야의 마스터가 되려면 [자막] [시청]
  • E0059. 포인터의 필요성 [자막] [시청]
  • E0058. 부모님께 효도하는 법 [자막] [시청]
  • E0057. 내가 쓰는 C++11: Range-Based For [자막] [시청]
    • #C++
  • E0056. 규칙을 지키는 놈만 손해다? [자막] [시청]
  • E0055. 신년계획 따윈 세워서 뭐하나? [자막] [시청]
  • E0054. 버전컨트롤 시스템 쓰세요 [자막] [시청]
  • E0053. 새로운 메모리 디버깅 기능? [자막] [시청]
  • E0052. 게임프로그래머가 되는 이유 [자막] [시청]
  • E0051. C#이 C++보다 빨라진다? [자막] [시청]
    • #C++

  • E0050. 슈팅게임 알고리듬 [자막] [시청]
  • E0049. 스페셜리스트 vs 제너럴리스트 [자막] [시청]
  • E0048. 언리얼 엔진에서 지원하는 머테리얼 레이어 [자막] [시청]
  • E0047. KGC 후기를 가장한 뇌물광고.. (응?) [자막] [시청]
  • E0046. Pair Programming 보다 나은 법 [자막] [시청]
  • E0045. 번역자 되는법 [자막] [시청]
  • E0044. C# 하악하악~ [자막] [시청]
  • E0043. 데이터 중심 디자인 [자막] [시청]
  • E0042. 회사에서 원하는 프로그래머 [자막] [시청]
  • E0041. 추천 유틸리티 [자막] [시청]
  • E0040. 물리기반 렌더링 [자막] [시청]
  • E0039. 책자랑: HLSL 개발 조리법 [자막] [시청]
  • E0038. 야근에 대해 말해보자 [자막] [시청]
  • E0037. 포프의 시간관리법 [자막] [시청]
  • E0036. 한국인이 잘못쓰는 영어: Main Idea First [자막] [시청]
  • E0035. 페이스북을 버린 이유 [자막] [시청]
  • E0034. 효과적인 온라인 대화 스타일 [자막] [시청]
  • E0033. 한국인이 잘못쓰는 영어: Okay [자막] [시청]
  • E0032. 거만한 개발자 [자막] [시청]
  • E0031. 지하철이 시민성을 바꾼다 [자막] [시청]
  • E0030. 한국인이 잘못쓰는 영어: 올바른 영문법? [자막] [시청]
  • E0029. KGC 2013에서 뵙겠습니다 [자막] [시청]
  • E0028. 개발자 오래 해먹으려면... [자막] [시청]
  • E0027. 한국인이 잘못쓰는 영어: No [자막] [시청]
  • E0026. 한국인이 잘못쓰는 영어: Sure [자막] [시청]
  • E0025. 게임프로그래머 테크트리 [자막] [시청]
  • E0024. 검색엔진의 미래 [자막] [시청]
  • E0023. 한국인이 잘못쓰는 영어: 사전찾기 [자막] [시청]
  • E0022. 삼색 코드리뷰 [자막] [시청]
  • E0021. 셰이더란 무엇인가? [자막] [시청]
  • E0020. 내가쓰는 C++11: static_assert [자막] [시청]
    • #C++
  • E0019. 자동주차위치 기억시스템 [자막] [시청]
  • E0018. 내가 쓰는 C++11: unique_ptr [자막] [시청]
    • #C++
  • E0017. 영어를 알면 포인터가 보인다 [자막] [시청]
  • E0016. 내가 쓰는 C++11: final과 override [자막] [시청]
    • #C++
  • E0015. 스터디 절대로 하지마라 [자막] [시청]
  • E0014. 꽃미남 서강대 교수님 [자막] [시청]
  • E0013. 노동법위반 게임회사 [자막] [시청]
  • E0012. 내가 쓰는 C++11: nullptr [자막] [시청]
    • #C++
  • E0011. 원화가 북미취업 케이스 [자막] [시청]
  • E0010. 녹내장, 오디오북, 불법복제 그리고 전자책 [자막] [시청]
    • #skip
    • 컴퓨터를 한곳에 고정시키고 계속 바라보면 주변근육으로 인해 녹내장이 발병할 수 도 있다.
    • 녹내장은 무엇인가요?
      • 말기에 가서 중심 시력만 남게 된 경우에야 시력장애가 있음을 알게 되는 무서운 병입니다.
      • 정기적인 안압검사와 시야검사 및 시신경유두검사를 받아보는 것이 바람직합니다.
      • 또한 심신의 과로를 피하고 어두운 곳에서 일하거나 책을 보지 않도록 하고, 한꺼번에 많은 양의 물이나 커피 등을 마시지 않도록 주의하셔야해요.
    • 눈을 쉴 수 있는 방법 오디오 북.
    • 한국이 책값이 정말 싸다.
  • E0009. 탑프로그래머라면 하드웨어 쯤은... [자막] [시청]
    • #하드웨어
    • 하드웨어 & 어셈블리를 이해하고, 하드웨어를 교체/추가하지 않고도 최적화할 방법을 할고 있다면 개발 비용을 엄청 절약할 수 있다.
    • 하드웨어 이해도가 있다면, 거기에 맞춰서 처음부터 코드나 알고리즘을 효율적으로 설계할 수 있고 나중에 최적화 할 일도 많이 줄어들 수 있다.
    • 탑클래스가 되기 위해서는 하드웨어 이해 또한 필수이다.
  • E0008. 내가 못쓰는 C++11: constexpr [자막] [시청]
    • #C++
    • 쓰고 싶은데 아직은 못쓴다. 당시(2013. 7. 4.)
    • 코딩스텐다드
      • 단순 상수 변수에는 const 대신 constexpr 을 사용한다.
  • E0007. 마이크로소프트 MVP [자막] [시청]
    • #skip
    • ms mvp 뽑아줬다
  • E0006. 영어회화 공부법 [자막] [시청]
    • #영어
    • 화상채팅으로 대화하는 습관
  • E0005. 내가 쓰는 C++11: auto [자막] [시청]
    • #C++
    • 코딩스텐다드
      • 반복자나 new 키워드가 같은 줄에 있어서, 어떤 개체가 만들어지는 지 명확하게 드러나는 경우가 아니라면 auto 키워드를 사용하지 않는다.
  • E0004. KGC 2013 발표신청 완료! 근데 공짜 티셔츠좀 T_T [자막] [시청]
  • E0003. 모바일게임이 천하를 평정할까? [자막] [시청]
    • #skip
    • 뉴스 내용을 그대로 받아들이기보다 말을 누가했는지, 의도가 무엇인지 한번 판단
  • E0002. 텍스트 보단 비디오 (개국인사?) [자막] [시청]
    • #skip
    • 사람들이 부담감없이 정보를 접하기에는 듣는거나 보는게 낫다.
  • E0001. 프로그래머가 수학을 못하면 [자막] [시청]
    • #수학
    • 수학과 프로그래밍은 논리력과 밀접한 관련이 있습니다. 수학이 약하다면, 논리력 또한 약할 확률이 높습니다. 이런 경우, 훌륭한 프로그래머가 되기는 어려울 것입니다.
        1. 수학을 못하면 프로그래밍 못한다.
        1. 수학을 못한다고 주장할때 암기력이 모자란지, 논리력이 모자란지 확실하게.
        • 논리력이 모자라면 프로그래밍을 포기하시는게...

Ref

Markdown

AsciiDoc

antora

Plantuml

for macos

brew install graphviz brew install plantuml

vscode > Settings > Extensions > Markdown Preview Enhanced > Markdown-preview-enhanced: Plantuml Jar Path /opt/homebrew/Cellar/plantuml/1.2024.4/libexec/plantuml.jar

fd plantuml.jar /opt/homebrew/Cellar/plantuml/

Mermaid

확장자.mermaid , .mmd
MIME typetext/vnd.mermaid

TEST

ETC

---
title: Node with text
---

%% this is comment

flowchart LR
    id1[This is the text in the box]

    A -- text --> B -- text2 --> C

    style id1 fill:#f9f,stroke:#333,stroke-width:4px

TB위에서 아레Top to bottom
TD위에서 아레Top-down/ same as top to bottom
BT아레서 위Bottom to top
RL오른쪽에서 왼쪽Right to left
LR왼쪽에서 오른쪽Left to right
sequenceDiagram
gitGraph
flowchart
classDiagram
stateDiagram-v2
C4Context미묘...
subgraph title
    graph definition
end

%%는 주석

graph TD;
    A-->B;
    A-->C{b};
    B-->D[Sqaure];
    C-->D;

GameSir G8 Galileo

VSCode Extension

commit type
NORMAL
REVERSE
HIGHLIGHT
---
title: Git branch - Client
---

%%{init: {
  'logLevel': 'debug',
  'theme': 'default',
  'themeVariables': {
    'git0': '#000000',
    'git1': '#00ff00',
    'git2': '#f000ff',
    'git3': '#ff0000'
  },
  'gitGraph': { 'rotateCommitLabel': false }
}}%%

%% gitGraph TB:
gitGraph LR:
    commit
    
    branch task/issue-id
    checkout task/issue-id
    commit
    checkout main
    merge task/issue-id
    commit
    
    branch release
    checkout release
    commit type:HIGHLIGHT id: "merge with main" tag:"0.0.0"

    branch hotfix/issue-id
    checkout hotfix/issue-id
    commit

    checkout release
    merge hotfix/issue-id tag: "0.0.1"

---
title: Git branch - Server
---

%%{init: {
  'logLevel': 'debug',
  'theme': 'default',
  'themeVariables': {
    'git0': '#000000',
    'git1': '#00ff00',
    'git2': '#f000ff',
    'git3': '#f000ff',
    'git4': '#ff0000'
  },
  'gitGraph': { 'rotateCommitLabel': false }
}}%%

%% gitGraph TB:
gitGraph LR:
    commit
    
    branch task/issue-id
    checkout task/issue-id
    commit
    checkout main
    merge task/issue-id
    commit

    branch server/dev
    checkout server/dev
    commit type:HIGHLIGHT id: "merge with main"

    
    branch server/live
    checkout server/live
    commit type:HIGHLIGHT id: "merge with server/dev" tag:"0.0.0"

    branch hotfix/issue-id
    checkout hotfix/issue-id
    commit

    checkout server/live
    merge hotfix/issue-id tag: "0.0.1"
---
title: Git branch - Localize
---

%%{init: {
  'logLevel': 'debug',
  'theme': 'default',
  'themeVariables': {
    'git0': '#000000',
    'git1': '#00ff00',
    'git2': '#f000ff',
    'git3': '#ff0000'
  },
  'gitGraph': { 'rotateCommitLabel': false }
}}%%

%% gitGraph TB:
gitGraph LR:
    commit
    
    commit
    
    branch distribute/dev
    checkout distribute/dev
    commit type:HIGHLIGHT id: "merge with main"


    branch distribute/live
    checkout distribute/live
    commit type:HIGHLIGHT id: "merge with distribute/dev"

Ref

  • https://www.dandoescode.com/blog/plantuml-vs-mermaid

Change Log

  • 종류
    • 커밋 기반
    • 이슈트래커 기반
    • 파일 기반

커밋 기반

파일 기반

Architecture Decision Records

Vscode

Extension

  • Theme
    • Material Icon Theme
  • Dev
    • ShaderLabFormatter
    • Shader languages support for VS Code
    • EditorConfig for VS Code
  • UML
    • PlantUML
  • Markdown
    • Markdown All in One
    • Markdown Color Plus
    • Markdown Preview Enhanced
    • markdownlint
  • vscode-pdf
  • EditorConfig for VS Code

language

Etc

  • AsciiDoc
  • GitLens
  • Todo Tree
  • Project Manager
  • Error Lens
  • Code Spell Checker
  • vscode-hanspell

OmegaT

omegat.tmx여기에는 다른 OmegaT 프로젝트에서 재사용하기 위해 OmegaT가 내부적으로 사용하는 태그가 뒤따르는 번역이 포함됩니다.
level1.tmxTMX 1.4b 레벨 1 데이터, 즉 태그 없이 번역의 텍스트 내용만 포함합니다.
level2.tmxTMX 1.4b level1 2 데이터, 즉 번역의 텍스트 내용을 포함하며 TMX 표준에 의해 정의된 구문의 태그가 포함됩니다.

git

OmegaT는 두 개의 파일만 수정합니다.

  • omegat/project_save.tmx
  • glossary/glossary.txt

필터 ?? - https://okapiframework.org/wiki/index.php?title=Okapi_Filters_Plugin_for_OmegaT#Download_and_Installation

glossary/

  • 간단히 말해서 용어집.

  • 'UTF-8'로 인코딩된 'CSV'(콤마로 구분된), 'TSV' 형식(탭으로 구분된 값)의 간단한 텍스트 파일

  • 생성

    • Ctrl + Shift + g
    • Edit > Create Glossary Entry
# Glossary in tab-separated format -*- coding: utf-8 -*-
hello	안녕	코맨트
다음 세그먼트Ctrl + N
이전 세그먼트Ctrl + P
번역파일 생성(target/)Ctrl+D
glossary 추가Ctrl + Shift + g

사전

프로젝트 구조


ProjectRoot
├── dictionary/             : 
├── glossary/               : 용어집 
├── source/                 : 번역할 파일을 넣는 위치. 
├── target/                 : 번역될 파일이 생성되는 위치.
├── omegat/                 : 
│   ├── ignored_words.txt   : 
│   ├── learned_words.txt   : 
│   ├── project_save.tmx    : OmegaT 는 번역 작업의 모든 내용을 번역 메모리( omegat폴더 project_save.tmx파일)에 저장합니다
│   └── project_stats.txt   : 
├── tm/                     : 번역 메모리 (`T`ranslation `M`emory) - 파일에 기록된 번역된 분절 정보는 현재 원문 분절과 정확히 일치하면 참조 번역 창에 표시됩니다.
│   ├── auto/               : 자동(번역이 무조껀 맞다고 생각되면 넣을것)
│   ├── enforce/            : project_save.tmx보다 우선 순위가 높은 것
│   ├── mt/                 : 
│   ├── penalty-xxx/        : "xxx"는 0 에서 100 까지의 수치 - ex) Penalty-30, 100% 일치하는 분절이 발견되면 일치율은 70%로 낮아져 표시
│   └── tmx2source/         : 다른 대상 언어로 번역된 문서에서 비롯된 메모리가 포함. 번역할 세그먼트 아래에 직접 표시된 다른 대상 언어로 번역된 내용을 볼 수 있음.
└── omegat.project          : xml. 프로젝트 설정 파일

sample

  • source: en-US
  • translated: ko

tbx(term based exchange) utx(universal terminology exchange) sdltm(sdl translation memory) passolo glossary

번역 메모리 매니저(TMM)

Ref

Company Amazon

S3

Amazon S3(Amazon Simple Storage Service)

S3 ninja

MinIO

Min IO (Minimal Object Storage)

MINIO_ROOT_USER
MINIO_ROOT_PASSWORD
MINIO_SITE_NAME     (string)    name for the site e.g. "cal-rack0"
MINIO_SITE_REGION   (string)    name of the location of the server e.g. "us-west-1"
MINIO_SITE_COMMENT  (sentence)  optionally add a comment to this setting
Environment.SetEnvironmentVariable("MINIO_ROOT_USER", "minioadmin");     // default: minioadmin | at least 3
Environment.SetEnvironmentVariable("MINIO_ROOT_PASSWORD", "minioadmin"); // default: minioadmin | at least 8
ProcessStartInfo psi = new ProcessStartInfo
{
    FileName = "minio",
    Arguments = $"server {storageDir} --address :9000 --console-address :9001",
    UseShellExecute = false,
};
bucket 설정

- http://127.0.0.1:9001/buckets > Create Bucket > bucket-a
- bucket-a > Anonymous > Add Access Rule > Prefix: * / Access: readonly

기타

Company Google

  • Google Search Console
  • Google Analytics

Company Microsoft

Azure