미국세청 IRS Form 1042-S 설명

미국세청 IRS Form 1042-S 설명 영주권자의 경우 세금징수에 있어서 미국 시민권자와 동일하게 취급되지만, 그린카드가 없는 비영주권자의 경우 다른조건의 세금을 적용받는다. 비영주권자 또한 소득에대해 원천징수가 이루어지게 되는데 이것과 관련된 폼이 미국 국세청의 1042-S 폼이며. 앱 개발자들의 경우 애플이나 또는 마이크로소프트가 운영하는 스토어에서 앱판매 수익이 발생하여 해당 수익을 소득으로 지급받은경우 1042-S 폼을 받게되는 경우가 종종 있다. 1042-S 폼이란? 미국 영주권이 없는(non-resident) 외국인 노동자나 학생이 미국에서 일을 해서 소득이 생길경우 해당 소득에 대해 원천세(withholding tax)를 징수하게된다. 일반적으로 원천징수의무자(withholding agent)가 비영주권의 소득자에게 돈을 지급할때 1042-S 폼을 이용하여 IRS(Internal Revenue Service, 미국 국세청)에 신고를 한 후, 이러한 원천징수 내역을 알려주기위하여 해당 신고에 대한 사본(copy)을 소득자에게 발송하게 된다. ...

2014년 4월 23일 · 2분 · 382단어

GCD 튜토리얼

지난 포스트에서 블록(block)의 동작에 대해서 분석해보았는데, 이런 블록들을 이용하여 멀티스레드 프로그래밍을 손쉽게 할 수 있는 방법을 제공하는 GCD (Grand Central Dispatch) 에대해 알아보도록 하자. 본 포스트의 내용은 1 의 내용을 요약하면서 추가적으로 유용한 내용들을 GCD 애플 문서2에서 발췌하여 정리한 내용임을 밝힌다. 디스패치 큐의 종류 컨커런트 디스패치 큐 (concurrent dispatch queue) : 해당 큐 내의 작업들간에 실행 순서는 보장할 수 없다. dispatch_queue_t queue = dispatch_queue_create(“com.letmecompile.concurrentQueue”, DISPATCH_QUEUE_CONCURRENT); 시리얼 디스패치 큐 (serial dispatch queue): 해당 큐 내의 작업들은 큐에 추가된 순서로 하나씩 수행됨을 보장한다. 때문에 시리얼큐는 하나 생성될때마다 스레드가 하나 더 생기기때문에 과도하게 많은숫자를 하면 성능에 문제가 있을 수 있다. dispatch_queue_t queue = dispatch_queue_create(“com.letmecompile.serialQueue”, NULL); ...

2014년 3월 18일 · 4분 · 819단어

학술 논문 시제 사용

학술 논문을 작성할 때 어떤 시제를 어떻게 사용해야할까? 기준을 확실히 머릿속에 넣어두고 글을 작성하지 않는다면 인트로덕션에서 기존 연구를 소개할 때나, 실험결과를 설명 할 때 등의 시제를 들쑥날쑥하게 과거 현재를 섞어쓰는 경우가 많다. 그래서 고민을 많이 했었는데 최근 에세이리뷰를 통해 논문 교정을 받았는데 에디터로부터 시제일치에 관해서 다음과 같은 코멘트를 받고 깨달음을 얻었다. “Verb tense consistency enforced (as per academic convention, past or pp for experimentation/procedure and present for findings/facts.” 즉, 실험이나 실험 과정에 대해서는 과거/과거분사형을 사용하고, 알아낸 사실에 대해서는 현재형을 사용하는 것이 학술논문에서의 관례라는 것이다. ...

2014년 3월 9일 · 1분 · 161단어

Xcode LLDB 디버깅 테크닉

Xcode에 기본으로 내장되어있는 디버거(debugger)인 LLDB는 기존에 가장 많이 사용되던 gdb보다 많은 유용한 기능들을 갖고있다. LLDB 명령어 분석기에는 파이썬(Python) 인터프리터가 내장되어있어서 script 명령어로 파이썬 코드들을 사용할 수 있다. 이 또한 반대로 모든 LLDB API들이 SB(Scripting Bridge) 를 통해서 Python에서도 사용이 가능하도록 되어있다.[^1] 이러한 파이썬과의 연계를 통해서 Xcode 디버깅을 진행 할때 더 세분화된 조건들을 정의하여 브레이크포인트(breakpoint)에 지정할 수 있게되었고, 이런 조건에따라 액션 수행, 브레이크포인트 무시/진행여부 결정 등의 다양한 동작이 가능하다[^2]. 본 글은 애플의 “Advance Debugging with LLDB (WWDC 2013, Session 413)” 발표자료[^3]를 토대로 요약 및 정리한 내용이다. ...

2014년 2월 28일 · 4분 · 665단어

GET, POST 방식 차이점

웹 어플리케이션을 작성하다보면 누구나 한번쯤 GET/POST 요청(request)의 차이점에 대해 궁금해했을것이다. 기술적으로 조금씩 다른점은 금방 비교가 되지만, 그것만으로는 “뭔가 다르긴 다른데 POST를 쓸곳에도 GET을써도 상관없지않을까?” 라는 질문이 계속 머릿속에서 떠나지를 않는다. 그렇다면 근본적으로 뭐가 달라서 이 두가지 요청 방식이 구분되어있는지 한번 살펴보도록 하자. 근본적인 의미 차이 GET, POST의 근본적인 특성 차이는 GET은 idempotent, POST는 non-idempotent 하다는 점이다. 멱등(idempotent)이라는 말이 좀 어려운데, 아래와 같이 풀어서 설명하면 좀 이해가 쉬울것이다. 멱등 연산(idempotent operation)은 수학 용어로 해당 연산을 해도 결과에 변화가 없다는 특성을 표현하는 말이다. (예: 100 x 1 = 100 이므로, 곱셈에대해 1을 멱등원 이라고 부르며 이러한 1을곱하는 연산이 멱등 연산이다.) ...

2014년 2월 27일 · 2분 · 341단어

KVO 컨텍스트 표현을 위한 자기참조 포인터

다음과같은 포인터변수에 자신의 변수명 그대로 자기자신의 주소값을 할당하는 특이한 변수선언을 처음 볼 경우 당황스러울 것이다. void *myVariableName = &myVariableName 하지만 이는 자기참조 포인터 혹은 유니크 컨텍스트 포인터(unique context pointer)라는 이름으로 불리는 엄연히 C/C++/Obj-C에서 유효한 문법이다. 이를 이용하여 컴파일타임에 유니크한 포인터값을 생성할 수 있어서 컨텍스트 구분을 위한 변수를 표현할때 매우 유용하게 사용될 수 있다. 해당 컨텍스트변수가 해당 파일 내에서만 사용할 경우. .m파일에 다음과같이 선언하면된다. static void *MyContext = &MyContext; 만약 다른 파일에서도 사용되는 컨텍스트라면, ...

2014년 2월 20일 · 2분 · 229단어

C auto, static, extern 키워드 의미

C에서 변수는 값이 저장되는 메모리 영역이나 변수의 유효범위에 따라 구분되는데 auto, static, extern 이 세가지 키워드(keyword)를 이용하여 구분을 할 수 있다. 변수의 유효범위는 크게 지역변수(local variable)와 전역변수(global variable)로 나뉘며, 실제 프로그램 실행시에 변수가 저장되는 메모리상의 위치에따라 높은 주소값부터 거꾸로 사용하여 내려오는 스택(stack)과, 낮은 주소값부터 올라가면서 사용하는 정적데이터영역(.data, .bss)과 힙(heap)으로 구분된다1. 최적화 관점에서 살펴보면, 스택의 경우 해당 범위(scope)에서 자주 액세스 되며 범위가 끝나면 없어지는 임시변수들이 저장되는데, 스택포인터를 순차적으로 이동해가면서 할당되기 때문에 할당속도가 빠르며, 해당 변수들이 자주사용되어서 CPU 캐시의 힛트율이 높은 경우 접근 속도도 더 빨라질 가능성이 있다. 하지만 범위가 끝나면 없어지기때문에 계속적으로 값을 유지하는 것이 불가능하다. 이러한 문제를 해결하기위해서는 정적인 변수들은 정적 데이터 영역에 저장하여 계속 유지되며, 동적인 변수들은 힙에 변수를 할당하고 저장해야한다. 힙은 비순차적으로 메모리 할당/해제가 계속 일어나는 동적인 특성을 갖고있다. 때문에 스택처럼 메모리 할당을 순차적으로 하기가 힘들어서 정적인 방식에 비해 할당 속도가 느린 특성을 갖는다. ...

2014년 2월 20일 · 3분 · 432단어

Objective-C Block 동작 심층 분석

블락은 애플에서 closure 개념을 도입하기위해 ANSI C 에 익스텐션 형태로 만들어진 문법이다. 따라서 C/C++/Objective-C에서 모두 사용이 가능하지만 사용법과 메모리 관리에 있어서의 사용법은 언어특성에따라 조금씩 달라진다. 여기서는 Objective-C에서의 블락에 초점을 맞춰 분석을 할 예정이다. 블락(Block)의 실체 블락을 선언할 경우 실제로 컴파일러에의해 생성되는 코드에서는 __block_literal 이라는 구조체(struct) 형태로 선언이된다. 이 구조체 안에는 isa 정보가 포함되어있어서 결국 Objective-C의 객체의 특성을 가지게 된다.(심지어 블락이 C/C++에서 사용되더라도 동일하게 Objective-C의 객체특성을 가진다). Obj-C의 런타임에서 isa에관한 세부 내용은Objective-C 런타임 내부동작 분석 글에 자세히 설명되어있다. ...

2014년 2월 11일 · 4분 · 756단어

오로라를 잘 보기위한 팁

큰돈들여 오로라 보러 극지방까지 갔는데 날씨때문에 못보고 돌아오면 어쩌나 싶어 예약하기전에 이것저것 고려할 사항들을 나름대로 찾아 정리해보았으니, 오로라 보러갈 계획중이신 분들은 참고 바랍니다. 달에의한 영향은? 보름달이 뜰 경우 보름달의 밝기에 의해 오로라가 잘 보이지 않을 수 있으므로, 다음 사이트를 통해 예약 전에 보름달이 아닌 날을 선택하는 것이 좋다. 참고로 옐로나이프에 가보니 수많은 별들이 선명하게 보였지만, 오로라 관측 시간인 오후 10시~새벽2시까지 달은 아예 발견하지 못했다.(해당 시간에 이미 달이 져버린 걸지도) 따라서 이 시기에 달모양은 오로라 관측에 크게 영향이 없을 듯 하다. ...

2013년 12월 30일 · 3분 · 564단어

Git 상황별 명령어 tips

git의 경우 튜토리얼들과 설명들이 매우 많은편이지만, 처음 접하는 사람들은 명령어들의 숫자나 개념이 익숙하지 않아서 어떤 상황에 어떤 명령어를 넣어야하는지는 정작 힘들 경우가 많다. 그래서 이 포스트에서는 상황을 가정하고 해당 상황일때 어떻게 대처해야하는지를 시나리오별로 정리해보려고 한다. 시나리오들은 생각나는대로 계속 추가 예정이다. 참고1: git에대해 기본적인 내용을 공부하고싶으면 이 사이트를 추천한다. http://learnbranch.urigit.com/ 인터랙티브한 방식으로 개념을 잘 설명하고있어서 처음 배울때 많은 도움이 된다. 참고2: http://git-scm.com/book/ko git에대한 기술적인 상세한 내용을 보려면 이곳을 참고할것. 커밋한 내용을 버리고 이전 커밋 상태로 돌리기 상황 설명: ...

2013년 12월 30일 · 5분 · 1029단어