본문 바로가기

전체 글839

Git ] 이전 커밋에서 branch 생성하기 1. 이전 커밋 로그를 확인 git log --oneline 2. 현재 브랜치 확인 git branch 3. 특정 커밋으로부터 새로운 브랜치 생성 git branch ex) git branch feature 9a124ef 4. 새로운 브랜치로 전환 git checkout ex. git checkout feature git checkout 명령어를 사용해 브랜치를 전환하면 해당 브랜치의 헤드로 이동하면서 작업 디렉토리의 파일들도 해당 브랜치의 최신 커밋 상태로 업데이트 된다. 위 경우에는 이전 커밋으로부터 새로운 브랜치를 생성했기 때문에 새로운 브랜치의 HEAD는 이전 커밋을 가리키게 되므로 작업 디렉토리가 해당 커밋의 상태로 변경된다. 혹은 아래 방법으로 위 두 단계를 한번에 할 수 있다. # 새로운 브.. 2024. 1. 16.
성남시 주정차단속 문자알림서비스 성남시 주정차단속 문자알림서비스  http://parkingsms.seongnam.go.kr/WizshotCarControl/new/index.php  거주지와 상관없이 관내를 운행하는 차량에 해당한다.       지역별 온라인 신청방법 http://parkingsms.wizshot.com/www/contents/join_online.php 2024. 1. 14.
애드센스 ] 싱가포르 세금 정보 제공 + 납세자 거주지 증명서 발급 수입액이 100불이 넘었는데 지급이 안되길래 오랜만에 애드센스에 들어가 보니 아래와 같은 이슈로 지급이 홀딩되고 있었다.  애드센스 > 지급 > 지급 정보     아래와 같은 경고 문구가 뜬다. 판매 대금 지급의 지연을 방지하고 정확한 금액이 세금으로 원천징수될 수 있도록 가능한 한 빨리 싱가포르 세금 정보를 제공해 주세요. 세금정보 추가 클릭       세금정보 추가 클릭      양식 시작 클릭    비즈니스 정보 > 개인/개인 사업자 싱가포르에 고정 사업장이 있나요 ? > 아니오 해외 공급자 등록 제도에 따라 싱가포르 상품서비스세(GST)를 등록했나요? > 아니오         면세 대상인가요? 여기서 방법이 두 가지로 나뉜다.  1. 예를 선택하고 납세자 거주지 증명서 제출2. 아니오를 선택하고 .. 2024. 1. 13.
애드센스 ] 미국 세금 정보 양식 제출 애드센스 미국 세금 정보 양식 제출하기  애드센스 > 지급 > 지급 정보     설정 > 설정 관리 결제 프로필 > 미국 세금 정보 > 편집 버튼 클릭하여 세금 양식 시작   계좌 유형은 무엇인가요? > 개인 미국 시민 또는 거주자인가요? > 아니요 W-8 세금 양식 유형을 선택하세요. > W-8BEN  W-8BEN 양식으로 이동 클릭       수익권자에 해당하는 개인의 이름 > 영문 대문자로 입력 시민권을 보유한 국가/지역 > 대한민국 선택  다음 클릭     거주 국가/지역 > 대한민국 도/시 > 도/시 선택 시/군/구 > 시/군/구 선택 주소 > 구 선택(선택사항) 상세 주소 > 네이버 영문 주소 변환을 사용하여 영문 주소 입력 동, 호 등 > 몇 동, 몇 호 입력 우편번호 > 우편번호 입력  우.. 2024. 1. 12.
bulkfilechanger ] 파일 생성 / 수정 / 액세스 날짜 임의로 수정하기 Freeware인 BulkFileChanger 를 다운로드 한다. https://www.nirsoft.net/utils/bulk_file_changer.html BulkFileChanger: Change date/time/attributes of multiple files BulkFileChanger v1.72 Copyright (c) 2010 - 2021 Nir Sofer See Also NK2Edit - Edit, merge and repair the AutoComplete files (.NK2) of Microsoft Outlook. FolderTimeUpdate - Update the 'Modified Time' of every folder according the latest modified t.. 2024. 1. 11.
TCP/IP stack TCP/IP stack TCP/IP 스택이라고 하면 전송 제어 프로토콜인 TCP와 인터넷 프로토콜인 IP, 단일 프로토콜을 말하는게 아니라 이를 포함하여 여러 프로토콜로 구성된 프로토콜 스택이다. OSI 모델과 비교될 수 있으나 OSI 모델이 개념적인 이해를 돕기 위해 사용된다면 현장에서 실제로 사용되는 것은 TCP/IP 스택이다. OSI Model과 TCP/IP stack의 비교 TCP/IP stack은 Application, Transport, Internet, Network Access의 4계층으로 구성되며 위와 같이 OSI Model의 7 layer와 매핑될 수 있다. TCP/IP stack에서 두 호스트 간 커뮤니케이션 시 PDU(Protocol Data Unit)를 주고받게 되는데, PDU 대.. 2024. 1. 10.
CAN 통신의 ISO 표준 CAN (Controller Area Network) 통신의 표준은 주로 ISO 11898 시리즈에서 파생되어 다양한 부분에서 여러 표준이 정의되어 있는데 크게 CAN 트랜시버에 적용되는 물리계층 표준과 CAN 컨트롤러에 적용되는 데이터링크 계층 표준으로 나뉠 수 있다. 물리계층 표준: ISO 11898-2: 고속 CAN(CAN High-Speed)의 물리 계층을 정의한다. 차량 내 통신에서 주로 사용되며, 데이터 전송 속도는 최대 1 Mbps이다. ISO 11898-3: 저속 CAN(CAN Low-Speed)의 물리 계층을 정의한다. 주로 차량의 간단한 네트워크 및 저속 통신에 사용되며 Fault Tolerant(내고장성, 결함 허용) 특징을 가지고 있다. 데이터 링크 계층 표준: ISO 11898-1.. 2024. 1. 9.
Ethernet 물리 계층의 표준 IEEE에서 정의하는 주요 Ethernet 물리계층의 전송속도별 구분 Ethernet (10BASE-T) : IEEE 802.3에서 정의된 최초의 Ethernet 표준으로 10 Mbps의 속도를 지원한다. 4가닥의 UTP (Unshielded Twisted Pair) 케이블을 사용하며, 최대 케이블 길이는 100 미터이다. Fast Ethernet (100BASE-T) : IEEE 802.3u에서 정의된 표준으로 100 Mbps의 속도를 지원한다. 역시 4가닥의 UTP 케이블을 사용하며, 최대 케이블 길이는 100 미터이다. Gigabit Ethernet (1000BASE-T) : IEEE 802.3ab에서 정의된 표준으로 1 Gbps의 속도를 제공한다. Cat 5e, Cat 6, 또는 Cat 6a의 8.. 2024. 1. 8.
StarUML ] 텍스트 줄바꿈(new line) 하는 법 단축키 Ctrl + Shift + W 사용 또는 속성에서 Format - Word Wrap 체크 이렇게 하면 박스의 크기를 flexible하게 조절할 수 있고 텍스트의 경우 박스의 너비를 넘어가는 경우 줄바꿈 된다. 2024. 1. 7.
파워포인트 각주 다는법 각주 달 텍스트를 드래그하여 선택 후 우클릭 - 글꼴 효과에서 위 첨자 체크 후 확인 그럼 아래와 같은 모양으로 각주가 달린다. 단축키는 Ctrl + Shift + = 2024. 1. 6.
파워포인트 4분할 여백없이 꽉차게 인쇄하기 보통은 파워포인트 인쇄하면에서 4슬라이드로 변경후 출력하는데 그렇게 하면 여백이 너무 크다. 파워포인트에서는 반드시 '전체 페이지 슬라이드' 옵션으로 그냥 두고 프린터 속성에 들어간다. 프린터마다 설정방법이 약간씩 다를 수 있지만 대부분의 프린터는 '면당 여러 페이지 인쇄' 기능을 제공한다. 아래는 삼성 프린터 기준 설정 방법이다. 이렇게 인쇄하면 한페이지에 4분할으로 여백없이 꽉차게 인쇄되는 것을 볼 수 있다. 2024. 1. 5.
파워포인트 꺾인 연결선 쉽게 그리는 팁 예를들어 아래 그림에서 파란색선을 그리고 싶다고 할때 그냥 꺾인 연결선을 클릭해 만들기란 쉽지 않다. 이때 사용할 수 있는 두 가지 방법이 있다. 첫번째 방법 연결선 시작과 끝지점에 임의의 사각형을 만들어 둔다. 그리고 꺾인 연결선을 클릭해 그린 다음 사각형을 지워주면 완성 두번째 방법 도형중에 자유형을 클릭한다. 자유형은 그냥 그리면 삐뚤빼뚤하지만 shift를 누른채로 그리면 0도, 45도, 90도 등의 직선을 그릴 수가 있다. 자유형을 클릭한 뒤 shift를 누른채로 시작점과 연결점, 끝점을 찍어 아래와 같은 자유형 선을 만든다. 우클릭해서 도형서식에 들어가면 화살표 머리를 달아줄 수 있다. 그 다음 원하는 위치에 크기를 조절해서 가져다 두면 완성이다. 2024. 1. 4.
배경이 투명한 서명 이미지 만들기 (무료) 아래 사이트에서 배경이 투명한 서명 이미지를 무료로 만들 수 있다. https://www.signwell.com/online-signature/draw/ Electronic Signature Software - SignWell Get your documents signed 40% faster with zero-setup electronic signatures. SignWell helps you cut turnaround time and makes it easy for everyone to electronically sign your documents. www.signwell.com 서명을 그리고 SAVE를 선택한다. 자동으로 필기체를 보정해주는 기능까지 있다. Transparent background를 .. 2024. 1. 3.
Windows ] 오래된 파일을 삭제하는 배치 스크립트 오래된 파일을 삭제하는 배치 스크립트 아래는 "logs" 디렉토리에서 최근 30일 동안 수정되지 않은 파일을 모두 삭제하는 목적의 스크립트이다. @echo off cd /d "%~dp0" setlocal enabledelayedexpansion set "target_folder=logs" set "cutoff_date=30" forfiles /p "%target_folder%" /s /d -%cutoff_date% /c "cmd /c if @isdir==FALSE del @file" @echo off : 콘솔에 현재 실행중인 명령을 표시하지 않도록 설정한다. cd /d "%~dp0" : 현재 스크립트가 위치한 디렉토리로 작업 디렉토리를 변경한다. %~dp0가 현재 스크립트 파일의 경로를 나타낸다. set.. 2024. 1. 2.
ARINC 429 waveform ARINC 429 Tx_H, Tx_L 라인을 잡고 파형을 디코딩해보자. 위 사진은 100kbps, odd parity로 Label은 210, SDI는 00, Data 값은 0, SSM은 00인 데이터를 전송한 파형이다. 이전글에도 언급한적 있지만 Label은 MSB first로 전송되고 나머지는 LSB first로 전송된다. Label은 8진수(Octal number)인데 Label 필드가 8 bits이니 2bit, 3bit, 3bit로 끊어읽으면 된다. 즉 여기서 알 수 있는 건 Label의 최대값은 Decimal로 255, Hexa로는 0xFF, Octal로는 377이다. ARINC 429 파형은 RZ 방식이라 스파이크 부분만 보면 되니까 읽기편한 감이 있다. 아무튼 파형에서 Label 필드 부분을 .. 2024. 1. 1.
한글 ] 개요 번호, 새 구역 만들고 새 번호로 시작하기 한글의 개요는 구역이 없으면 새번호를 줄 수 없다. 개요 1 수준으로 새번호를 매기고 싶을 때는 먼저 새 구역을 만들고 새번호로 시작하면 된다. 서식 - 개요 - 개요 번호 모양 '적용 범위'를 새 구역으로 하고 '새 번호로 시작' 체크 작업창 - 개요 보기 로 확인하면 다른 개요 번호 모양으로 새 번호로 시작하는 것을 확인할 수 있다. 2023. 12. 31.
한글 ] 그림/표/개요에 대해 상호참조 기능 사용하기, 상호참조 업데이트 하기 상호참조 기능은 다른 쪽의 그림, 표 등을 현재의 본문에서 항상 참조할 수 있도록 해주는 기능을 말한다. 문서를 편집하다 보면 이런 참조 대상들(그림, 표, 수식, 책갈피, 개요 등)의 위치가 바뀔 수 있는데, 상호 참조를 이용하면 이러한 경우에 쉽게 참조 번호를 한 번에 업데이트 할 수 있다. 예를 들어 아래 상황에서 그림 2에 대한 상호참조 기능을 넣고 싶으면 참조기능을 넣을 곳에 커서를 두고 입력 - 상호참조를 클릭한다. (단축키 Ctrl + K, R) '참조 대상 종류'는 그림을 선택하고 '참조 내용'은 캡션 내용을 선택한 후 '참조 대상 선택'에서 그림 2를 선택한 뒤 넣기를 클릭한다. 아래 그림과 같이 상호참조가 넣어졌다. 그 뒤에 하고싶은 말을 추가해본다. 아래와 같이 중간에 다른 그림을 넣.. 2023. 12. 30.
한글 ] 표, 그림 캡션의 번호 없애기 / 번호 넣기 표 / 그림 캡션에 번호를 매기고 싶지 않은 대상은 우클릭 - 개체 속성 - 기본 탭 - 기타 섹션에서 번호 종류를 없음으로 설정한다. 번호를 매기고 싶은 대상은 번호 종류에서 그림 또는 표를 선택하면 된다. 2023. 12. 29.
TMS320F28388D ] CCS에서 hex 파일 출력하는법 프로젝트 우클릭 - C2000 Hex Utility Enable 'C2000 Hex Utility' 체크 --memwidth, --romwidth 16으로 설정 출력 포맷은 .hex Output Format Options는 Intel hex 선택 만약 hex말고 bin파일로 출력하려면 내가 올린 다른 글을 참고하면 된다. tiobj2bin, mkhex4bin, hex2000 툴을 사용하여 out파일로부터 bin파일을 생성해내는 방법이다. 2023.04.20 - [DSP, MCU/TMS320F2838x (C28x)] - TMS320F28388D ] CSS에서 bin 파일 생성하는 법, filling a hole with 0xFF not 0x00 위 방법 말고 이미 생성된 hex파일을 bin파일로 변경하려면.. 2023. 12. 28.
nssm 사용해서 배치파일을 Windows 서비스로 등록하기 nssm 다운로드 후 압축 해제 https://nssm.cc/download NSSM - the Non-Sucking Service Manager NSSM - the Non-Sucking Service Manager Windows 10, Server 2016 and newer 2017-04-26: Users of Windows 10 Creators Update or newer should use prelease build 2.24-101 or any newer build to avoid an issue with services failing to start. If for some reason you nssm.cc 관리자 권한으로 명령 프롬프트 실행한 뒤 다운로드 받은 nssm.exe 파일이 있는 경로로 .. 2023. 12. 27.
Windows 작업 스케줄러 사용하여 배치파일 자동 실행하기 Windows 작업 스케줄러 사용하여 배치파일 자동 실행하기 작업 만들기 작업 '이름'을 지정하고 '설명'을 추가한다. '사용자의 로그온 여부에 관계없이 실행'에 체크하고 암호를 사용하지 않는다. 권한문제로 실행되지 않을 경우를 대비하여 '가장 높은 수준의 권한으로 실행'에 체크한다. '숨김'에 체크를 하면 배치파일의 콘솔창을 숨긴채 실행할 수 있다. 트리거는 '시스템 시작 시'로 하였다. 동작은 '프로그램 시작'으로 하고 배치파일의 경로를 등록한다. 기타 옵션은 '조건', '설정' 탭에서 설정할 수 있다. 시스템 재시작 후 작업 스케줄러의 작업 목록에서 '마지막 실행 시간'과 '마지막 실행 결과'를 확인할 수 있다. 2023. 12. 26.
윈도우 소켓 ] connect() 함수의 타임아웃은 21초 connect() 함수의 타임아웃 TCP connection은 3-way-handshake에 의해 이루어지는데 클라이언트는 SYN 패킷을 전송한 이후 SYN+ACK를 수신할 때까지 대기하게 된다. 이때, 서버기기가 네트워크에 연결되어 있고 포트가 닫혀있는 경우 서버기기는 SYN+ACK 대신 RST 패킷을 보낼테니 클라이언트는 서버에 연결할 수 없다는 걸 RTT(Round Trip Time)만에 알 수 있다. 로컬네트워크에서 이 시간은 몇 밀리초이지만 인터넷에서는 그 이상이 될 수 있다. 서버기기가 네트워크에 없는 경우 클라이언트는 응답을 받지 못한채 SYN 패킷 전송을 재시도할 것이다. 이 때 재시도 횟수와 타임아웃은 운영체제의 TCP/IP protocol stack 설정값에 따라 달라질 수 있는데 윈도.. 2023. 12. 25.
윈도우 소켓 ] blocking / non-blocking 소켓 사용 시 소켓함수의 리턴 조건 recv() Blocking socket : 수신된 데이터가 없으면 블록되고, MSG_WAITALL 플래그를 사용하면 원하는 크기만큼 도착할 때까지 기다릴 수 있다. Non-blocking socket : 수신된 데이터가 없으면 WSAEWOULDBLOCK으로 즉시 리턴한다. WSAGetLastError() 함수를 사용하여 에러 코드를 확인할 수 있다. TCP / UDP 비교 : 동일하게 Blocking socket에서는 소켓 수신 버퍼에 도착한 데이터가 없으면 블록되고, 소켓 수신 버퍼에 도착한 데이터가 있을 시 이를 응용 프로그램이 제공한 버퍼에 복사한 뒤 리턴한다. send() Blocking socket : 소켓 송신 퍼버에 여유 공간이 없으면 블록되고, 응용 프로그램이 전송 요청한 데이터를 소켓 .. 2023. 12. 24.
IcmpSendEcho IcmpSendEcho 함수는 Windows 운영 체제에서 ICMP 에코 요청을 보내고 응답을 받는 데 사용되는 함수로 주로 네트워크 연결 상태를 확인하거나 호스트의 응답 시간을 측정하는 데 사용됩니다. 📝 ICMP (Internet Control Message Protocol) : 네트워크에서 발생하는 여러 상태 및 오류 메시지를 전송하는 데 사용되는 프로토콜 DWORD IcmpSendEcho( HANDLE IcmpHandle, IPAddr DestinationAddress, LPVOID RequestData, WORD RequestSize, PIP_OPTION_INFORMATION RequestOptions, LPVOID ReplyBuffer, DWORD ReplySize, DWORD Timeout .. 2023. 12. 23.
strchr, strrchr strchr 및 strrchr 함수는 C 표준 라이브러리 함수로 문자열에서 특정 문자를 찾는 데 사용되는 함수들이다. strchr 문자열 앞에서 부터 찾고 strrchr 는 뒤에서 부터 찾는다는 차이가 있다. strchr #include char *strchr(const char *str, int c); 문자열에서 특정 문자 c를 찾아 첫 번째로 등장하는 위치를 반환한다다. 만약 문자 c가 문자열에 없으면 NULL을 반환한다. 사용 예시. #include #include int main() { const char *str = "Hello, World!"; char target = ' '; // 문자열에서 ' '공백문자를 찾기 char *result = strchr(str, target); if (resu.. 2023. 12. 22.
strpbrk strpbrk char *strpbrk(const char *str1, const char *str2); str1: 검색 대상이 되는 문자열 str2: 검색할 문자들로 이루어진 문자세트 반환 값: str1에서 str2에 지정된 문자세트 중 첫 번째로 매치되는 문자의 포인터. str1, str2 둘 다 null terminated string이어야 하고 일치여부 확인시 null 문자는 고려하지 않음. 반환값이 NULL이라면 일치하는 문자를 못찾은 것. 사용 예시 #include #include int main() { // str1에서 첫번째로 나오는 모음문자 포인터를 찾음 const char *str1 = "Hello, World!"; const char *str2 = "aeiou"; char *resul.. 2023. 12. 21.
strcspn strcspn size_t strcspn(const char *str1, const char *str2); str1: 검색 대상이 되는 문자열 str2: 검색할 문자들로 이루어진 문자세트 반환 값: str1에서 str2에 지정된 문자세트 중 첫 번째로 매치되는 문자가 위치한 인덱스, 인덱스는 0부터 시작하며 str1, str2 둘 다 null terminated string이어야 하고 일치여부 확인시 null 문자는 고려하지 않음. 반환값이 strlen(str1)이라면 일치하는 문자를 못찾은 것. 사용 예시. #include #include int main() { // str1에서 첫번째로 나오는 모음을 찾음 const char str1[] = "Hello world!"; const char str2[].. 2023. 12. 20.
loop unroll loop unroll 루프 언롤은 반복문을 효과적으로 최적화하는 기법 중 하나이다. 이 기법은 반복문의 반복 횟수를 줄여 성능을 향상시키는 것을 목표로 한다. 일반적으로 루프 언롤은 컴파일러 최적화에 의해 자동으로 수행되기도 하지만, 때로는 프로그래머가 수동으로 코드를 작성하여 성능을 개선하기도 한다. loop unroll 예시 장점 루프 언롤은 분기체크로 인한 오버헤드를 줄여주고 파이프라인을 더 효과적으로 사용할 수 있도록 하여 연속적인 명령어를 병렬로 처리하는데 도움이 된다. 때문에 특정 상황에서는 성능 향상을 가져온다. 단점 반복문 내의 코드를 복사하므로 코드 크기가 증가로 인한 캐시누락이 발생하여 오히려 성능에 안좋은 영향을 미칠 수 있다. 또한 프로그래머가 직접 루프 언롤을 사용했을 때 코드의 .. 2023. 12. 19.
CPU 구조 CPU 구조 ALU (Arithmetic logic unit) : 각종 산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈)과 논리연산(AND, OR, NOT)을 수행하는 회로로 이루어진 하드웨어 모듈이다. Register : CPU 내부에 위치한 기억장치로서, 액세스 속도가 컴퓨터의 기억장치들 중에서 가장 빠르다. 그러나 내부 회로가 복잡하여 비교적 큰 공간을 차지하기 때문에 지정된 용도로만 사용되는 특수 목적 레지스터들과 적은 수의 일반 목적용 레지스터들만이 포함된다. Control Unit : 명령어를 해석하고, 그것을 실행하기 위한 다양한 제어 신호를 순차적으로 발생하는 하드웨어 모듈이다. CPU가 제공하는 명령어들의 수가 많아질수록 Control Unit의 내부 회로는 더 복잡해지므로 최근에는 명령어의 수를.. 2023. 12. 18.
리눅스 커널 Kernel 커널 Kernel 커널은 운영체제의 가장 핵심적인 역할을 하는 부분으로 하드웨어와 응용 프로그램 간의 인터페이스 역할을 한다. CPU, 메모리, 프로세스, 파일시스템, 입출력 등 주요 하드웨어 자원을 관리한다.부팅 시 메모리에 로드된다.항상 메모리에 올라가 있으며 하드웨어와 프로세스를 관리하는 소프트웨어이다.  커널의 주요 기능 커널의 주요 기능은 컴퓨터의 하드웨어 자원을 추상화하여 관리하고, 시스템 콜을 통해 사용자 및 응용 프로그램이 하드웨어 자원에 접근할 수 있도록 하는 것이다. 프로세스 관리 : 물리적 자원인 CPU를 추상적 자원인 Task로 제공메모리 관리 : 물리적 자원인 메모리를 추상적 자원인 Page 또는 Segment로 제공파일 시스템 : 물리적 자원인 디스크를 추상적 자원인 파일로 제공.. 2023. 12. 17.