tmux install

apt-get update  
apt-get install -y sudo  
apt-get install -y tmux

tmux command

session 생성

tmux new -s new_session

session 조회

tmux ls

session 접속

$ tmux attach -t new_session

패널

  • 가로로 나누기 Ctrl + b, "

  • 세로로 나누기 Ctrl + b, %

  • 패널 이동하기 Ctrl + b, 방향키

  • 패널 삭제하기 Ctrl + b, x

윈도우

  • 윈도우 생성 Ctrl + b, c

  • 윈도우 선택 Ctrl + b, 숫자키

  • 윈도우 삭제 Ctrl + b, x

iTerm2 install

brew install iterm2

iTerm font 변경하기

font 설치

iTerm font 적용

  • command + ,
  • Profiles -> Text -> Font -> Fira Code
  • ligatures font 체크

Status bar 추가하기

  • command + ,
  • Profiles -> Session -> Status bar enabled 체크
  • Configure Status Bar에서 원하는 component 드래그해서 배치

Color preset 변경하기

  • command + ,
  • Profiles -> Colors -> Color Presets...
  • Pastel (Dark Background) 클릭

'Programming > MAC' 카테고리의 다른 글

MAC 초기설정 - brew 설치  (0) 2023.05.09

terminal 실행

  • command + space
  • terminal 검색 실행

macOS 용 패키지 관리자 설치 - brew

/bin/bash -c "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"](https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")

path 추가하기

vi ~/.zshrc
# ~/.zshrc
export PATH=$PATH:/opt/homebrew/bin
source ~/.zshrc

'Programming > MAC' 카테고리의 다른 글

MAC 터미널 초기설정 - iTerm2 설치  (0) 2023.05.09

[Time Complexity] Python - Find Value in List vs Set vs Dict

[시간 복잡도] 파이썬 - List vs Set vs Dict 에서 Value 찾기

code n = 100000 n = 1000000 n = 1000000 Time Complexity
x in list 0.000494 0.019270
0.235368
O(n)
list.index(x) 0.000537
0.020288
0.246275
O(n)
for a in list:  if(a==x) 0.010289
0.107806
1.036934
O(n)
x in set 0.000002
0.000002
0.000006
O(1)
list to set 0.115826
0.066516
0.716471
 
x in dict 0.000005
0.000005
0.000004 O(1)
list to dict 0.147385
0.223651
2.232983  

결론

1. Set, Dict 에서 value를 찾을 경우에 시간 복잡도 O(1)로 가장 빠름

2. 다만 List to Set/Dict conversation이 필요한 경우에 일정 값 이하의 n에서는 List를 사용

[Time Complexity] Python - Deque vs List performance comparison (append, appendleft, pop, popleft)

[시간 복잡도] 파이썬 - Deque vs List 퍼포먼스 비교 (append, appendleft, pop, popleft)

code n = 10000 n = 100000 n = 1000000 Time Complexity
list.append() 0.0010249615 0.0093748569 0.0974259377 O(1)
deque.append() 0.0012080669 0.0113868713 0.1131999493 O(1)
list.insert(0,0) 0.0436980724 4.2723989487 430.9322969913 O(n)
deque.appendleft() 0.0010690689 0.0137970448 0.1067051888 O(1)
list.pop() 0.0013749599 0.0134758949 0.1310129166 O(1)
deque.pop() 0.0009977818 0.0100331306 0.1004290581 O(1)
list.pop(0) 0.0262870789 3.5589528084 372.6231980324 O(n)
deque.popleft() 0.0009810925 0.0101020336 0.0985748768 O(1)

결론

1. append와 pop의 경우에는 List와 Deque 둘 다 Time Complexity가 O(n)으로 별차이가 없음

2. appendleftpopleft의 경우에 Deque가 훨씬 빠름

[Time Complexity] Python - Numpy vs List of zeros declaration

[시간 복잡도] 파이썬 - Numpy vs List의 제로 배열 선언 비교

code n = 10000000 n = 100000000 n = 1000000000 Time Complexity
[0] * n 0.0831630230  0.8130910397 8.0924339294 O(n)
[0 for i in xrange(n)] 0.3735442162  3.7914631367  37.1647899151  O(n)
x = [] 
for i in xrange(n):
    x.append(0)
0.9481530190  9.4668169022  94.6755440235  O(n)
numpy.zeros((n,)) 0.0000300407 0.0000290871  0.0000340939  O(1)
numpy.full((n,),0) 0.0420970917 0.4114339352 4.0288629532 O(n)
numpy to list 0.5932991505 5.9227490425 59.9193470478 O(n)

결론

1. 제로 리스트 선언은 numpy.zeros가 가장 빠름

2. 다만 numpy to list 시간 복잡도가 O(n)이므로 리스트로 변환이 필요시에 [0] * n 가 가장 빠름

Jenkis Error - Build step 'Execute shell' marked build as failure

젠키스에서 shell을 이용하여 spark submit을 하는데 에러가 발생하였다.

shell 최상단에 다음과 -li 옵션을 추가하여 해결하였다.

 #!/bin/bash -li

-i

Force the shell to run interactively. Interactive shells are described in Interactive Shells.

-l

Make this shell act as if it had been directly invoked by login. When the shell is interactive, this is equivalent to starting a login shell with ‘exec -l bash’. When the shell is not interactive, the login shell startup files will be executed. ‘exec bash -l’ or ‘exec bash --login’ will replace the current shell with a Bash login shell. See Bash Startup Files, for a description of the special behavior of a login shell.




- Reference

Invoking Bash - https://www.gnu.org/software/bash/manual/html_node/Invoking-Bash.html

git checkout -b newbranch
git checkout master
git merge newbranch
git branch -d newbranch


[Amazon Lumberyard Tutorial in Korean] 럼버야드 튜토리얼 한국어 자료


https://docs.aws.amazon.com/ko_kr/lumberyard/latest/gettingstartedguide/intro.html

Amazon Lumberyard Tutorial 2 - Editor Overview

  • 새로운 레벨 생성
  • 럼버야드 오브젝트
  • 에디터 레이아웃
  • 필수 도구
  • 3D 네비게이션
  • 에디터
  • 디스플레이 옵션 및 설정
  • 레이어
  • 자동 백업


Step 1 : 새로운 레벨 생성


1. File -> New Nevel (Ctrl + N) -> 레벨 이름 입력후 생성

2. 텍스처 해상도로 레벨 지형을 생성

Step 2 : 럼버야드 오브젝트


럼버야드 오브젝트 타입

1. 엔티티 - 동작 속성이 있는 개체

동작 속성은 게임 스크립트나 코드를 통해 객체가 게임 이벤트에 응답할 수 있도록 한다.

엔티티는 다음 4가지 유형으로 세분한다.

  a. 엔티티 - 게임 재생 조건 또는 시각적 설정(예: 조명, 볼륨, 카메라, 물리 객체)을 설정하고 만드는 데 사용되는 일반 개체

  b. 지오메트리 (기하학적) 엔티티 - 지오메트리 메쉬가 부착된 엔티티

  c. 파티클 엔티티 - 한 레벨 내에서 생성 및 배치되는 파티클 시스템

  d. 아치형 엔티티 - 기존 엔티티 속성에 따라 사용자가 정의한 사용자 정의 엔티티

2. 브러쉬 - 3D 메쉬 데이터로만 구성된 객체. 브러쉬는 엔티티의 동작 요소는 포함하지 않는다.

3. 화이트박스 디자이너 객체 - 러버야드 화이트 박스 디자이너 모델링 도구로 만들어진 객체 (브러쉬와 유사함)

Step 3 : 에디터 레이아웃


에디터 레이아웃

1. 메인 메뉴 - 모든 기능 및 설정

2. 에디터 툴바 - 가장 일반적으로 사용되는 툴 및 에디터

3. 뷰포트 헤더 - 원근 뷰포트에 대한 검색바 및 디스플레이 옵션

4. 원근 뷰포트 - 레벨의 3D 환경 뷰

5. 뷰포트 컨트롤 - 선택된 객체의 컨트롤, 네비게이션 속도 옵션 등의 뷰포트 기능

6. 콘솔 - 에디터 및 게임 데이터의 입력과 출력

7. 롤업바 - 원근 뷰포트의 컨텐츠를 구축하고 관리하기 위한 객체 및 엔티티 접근

  - 룰업바에 포함되는 탭

Step 4 : 필수 도구


럼버야드 에디터의 필수 도구

1. 선택, 이동, 회전, 스케일

  a. 선택

선택할 객체 위에 마우스를 올리면 노란색으로 표시되고 커서가 +로 바뀔때 마우스 왼쪽 클릭

  b. 이동

객체를 선택한 후 원하는 X,Y,Z축 방향의 선을 클릭 후 드래그

  c. 회전

객체를 선택한 후 원하는 X,Y,Z축 방향의 원을 클릭 후 드래그

  d. 스케일

객체를 선택한 후 원하는 X,Y,Z축 방향의 선을 클릭 후 드래그

  e. 선택 단축키

객체를 선택한 후 키보드 입력 단축키로 작업

선택 - 1

이동 - 2

회전 - 3

스케일 - 4


2. 스냅 그리드

스냅 그리드는 객체를 움직일 때 그리드를 사용하여 스냅이 가능하다.

스냅 그리드는 기본적으로 켜져 있으며, 에디트 툴바에서 클릭하여 끄고 켤 수 있으며 사이즈 또한 조정 가능하다.

객체 선택 후 2(이동)를 입력하면 스냅 그리드의 사이즈를 확인 가능하다.

3. 스냅 엔글

스냅 엔글은 물체를 회전할 때 엔글을 이용하여 설정한 스냅 엔글(회전각) 단위로 회전이 가능하다.

객체 선택 후 3(회전)을 입력하면 스냅 엔글의 설정각을 확인할 수 있다.

4. 지형 팔로우 및 오브젝트 스냅

지형 팔로우와 오브젝트 스냅 옵션을 사용하면 X,Y,Z축 또는 평면을 따라 이동하는 대신 지형 피쳐를 따라 이동할 수 있다.

다음 온션을 선택하면 지형을 따라 어느 방향으로든 객체가 자유롭게 이동할 수 있으며 객체는 지형에 따라서 자동으로 조정된다.

Step 5 : 3D 레벨 네비게이션


럼버야드의 뷰포인트 컨트롤은 FPS 게임과 유사하게 되어 있다.

WASD : 앞뒤좌우 방향 이동

마우스 휠 클릭 후 드래그 : 위아래좌우 방향 이동

마우스 휠 : 화면 확대 / 축소

마우스 우측 클릭 후 드래그 : 시야 각도 이동

Step 6 : 에디터


View -> Open View Pane

Step 7 : 디스플레이 옵션 및 설정


1. 원근 뷰포트 옵션

뷰포터 헤더를 마우스 오른쪽 클릭하여 설정

2. 도움말 보이기 전환

우측 상단의 도움말 아이콘을 클릭

3. 디스플레이 정보 전환

우측 상단의 디스플레이 정보 아이콘을 클릭

4. 네비게이션 속도 설정

하단의 속도를 조정

.1 : Slow

1 : Normal

10 : Fast

5. AI/물리엔진 전환

하단의 AI/Physics 버튼 클릭

Step 8 : 레이어


룰업바의 레이어 탭은 레벨을 구축할 때 만들어지는 대량의 컨텐츠들을 관리하는데 도움을 준다.

레이어 리스트에서 레이어의 생성, 이름 변경, 저장, 추출이 가능하다.

또한 Ctrl + Drag를 사용하여 원하는 위치에 정확하게 배치하여 레이어를 중첩된 그룹으로 구성할 수 있다.



Step 9 : 자동 백업


Edit -> Editor Settings -> Global Perferences -> Files -> Auto Backup -> Enable 선택



Refernce


[럼버야드 튜토리얼] https://gamedev.amazon.com/forums/tutorials

[개체와 객체의 차이] https://m.blog.naver.com/PostView.nhn?blogId=zzu0e&logNo=220689973139&proxyReferer=https%3A%2F%2Fwww.google.com%2F

+ Recent posts