λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT-Engineering/Super Developer

슈퍼개발자의 자격[1] - λ‹Ήμ‹  슀마트폰의 ν•΄μƒλ„λŠ” μ–Όλ§ˆμΈκ°€?

by 🧞‍♂️ 2020. 6. 4.
λ°˜μ‘ν˜•

 ν•΄μƒλ„에 κ΄€ν•œ 그리고 이미지와 λ™μ˜μƒ μ••μΆ• 원리에 λŒ€ν•œ 질문

μ§€κΈˆ μ‚¬μš© 쀑인 슀마트폰의 ν•΄μƒλ„λŠ” μ–Όλ§ˆμΈκ°€? ν™”λ©΄ 캑처λ₯Ό ν•΄μ„œ bmp둜 μ €μž₯ν•˜λ©΄ μš©λŸ‰μ΄ μ–΄λ–»κ²Œ λ˜λŠ”κ°€? κ·Έκ±Έ png와 jpg둜 μ €μž₯ν•˜λ©΄ 각각 μš©λŸ‰μ΄ μ–΄λ–»κ²Œ λ˜λŠ”κ°€? λ™μ˜μƒμ˜ μ••μΆ• μ›λ¦¬λŠ” λ¬΄μ—‡μΌκΉŒ?

ν˜„μž¬ κ°€λŸ­μ‹œ S8+λ₯Ό μ‚¬μš©μ€‘μ΄λ©°, κ°€λŸ­μ‹œ S8+의 ν•΄μƒλ„λŠ” FHD+둜 2220*1080μ΄μ—ˆλ‹€.

κ°€λŸ­μ‹œ S8+의 ν™”λ©΄ 해상도 μ„€μ •

좩격적인건 3λ…„ κ°€κΉŒμ΄ νœ΄λŒ€ν°μ„ μ“°λ©΄μ„œλ„ ν™”λ©΄ 해상도 μ„€μ • 화면을 μ²˜μŒλ“€μ–΄μ™”λ‹€λŠ” 것이닀...

(μŠˆνΌκ°œλ°œμžλŠ” 무슨, 개발자 μžκ²©μ΄λ‚˜ μžˆλ‚˜...)

μ•„λ¬΄νŠΌ, μ‹€μ œ μΊ‘μ³νŒŒμΌμ€ .jpg둜 μ••μΆ•λ˜μ–΄μžˆμ—ˆμ§€λ§Œ .bmpλŠ” μ•Œλ‹€μ‹œν”Ό μ••μΆ•λ˜μ§€ μ•Šμ€ 그림파일 포맷이닀.

μ••μΆ•λ˜μ§€ μ•Šμ€ 그림파일의 ν¬κΈ°λŠ”

κ°€λ‘œ ν”½μ…€μˆ˜ * μ„Έλ‘œν”½μ…€μˆ˜ * μƒ‰μƒμ˜ 수(24 Bit=16,777,216색상 κ°€μ§€μˆ˜)

즉, λ‚΄ νœ΄λŒ€ν° ν•΄μƒλ„μ˜ 캑쳐화면 ν•΄μƒλ„λŠ” 2220*1080*24 Bit인데 보톡 μš°λ¦¬λŠ” μš©λŸ‰ ν‘œκΈ°λ₯Ό Byte(8 Bit=1 Byte)둜 ν•˜κΈ° λ•Œλ¬Έμ— 7,192,800 Byteκ°€ 되고, μš°λ¦¬κ°€ ν”νžˆ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ MB(λ©”κ°€λ°”μ΄νŠΈ) ν‘œκΈ°λ‘œ ν•˜λ©΄ 6.86MBκ°€ λœλ‹€.

κ·Έλ¦Ό ν•΄μƒλ„μ˜ ꡬ쑰 - λ„μ‹μœΌλ‘œ λ‚˜νƒ€λ‚΄λ©΄ 이렇닀(무손싀 μ••μΆ• 포맷 PNG둜 μ €μž₯ν•΄λ³΄μ•˜λ‹€)

응? μ™œ κ°‘μžκΈ° 6.86이냐고? μ»΄ν“¨ν„°μ˜ ν‚¬λ‘œλ°”μ΄νŠΈ(KB)와 λ©”κ°€λ°”μ΄νŠΈ(MB)의 μ•žμžλŠ” SIλ‹¨μœ„μ˜ ν‚¬λ‘œ(kilo)와 λ©”κ°€(mega)μ—μ„œ λ”°μ˜¨ κΈ€μžλŠ” λ§žμ§€λ§Œ 컴퓨터 아킀텍쳐 λ‹¨μœ„κ°€ ν”νžˆ 2μ§„μˆ˜λ‘œ ν‘œν˜„λ˜λŠ”λ° 2의 10승이 1024둜 1000κ³Ό λΉ„μŠ·ν•œ μˆ«μžμ—¬μ„œ μ΄λ ‡κ²Œ μ“°μ΄κ²Œ λ˜μ—ˆλ‹€λŠ” 점을 μ°Έκ³ ν•˜λ©΄ 쒋을 λ“―ν•˜λ‹€.

이제 첫번째 질문이 끝났고, λ‘λ²ˆμ§Έ 질문인 .png와 .jpg둜 μ••μΆ•ν•˜λ©΄ 각각 μš©λŸ‰μ€ μ–΄λ–»κ²Œ λ˜λŠ”κ°€?

이 뢀뢄에 λŒ€ν•΄μ„œλŠ” μžμ„Ένžˆ μ•Œμ•„λ³Έ 적이 μ—†μ—ˆκΈ°μ— 곡뢀가 ν•„μš”ν–ˆλ‹€.

μš°μ„  PNGλŠ” Portable Network Graphics의 μ•½μžλ‘œ 무손싀 μ••μΆ• κ·Έλ¦Ό 파일 포맷이고,

JPEGλŠ” Joint Photograph Experts Group의 μ•½μžλ‘œ 손싀 μ••μΆ• κ·Έλ¦Ό 파일 포맷이닀.

이 λ‘˜μ„ μžμ„Έν•˜κ²Œ 닀룬 글듀이 λ§ŽμœΌλ‹ˆ μžμ„Έν•œ 것은 μƒλž΅ν•˜κ³ , νŠΉμ„±μ„ 보자면 PNGλŠ” 손싀이 μ—†λŠ” μ••μΆ• κ·Έλ¦Ό 방식이며, 32bit 색상을 μ§€μ›ν•œλ‹€. 32bit색상은 μ•žμ„œ 보여쀀 24bit색상에 0-255κΉŒμ§€μ˜ μ•ŒνŒŒμ±„λ„ 8bitκ°€ μΆ”κ°€λœ 것이닀.

JPEGλŠ” 사진에 μ ν•©ν•œ 포맷으둜 사진 파일의 메타정보인 EXIF(EXchangable Image File format)이 λ“€μ–΄κ°€μžˆλ‹€.

λŒ€μΆ© 생각해보면 사진은 μ›¬λ§Œν•˜λ©΄ λͺ¨λ“  픽셀에 λ‹€λ₯Έ 색상듀이 κ°€λ“μ°¨μžˆμ„ν…Œλ‹ˆ μ†μ‹€ν•˜λ”λΌλ„ μ••μΆ•ν•˜κΈ° μœ„ν•œ JPEGκ°€ μ μ ˆν•  것이고, ν˜„μž¬ 이 λͺ¨λ‹ˆν„° ν™”λ©΄ ν˜Ήμ€ 슀마트폰 λ””λ°”μ΄μŠ€μ˜ 화면을 μΊ‘μ³ν–ˆλ‹€κ³  생각해보면, 흰색화면이 λ§Žμ§€ μ•Šμ€κ°€? 고둜 압좕을 μž˜ν•˜κ³  손싀이 μ—†λŠ” PNGκ°€ μ μ ˆν•  것이닀.

고둜 λ‘λ²ˆμ§Έ μ§ˆλ¬Έμ—λŠ” 좔상적 ν˜Ήμ€ μ •μ„±μ μœΌλ‘œλ°–μ— λ‹΅ν•  μˆ˜κ°€ 없을 것 같은데, PNG둜 μ••μΆ•ν•˜κ²Œ 되면 같은 색상이 λ§ŽμœΌλ‹ˆ 많이 압좕될 것이고, JPEGλŠ” PNG에 λΉ„ν•˜λ©΄ 효율이 λœν•˜κ² μ§€λ§Œ μΌκ΄€λœ λ°©μ‹μœΌλ‘œ μ••μΆ•ν•˜λ―€λ‘œ μœ μ‚¬ν•œ μˆ˜μ€€μ˜ μš©λŸ‰μ„ λ‚˜νƒ€λ‚΄μ§€ μ•Šμ„κΉŒ? μ‹€μ œλ‘œ 각각 143KB와 152KB둜 μœ μ‚¬ν•˜κ²Œ λ‚˜νƒ€λ‚¬λŠ”λ°, μ‹€μ œλ‘œ μ˜λ―ΈμžˆλŠ” κ°’μΈμ§€λŠ” 잘 λͺ¨λ₯΄κ² λ‹€.

λ§ˆμ§€λ§‰ μ§ˆλ¬Έμ€ 'λ™μ˜μƒμ˜ μ••μΆ•μ›λ¦¬λŠ” 무엇인가?'이닀.

μš°μ„  λ™μ˜μƒμ΄ μ—°μ†λœ 그림의 μ‘°ν•©μ΄λΌλŠ” 것은 λͺ¨λ‘κ°€ 생각할 수 μžˆμ„ 것이닀.

κ·Έλ ‡λ‹€λ©΄ 기본적으둜 λ™μ˜μƒ μ••μΆ•κ³Ό 그림의 μ••μΆ•μ›λ¦¬λŠ” μœ μ‚¬ν•˜κ²Œ 적용이 κ°€λŠ₯ν•  κ²ƒμœΌλ‘œ μœ μΆ”ν•  수 있고, 그림의 μ••μΆ•μ›λ¦¬λŠ” μœ μ‚¬ν•œ 색상듀을 λ¬Άμ–΄ μ••μΆ•ν•˜λŠ” 방식이고 ZIP파일의 μ••μΆ• 방식과 μœ μ‚¬ν•˜λ‹€κ³  ν•œλ‹€.

그리고 λ™μ˜μƒμ˜ μ—°μ†λœ 사진듀은 λΆ™μ–΄ μžˆλŠ” μ‚¬μ§„μΌμˆ˜λ‘ μœ μ‚¬ν•  것이닀. 고둜, λ³€ν™”λŸ‰μΈ 델타λ₯Ό μΆ”μΆœν•΄μ„œ μ €μž₯ν•˜λŠ” 방식을 μ‚¬μš©ν•˜λ©΄ μ‹œκ°„ λ°©ν–₯에 λŒ€ν•œ 압좕을 ν•  수 μžˆλ‹€.

λ˜ν•œ ν”νžˆ λ³Ό 수 μžˆλŠ” 코덱(CODEC)μ΄λž€ 것이 μžˆλ‹€. 코덱은 μ•”ν˜Έν™”(enCOder)와 λ³΅ν˜Έν™”(DECoder)의 ν•©μ„±μ–΄λ‘œ μ••μΆ•ν•˜λŠ” 경우λ₯Ό μΈμ½”λ”©ν•œλ‹€κ³  ν‘œν˜„ν•˜κ³  압좕을 ν•΄μ œν•˜μ—¬ λ³΄μ—¬μ£ΌλŠ” 것을 λ””μ½”λ”©ν•œλ‹€κ³  ν‘œν˜„ν•œλ‹€.

이 정도면 첫번째 질문 λ©΄μ ‘ 톡과할 수 μžˆλŠ” 것인가?

더 κΉŠκ²ŒλŠ” λ”°λ‘œ 듀어가보도둝 ν•˜κ³  슈퍼개발자의 자격 1탄은 μ—¬κΈ°μ„œ 끝.

λ°˜μ‘ν˜•

λŒ“κΈ€