일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- swift문법
- 제앱소
- apple developer academy 후기
- 데이터베이스 공부
- 소프트웨어분석및설계
- ObservableObject
- 치지직
- 운영체제
- Apple Developer Academy @ POSTECH
- Swift 기능
- 숭실대
- ObservedObject
- useReducer
- iOS 개발 오류
- react
- SWIFT
- 네이버 치지직
- sqoop
- 애플 아카데미 후기
- 네이버 부스트캠프
- Swift 디자인패턴
- OS
- 애플 디벨로퍼 아카데미 후기
- 데이터베이스
- StateObject
- 애플 디벨로퍼 아카데미
- Swift 문법
- global soop
- 앱 비교 프로젝트
- 애플 디벨로퍼 아카데미 21주차 회고
- Today
- Total
사과하는 제라스
[CS 지식 공부] PNG와 JPG의 차이는 무엇일까?(feat. JPEG) 본문
목차
서론
안녕하세요. 개발자 제라스입니다~ 👋🏻🤖👋🏻
확장자에는 정말 다양한 형식들이 있습니다.
그 중에서 가장 많이 봐온 형식 중에 image 형식들로 PNG, JPG, JPEG 등이 있죠.
오늘은 이들의 차이점을 알아보겠습니다.
그럼 오늘도 한번 시작해보겠습니다!
JPG와 JPEG의 차이
먼저 가장 비슷한 JPG와 JPEG의 차이입니다.
이들이 무슨 약어인지부터 한번 알아봅시다.
먼저, JPEG는 Joint Photographic Experts Group(합동사진전문가단체)의 약어입니다.
이 단체에서 만든 정지된 화상을 위해 만들어진 손실 압축 방법 표준인데요.
어떤 사진 내에서 주변 색상들을 하나로 색상을 합쳐서 표현하는 방식으로 기존 이미지의 크기를 50-70% 축소시켜 줍니다.
그 결과 이미지를 키웠을 때 깨지는 현상이 나타나죠.
'크기 축소 == 화질 저하' 이건 어쩔 수 없는 공식입니다.
그렇다면 이런 JPEG와 JPG의 차이는 무엇일까요?
정말 단순합니다.
이름만 차이가 있습니다.
변한게 없어요. 아니 그래도 뭐라도... 없어요.
예전에 윈도우 OS가 있기 전에 MS-DOS가 있었죠.
이 시스템에서는 8.3규칙이라는게 있었는데요.
해당 OS에서는 파일은 8자까지 파일명을 정할 수 있고, 확장자명은 3글자까지만 둘 수 있다는 규칙입니다.
이렇다보니 JPEG라는 단체에서 만든 규칙을 그대로 쓰지 못하고 JPG로 줄여서 써온 것이죠.
그러다가 이후엔 4글자 이상을 확장자명으로 둘 수 있다보니 JPEG라는 파일명을 제대로 쓰기 시작했습니다.
하지만 여전히 그 당시의 파일명을 그대로 쓰는 경우가 있어서 둘이 혼합해서 쓰고 있고 서로 호환이 되고 있죠.
블로그 글들을 찾아보다보니 KakaoTalk에서 JPG파일을 전송하면 수신자에게는 JPEG 파일로 전달이 되는데 이는 KakaoTalk 내부에서 파일명을 변환시켜준다는 사실을 알 수 있었습니다.
신기하네요 ㅎㅎ
PNG와 JPG의 차이는?
이들의 차이는 사실 압축 방식의 차이에 있다.
PNG는 비손실 압축방식이기에 원본이 손실되지 않습니다.
반면, JPG의 경우엔 DCT(이산 코사인 변환)을 적용하고 이 결과에 양자화까지 하여 데이터 크기를 줄입니다. 이때 원본은 사람이 보기 불편하지 않을 정도로까지 훼손하여 압축을 합니다. 그렇기에 대체로 크기가 더 작아진다고 볼 수 있죠.
근데...! 근데!!! 반드시가 절대 아니라는 사실...!
JPG면 무조건 PNG보다 더 크기가 줄어드나?
결론부터 말씀드리면 아닙니다.
언제 안 그러냐를 말씀드리면 인공적인 이미지를 압축할 때가 그렇습니다.
자연스럽게 찍은 사진의 경우엔 PNG보단 JPG로 압축 시 데이터 크기가 상당히 줄어듭니다.
반면, 인공적인(ex. 도표, 그래프 등) 사진을 압축할 때는 오히려 JPG에서 단순히 동일한 색의 가장자리를 다른 색으로 표시하는 등 더 많은 색상을 사용합니다.
그러다보니 오히려 PNG보다 훨씬 큰 데이터 크기의 결과를 남기기도 하죠.
그러니 너무 PNG는 크기가 크다고 고정관념을 가지면 안될 것 같습니다.
마무리
오늘은 PNG와 JPEG의 차이를 알아보았습니다.
확실히 서로 다른 방식으로 압축을 하고 또 상황에 따라 오히려 PNG가 JPG보다 더 작은 크기로 압축될 수 있다는 것을 알 수 있었습니다.
이러한 점에서 무작정 크기를 줄일 때 JPG만 쓰지 않고 상황에 따라 인공적인 사진의 경우엔 PNG로, 자연스런 사진(실제 인물 사진 등)의 경우엔 JPG로 압축하도록 해야겠습니다.
참고
https://blogchannel.tistory.com/269
https://blog.naver.com/acromedia/220278860944
https://socialdesigner.tistory.com/60
아직 꼬꼬마 개발자입니다.
더 나은 설명이나 코드가 있다면 언제든 환영입니다.
적극적인 조언과 피드백 부탁드립니다!
그럼 오늘도 개발 가득한 하루되세요!
- Xerath -
🤖🤖🤖🤖🤖🤖🤖
'CS 지식 공부' 카테고리의 다른 글
[CS 지식 공부] POP와 OOP의 차이에 관하여 (1) | 2024.04.01 |
---|---|
[CS 지식 공부] 공유기의 원리(feat. NAT(Network Address Translation)) (0) | 2024.02.20 |
[CS 지식 공부] Virtual Memory란? (1) | 2024.02.09 |
[CS 지식 공부] 그쪽도 라이브러리와 프레임워크의 차이를 아세요?(feat. API) (1) | 2023.12.26 |