본문 바로가기

반응형

분류 전체보기

(429)
[C++20] 코루틴(Coroutine) - co_await 안녕하세요. 저번 시간의 [진리는어디에] - [C++20] 코루틴(Coroutine)에서는 C++20에서 새로이 도입된 코루틴의 기본에 대해 알아 보았습니다. 이 포스팅은 지난 과정에 이어지는 내용이므로 저번 포스팅을 한번 살펴 보시고 오시는 것이 이번 포스팅을 이해하는데 좀 더 도움이 되리라 생각합니다. 이번 포스팅에서는 지난 시간에 이어 co_await 키워드에 대해 살펴 보는 시간을 갖도록 하겠습니다. co_await expr co_await는 단항 연산자로써, 코루틴의 실행을 중단(suspend)하고 호출자(caller)에게 제어권을 넘기는데 사용 됩니다. co_await의 피연산자(expr)는 co_await operator를 구현했거나 현제 코루틴의 Promise::await_trasnform..
윈도우 계산기로 삼각함수 구하기 늦은 나이에 수학 공부를 다시 하면서 공학용 계산기를 쓸 일이 잦아 졌습니다. 처음에는 복잡한 공학용 계산기의 인터페이스를 보고 막막했는데 알고 보니 없는 기능 빼고는 다 있는 아주 좋은 물건이더군요. 이번 포스트는 윈도우 공학용 계산기를 이용하여 삼각 함수를 구하는 방법에 대해 알아 보겠습니다. (윈도우 공학용 계산기는 윈도우 실행창(Window + R)에서 '계산기' 또는 'calc'로 검색하시면 쉽게 찾을 수 있습니다.) 1. 공학용 계산기 모드로 변환 왼쪽 상단 빨간 박스의 햄버거 메뉴를 클릭 합니다. '공학용'을 선택 하면 이제 부터 공학용 계산기를 사용 할 수 있습니다. 2. 삼각법 삼각 함수를 이용하기 위해 '삼각법'을 클릭 합니다. sin, cos, tan 등의 삼각 함수를 사용 할 수 있..
[C++20] 코루틴(Coroutine) 1958년 멜빈 콘웨이에 의해 처음으로 개념이 만들어 졌으며 이미 많은 현대 프로그래밍 언어들에서 지원하고 있지만 C++에만 없던 코루틴이 C++20 부터 드디어 지원됩니다. 코루틴이 지원되는 것은 너무도 반갑고 만세를 불러야 하는 일인데, 역시 C++은 C++이었습니다. 유구한 역사와 전통을 자랑하는 '자유를 주는 대신 책임도 니가 져라'라는 C++의 정신 답게 코루틴 활용 방법에 자유를 준 대신, 편리한 사용성을 가져갔습니다. 덤으로 제대로 사용하지 못하는 경우의 책임도 사용자가 져야 합니다. 만일 C#과 파이썬, 자바스크립트와 같은 다른 언어의 코루틴 경험이 있으신 분이라면 무슨 코루틴 한번 쓰기가 이렇게 어렵냐고 생각하실지도 모르겠습니다. 하지만 이 글을 끝까지 읽어 보시면 C++코루틴도 나름 익..
Writing a Windows Service Program 얼마 전 리눅스의 데몬(Daemon)이라는 것에 대해 약간이나마 공부를 해야 할 일이 있었습니다. 그리고 그 과정에서 윈도우에서는 그와 비슷한 서비스라는 것이 있다는 것을 알았습니다. 이번 포스팅에서는 서비스 프로그램을 작성하는 방법에 대해 알아 보도록 하겠습니다. 원문은 코드구루(http://www.codeguru.com)의 'Writing a Service Program(Jonathan Ng)' 을 기본으로 하고 있습니다. 윈도우 서비스란? 윈도우 운영 체제에서 '서비스(services)'라는 것은 일반적으로 시스템 부팅시점 부터 시작해 시스템이 끝나는 시점 까지 그 수명을 같이 하는 프로세스를 가리키기도 합니다. 예를 들어 윈도우 베이스 프로그램과 컴포넌트가 남기는 로그를 기록해주는 '로그 이벤트'..
[C++20] 람다 표현식의 변화 들어가며 이번 포스트에서는 C++20의 람다 표현식에 추가된 사항들을 살펴 볼 것이다. 간략하게 요약하면 아래 다섯 가지 정도로 정리 할 수 있다 : 템플릿 람다 추가 : 람다 표현식에서 템플릿 사용 가능 평가 되지 않은 표현식(unevaluated expression)에서 람다 표현식 사용 가능 캡쳐를 사용하지 않는 람다 표현식에서 디폴트 생성자와 대입 연산자 사용 가능 암시적인 this 캡쳐가 컴파일 시 경고 처리 됨(앞으로 deprecated 될 것이라고 경고) Parametaer Pack 캡쳐 가능 템플릿 람다 표현식(template lambda expression) 처음 살펴 볼 변경 사항은, C++20 부터 람다 표현식에도 템플릿의 사용이 가능해졌다는 것이다(기존 C++17까지는 람다 표현식에..
삼각함수 필자는 수학을 못한다. 학생 시절 시험을 치면 다른 과목에서는 하나, 많이 틀리면 두개 정도 틀렸지만 수학만큼은 하나 아니면 두개 정도 맞을 정도로 수학에 대해서는 잼병이다. 본 포스트는 수학을 못하는 필자가 어떻게 삼각함수를 이해하게 되는지에 대한 과정을 그리고 있다. 정의 삼각함수의 정의로 서론을 시작하고 싶었지만, 머릿글에 언급 했듯이 필자는 수학 잼병이라 위키에 소개된 삼각함수의 정의를 봐도 무슨 말인지 이해를 못했다 : https://ko.wikipedia.org/wiki/%EC%82%BC%EA%B0%81%ED%95%A8%EC%88%98 라디안 나에게는 항상 낮설고 불편하지만, 삼각함수에서 꼭 빠지지 않고 나오는 '라디안'. 우리가 일반적으로 사용하는 60분법을 사용하면 익숙하고 편할 것 같은데..
[C++20] 신규 기능 정리 새로운 문법 지원 콘셉(Concept) - 타입 오버라이딩을 넘어선 타입 속성에 따른 강력한 오버라이드 [C++20] 콘셉(Concept) 코루틴(Coroutine) [C++20] 코루틴(Coroutine) [C++20] 코루틴(Coroutine) - co_await [C++20] 코루틴(Coroutine) - co_yield [C++20] 코루틴(Coroutine) - co_return [C++20] 코루틴(Coroutine) - done() 모듈(Module) [C++20] 당신이 C++20에서 모듈을 써야만 하는 이유(#include와 모듈의 비교) [C++20] 모듈(module) 예제 상수성 지원 : constinit, consteval UTF-8 문자열 지원 : char8_t 신규 std 라이..
[MySQL] InnoDB 엔진에서 쿼리별 잡히는 lock 쿼리별 잡히는 lock에 대해 알아 보기전에 InnoDB의 lock에 대해 먼저 알아 보는 시간을 가져 보려 했지만 워낙 잘 정리가 된 블로그가 있어서 공유한다. 아래의 내용들을 보기 전에 링크 되어 있는 블로그의 글을 먼저 읽어 본다면 많은 도움이 되리라 생각한다. MySQL InnoDB lock & deadlock 이해하기 - www.letmecompile.com/mysql-innodb-lock-deadlock/ SELECT … FROM consistent read 의 경우 transaction isolation level이 SERIALIZABLE이 아니면 lock을 잡지 않는다. LOCKING READ(SELECT … FOR UPDATE, SELECT … LOCK IN SHARE MODE), UPD..
[Unity] Texture2D를 Sprite로 변경 스프라이트 객체를 AssetBundle로 만들고 난뒤 AssetBundle을 통해 스프라이트 객체로 로드를 했는데 로드를 하지 못하고 null을 리턴하는 현상이 발생했습니다. Unity 4.3 버젼에서는 스프라이트는 어셋번들로 빌드하게 되면 텍스쳐로 로드해서 스프라이트로 변환 해야 한다고하는 군요. 그래서 텍스쳐를 스프라이트로 변경하는 방법에 대해서 살짝 짚고 넘어가보도록 하겠습니다. Rect rect = new Rect(0, 0, texture.width, texture.height); sprite.GetComponent().sprite = Sprite.Create(texture, rect, new Vector2(0.5f, 0.5f)); 참 쉽죠?ㅋ 추가 : Sprite Packer를 이용해 패킹한 s..
[C++/C#] CSV 파일 읽기 요즘 집에서 혼자 게임을 만들어 보려고 이것 저것 만지작 거리는 중이다. 게임의 메타데이터(아이템 정보, 몬스터 스탯, 퀘스트 같은 것)들을 엑셀로 관리하고 결과물을 csv 파일로 저장해서 사용할 예정이었다. 하지만... 언제나 그랬듯이 잘 되지 않는다. 요약 거두 절미하고 요약 부터 간다. 인터넷에서 검색 되는 대부분의 CSV 파일 읽기 프로그래밍 예제들은 콤마 대한 이스케이프 처리를 누락하고 있어 CSV 본문에 콤마를 사용 할 수가 없거나, 사용한다면 컬럼 개수가 늘어나 버리는 오류가 있다.이번 포스트에서는 엑셀에서 작성한 UTF8 인코딩 된 csv파일을 읽는 프로그램을 만들 때 흔히 놓치기 쉬운 부분을 살펴 보도록 한다. 엑셀에서 UTF8 csv 파일을 저장하면 UTF8-BOM(파일 앞에 3바이트가..

반응형