Qt_IM_27 - 8BitsCoding/RobotMentor GitHub Wiki


์ธ์ฝ”๋”ฉ์ด๋ž€?

์ธ์ฝ”๋”ฉ(encoding)์ด๋ž€ ์ •๋ณด์˜ ํ˜•ํƒœ๋‚˜ ํ˜•์‹์„ ํ‘œ์ค€ํ™”, ๋ณด์•ˆ, ์ฒ˜๋ฆฌ ์†๋„ ํ–ฅ์ƒ, ์ €์žฅ ๊ณต๊ฐ„ ์ ˆ์•ฝ ๋“ฑ์„ ์œ„ํ•ด ๋‹ค๋ฅธ ํ˜•ํƒœ๋‚˜ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ๋งํ•œ๋‹ค.

Base64 ๋ž€

Base64๋ž€ Binary Data๋ฅผ Text๋กœ ๋ฐ”๊พธ๋Š” Encoding ์ค‘ ํ•˜๋‚˜๋กœ Binary๋ฅผ 6bit์”ฉ ์ž˜๋ผ์„œ ์•„๋ž˜ ๋งคํ•‘์œผ๋กœ ์ธ์ฝ”๋”ฉํ•œ๋‹ค.

์ด๋ฏธ์ง€

์ด๋ฏธ์ง€

์™œ ์“ฐ๋Š”๋ฐ??

Base64๋กœ ์ธ์ฝ”๋”ฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ์–‘์€ 33% ์ฆ๊ฐ€ํ•œ๋‹ค??!!

๊ทธ๋Ÿผ ์™œ์“ฐ๋‚˜??

๋ฌธ์ž๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ Media(Email, HTML)์„ ์ด์šฉํ•ด ํ”Œ๋žซํผ ๋…์ ์œผ๋กœ Binary Data(์ด๋ฏธ์ง€, ์˜ค๋””์˜ค)๋ฅผ ์ „์†กํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค๋ฉด ASCII๋กœ ์ธ์ฝ”๋”ฉ ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ช‡๊ฐ€์ง€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

ASCII๋Š” 7bit ์ธ์ฝ”๋”ฉ์ด๊ธฐ์— 1bit๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

์ผ๋ถ€ ์ œ์–ด๋ฌธ์ž ์ฒ˜๋ฆฌ ๋ฐฉ์‹

๋“ฑ์˜ ๋ฌธ์ œ๋กœ Base64๋กœ ๋ณด๋‚ด๋Š”๊ฒƒ์ด ๋” ์œ ๋ฆฌํ•˜๋‹ค.

#include <QtCore/QCoreApplication>

#include <qdebug.h>


QString makeData() {
	QString data;
	for (int i = 0; i < 10; i++) {
		data.append("Hello\r\n");
	}

	return data;
}

int main(int argc, char *argv[])
{
	QCoreApplication a(argc, argv);

	QString data = makeData();
	QByteArray bytes(data.toLatin1());
	QByteArray encoded = bytes.toBase64();
	QByteArray decode = encoded.fromBase64(encoded);
	
	qInfo() << "Encoded: " << encoded;
	qInfo("");
	qInfo() << "Decoded: " << decode;
	

	return a.exec();
}

์ด๋ฏธ์ง€

โš ๏ธ **GitHub.com Fallback** โš ๏ธ