GF (104) 썸네일형 리스트형 유닉스 UN-A1610 분해/수리 + 사용 후기 유닉스 헤어드라이어 UN-A1610을 오랫동안 사용중이다. 최근 스위치가 헛돌기 시작하면서 온풍을 사용할 수 없게 되었다. 그냥 버리고 새걸 사기에는 아까워서 분해해보기로 했다. 그리고 고쳐버렸다. (아마 UN-A1690도 같은 구조일 것이다.) 먼저 손잡이 부분의 나사 2개를 풀어준다. 나사구멍은 고무로 깔끔하게 막혀있는데, 바늘을 꽂아서 당기면 아주 쉽게 뺄 수 있다! 나사를 제거하면 틈을 파고들어 분해한다. 어디를 공략하더라도 문제는 없다. 껍데기를 분해한 모습. 전원으로부터 몇가닥 전선이 나와서 스위치(갈색 네모)를 지나고 있다. 갈색 스위치를 편의상 내부 스위치라 하고, 이와 맞물리는 검은색 스위치를 외부 스위치라 하자. 우리는 외부 스위치를 위/아래로 슬라이드 함으로써 이와 맞물린 내부 스위치.. [C/C++/C#] 멀티스레드를 위한 Mutex, Interlocked, 그리고 ABA Problem 멀티스레드 프로그래밍에서 여러 스레드가 한 변수의 값을 동시에 변경하고자 하는 상태를 경쟁상태(Race Condition)라고 한다. 이때, 값을 읽고 새 값을 대입하는 과정을 원자적(atomic)으로 진행하지 못하면 충돌이 발생한다. 이를 해결하는 방법은 여러가지가 있다. 여기 C++과 C#으로 각각 구현한 코드를 알아보자. C/C++ 아래의 코드는 C/C++에서 Lock-free로 단일 연결 리스트(Linked List)를 구현한 예제의 일부다. #include #include #include #include using namespace std; #define NodeAddress unsigned long long #define NodeAddressMask 0x000FFFFFFFFFFFFF #defi.. [c/c++] Windows에서 pthread 사용하기 Windows에서 Visual Studio로 C/C++ 개발을 하던 중, pthread를 사용할 일이 생겼다. 그래서 pthread 파일을 설치해야 하는데, 크게 2가지 방법이 있다. 나는 2가지 방법을 모두 시도했는데, 입문자에게는 2번째 방법이 더 쉬운 것 같다. 방법1 ftp://sourceware.org/pub/pthreads-win32 에서 pthread 관련 파일을 다운받고 환경설정을 직접하는 방법. 이 방법은 인터넷에 'windows pthread 설치' 라고 검색하면 많이 나오니까 나중에 작성하겠다. 방법2 vcpkg를 이용하는 방법. 먼저, 원활한 설치를 위해 Visual Studio Installer를 통해 언어팩(영어)를 설치한다. 시간이 꽤 걸린다. 이제 vcpkg를 설치한다. ht.. 하노이 타워의 원판 이동 횟수 하노이 타워에 간단한 코드는 https://gunhoflash.tistory.com/41 참고. 일반적인 하노이 타워 문제에서, 한 기둥에 있는 n개의 원판을 다른 기둥으로 완전히 이동시키는 데 필요한 원판 이동 횟수를 F(n) 이라 할 때, F(n)을 n에 대한 식으로 나타내보자. 먼저, F(0) = 0, F(1) = 1 이다. 자연수 n에 대해, F(n) = F(n - 1) + 1 + F(n - 1) = 2F(n - 1) + 1 이다. 따라서, F(n) = 2F(n - 1) + 1 = 2(2F(n - 2) + 1) + 1 = 4F(n - 2) + 3 = 4(2F(n - 3) + 1) + 3 = 8F(n - 3) + 7 = ... = 2^((n - 1) - 1)(2F(n - (n - 1)) + 1) +.. [Ubuntu 16.04] redirect port Ubuntu 16.04에서 port를 redirect하는 방법. AWS EC2 설정하던 중 포트 80을 8080으로 redirect 했고, 그 방법을 적었다. 80을 8080으로 redirect 설정 $ iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 80을 8080으로 redirect 설정 제거 $ iptables -D PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 iptables의 규칙 목록 확인하기 $ iptables -t nat -L 시스템 재부팅 후에도 자동으로 적용되게 하기 iptables-persistent 설치 .. [GCC with MinGW] VS Code에서 C 컴파일, 빌드 VS Code Docs 를 참고했다. 아래 설치과정은 Windows10 64bit를 기준으로 한다. 먼저 VS Code에서 C/C++ 확장을 설치한다. MinGW-w64 설치파일을 다운받는다. 다운받은 설치파일(.exe)을 실행하여 설치를 시작한다. Settings는 다음과 같이 선택했다. 이 글을 쓰는 현재 최신버전은 8.1.0이다. 설치경로를 설정한다. 나는 기본값으로 두었다. 조금 있다가 환경변수 등록을 해야 하므로, 이 경로를 까먹지 않으면 좋겠다. 설치완료를 기다린다. 시간이 꽤 걸린다. 이제 환경변수를 등록해야 한다. 키보드에서 Windows 또는 Windows + S 를 누르고, '환경'을 타이핑하면 나타나는 '시스템 환경 변수 편집'을 선택한다. [시스템 속성] 창이 뜨면, 맨 아래의 [환.. [UOSTime] iconv를 iconv-lite로 어쩌다보니 node와 npm을 업데이트 하게 되었고, iconv 모듈을 업데이트 해야하게 되었다. 하지만 iconv는 설치 과정에서 다양한 오류를 내었다.. python, visual studio, node-gyp, windows-build-tool 등... (구글링 해보면 관련 글이 정말정말 많다) 결국 몇 시간을 보내다가 iconv-lite를 사용하기로 바꿨다! 저번에도 같은 일로 많은 시간을 쏟았는데, 다음부터는 마음이 편할 것 같다. UOSTime 업데이트 계획 나는 현재 서울시립대학교 시간표 관리 서비스 UOSTime을 개발/관리 중이다. UOSTime은 08학번 선배님이 만드신 것으로 알고 있다. 그것이 이후 다른 선배님들에 의해 계속해서 개선되어왔고, 나는 2017년 말부터 팀에 합류했다. 내가 합류했을 당시, UOSTime은 완전히 새롭게 개발될 계획이었다(서버 작성 언어도 기존 PHP에서 Node.js로 변경되었다). 나는 프론트엔드를 맡았고, 나를 포함한 총 3명의 학우가 선배들의 도움을 받아 개발을 시작했다. 그렇게 2018년 8월, 새 UOSTime이 출시했다. 같이 UOSTime을 개발했던 두 선배는 이후 자연스레 졸업 및 취직을 했고, 그때부터는 나 혼자 간단한 유지보수 및 업데이트를 진행해오고 있다. 출시 이후로 UOSTime은 많은 것이 변.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 13 다음