반응형
반응형

프리랜서를 위한 종합소득세 신고 Q&A


4월 말이면 푸릇푸릇해지는 바깥 풍경과 함께 국세청으로부터 어김없이 안내문이 도착합니다. 5월을 맞이하여 종합소득세를 신고하라는 그 안내문 말이죠. 환급에 대한 기대로 마음이 설레는 건 잠깐, 종합소득세 신고 절차는 매번 어렵게 느껴지기만 합니다. 혼자 일하는 1인 사업자, 프리랜서의 자부심으로 종합소득세 신고도 혼자 해보려고 하는데, 막막하기만 하신가요? 프리랜서를 위한 맞춤형 종합소득세 정보 및 신고 방법을 Q&A로 알려드립니다.


Q. 프리랜서는 왜 종합소득세를 신고해야 하나요?
프리랜서라면 3.3%라는 숫자가 익숙하실 겁니다. 업체로부터 비용을 받을 때 항상 3.3%를 떼고 받기 때문이죠. 그런데 이 3.3%의 금액이 소득세라는 것, 알고 계셨나요? 정확히 3%는 소득세, 0.3%는 지방 소득세입니다.
이렇게 미리 세금을 떼는 걸 원천징수라고 하는데요. 원천징수란 나중에 세금을 내는 번거로운 절차를 거치는 대신 회사 측에서 임의로 지정된 3.3%의 세금을 미리 내주는 것입니다.
그리고 5월이 되면 과연 내가 미리 낸 세금이 진짜 내가 냈어야 하는 세금과 얼마나 차이가 나는지를 확인하는 것이 종합소득세 신고 과정입니다. 내 지난 연도의 총 수입과 비용, 그에 따른 소득, 그리고 내 여러 상황 등을 감안하여 각종 공제 등을 적용하여 최종 세액을 산출하는데요. 이 최종 세액보다 미리 3.3%로 낸 세금이 많으면 그 금액을 돌려받는 것이고, 미리 낸 세금이 더 적으면 세금을 더 내는 것입니다.


Q. 정확히 무엇에 대한 세금인가요?
직전연도 1월 1일부터 12월 31일까지 번 돈에 관한 세금입니다. 2023년 5월이라면 2022년 한 해의 수입에 관한 세금을 신고하는 것이죠. 좀 더 구체적으로 말하자면 작년 한 해 동안의 총 수입에서 사업에 필요한 지출(비용)을 빼고 계산한 (실질적인) 소득에 관한 세금입니다. 따라서 내가 작년에 총 얼마의 수입을 벌어들였고, 또 일 때문에 지출한 돈은 얼마이며, 그리하여 실질적으로 얻은 소득은 얼마인지를 신고하는 것이 종합소득세 신고의 핵심입니다.


Q. 언제까지 해야 하나요?
종합소득세 신고는 딱 5월 동안입니다. 5월 1일부터 5월 31일 사이에 종합소득세 신고를 마쳐야 합니다. 이 기간을 놓친 후에도 신고는 가능하지만 가산세가 발생하게 됩니다.


Q. 혼자서 종합소득세를 신고할 수 있나요?
수입 규모가 크고 소득 종류가 다양한 프리랜서가 아니라면 혼자서도 종합소득세를 신고할 수 있습니다. 다만 작년 소득이 2400만원 이하라면 신고가 조금 더 간편하고, 2400만원을 초과했다면 필요한 절차가 더 추가될 수 있습니다.


Q. 종합소득세 신고, 무엇부터 해야 하나요?
첫째, 작년의 내 총 수입부터 파악해야 합니다. 홈택스에 들어가서 국세청에 등록되어 있는 내 작년 수입이 내가 알고 있는 금액과 일치하는지, 누락된 수입은 없는지 확인해 보세요.
둘째, 경비를 확인해야 합니다. 경비란 일 때문에 지출하게 된 비용을 말하는데요. 이 비용을 총 수입에서 빼야 내 소득이 나오고, 이 금액을 기준으로 세금이 매겨집니다. 프리랜서가 인정 받을 수 있는 경비는 보통 장비 구입비, 교통비, 경조사비, 교육비, 거래처 접대비, 도서구입비, 사무용품비, 통신비 등이 있는데요. 장부를 작성하고 관련 자료를 제출하여 이 비용들을 입증하는 방법이 있고, 장부 없이 국세청이 정한 경비율을 적용하여 한번에 비용을 처리하는 방법이 있습니다.
셋째, 이제 수입과 경비, 소득을 파악하고 그에 따른 종합소득세 신고 절차의 중요 개념을 알았으니 내 신고 유형을 확인할 때입니다. 국세청에서 보내준 안내문이나 홈택스에 들어가서 내 신고 유형을 확인해보세요. 신고 유형을 보면 나는 단순경비율과 기준경비율 중 어떤 항목을 적용 받는지, 간편장부와 복식부기 중 어떤 방식으로 장부를 써야 하는지 등을 알 수 있는데요. 그에 따라 세금 신고 전략을 세워야 합니다.


Q. 단순경비율과 기준경비율은 또 뭔가요?
원칙적으로는 세금을 신고할 때 내가 일 때문에 지출한 돈을 하나하나 증명하여 비용으로 처리해야 합니다. 하지만 소득이 적거나 이를 증명할 수 있는 장부를 쓰지 않은 경우, 전체 수입 중 일정 비율을 간단히 계산하여 그만큼을 경비로 썼다고 추산해주는데요. 이 비율을 경비율이라고 합니다. 말 그대로 경비로 인정해주는 비율이죠. 경비율은 업종마다 세세하게 국세청이 그 비율을 다르게 정해놓아서 직접 확인해야 합니다.
경비율에는 단순경비율과 기준경비율 두 가지가 있습니다. 우선 단순경비율은 수입이 낮은 사람들에게 적용되며 비율이 비교적 높아 비용으로 처리할 수 있는 금액이 높아집니다. 그에 따라 실질 소득이 낮게 잡혀 세금도 낮아지죠. 단순경비율 대상자인 프리랜서라면 종합소득세를 혼자 신고하는 게 충분히 가능합니다.
반면 기준경비율은 비율 자체도 낮고 경비 항목 중 일부(기타 경비)에 대해서만 적용됩니다. 기준경비율 대상자는 매입비, 임차료, 인건비를 지출했더라도 이를 따로 입증해야만 이 비용을 경비로 뺄 수 있습니다. 더구나 사업자를 내지 않은 프리랜서의 경우 기준경비율 대상자라면 애초에 경비로 적용되는 금액도 적고, 매입비, 임차료, 인건비는 지출할 일이 잘 없어 경비로 뺄 수 있는 금액이 적은 경우가 대다수인데요. 이럴 경우 경비율을 적용하지 않고 장부로 직접 비용을 증명하여 경비를 인정받는 것이 유리할 때가 많으며, 이를 위해 세무 대리 서비스를 사용하는 게 더 이득일 수 있습니다.


Q. 주요 개념들을 알았으니 혼자 해볼게요. 어떻게 하면 되죠?
홈택스에 접속하여 [신고/납부] → [종합소득세] → [모두채움 신고/단순경비율 신고] 또는 [일반 신고]로 들어가면 종합소득세 신고가 시작됩니다. 차례차례 나오는 페이지를 따라 내 정보를 입력하고, 수입을 확인하고, 비용을 장부 또는 경비율로 처리하고, 적용 가능한 공제 또는 감면 혜택이 있는지 확인하고, 최종 산출 세액을 확인해보세요.
추가로 홈택스에서는 쉽게 종합소득세를 신고할 수 있도록 여러 서비스를 지원하고 있습니다. 특히 사업소득 원천징수가 이루어진 프리랜서 중 소득금액이 2400만원 이하일 경우 환급안내까지 해주는 납세자 친화형 서비스를 새롭게 시작하고 있으니 참고하세요.


Q. 세무 대리를 고민 중이에요. 괜찮을까요?
만약 신고 안내문에서 확인한 내 신고 유형이 기준경비율 대상자라면 세무 대리를 하는 것이 이득일 수 있습니다. 기준경비율 대상자는 경비율을 적용하는 것보다 장부를 제출하여 세금을 신고하는 것이 이득일 가능성이 높기 때문인데요. 장부 제출 시 간편장부라는 비교적 쉬운 장부를 쓰라고 국세청에서 정해줬더라도 비전문가에다 바쁜 프리랜서라면 그마저 쉽지 않습니다. 간편장부보다 더 어려운 복식부기를 써야 할 때는 물론이고, 장부를 쓰는 일부터 시작해 내게 가장 이득이 되는 절세 전략을 세워 세금을 찾아주는 세무사를 구해 신고를 마치는 게 더 현명한 판단일 수 있습니다.

반응형
반응형

우리는 모두
다른 사람을 위한 거울이다.
우리는 다른 사람에 비추어,
우리 자신을 보는 법을 배워야 합니다.
이것을 '관계의 거울'이라고 합니다.
우리는 관계의 거울을 통해
우리의 초공간적 자아를
발견합니다.


- 디팩 초프라의 《바라는 대로 이루어진다》중에서 -


* 사람은 관계 속에 살아갑니다.
어떤 사람들을 만나왔고, 어떤 관계들을
맺어왔는가를 살필 때 나를 제대로 발견할 수
있습니다. 사람과의 인연은 의미없이 그냥 오지
않습니다. 내 눈에 비치는 상대의 모습과
상대에게 비치는 나의 모습을 통해
서로의 진면목을 볼 수 있습니다.

반응형

'아침편지' 카테고리의 다른 글

엄마가 먼저 보여줄게  (0) 2024.02.07
하코다산의 스노우 몬스터  (0) 2024.02.06
관중석 소리 없는 아우성  (0) 2024.02.05
신비 수련  (0) 2024.02.05
영혼과 영혼의 교류  (0) 2024.02.01
반응형

관중석

소리 없는 아우성

반응형

'아침편지' 카테고리의 다른 글

하코다산의 스노우 몬스터  (0) 2024.02.06
자신을 보는 법  (0) 2024.02.05
신비 수련  (0) 2024.02.05
영혼과 영혼의 교류  (0) 2024.02.01
문신을 하기 전에  (0) 2024.01.31
반응형

천체의 음악은
밤낮으로 울리지만, 어느 정도
신비 수련을 하거나 신비적 힘을
발달시킨 상태에서만 들을 수 있습니다.
낮에는 빛이 빛으로서 우리에게 흘러 들어오고,
밤에는 흡수된 빛으로서 계속 활동하면서
천체의 음악은 밤낮으로 울립니다.


- 루돌프 슈타이너의 《천체의 음악 인간의 신비》중에서 -


* 인간의 청각은 한계가 있습니다.
아주 큰 소리도, 아주 작은 소리도 듣지 못합니다.
이른바 '가청구역'이 정해져 있는 것입니다. 그러나
수련을 하면 어느 순간, 선물처럼 청각의 경계가 무너지는
신비로운 경험을 하게 됩니다. 미처 인지하지 못했던
천체 음악을 듣게 됩니다. 마음의 소리, 양심의
소리도 듣습니다. 그때 알게 됩니다. 자신이
얼마나 두터운 벽에 갇혀 있었는지를...

반응형

'아침편지' 카테고리의 다른 글

자신을 보는 법  (0) 2024.02.05
관중석 소리 없는 아우성  (0) 2024.02.05
영혼과 영혼의 교류  (0) 2024.02.01
문신을 하기 전에  (0) 2024.01.31
미래의 씨앗  (0) 2024.01.30
반응형

동작대교 2024-02-02

반응형
반응형

pip install pytesseract

 

한글팩 : https://github.com/tesseract-ocr/tessdata/

 
다운 받아야하는 학습된 한글 데이터 파일명: kor.traineddata
파일 위치: tesseract가 설치된 경로 C:\Program Files\Tesseract-OCR\tessdata
 

*** 설치 할때 언어팩 선택 

 

pytesseract 0.3.10

 

Python-tesseract is an optical character recognition (OCR) tool for python. That is, it will recognize and “read” the text embedded in images.

Python-tesseract is a wrapper for Google’s Tesseract-OCR Engine. It is also useful as a stand-alone invocation script to tesseract, as it can read all image types supported by the Pillow and Leptonica imaging libraries, including jpeg, png, gif, bmp, tiff, and others. Additionally, if used as a script, Python-tesseract will print the recognized text instead of writing it to a file.

USAGE

Quickstart

Note: Test images are located in the tests/data folder of the Git repo.

Library usage:

from PIL import Image

import pytesseract

# If you don't have tesseract executable in your PATH, include the following:
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract'

# Simple image to string
print(pytesseract.image_to_string(Image.open('test.png')))

# In order to bypass the image conversions of pytesseract, just use relative or absolute image path
# NOTE: In this case you should provide tesseract supported images or tesseract will return error
print(pytesseract.image_to_string('test.png'))

# List of available languages
print(pytesseract.get_languages(config=''))

# French text image to string
print(pytesseract.image_to_string(Image.open('test-european.jpg'), lang='fra'))

# Batch processing with a single file containing the list of multiple image file paths
print(pytesseract.image_to_string('images.txt'))

# Timeout/terminate the tesseract job after a period of time
try:
    print(pytesseract.image_to_string('test.jpg', timeout=2)) # Timeout after 2 seconds
    print(pytesseract.image_to_string('test.jpg', timeout=0.5)) # Timeout after half a second
except RuntimeError as timeout_error:
    # Tesseract processing is terminated
    pass

# Get bounding box estimates
print(pytesseract.image_to_boxes(Image.open('test.png')))

# Get verbose data including boxes, confidences, line and page numbers
print(pytesseract.image_to_data(Image.open('test.png')))

# Get information about orientation and script detection
print(pytesseract.image_to_osd(Image.open('test.png')))

# Get a searchable PDF
pdf = pytesseract.image_to_pdf_or_hocr('test.png', extension='pdf')
with open('test.pdf', 'w+b') as f:
    f.write(pdf) # pdf type is bytes by default

# Get HOCR output
hocr = pytesseract.image_to_pdf_or_hocr('test.png', extension='hocr')

# Get ALTO XML output
xml = pytesseract.image_to_alto_xml('test.png')

Support for OpenCV image/NumPy array objects

import cv2

img_cv = cv2.imread(r'/<path_to_image>/digits.png')

# By default OpenCV stores images in BGR format and since pytesseract assumes RGB format,
# we need to convert from BGR to RGB format/mode:
img_rgb = cv2.cvtColor(img_cv, cv2.COLOR_BGR2RGB)
print(pytesseract.image_to_string(img_rgb))
# OR
img_rgb = Image.frombytes('RGB', img_cv.shape[:2], img_cv, 'raw', 'BGR', 0, 0)
print(pytesseract.image_to_string(img_rgb))

If you need custom configuration like oem/psm, use the config keyword.

# Example of adding any additional options
custom_oem_psm_config = r'--oem 3 --psm 6'
pytesseract.image_to_string(image, config=custom_oem_psm_config)

# Example of using pre-defined tesseract config file with options
cfg_filename = 'words'
pytesseract.run_and_get_output(image, extension='txt', config=cfg_filename)

Add the following config, if you have tessdata error like: “Error opening data file…”

# Example config: r'--tessdata-dir "C:\Program Files (x86)\Tesseract-OCR\tessdata"'
# It's important to add double quotes around the dir path.
tessdata_dir_config = r'--tessdata-dir "<replace_with_your_tessdata_dir_path>"'
pytesseract.image_to_string(image, lang='chi_sim', config=tessdata_dir_config)

Functions

  • get_languages Returns all currently supported languages by Tesseract OCR.
  • get_tesseract_version Returns the Tesseract version installed in the system.
  • image_to_string Returns unmodified output as string from Tesseract OCR processing
  • image_to_boxes Returns result containing recognized characters and their box boundaries
  • image_to_data Returns result containing box boundaries, confidences, and other information. Requires Tesseract 3.05+. For more information, please check the Tesseract TSV documentation
  • image_to_osd Returns result containing information about orientation and script detection.
  • image_to_alto_xml Returns result in the form of Tesseract’s ALTO XML format.
  • run_and_get_output Returns the raw output from Tesseract OCR. Gives a bit more control over the parameters that are sent to tesseract.

Parameters

image_to_data(image, lang=None, config='', nice=0, output_type=Output.STRING, timeout=0, pandas_config=None)

  • image Object or String - PIL Image/NumPy array or file path of the image to be processed by Tesseract. If you pass object instead of file path, pytesseract will implicitly convert the image to RGB mode.
  • lang String - Tesseract language code string. Defaults to eng if not specified! Example for multiple languages: lang='eng+fra'
  • config String - Any additional custom configuration flags that are not available via the pytesseract function. For example: config='--psm 6'
  • nice Integer - modifies the processor priority for the Tesseract run. Not supported on Windows. Nice adjusts the niceness of unix-like processes.
  • output_type Class attribute - specifies the type of the output, defaults to string. For the full list of all supported types, please check the definition of pytesseract.Output class.
  • timeout Integer or Float - duration in seconds for the OCR processing, after which, pytesseract will terminate and raise RuntimeError.
  • pandas_config Dict - only for the Output.DATAFRAME type. Dictionary with custom arguments for pandas.read_csv. Allows you to customize the output of image_to_data.

CLI usage:

pytesseract [-l lang] image_file

INSTALLATION

Prerequisites:

  • Python-tesseract requires Python 3.6+
  • You will need the Python Imaging Library (PIL) (or the Pillow fork). Under Debian/Ubuntu, this is the package python-imaging or python3-imaging.
  • Install Google Tesseract OCR (additional info how to install the engine on Linux, Mac OSX and Windows). You must be able to invoke the tesseract command as tesseract. If this isn’t the case, for example because tesseract isn’t in your PATH, you will have to change the “tesseract_cmd” variable pytesseract.pytesseract.tesseract_cmd. Under Debian/Ubuntu you can use the package tesseract-ocr. For Mac OS users. please install homebrew package tesseract.
  • Note: In some rare cases, you might need to additionally install tessconfigs and configs from tesseract-ocr/tessconfigs if the OS specific package doesn’t include them.
Installing via pip:

Check the pytesseract package page for more information.

pip install pytesseract
Or if you have git installed:
pip install -U git+https://github.com/madmaze/pytesseract.git
Installing from source:
git clone https://github.com/madmaze/pytesseract.git
cd pytesseract && pip install -U .
Install with conda (via conda-forge):
conda install -c conda-forge pytesseract

TESTING

To run this project’s test suite, install and run tox. Ensure that you have tesseract installed and in your PATH.

pip install tox
tox

반응형

+ Recent posts