|
| 1 | +# 250910 pixel alignment issue |
| 2 | + |
| 3 | +์์ดํฐ์์ ํน์ ๋๋ฐ์ด์ค(iPhone 15 Plus)์์๋ง ์์ ๊ฒ์ ์ ์ด ๋ณด์ด๋ ๋ฌธ์ ๋ฅผ ํตํด |
| 4 | +ํฌ์ธํธ์ ํฝ์
, ํฝ์
์ ๋ ฌ, ์ํฐ์จ๋ฆฌ์ด์ฑ ๊ฐ๋
์ ์ ๋ฆฌํ๊ณ ์์ธ์ ๋ถ์ํ๋ค. |
| 5 | + |
| 6 | + |
| 7 | +9์ 10์ผ (์) |
| 8 | + |
| 9 | + |
| 10 | +# ํ์ต๋ด์ฉ |
| 11 | + |
| 12 | +> ๋ฌธ์ : ํน์ ๋๋ฐ์ด์ค์์ ๋ทฐ์ ๋๋น๊ฐ ์์์ ์ผ๋ก ๊ณ์ฐ๋๋ ๊ฒฝ์ฐ ์ํฐ์จ๋ฆฌ์ด์ฑ ๋ฐ์ํ๋ ๋ฌธ์ . |
| 13 | +
|
| 14 | +์ํฐ์จ๋ฆฌ์ด์ฑ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋๋ฐ์ด์ค ํ๋ฉด์ ๊ฒ์ ์ค์ ์ด ๋ณด์ฌ์ง๋ ๋ฌธ์ ๊ฐ ์๋ค. |
| 15 | + |
| 16 | +## ๋ฌธ์ ํ์ ์์ |
| 17 | + |
| 18 | + |
| 19 | + |
| 20 | +### 1. ํฌ์ธํธ(Point) vs ํฝ์
(Pixel) |
| 21 | + |
| 22 | +- ํฝ์
: ํ๋ฉด์ ์ด๋ฃจ๋ ๊ฐ์ฅ ์์ ๋ค๋ชจ ์นธ. ์ค์ ๋์คํ๋ ์ด ๋ฌผ๋ฆฌ ๋จ์. |
| 23 | +- ํฌ์ธํธ: iOS ๋์์ธ/๊ฐ๋ฐ์์ ์ฐ๋ ๊ฐ์์ ๋จ์. |
| 24 | +- ๊ฐ์ ์ฑ์ด๋ผ๋ iPhone 13(@3x), iPhone SE(@2x) ๋ฑ ๊ธฐ๊ธฐ์ ๋ฐ๋ผ ํฝ์
์๊ฐ ๋ค๋ฅด์ง๋ง, ํฌ์ธํธ๋ ํต์ผ๋ ๊ธฐ์ค์ด๋ผ์ โ100pt ๋ฒํผโ์ ๋ชจ๋ ๊ธฐ๊ธฐ์์ ๊ฐ์ ํฌ๊ธฐ๋ก ๋ณด์ธ๋ค. |
| 25 | +- ์: iPhone 15 Plus๋ @3x ๊ธฐ๊ธฐ๋ผ์ 1pt = 3px. |
| 26 | + |
| 27 | +### 2. ํฝ์
์ ๋ ฌ(Pixel Alignment) |
| 28 | + |
| 29 | +- ํ๋ฉด์ ์์๋ฅผ ๋ฐฐ์นํ ๋, ํฌ์ธํธ ๋จ์๊ฐ ์ ํํ ํฝ์
๋ฐฐ์๋ก ๋จ์ด์ง๋ ๊ฒ์ ๋งํ๋ค. |
| 30 | +- ์: 20pt โ @3x์์๋ 60px โ ํฝ์
์ ๋ ฌ ์ ํํ ๋ง์ โ
|
| 31 | +- ๋ฐ๋๋ก 20.5pt โ @3x์์๋ 61.5px โ ํฝ์
์ด ๋ฐ ์นธ์ ๊ฑธ๋ ค๋ฒ๋ฆผ โ |
| 32 | +- ํฝ์
๋ฐ ์นธ์ ๊ฑธ๋ฆฌ๋ฉด ํ๋ฉด์ด ํ๋ฆฟํ๊ฑฐ๋ ์์ ์ ์ด ์๊ธธ ์ ์๋ค. |
| 33 | + |
| 34 | +### 3. ์ํฐ์จ๋ฆฌ์ด์ฑ(Anti-aliasing) |
| 35 | + |
| 36 | +- ํฝ์
๋ฐ ์นธ์ ์ ์ด๋ ์ด๋ฏธ์ง๊ฐ ๊ฑธ๋ฆฌ๋ฉด, ํฝ์
์ ์จ์ ํ ์น ํ ์ ์๋ค. |
| 37 | +- ์ด๋ ์ปดํจํฐ๊ฐ ํฝ์
์ ์ค๊ฐ ์(ํ์/๋ฐํฌ๋ช
๋ฑ) ์ผ๋ก ์์ด ์น ํด ๋ถ๋๋ฝ๊ฒ ๋ณด์ด๋๋ก ๋ณด์ ํ๋ ๊ฒ ์ํฐ์จ๋ฆฌ์ด์ฑ์ด๋ค. |
| 38 | +- ๋ฌธ์ ๋, ์๋ณธ ์ด๋ฏธ์ง ์ฃผ๋ณ์ ํฌ๋ช
+๊ฒ์ ๊ฐ์ ํฝ์
์ด ์์ผ๋ฉด ์ด๊ฒ ์์ฌ์ ๊ฒ์ ์ ์ฒ๋ผ ๋ณด์ผ ์ ์๋ค๋ ์ ์ด๋ค. |
| 39 | + |
| 40 | +### 4. ์ ๋ฆฌ |
| 41 | + |
| 42 | +- ํฌ์ธํธ: ๋์์ธ/๊ฐ๋ฐ์ฉ ๊ฐ์ ๋จ์ (๊ธฐ๊ธฐ์ ์๊ด์์ด ์ผ์ ). |
| 43 | +- ํฝ์
: ์ค์ ํ๋ฉด ์นธ (@2x, @3x๋ก ํ๋๋จ). |
| 44 | +- ํฝ์
์ ๋ ฌ: ํฌ์ธํธ ๊ฐ์ด ์ ์ ๋ฐฐ์๋ก ๋ง์์ผ ํ๋ฉด์ด ์ ๋ช
ํ๊ฒ ๋์ด. |
| 45 | +- ์ํฐ์จ๋ฆฌ์ด์ฑ: ๋ฐ ์นธ์ ๊ฑธ๋ฆฌ๋ฉด ๋ณด์ ์ด ๋ค์ด๊ฐ๋ฉด์ ์์น ์๋ ์(๊ฒ์ ๋ผ์ธ ๋ฑ)์ด ์์ฌ ๋ณด์ผ ์ ์์. |
| 46 | + |
| 47 | +### 5. ํฌ์ธํธ์ ํฝ์
๋ฐฐ์ ๊ด๊ณ |
| 48 | + |
| 49 | +- iOS ๊ธฐ๊ธฐ๋ ๋์คํ๋ ์ด ๋ฐฐ์จ(@2x, @3x) ์ด ์ ํด์ ธ ์๋ค. |
| 50 | +- ์๋ฅผ ๋ค์ด iPhone 15 Plus๋ @3x โ 1pt = 3px. |
| 51 | +- ์ฆ, ํฌ์ธํธ ๊ฐ ร ๋ฐฐ์จ = ์ค์ ํฝ์
์ ๊ฐ ์ ์๋ก ๋จ์ด์ ธ์ผ ํ๋ฉด์ ์ ํํ ํ์๋๋ค. |
| 52 | + |
| 53 | + |
| 54 | +> ๐ **์์ฝ**: |
| 55 | +> - ํฌ์ธํธ๋ ๋์์ธ ๋จ์, ํฝ์
์ ์ค์ ํ๋ฉด ๋จ์. |
| 56 | +> - `ํฌ์ธํธ ร ๋ฐฐ์จ` ๊ฒฐ๊ณผ๊ฐ ์ ์๊ฐ ์๋๋ฉด ๋ฐ ์นธ์ ๊ฑธ๋ ค์ ์ํฐ์จ๋ฆฌ์ด์ฑ์ด ๋ฐ์. |
| 57 | +> - ์ด๋ ์์ ๊ฒ์ ์ ์ฒ๋ผ ๋ณด์ผ ์ ์๋ค. |
| 58 | +
|
| 59 | + |
| 60 | +# ๊ณ ๋ฏผํ ์ / ํด๊ฒฐ๋ฐฉ๋ฒ |
| 61 | + |
| 62 | + |
| 63 | +- ์ ๋ชจ๋ ๊ธฐ๊ธฐ์์ ๊ณตํต์ผ๋ก ๋ฐ์ํ์ง ์๊ณ ์ผ๋ถ ๊ธฐ๊ธฐ์์๋ง ๋ณด์ด๋๊ฐ? |
| 64 | + โ ๊ธฐ๊ธฐ๋ณ ํ๋ฉด ํญ, ๋ง์ง ์กฐํฉ์ ๋ฐ๋ผ ๋จ์ ๊ณต๊ฐ์ด ํ์/์ง์๋ก ๊ฐ๋ฆฌ๊ธฐ ๋๋ฌธ. |
| 65 | +- ํด๊ฒฐ ๋ฐฉ๋ฒ |
| 66 | + - ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๋ทฐ์ ๋๋น๊ฐ ์์์ ์ผ๋ก ๊ณ์ฐ๋๋ฉด ์ฌ๋ฆผ ์ฒ๋ฆฌํ์ฌ ์ ์ pt๋ก ๋ง์ถค. |
| 67 | + โ ์: 18.5pt โ 19pt๋ก ๋ณด์ ํด ํฝ์
์ ๋ ฌ์ ๊ฐ์ . |
| 68 | + |
| 69 | + |
| 70 | +# ๋๋์ |
| 71 | + |
| 72 | +- ๋ ์ด์์ ๊ณ์ฐ ์ ์ ์ ๋ณด์ ์ ์ต๊ดํํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ๋๊ผ๋ค. |
| 73 | + |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | + |
| 78 | +# ์ฐธ๊ณ ๋งํฌ |
| 79 | + |
| 80 | + |
| 81 | +- [https://developer.apple.com/design/human-interface-guidelines/layout#display-scale](https://developer.apple.com/design/human-interface-guidelines/layout#display-scale) |
| 82 | +- [https://xebia.com/blog/ios-pixel-misalignment-why-its-bad-how-to-fix-it/](https://xebia.com/blog/ios-pixel-misalignment-why-its-bad-how-to-fix-it/) |
| 83 | +- [https://stackoverflow.com/questions/5832869/single-sub-pixel-misalignment-of-divs-on-ipad-and-iphone-safari](https://stackoverflow.com/questions/5832869/single-sub-pixel-misalignment-of-divs-on-ipad-and-iphone-safari) |
0 commit comments