목록분류 전체보기 (157)
Coding Memo
본 포스팅은 인프런에 등록되어 있는 Rockiss 님의 강의를 보고 간단하게 정리한 글입니다. C++ 에서도 C11 부터 자체적으로 std에 lock을 지원해주고 있다. 기본적인 lock 기능만 사용할 경우 불편한 점이 몇가지 있다. 1. 표준 mutex로는 재귀적인 lock을 잡을 수 없다. (recursive_mutex가 있긴하다) 2. 메모리를 동시에 쓰거나 읽을 때는 반드시 원자적으로 접근해야하지만, 읽기만 할때는 반드시 원자적으로 접근 할 필요가 없다. (-> 많은 쓰레드들이 동시에 어떤 값을 읽기만 하는 것은 lock이 필요하지 않을 수 있다.) 따라서 위와 같은 불편한 점과 편의를 위해 직접 구현하기도 한다. 구현 핵심 lock을 가지고 있는 쓰레드들을 구분하기 위해 32bit 사용 상위 1..
이전 글: https://minttea25.tistory.com/68 volatile 변수 본 포스팅은 인프런에 등록되어 있는 Rockiss 님의 강의를 보고 간단하게 정리한 글입니다. 변수를 선언 할 때, 타입 앞에 volatile을 붙여서 선언할 수 있다. volatile 변수는 C/C++ 만 아니라 Java 등의 minttea25.tistory.com volatile 변수는 컴파일 시 최적화를 진행하지 않기 때문에 매번 값을 읽고 쓰기 위해 메모리에 접근하는 과정을 포함한다. 이전 글에서는 크게 문제가 될만한 사항이 없는 예제들에 대해서 작성하였지만 이번 글에서는 쓰레드에서 치명적인 문제가 발생할 수 있는 예시들에 작성하였다. 컴파일 최적화에서 어떤 변수에 대해 이 변수가 다른 쓰레드에서 사용을 하..
보호되어 있는 글입니다.
본 포스팅은 인프런에 등록되어 있는 Rockiss 님의 강의를 보고 간단하게 정리한 글입니다. 변수를 선언 할 때, 타입 앞에 volatile을 붙여서 선언할 수 있다. volatile 변수는 C/C++ 만 아니라 Java 등의 다른언어에도 있는 개념이다. volatile 키워드가 붙은 변수는 컴파일러가 코드를 최적화 하는 과정에서 해당 변수에 대한 최적화를 하지 않도록 한다. 즉, 컴파일 과정에서 최적화에서 제외되어 프로그램 실행 시에 매번 값을 확인하러 메모리에 접근하도록 한다. 아래 코드를 실행 시킨다고 하자. int main() { int a = 0; a = 1; a = 2; a = 3; cout
프로젝트 로그인 서버를 AWS에서 실행을 하려고 내 컴퓨터의 터미널에서 SSH를 이용해 원격 접속을 하려고 했으나 'connection: timed out' 에러가 났다. 이 문제를 결국 해결하지 못하고 다른 방법을 생각해내었다. 웹 브라우저의 AWS에서 EC2 인스턴스에 직접 접속은 잘 되었기 때문에, 여기서 인터넷 상의 파일을 직접 다운로드하여 실행시키는 방법을 생각했다. 준비물: wget, unzip(압축파일 풀기 위해), 구글 드라이브 wget 설치 sudo apt-get install wget unzip 설치 sudo apt-get install unzip 1. 서버에서 사용할 파일을 자신의 드라이브에 업로드 한다. (만약 여러개일 경우 zip 파일로 압축한 후에 그 압축파일을 업로드 한다.) ..
본 포스팅은 인프런에 등록되어 있는 Rockiss 님의 강의에서 언급된 내용과 제 생각을 함께 정리한 글입니다. 미리 컴파일 된 헤더 파일 사용 Pre-Complied Header: 포함된 헤더 파일을 미리 컴파일 하여 미리 파일로 저장시켜놓기 때문에, 매번 해당 헤더를 실행이나 빌드시 마다 매번 처음부터 컴파일을 하지 않아도 된다. 즉, 프로젝트가 커지면 커질수록 미리 컴파일 된 헤더 파일을 사용하면 디버그나 테스트를 좀 더 빨리 할 수 있다. 장점: 실행 시 마다 매번 헤더파일을 파싱하지 않아도 되기 때문에 컴파일 시간을 줄일 수 있다. 단점: 해당 헤더 파일의 내용을 바꾸면 변경 후 처음 컴파일 시간이 길어질 수 있다. (무거워 질 수 있다.) 사용 방법은 간단하다. 1. 프로젝트 우클릭 - 속성 ..
***이 글은 계속해서 추가해 작성해 나갈 예정*** 단축키 요약 설명 액터 선택 + w 액터 이동 액터의 이동 기즈모가 나타남; 각 화살표로 해당되는 축으로 이동 시킬수 있고, 2개(직각으로 된 부분은 평면 이동, 가운데 구는 3차원 이동, 참조) q 액터 선택 모드 액터를 선택할 수 있는 마우스 포인터로 바뀜 (좌클릭을 통하여 선택) 액터 선택 후, alt + 이동 액터 복제 액터를 선택한 후, 이동모드(w)일 때, alt를 누른체로 드래그 하면 해당 액터가 복제가 됨 shift or ctrl + 액터 좌 클릭 액터 다중 선택 파일 탐색기에서 여러개 선택하는 것과 마찬가지로 여러개의 액터 선택 가능 (혹은 이런 방법도 있음!) 액터 선택 후, end 액터 바닥에 붙이기 z축 기준으로 액터를 바닥에 붙..
로그인 서버를 구현하는데 문득 mariadb 접속과 쿼리를 위한 모듈을 따로 두고 싶다는 생각이 들어서 query 관련 함수를 만들려 그랬다. 그러나 mysql 모듈의 query 함수는 sync(동기)적이라 다른 함수에서 호출하여 결과값을 반환 해줄 수가 없었다. (다른 방법이 있나????????.... ) 무턱대고 async 함수로 실행해 보았는데 ㅋㅋ - 에러 구글링을 한 결과 mysql 도 async으로 호출할 수 있다는 것을 알았다. https://surprisecomputer.tistory.com/31 [Node.js] mysql을 async/await로 처리하기 1. 서론 node.js 에서 콜백 지옥을 피하기 위해서는 Promise 또는 async/await를 써야 한다. 이때 Promise..