개인사업자로 IT프리랜서 일을 하면서 매 분기 부가세를 납부 때마다 어떤 것이 공제되고 어느것은 불공제인지 헷갈린다
그래서 정리해보았다.
일단, 부가세 ( 서비스 제공자입장) 의 개념
고객이 나에게 100 이란 비용을 주기로 하면 나는 그에 해당하는 용역/서비스를 제공하는 계약을 한다. 이때 부가세는 10 이되고 (비용의 10%) 최종적으로 고객으로부터 110 을 받음
부가세 납부하는 날 (년 2회, 1월/7월)이 되면, 사업관련 매입비용을 공제 처리하고 나머지를 납부함.
예를 들어, 2024년 1월에 부가세 납부를 하게 된다고 치면...
지난 6개월간(2023.07~2023.12) 받은 부가세에서 공제금액을 제한 것을 납부하는데, 그것은 아래와 같다.
부가세납부금액 = (10 * 6 ) - 매입세액 중 공제금액
매번 헷갈리지만 부가세 공제가 되지 않는 항목들은 아래와 같다.
부가세 불공제 항목
- 자동차의 구입ㆍ임차 및 유지에 관련된 지출 - 접대비 관련 지출 - 업무 관련 항공, 철도 운임 등 호텔 등의 숙박의 경우는 업무관련의 경우 매입세액 공제에 해당 - 공연ㆍ놀이동산 입장권, 목욕, 이발, 미용업및 성형수술 진료관련 이용요금 - 인건비 (종소세 신고시 비용으로 반영) - 폐업/간이과세/면세사업자로부터 매입한 내역 - 사업자 등록 전 매입세액 - 세금계산서 미수취 또는 부실기재에 대한 매입세액 - 국외 사용액
부가세 공제 항목
그렇다면 어떤것이 공제가 되는가 ...?
홈택스에는 '사업과 직접적으로 연관이 있는 비용' 이라고 명시되어 있다.
그 판단은 사업자 본인이 가장 잘 할수 있을 것이다.
IT프리랜서인 나의 기준으로 직접적인 연관있는 비용은 아래정도가 생각난다.
- 업무용 노트북
- 업무용 사무기기 (마우스, 키보드 등)
- 업무관련 SW (ms office 등)
+ 사업장과 관련된 공과금 (전기/통신등)
* 내글은 재미로 보시거나 참고만 하시고 각자의 케이스는 최종적으로는 세무사를 통해서 확인을 하시길 바랍니다.
lee@mysql-m:~$ lee@mysql-m:~$ mysql_config_editor print --all lee@mysql-m:~$ lee@mysql-m:~$ mysql_config_editor set --login-path=rootconn --host=localhost --user=root --password Enter password: lee@mysql-m:~$ lee@mysql-m:~$ lee@mysql-m:~$ ls -al 합계 48 drwxr-xr-x 6 lee lee 4096 1월 16 21:43 . drwxr-xr-x 3 root root 4096 1월 13 01:00 .. -rw------- 1 lee lee 106 1월 14 19:46 .Xauthority -rw------- 1 lee lee 1416 1월 16 17:57 .bash_history -rw-r--r-- 1 lee lee 220 1월 13 01:00 .bash_logout -rw-r--r-- 1 lee lee 3771 1월 13 01:00 .bashrc drwx------ 11 lee lee 4096 1월 13 01:29 .cache drwx------ 11 lee lee 4096 1월 14 18:21 .config drwx------ 3 lee lee 4096 1월 13 01:14 .gnupg drwxr-xr-x 3 lee lee 4096 1월 13 01:14 .local -rw------- 1 lee lee 136 1월 16 21:44 .mylogin.cnf lee@mysql-m:~$ mysql_config_editor print --all [rootconn] user = "root" password = ***** host = "localhost" lee@mysql-m:~$
mysql_config_editor 명령으로 credential 을 생성하면 유저 홈 디렉토리에 ".mylogin.cnf" 파일이 생성이 된다.
이후부터는 mysql 로긴시 패스워드를 입력할 필요없이 login-path 옵션을 붙여주면 된다.
2-2) Replication 유저 생성 @master sudo mysql -u root -p1111
-- slave ip 로 생성한다. CREATE USER 'REP_ADM'@'192.168.56.102' IDENTIFIED WITH mysql_native_password BY '1111'; GRANT REPLICATION SLAVE ON *.* TO 'REP_ADM'@' 192.168.56.102';
SHOW MASTER STATUS;
File, Position 값을 확인
@slave sudo mysql -u root -p1111
-- master IP 를 넣는다 CHANGE MASTER TO MASTER_HOST='192.168.56.101', MASTER_USER='REP_ADM', MASTER_PASSWORD='1111', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=2391;
START SLAVE;
SHOW SLAVE STATUS \G => [ERROR] : equal MySQL server UUIDs
sudo rm -rf /var/lib/mysql/auto.cnf sudo service mysql restart
START SLAVE;
3) Replicatin 연결 확인
-- 복제확인 sudo mysql --login-path=rootconn -e 'show slave status \G'|egrep "Master_Host|Master_User|Master_Log_File|Master_Log_Pos|ReplicateIgnore_DB|Running|IO_Err|SQL_Err|Seconds_Behind_Master|SQL_Delay"
** 아래 메세지가 보여야 정상 복제중 Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
-- 에러확인 show variables like '%log_error%'; => tail -100f /var/log/mysql/error.log
4) Replication 에러 메시지별 대응
[ERROR] [MY-013117] [Repl] Replica I/O for channel '': Fatal error: The replica I/O thread stops because source and replica have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: MY-013117 => VM 을 복제하면서 동일 uuid 문제 => auto.cnf 삭제
[ERROR] [MY-013124] [Repl] Replica SQL for channel '': Replica failed to initialize applier metadata structure from the repository, Error_code: MY-013124 => slave 를 리셋해준다. stop slave; reset slave; stop slave;
[ERROR] [MY-010584] [Repl] Replica I/O for channel '': Error connecting to source 'REP_ADM@192.17.7.5:3306'. This was attempt 1/86400, with a delay of 60 seconds between attempts. Message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. Error_code: MY-002061 => rep user error : Authentication 확인 => mysql.user 의 plugin 확인 후 변경 => WITH mysql_native_password
[ERROR] [MY-010584] [Repl] Replica SQL for channel '': Worker 1 failed executing transaction 'ANONYMOUS' at source log mysql-bin.000003, end_log_pos 342; Error 'Can't create database 'test'; database exists' on query. Default database: 'test'. Query: 'create database test', Error_code: MY-001007 => 트랜잭션 실패 : 대상 object 가 존재하지 않거나 실행할수 없어서 발생. skip 또는 object 동일하게 만들고 slave 재시작
** 트랜잭션 실패로 인한 에러메세지가 아는 내용이고 굳이 적용할 필요 없으면 아래명령으로 skip 한다. stop slave; set global sql_slave_skip_counter=1; -- skip 할 error 갯수 start slave; show slave status\G