(์ดํํฐ๋ธ ์ฝํ๋ฆฐ) ๋ถ๊ณต๋ณ์ฑ(invariance), ๊ณต๋ณ์ฑ(covariance), ๋ฐ๊ณต๋ณ์ฑ(contvariance)
- ๋ถ๊ณต๋ณ์ฑ์ ์ด๋ค ํ์ ๋ ๋ชจ๋ ํ์ฉํ๋ค.
- ๊ณต๋ณ์ฑ์ ์์ ๊ณผ ๋ถ๋ชจํ์ ๋ง ํ์ฉํ๋ค. produce, ์์ฐ์ ๊ฐ๋ , read-only
- ๋ฐ๊ณต๋ณ์ฑ์ ์์ ๊ณผ ์๋ธํ์ ๋ง ํ์ฉํ๋ค. consume, ์๋น์ ๊ฐ๋ , write-only
type-safe ํ ์ฝํ๋ฆฐ์ ๊ฒฝ์ฐ ์ ๋ค๋ฆญ ์ฌ์ฉ ์ ์ ๊ฐ๋ ์ ์ ์ฉํ๋ฉด ์ข ๋ ์ ์ฐํ๊ณ ์์ ์ ์ธ ์ฝ๋ ์์ฑ์ด ๋ ์ ์๋ค๊ณ ํ๋ค. ๋ํ ์ผํ ์์๋ ๊นํ์ ์ ๋ฆฌํด๋์๋ค.
(์ดํํฐ๋ธ ์ฝํ๋ฆฐ) equals ์๋ ๋๊ฐ์ง๊ฐ ์๋ค. ๊ตฌ์กฐ์ ๋๋ฑ์ฑ๊ณผ ๋ ํผ๋ฐ์ค์ ๋๋ฑ์ฑ
- ๊ตฌ์กฐ์ ๋๋ฑ์ฑ์ ํด๋์ค ๋ด ๋ฉค๋ฒํ๋๊ฐ ๋์ผํ๊ฒ ์์ฑ๋์๋๊ฐ๋ฅผ ํ๋จํ๋ค. ์ฝํ๋ฆฐ์์ '==' ๋ฅผ ์ฌ์ฉํ๋ค.
- ๋ ํผ๋ฐ์ค์ ๋๋ฑ์ฑ์ ๋น๊ต ๋์์ด ๋๋ ๋ ๊ฐ์ ํด๋์ค๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด๊ฐ ๋์ผํ์ง ํ๋จํ๋ค. '===' ๋ฅผ ์ฌ์ฉํ๋ค.
data class Player(
val name: String,
val age: Int,
val gender: Gender
) {
enum class Gender {
M, W
}
}
fun main() {
val player1 = Player("park", 10, Player.Gender.M)
val player2 = Player("park", 10, Player.Gender.M)
val player1Reference = player1
// ๊ตฌ์กฐ์ ๋๋ฑ์ฑ : ==
println("๊ตฌ์กฐ์ ๋๋ฑ์ฑ")
println(player1 == player2) // true
println(player1 == player1Reference) // true
// ๋ ํผ๋ฐ์ค์ ๋๋ฑ์ฑ : ===
println("๋ ํผ๋ฐ์ค์ ๋๋ฑ์ฑ")
println(player1 === player2) // false
println(player1 === player1Reference) // true
val player3 = player1.copy(name = "kim")
println("ํ
์คํธ")
println(player1 == player3) // false
println(player1 === player3) // false
}
base64/base32
๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ํ ์คํธ๋ก ๋ณํํ๋ ์ธ์ฝ๋ฉ ๊ธฐ๋ฒ์ด๋ค. ์ด ๋ ์ธ์ฝ๋ฉ์ ์ด์ฉ๋๋ ๋ฌธ์์ด์ ์ ํด์ง US-ASCII 64๊ฐ์ ๋ฌธ์์ด์ ๊ฐ์ง๊ณ ์ธ์ฝ๋ฉ์ ์ํํ๋ค. source ์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ 6๋นํธ์ฉ ์๋ผ์ 64๊ฐ์ ๋ฌธ์์ด์ ๋งคํ์์ผ์ ์ธ์ฝ๋ฉ์ ์ํํ๋ค. ํ์ง๋ง ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๊ฐ ํฐ ๊ฒฝ์ฐ์ ์ํคํผ์ , 33~37% ์ ๋์ ๋ฐ์ดํฐ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋ค.
๋ฐ์ดํฐ ์ค๋ฒํค๋๊ฐ ๋ฐ์๋๋ ์ด์ ๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
- base64 ์ธ์ฝ๋ฉ์ 6๋นํธ์ฉ ์๋ผ์ ์ฒ๋ฆฌ๊ฐ ๋๋ค. ํ์ง๋ง ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ 8๋นํธ์ฉ ์๋ผ์ ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ base64 ์ธ์ฝ๋ฉ ์์๋ ๊ธฐ์กด ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ๋๋น ๋ ๋ง์ ๋ฌธ์๊ฐ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ด๋ค.
- base64 ์ธ์ฝ๋ฉ ๋ฐ์ดํฐ๋ ๊ฐ ๋ผ์ธ ๋์ ์ค๋ฐ๊ฟ ๋ฌธ์๊ฐ ์ถ๊ฐ๋ ์ ์๋ค. 6bit ๋ฅผ ๋ช ํํ๊ฒ ๋๋ด๊ธฐ ์ํด์ '=' ๋ฌธ์๊ฐ ์ถ๊ฐ๋๋ค.
base32 ์ธ์ฝ๋ฉ์ ๋ฌด์์ธ๊ฐ? 5๋นํธ์ฉ ์๋ผ์ 32๊ฐ์ ๋ฌธ์์ด์ ๋งคํ๋ ์ธ์ฝ๋ฉ์ ์๋ฏธํ๋ค. base64 ์ธ์ฝ๋ฉ ๊ด๋ จ๋ ์ถ๊ฐ์ ์ธ ๋ด์ฉ์ ๊นํ์ ์ ๋ฆฌํด๋์๋ค.
'Interest > ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2024-05 ๊ฐ๋ฐ : ์ํฌ๋ฆฌ๊ธฐ๋ก (0) | 2024.06.03 |
---|---|
2024-04 ๊ฐ๋ฐ : ์ํฌ๋ฆฌ๊ธฐ๋ก (1) | 2024.04.10 |
2024-02 ๊ฐ๋ฐ : ์ํฌ๋ฆฌ ๊ธฐ๋ก (1) | 2024.02.20 |
2024-01 ๊ฐ๋ฐ : ์ํฌ๋ฆฌ ๊ธฐ๋ก (0) | 2024.01.21 |
2023-11-25 ๊ฐ๋ฐ : ์ํฌ๋ฆฌ ๊ธฐ๋ก (0) | 2023.11.25 |