๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

Java์—์„œ๋Š” ์ˆซ์žํ˜• ํƒ€์ž…์œผ๋กœ double๊ณผ Double ๋‘ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
์ฒ˜์Œ ๊ณต๋ถ€ํ•  ๋• ๋˜‘๊ฐ™์•„ ๋ณด์ด์ง€๋งŒ, ์‹ค๋ฌด์—์„œ ์ •๋ง ์ค‘์š”ํ•œ ์ฐจ์ด๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค.
์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด ๋‘˜์˜ ์ฐจ์ด์™€ ์‹ค์ œ๋กœ ์–ธ์ œ ์–ด๋–ค ๊ฑธ ์จ์•ผ ํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๊ธฐ๋ณธ ๊ฐœ๋…

ํ•ญ๋ชฉ double Double
ํƒ€์ž… ๊ธฐ๋ณธํ˜•(primitive) ์ฐธ์กฐํ˜•(wrapper class)
null ํ—ˆ์šฉ โŒ ๋ถˆ๊ฐ€ โœ… ๊ฐ€๋Šฅ
๊ธฐ๋ณธ๊ฐ’ 0.0 null
์‚ฌ์šฉ ๋ชฉ์  ๋น ๋ฅธ ๊ณ„์‚ฐ, ๋‹จ์ˆœํ•œ ์ˆ˜์น˜ ์ฒ˜๋ฆฌ null์ฒ˜๋ฆฌ, ์ปฌ๋ ‰์…˜/๊ฐ์ฒด ์กฐ์ž‘

 

์™œ ๋‘๊ฐ€์ง€๊ฐ€ ์กด์žฌํ• ๊นŒ?

Java๋Š” ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์ˆซ์žํ˜•์€ primitive ํƒ€์ž…์œผ๋กœ ์„ค๊ณ„ํ–ˆ์ง€๋งŒ,
์ปฌ๋ ‰์…˜(List, Map ๋“ฑ)์— ๋‹ด๊ฑฐ๋‚˜ null ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•ด์•ผ ํ•  ๋•Œ๋Š” ๊ฐ์ฒด๋กœ์จ ๋‹ค๋ค„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด Wrapper Class, ์ฆ‰ Double ์ž…๋‹ˆ๋‹ค.
(int → Integer, boolean → Boolean ๋“ฑ๋„ ๊ฐ™์€ ๊ฐœ๋…)

 

์˜ˆ์‹œ๋กœ ๋ณด๋Š” ์ฐจ์ด

๊ธฐ๋ณธํ˜•์€ null์„ ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค.
double a = null; // ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋ฐœ์ƒ!

 

์ฐธ์กฐํ˜•์€ null ๊ฐ€๋Šฅ!

Double b = null; // ์ •์ƒ ๋™์ž‘

 

์–ธ์ œ Double์„ ์จ์•ผ ํ• ๊นŒ?

 

1. DB์™€ ์—ฐ๋™ํ•  ๋•Œ (JPA ๋“ฑ)

@Entity
public class WeightRecord {
    private Double weight; // null ํ—ˆ์šฉ → DB์˜ NULL ๊ฐ’ ๋งคํ•‘ ๊ฐ€๋Šฅ
}

 

2. ์ปฌ๋ ‰์…˜์— ๋‹ด์„ ๋•Œ

List<Double> weightList = new ArrayList<>();

 

3. ๊ฐ’์ด ์—†๋Š” ์ƒํƒœ(null)๋ฅผ ์˜๋ฏธํ•ด์•ผ ํ•  ๋•Œ

if (record.getMuscle() == null) {
    // ์•„์ง ๊ธฐ๋ก๋˜์ง€ ์•Š์€ ๊ฐ’ ์ฒ˜๋ฆฌ
}

 

์˜คํ† ๋ฐ•์‹ฑ / ์–ธ๋ฐ•์‹ฑ

Java๋Š” ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜• ๊ฐ„์˜ ๋ณ€ํ™˜์„ ์ž๋™์œผ๋กœ ํ•ด์ค๋‹ˆ๋‹ค.

Double a = 3.14;   // ์˜คํ† ๋ฐ•์‹ฑ (double → Double)
double b = a;      // ์–ธ๋ฐ•์‹ฑ (Double → double)

ํ•˜์ง€๋งŒ a๊ฐ€ null์ด๋ฉด?

Double a = null;
double b = a; // โ— NullPointerException ๋ฐœ์ƒ!

→ ์ฃผ์˜! ์–ธ๋ฐ•์‹ฑ ์‹œ null์ด๋ฉด NPE ํ„ฐ์งˆ ์ˆ˜ ์žˆ์Œ

 

๊ฒฐ๋ก 

์ƒํ™ฉ ์ถ”์ฒœ ํƒ€์ž…
๋น ๋ฅธ ๊ณ„์‚ฐ, null ๋ถˆํ•„์š” double
DB ์ €์žฅ, null ํ—ˆ์šฉ, ๋ฆฌ์ŠคํŠธ ๋“ฑ Double

์ •๋ฆฌํ•˜์ž๋ฉด, ์‹ค๋ฌด์—์„œ๋Š” Double์„ ๋” ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
ํŠนํžˆ JPA Entity, ์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’, ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ ๋“ฑ์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„ null์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋‹ˆ๊นŒ์š”.

 

ํ•จ๊ป˜ ๋ณด๋ฉด ์ข‹์€ Wrapper Class

๊ธฐ๋ณธํ˜• ์ฐธ์กฐํ˜•
int Integer
double Double
boolean Boolean
char Character

 

๋ฐ˜์‘ํ˜•