분류 전체보기 538

Docker 컨테이너와 이미지의 개념과 강점 알아보기

Docker series [ x ] Docker 개념정리 포스팅 [ - ] Docker 실습 포스팅 [https://jizard.tistory.com/324] 컨테이너 Container Docker는 LXC라는 컨테이너 기술에 기반한 상위 레벨의 컨테이너 기술이다. LXC는 Linux Container의 약자로, 단일 리눅스 시스템에 동작하고 있는 프로세스를 격리시켜 독자적 환경을 구축할 수 있게 해준다. Host OS와 격리된 환경을 만들어 준다는 점에서 가상 머신(Virtual Machine)과 유사하지만, 약간의 차이점이 있다. VM을 사용하여 하나의 서버에서 여러 애플리케이션을 구동하는 방법은 Host OS 위에 여러 Guest OS를 띄워서 구성하는 것인데, Hypervisor는 각각의 Gues..

마인크래프트 서버 최적화 방법 (Can't keep up! Is the server overloaded)

마인크래프트 서버를 운영할때, 분명 하드웨어 스펙이 충분한데도 사람이 들어오면 버벅거리거나 "Can't keep up! Is the server overloaded?" 메세지를 뱉어내며 서버가 고통스러워 하는 순간이 있다. Java에서 Garbage Collector가 동작하는 순간에는 GC를 실행하는 쓰레드를 제외한 나머지 쓰레드가 모두 작업을 멈추는 Stop the world 현상이 일어난다. 이는 게임 플레이 중에는 버벅임으로 이어진다. 그렇기 때문에 불필요한 GC가 일어나지 않도록 하거나 GC가 효율적으로 수행될 수 있도록 튜닝이 필요하다. 한 마인크래프트 서버 관리자 Aikar는 자신이 수년간 서버를 운영하며 최적화된 Java Flag 설정을 공유했는데, 이를 Aikar Flags라고 한다. A..

[GAME PASS] 단돈 1,000원으로 마인크래프트 하는 법

구독형 게임 스트리밍 서비스, Microsoft GAME PASS Microsoft GAME PASS 가입 주소: https://www.xbox.com/ko-KR/xbox-game-pass/pc-game-pass 마이크로소프트에서 PC용 Xbox Game Pass를 약 3개월간 1,000원에 이용할 수 있는 프로모션을 진행중이다. Xbox Game Pass는 게임 스트리밍 서비스로, 쉽게말해서 넷플릭스의 게임판이라고 보면된다. Xbox 콘솔 유저들뿐만아니라 Windows 컴퓨터로 게임을 즐기는 사람들이라면 수백개의 게임들을 월 결제로 구독하여 플레이할 수 있다. 그 라인업중에는 스타듀밸리, 심즈, 피파, 용과같이 시리즈 등등도 있지만 초갓겜 마인크래프트!가 포함된다. 그것도 Java Edition, Be..

[Unity] 벡터의 내적 Vector2D, Vector3D

벡터는 크기(Magnitude)와 방향(Direction)을 표현하는 값으로, 주로 화살표를 통해 나타낸다. 그림에서의 벡터는 원점에서 부터 P2(12, 5)로 방향성을 띄고 있으며, 백터의 크기는 피타고라스 정리를 통해 계산하면 13이된다. Vector2 v1 = new Vector2(12, 5); Debug.Log(v1.magnitude); // 13 움직이는 물체는 그 속력(Velocity)이 있는데, 이 속도 역시 벡터로 표현 가능하다. Fredrick은 현재 (5, 6)에 위치해있고, 1시간에 (12, 5)만큼 이동하는 속력를 가지고 있을때, Fredrict의 1시간 뒤 위치를 계산하기 위해서는 Fredrick의 현재 위치 벡터 값과 Fredrick의 속력 벡터값을 더하면 된다. Vector2 ..

[운영체제] 프로그램, 프로세스, 스레드 파헤치기

프로그램 디스크에 저장되어있는 실행 코드. 프로세스 프로그램이 실행되어 메모리에 적재된 상태로, 실행중인 프로그램을 프로세스라고 한다. 프로그램과는 다르게 생명주기를 가진다. Windows에서는 tasklist 명령어를 이용하면 실행중인 프로세스의 PID, 이름, 세션 메모리 사용량을 볼 수 있다. 리눅스에서는 ps 명령어를 이용하면 된다. 프로세스는 독립된 메모리 영역을 할당 받는다. 고정된 크기의 CODE, DATA, BSS 영역과, 동적인 크기의 HEAP, STACK으로 구성되어있다. 프로세스는 독립된 메모리 영역을 할당받았기 때문에 프로세스 간의 변수나 데이터 공유는 불가능하다. 프로세스간 통신, IPC(Inter-process communication)을 위해서는 별도의 매커니즘이 필요하게 된다..

비트코인(Bitcoin)으로 알아보는 암호화폐의 원리 - 작업증명(Proof of work)

신뢰! 신뢰! 신뢰! 비트코인은 그저 데이터에 불과한데 어떻게 화폐로서의 기능을 할 수 있을까? 화폐는 기본적으로 신뢰를 바탕으로 만들어졌다. 통용되는 종이 화폐도 신뢰성있는 기관인 중앙 정부가 인정했기때문에 가치를 가진다. 신뢰 없이는 5만원권 뭉치도 그저 이쁜 종이쪼가리에 불과하다. 비트코인은 기존의 화폐처럼 발행과 결제가 중앙 장부나 은행, 카드사 등 특정 기관에 집중되어있지 않고, 개개인에 분산되어있다. 사기꾼 천지인 이 세상에서 어떻게 서로가 서로를 믿게 할까? 최초의 암호화폐인 비트코인은 암호화와 블록체인을 통해 이러한 탈중앙화(Decentralized)된 금융거래를 가능케 했다. 유튜브 3Blue1Brown의 라는 영상 내용을 바탕으로 비트코인이 했던 고민들을 같이 살펴보자. 앨리스, 밥, ..

지하철에서도 쓸 수 있는 게이밍 헤드셋: RAZER BARRACUDA X 리뷰

블랙프라이데이에 아무것도 안사고 놓칠 수 없지! 레이저 바라쿠다 X를 주문했다. 이것 저것 할인 받아서 62,000원 가량에 샀는데, 정가는 13만원대이다. 지난 지스타를 다녀왔을때 레이저 반값 세일 쿠폰을 받아서 백팩을 주문했는데, 너무 깔끔하고 마음에 들어서 이 브랜드를 좋아하게 되었다.(하지만 너무 비싸...) 언박싱 박스를 곧바로 뜯어보면 아이스크림 봉지에서 멋진 레이저 로고가 새겨져있는 헤드셋이 나온다. 헤드셋 거치대도 살걸! 헤드셋 케이스도 살걸! 이라는 생각뿐... 개별 포장되어있는 추가 구성품은 다음과 같다. 1. 헤드셋 충전용: USB-A to USB-C 케이블 2. 수신기를 꽂을 공간이없을때 확장용: USB-A to USB-C (암) 익스텐더 3. 3.5mm AUX 케이블 ㄱ 자형 4...

나/리뷰 2021.12.04

[안드로이드] BottomSheetBehavior로 차이 카드 앱 처럼 UI 구성하기

어? 이거 좋다! 차이카드에는 올려서 부스트하기 기능이있다. 아래에서부터 핸들을 쭉 땅겨서 부스트가 작동하도록하는 것인데... 플레이오에서 레벨업 페이지와 내역페이지가 리스트로 죽 늘어진 레이아웃을 보고...차이처럼 구성해보는 것은 어떨까 건의드렸다. 성능상의 문제가 있기도 했지만, 작은 폰을 쓰는 유저들은 아래에 내역이 있는지 조차 모를 확률도 있었다. (ㅋㅋㅋ) 호기롭게 건의했지만 혼자서 공부하다보니 저런 레이아웃이 어떻게 구현되어있고, 뭐라고 검색해야 할지도 몰랐는데 해답은~ BottomSheet이었다. 그동안 BottomSheet은 BottomSheetDialog로만 이용해봐서 일반 뷰에서 쓰는건 처음이었는데, behavior만 설정해주면 간단히 멋진 레이아웃을 구현할 수 있었다. 다음 화면과 같..

adb에서 쉽게 딥링크(Deeplink) 열기 / 인텐트(Intent) 전송

딥링크 열기 adb shell am start -d "rally://accounts/Checking" -a android.intent.action.VIEW Action을 가진 액티비티 실행 -a 옵션 뒤의 액션을 가지고 있는 액티비티가 실행된다. adb shell am start -a android.intent.action.MAIN 패키지를 지정한 실행 -p 옵션 뒤에 패키지를 설정하면 해당 패키지에서 실행된다. adb shell am start -a android.intent.action.MAIN -p com.example.app 액티비티 실행 -n 옵션 뒤에 컴포넌트 이름을 적어준다. adb shell am start -a android.intent.action.MAIN -n com.example.a..