멀티 스레드와 std::atomic 객체 공부 - 1

멀티 스레드 환경에서 공유 자원은 항상 mutex의 lock - unlock 을 통해 임계 구역을 만든 후 다뤘었습니다. 그러다가 Lock-free 라는 개념을 접했고 std::atomic 객체를 사용해 보면서 여러 스레드가 동시에 공유 자원에 접근하게 된다면 어떻게 보일지 다시 생각해 보게 됐습니다. 🔍 원자성 💡 Quotation 원자성(原子性, atomicity)은 어떤 것이 더 이상 쪼개질 수 없는 성질을 말한다. 어떤 것이 원자성을 가지고 있다면 원자적(atomic)이라고 한다. 어떠한 작업이 실행될 때 언제나 완전하게 진행되어 종료되거나, 그럴 수 없는 경우 실행을 하지 않는 경우를 말한다....

2025년 10월 10일 · 5 min · 933 words · JongBin

멀티 스레드와 std::Atomic 객체 공부 2

🔬 단순 카운트 테스트 (std::atomic vs mutex) 스레드: 12개 스레드당 카운팅: 5천만개 std::atomic 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 #include<iostream> #include<iomanip> #include<atomic> #include<thread> #include<mutex> #include<chrono> #include<vector> const size_t THREAD_NUM = 12; const size_t COUNT_NUM = 50'000'000; std::atomic<int> atomic_counter(0); void increse_counter_with_atomic(std::memory_order mo) { for(size_t i = 0; i < COUNT_NUM; i++) { atomic_counter....

2025년 10월 10일 · 3 min · 531 words · JongBin

Flutter 환경 구성하기

💡 Quotation 플러터(Flutter)는 구글이 출시한 오픈 소스 크로스 플랫폼 GUI 애플리케이션 프레임워크이다. 안드로이드, iOS, 윈도우즈, 리눅스 및 웹용 애플리케이션과 구글 퓨시아용 앱의 주된 소스코드로 사용된다. 옛날에는 안드로이드 앱을 만들려면 Java 코드로, IOS 앱을 만들려면 Object-C 또는 Swift 를 사용해서 만든 것 같았는데 찾아보니 하나의 코드로 모바일 심지어 웹 까지 만들 수 있는 프레임워크가 있다니 감탄하며 사용해 보려고 합니다. 플러터가 출시된지는 현재 기준으로 8년이 넘었네요.. 빠르게 개발 환경을 구성해 보도록 합시다....

2025년 09월 17일 · 2 min · 222 words · JongBin

유니티 Physic Material 사용하기

유니티 Physic material 사용하기 💡 Physic Material 은 충돌하는 오브젝트의 마찰 또는 바운스 효과를 조정하는 데 사용합니다. - Unity document Player 객체의 조작감을 손보고 있었는데 도저히 원하는 조작감이 나오지 않아 여러가지 찾아보던 중 Physic material 이라는 것을 알게 되어 글로 남기려고 합니다. 😭 Collider component 물리 재질은 콜라이더 컴포넌트에서 추가할 수 있으며 기본값이 아닌 다른 재질로 설정하고 싶다면 Physic material 을 새롭게 만들어서 추가하면 적용됩니다. 😎 🚀 Physic material 물리 재질에는 다음과 같은 속성이 있습니다....

2025년 04월 26일 · 2 min · 221 words · JongBin

블렌더에서 모델링 후 유니티에서 불러오기

최근 유니티 엔진으로 3D 게임을 제작하고 있습니다. 캐릭터나 지형들을 직접 모델링하기 위해 블렌더를 사용하기로 했고 블렌더에서 모델링 된 오브젝트를 유니티에서 사용하기 위해 설정해야 하는 것들을 정리해봤습니다. Apply transform 블렌더에서 오브젝트 모드와 에디트 모드가 있고 각 모드에서 위치, 각도, 크기를 수정할 수 있습니다. 처음 모델링했을 때 두 가지 모드를 번갈아 가면서 Transform을 조정하였는데 사실 두 가지 모드는 큰 차이가 있습니다. 💡 오브젝트 모드 - 해당 오브젝트 그 자체를 수정하는 것 (Mesh 수정 X) - 위치 변경 시 Origin 자체가 이동됨...

2025년 04월 19일 · 1 min · 207 words · JongBin