첫 번째 함수는 bytesstr 인스턴스를 받아서 항상 str을 반환한다.

    def to_str(bytes_or_str):
        if isinstance(bytes_or_str, bytes):
            value = bytes_or_str.decode('utf-8')
        else:
            value = bytes_or_str
        return value # str 인스턴스
    
    print(repr(to_str(b'foo')))
    print(repr(to_str('bar')))
    print(repr(to_str(b'\xed\x95\x9c'))) # UTF-8에서 한글은 3바이트임
    
    >>>
    'foo'
    'bar'
    '한'

    두 번째 함수는 bytesstr 인스턴스를 받아서 항상 bytes를 반환한다.

    def to_bytes(bytes_or_str):
        if isinstance(bytes_or_str, str):
            value = bytes_or_str.encode('utf-8')
        else:
            value = bytes_or_str
        return value # bytes 인스턴스
    
    print(repr(to_bytes(b'foo')))
    print(repr(to_bytes('bar')))
    print(repr(to_bytes('한글')))
    
    >>>
    b'foo'
    b'bar'
    b'\xed\x95\x9c\xea\xb8\x80'
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.