ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TIL] - 230704 data type, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น, has a relation, ๋ฌต์‹œ์  ์ดˆ๊ธฐํ™”
    TIL 2023. 7. 4. 18:13
    ๋ฐ˜์‘ํ˜•

    # kb IT's your life 4๊ธฐ

    ๐Ÿ“ŒFacts

    Test ํด๋ž˜์Šค์˜ ์‹คํ–‰๋ฐฉ์‹

    ์ง€๊ธˆ ๊ตฌํ˜„ํ•˜๋Š” ~Test class๋Š” 3 tier ๊ตฌ์กฐ์—์„œ์˜ Client์— ํ•ด๋‹น๋œ๋‹ค.

     

    ์—ญํ• ์€ ๋”ฑ 2๊ฐ€์ง€์ด๋‹ค.

    1. ๊ฐ’ ์ž…๋ ฅ๋ฐ›์•„์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ(์„œ๋น„์Šค ์š”์ฒญ)

    2. ๋ฐ˜ํ™˜๊ฐ’ ๋ฐ›์•„์„œ ์ถœ๋ ฅ(๊ฒฐ๊ณผ ํŽ˜์ด์ง€)

     

    ์ด ์ด์ƒ์˜ ์—ญํ• ์„ ํ•˜๋ฉด ์•ˆ ๋œ๋‹ค!

    ์ง€๊ธˆ์€ ~Test class๊ฐ€ client์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ print๋„ ์—ฌ๊ธฐ์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

    middle server์— ํ•ด๋‹นํ•˜๋Š” class์˜ ๋ฉ”์„œ๋“œ๋ฅผ void๋กœ ์„ ์–ธํ•˜๊ณ  print๋ฅผ ๊ฑฐ๊ธฐ์„œ ๋ฐ”๋กœ ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค

    ๋ฉ”์„œ๋“œ๋ฅผ String์œผ๋กœ ์ •์˜ํ•˜๊ณ  ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ด ~Test class์—์„œ print๋ฅผ ํ•ด์ฃผ๋Š” ๊ฒŒ OOP์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๊ฐ€๊น๋‹ค.

     

    ๋‚ด๊ฐ€ JVM์ด๋ผ๊ณ  ์ƒ๊ฐ!

     

     

    Calling๊ณผ Worker ๋ฉ”์„œ๋“œ

    ๋ฉ”์„œ๋“œ๋Š” ๋‘ ๊ฐ€์ง€ ํŒŒํŠธ๋ฅผ ๊ฐ€์ง„๋‹ค.

    1. calling method: ํ˜ธ์ถœ ๋ถ€๋ถ„

    2. worker method: ํ˜ธ์ถœ๋ฐ›์œผ๋ฉด ์ž‘๋™

     

    ๊ทธ๋ฆฌ๊ณ  2๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ํ•œ ํŒŒ์ผ์— ์ž‘์„ฑํ•  ๋•Œ์—๋Š”

    - main()์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํด๋ž˜์Šค ์•ž์—๋งŒ public์„ ์ง€์ •

    - public์œผ๋กœ ์ง€์ •๋œ ํด๋ž˜์Šค ๋ช…์œผ๋กœ javaํŒŒ์ผ์ด ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค.

     


    Data Type

    ๋ณ€์ˆ˜ ์„ ์–ธ

    ๋ณ€์ˆ˜ํƒ€์ž… + ๋ณ€์ˆ˜์ด๋ฆ„;

    String brand;
    int price;

     

     

    ๋ฐ์ดํ„ฐ ํƒ€์ž…์€ ๋ณ€์ˆ˜๊ณต๊ฐ„์— ๋“ค์–ด๊ฐ€๋Š” ๊ฐ’์˜ ํƒ€์ž…์„ ์ œํ•œํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

    1. ๊ธฐ๋ณธํ˜• Primiteive Data Type - 8๊ฐ€์ง€
    2. ์ฐธ์กฐํ˜•, ํด๋ž˜์Šค ํƒ€์ž… Reference Data Type - ๊ธฐ๋ณธํ˜•์ด ์•„๋‹ˆ๋ฉด ๋ชจ๋‘ ์ฐธ์กฐํ˜•

     

    ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ข…๋ฅ˜

    ์ˆซ์žํ˜•

    • ์ •์ˆ˜ํ˜• - ๊ธฐ๋ณธ๊ฐ’ 0
      • byte (8 bit)
      • short (16)
      • int (32)
      • long (64)
    • ์‹ค์ˆ˜ํ˜• - ๊ธฐ๋ณธ๊ฐ’ 0.0
      • float (32)
      • double (64)

    ๋ฌธ์žํ˜• - ๊ธฐ๋ณธ๊ฐ’: ‘\u0000’

    • char (16)/8

    ๋…ผ๋ฆฌํ˜• - ๊ธฐ๋ณธ๊ฐ’ false

    • boolean (1byte)

     

    ๋‚˜๋จธ์ง€- ๋ชจ๋‘ Reference DataType

     

    ์ฐธ๊ณ )

    float salary = 33.2 (x) → ๊ทธ๋ƒฅ 33.2๋Š” 33.2d์ž„.

    1) float salary = 33.2F;

    2) double salary = 33.2;

     

    String + Non-String ==> Stringํ™”

     

     

    ํด๋ž˜์Šค ์ž๋ฃŒํ˜• ๋ณ€์ˆ˜๋ฅผ ํ•„๋“œ๋กœ ์“ธ ๋•Œ

    1. ์ž๋ฃŒํ˜• ํด๋ž˜์Šค๋ฅผ ๋”ฐ๋กœ ์ •์˜ํ•ด์„œ setter, getter ์ •์˜ํ•˜๊ธฐ
    2. calling์—์„œ๋Š” ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋†“๊ณ  setting ๊ฑฐ์นœ ๊ฐ์ฒด๋ฅผ ์ธ์ž๋กœ ๋„ฃ๊ธฐ
    3. worker์—์„œ๋Š” getter์„ ํ†ตํ•ด ํ•„๋“œ๊ฐ’์„ ๊ฐ–๊ณ  ์™€ ๋กœ์ง์„ ๊ตฌ์„ฑํ•œ๋‹ค..

     

    ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น

    Shirt s1 = new Shirt();

    Class๋Š” ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ Type์œผ๋กœ ์ž‘์šฉํ•œ๋‹ค.

     

    class์˜ ๊ตฌ์„ฑ์š”์†Œ= ํ•„๋“œ + ๋ฉ”์„œ๋“œ

     

    ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ”Œ๋žซํผ์ด๋‹ค. ์ž๋ฐ”๊ฐ€ ์‹คํ–‰๋˜๋Š” ์˜์—ญ. ์ฆ‰, ์ž๋ฐ”์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์€ JVM์ด๋‹ค.

    JVM ์•ˆ์— ์—ฌ๋Ÿฌ ๊ณต๊ฐ„์ด ์žˆ์ง€๋งŒ stack๊ณผ heap์— ๋Œ€ํ•ด์„œ๋งŒ ์šฐ์„  ์•Œ์•„๋ณด๊ฒ ๋‹ค.

    ์šฐ์„  ์ปด๊ตฌ์—์„œ ๋ฐฐ์› ๋“ฏ์ด, new๋ผ๋Š” ํ‚ค์›Œ๋“œ๋กœ ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋Š” heap์— ์˜ฌ๋ผ๊ฐ„๋‹ค.

    ์ง€์—ญ๋ณ€์ˆ˜๋Š” stack์— ์ž๋ฆฌ ์žก๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ง€์—ญ๋ณ€์ˆ˜๋Š” ํ•„๋“œ๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ ๊ฐ’์ด ์—†์–ด์„œ ๊ณต๊ฐ„๋งŒ ํ• ๋‹น๋œ๋‹ค.

    ๊ฐ์ฒด ์ƒ์„ฑ์˜ ๊ฒฐ๋ก ์€ ์ฃผ์†Œ๊ฐ’!

    ๐Ÿ“Œ๊ฐ์ฒด ์ƒ์„ฑ์˜ ์›๋ฆฌ

    1. ์ง€์—ญ๋ณ€์ˆ˜ s1์ด stack์— ๊ณต๊ฐ„์„ ์ž๋ฆฌ์žก๋Š”๋‹ค.
    2. new ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ heap์— ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ์˜ฌ๋ผ๊ฐ€๋Š”๋ฐ ํ•„๋“œ๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์ฑ„์›Œ์ง. → ๋ฌต์‹œ์  ์ดˆ๊ธฐํ™”
    3. ๊ธฐ๋ณธ๊ฐ’์ด ์ฑ„์›Œ์ง„ ์งํ›„์— ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์ด ์ง ํ•˜๊ณ  ๋œธ.
    4. ๊ทธ๋Ÿฌ๋ฉด ์Šคํƒ์— ํ• ๋‹น๋œ ์ง€์—ญ๋ณ€์ˆ˜ s1 ๊ณต๊ฐ„์— ๊ฐ์ฒด์˜ ์ฃผ์†Œ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค. ์Šคํƒ์ด s1์ด heap์— ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์›๋ฆฌ
    5. ์ด๊ฒŒ reference value

     

    ๊ทธ๋ ‡๋‹ค๋ฉด ๋ช…์‹œ์  ์ดˆ๊ธฐํ™”๋Š”?

    - ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ.

    - setter(), ์ƒ์„ฑ์ž ๋‘ ๊ฐ€์ง€ ๋ฐฉ์‹์ด ์žˆ์Œ.

    • ์ƒ์„ฑ์ž: ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ๋™์‹œ์— ๊ฐ’ ์ฃผ์ž…, life cycle์„ ํ•จ๊ป˜ ํ•  ๋•Œ, car-engine ๋Š๋‚Œ
    • setter: ๊ฐ์ฒด ์ƒ์„ฑ์„ ํ•˜๊ณ  ๋‚˜์ค‘์— ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ผ์ด ์žˆ์„ ๋•Œ setter, car-navigator ๋Š๋‚Œ
      • ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋Š” ์ฃผ๋กœ setter ์ด์šฉํ•ด ์ดˆ๊ธฐํ™”

    Has A Relation

    Hasing, composed of ๊ด€๊ณ„์— ํ•ด๋‹นํ•จ. ~๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. 

    ๐Ÿ“Œ data type์€ ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์œผ๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, ์–ด๋–ค ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ์ž๋ฃŒํ˜•์œผ๋กœ ํ•„๋“œ๋ฅผ ๊ฐ€์ง„๋‹ค๋ฉด has a relation๊ด€๊ณ„์— ํ•ด๋‹นํ•œ๋‹ค.

     

    - ์ด๋•Œ has a relation ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„ ๋ณ€์ˆ˜ ์ด๋ฆ„ ์„ค์ •์„ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

     

    getter setter ํ•จ์ˆ˜ ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—

    Notebook noteBook; ํ•„๋“œ์ด๋ฆ„ ์ด๋Ÿฐ ์‹์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•จ.

    ํด๋ž˜์Šค์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ฐ–๊ณ  ์™€์„œ ์ฒซ ๋ฌธ์ž๋งŒ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜!

    ๋งŒ์•ฝ, nb๋กœ ํ•˜๋ฉด getnb() setnb() ์ด๋Ÿฐ ์‹์œผ๋กœ ๋˜๋‹ˆ๊นŒ ๊ฐ€๋…์„ฑ ํ™• ๋‚ด๋ ค๊ฐ.

     

    ๊ทธ๋ฆฌ๊ณ  setter์—์„œ๋„ identifier๋ฅผ flexible ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ. ๊ผญ set ๋ง๊ณ  change, buy ๋“ฑ๋“ฑ..

     

     

     

    ์ดํด๋ฆฝ์Šค ๊ฟ€ํŒ: alt shift s ๋ˆ„๋ฅด๋ฉด ์ƒ์„ฑ์ž, getter, setter ๋“ค ํ•„๋“œ๋ณ„๋กœ generate ๊ฐ€๋Šฅ!

     

    ๐Ÿ“š Findings

     

    Hasing

    https://hayden-archive.tistory.com/68

     

    [์ž๋ฐ”/Java] ํ•ด์ง• / ์ƒ์† / ์ƒ์†์—์„œ์˜ ์ƒ์„ฑ์ž ์—๋Ÿฌ / ์˜ค๋ฒ„๋ผ์ด๋”ฉ / ๋‹คํ˜•์„ฑ / ๊ฐ์ฒด ํ˜•๋ณ€ํ™˜

    ํ•ด์ง• ๊ด€๋ จ ํฌ์ŠคํŒ… : https://hayden-archive.tistory.com/64 ์ฐธ๊ณ  1 : https://pasudo123.tistory.com/24 ์ฐธ๊ณ  2 : https://micropilot.tistory.com/2416 ํ•ด์ง•(Hasing) - Has a Relation //์ˆ˜ํ‰๊ด€๊ณ„ ==> Service๊ฐ€ VO๋ฅผ ๊ฐ€์ง€๊ณ  VO์— ์˜์กดํ•œ๋‹ค. -->

    hayden-archive.tistory.com

    Hasing์ด has - a - relation์ด๋ž‘ ๊ฐ™์€ ๋ง~ ์ˆ˜ํ‰์  ๊ด€๊ณ„!

     

     

    JVM Method Area?

    JVM์•ˆ์˜ ๋˜ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ธ  Method Area

    https://tecoble.techcourse.co.kr/post/2021-08-09-jvm-memory/

     

    JVM์— ๊ด€ํ•˜์—ฌ - Part 3, Run-Time Data Area

    Java ๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š” ๊ฑธ๊นŒ? ํ•ด๋‹น ๋ฌผ์Œ์— ๋‹ต์„ ์ฐพ๊ธฐ ์œ„ํ•œ JVM ์‹œ๋ฆฌ์ฆˆ 3ํŽธ, JVM ์˜ ๊ตฌ์„ฑ์š”์†Œ ์ค‘ Run-Time Data Area ์— ๊ด€ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” JVM…

    tecoble.techcourse.co.kr

     

     

    ๐Ÿ˜ Feelings

    ์˜ค๋Š˜๋„ ์•ผ๋ฌด์ง€๊ฒŒ ๋ฐฐ์› ๋‹ค.

    ํ•˜๋ฃจ์ข…์ผ ๊ต์œก๋ฐ›์œผ๋‹ˆ ์š”์ฆ˜ ํ•˜๋ฃจ๊ฐ€ ์ •๋ง ๊ธธ์–ด์ง„ ๊ธฐ๋ถ„์ด๋‹ค.

     

    ๋ณ€์ˆ˜ ํƒ€์ž…์„ ๋ฏธ๋ฆฌ ๊ณต๋ถ€ํ•ด ๊ฐ€์„œ ๊ฐ•์‚ฌ๋‹˜์ด ๊ฐ€๋ฅด์ณ์ฃผ์‹œ๋Š” ๋‚ด์šฉ์„ ๋‹ค ํก์ˆ˜ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

    ๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ ๋ฉ”์ธ ๋‚ด์šฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฐ์ฒด ์ƒ์„ฑ์˜ ์›๋ฆฌ์™€ has a relation ๊ตฌํ˜„ ๋ฐฉ์‹๋„ ์™„๋ฒฝํ•˜๊ฒŒ ์ดํ•ดํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

     

    ์—ด์‹ฌํžˆ ํ•ด์•ผ์ง€~

    ๊ทธ๋‚˜์ €๋‚˜ ์˜ค๋Š˜ ๊ฒฐ๊ณผ ๋‚˜์™”์œผ๋ฉด..!

     

     

    ๐Ÿงญ Future

    • Condition
    • Encapsulation
    • Looping
    • Primitive Array

    ๋‚ด์ผ ๋ฐฐ์šธ ๋‚ด์šฉ๋“ค์ธ๋ฐ <์ž๋ฐ”์˜ ์ •์„> ์ •๋…ํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•ด ๊ฐ€์•ผ๊ฒ ๋‹ค.

    ๋ฐ˜์‘ํ˜•
Designed by Tistory.