r-string은 r'따옴표 사이의 문자열' 을 변환(이스케이프 시퀀스) 없이 그대로 저장해주어
주로 파일 경로 혹은 정규표현식에서 유용
u''는 unicode로 의미하는 것은 맞습니다. 그런데 이 방식은 python2에서 그렇게 변환까지해서 써야하는 상황이 있었고 python3에서부터는 없다
u와 b로 바꾸어 사용하는 시점은 parameter를 누가 어떻게 받냐에 따라 다릅니다.
어떤 곳에서는 binary로 된 문자열을 그대로 사용하는 곳도 있고 다른 곳에서는 unicode로 된 문자열을 그대로 사용하는 곳도 있습니다.
각각의 케이스에 맞게 전달해줘야 하는 겁니다.
최근의 대부분의 함수는 unicode방식을 받는 쪽으로 작성되겠지만 예전에 작성된 함수거나 컴퓨터의 하드웨어 가까워지면 가까워 질수록 binary방식의 문자열을 받는 곳이 많을거에요.
참조 : https://www.codeit.kr/community/questions/UXVlc3Rpb246NWZlMzM2YTRkMDZjZjE3NjI5NDJjNzA3