๐Ÿช kakaotech campus

์นดํ…Œ์ผ | 1์ฃผ์ฐจ WIL

c0zi 2023. 6. 7. 13:50

๐Ÿšง ๋ณธ๊ฒฉ 1์ฃผ์ฐจ ํ•™์Šต ์ „์— ...

 

์šฐ์„  ์ด์ „์— ํ—ท๊ฐˆ๋ ธ๊ฑฐ๋‚˜ ๋ถ€์กฑํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๋ถ€๋ถ„์„ ๋จผ์ € ์ฑ„์›Œ๋„ฃ๊ณ  ์‹ถ์–ด์„œ, ์„ ํƒ ๊ฐ•์˜ ์ค‘์—์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์ฐพ์•„ ๋“ค์—ˆ๋‹ค.

 

๐Ÿ“„ ๊ฐ์ฒด ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ


  System.arraycopy(src, srcPos, dest, destPos, length)
  • scr ๋ฐฐ์—ด์˜ srcPos ์œ„์น˜๋ถ€ํ„ฐ length๊ธธ์ด ๋งŒํผ์˜ ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•˜์—ฌ, dest ๋ฐฐ์—ด์˜ destPos ์œ„์น˜์— ๋Œ€์ž…(๐Ÿšจ destPos ์œ„์น˜๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฐฐ์—ด ์›์†Œ์˜ ๊ธธ์ด๊ฐ€ length ๋ณด๋‹ค ์งง๋‹ค๋ฉด ์˜ค๋ฅ˜)
  • ๋‘๊ฐœ์˜ ๋ฐฐ์—ด์ด ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ด
    (= ์–•์€ ๋ณต์‚ฌ)
  • ์ด์™€ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ์ฒด ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•˜๋ฉด ๊ฐ์ฒด ์ฃผ์†Œ๋งŒ ๋ณต์‚ฌ๋˜์–ด ํ•œ์ชฝ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๊ฐ™์ด ์ˆ˜์ •๋จ

 

๊นŠ์€ ๋ณต์‚ฌ

  • ๋”๋ณด๊ธฐ
    ๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ ๊ฐ์ฒด์˜ ๊ฐ’์„ ๋ณต์‚ฌํ•˜์—ฌ ๋ฐฐ์—ด์ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ํ•จ
for (int i = 0; i < library.length; i++) { // ๊นŠ์€ ๋ณต์‚ฌ
        copyLibrary[i].setAuthor(library[i].getAuthor());
        copyLibrary[i].setTitle(library[i].getTitle());
        }
        
        // set, get ๋ฉ”์†Œ๋“œ๋Š” ๋”ฐ๋กœ ์ •์˜

 

โšก ArrayList

: ๊ฐ์ฒด ๋ฐฐ์—ด์„ ์ข€๋” ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ž๋ฐ”์—์„œ ์ œ๊ณตํ•ด ์ฃผ๋Š” ํด๋ž˜์Šค

 

๋ฐฐ์—ด :

  • ๋ฐฐ์—ด์€ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •์ธ ๋ฐ˜๋ฉด ArrayList๋Š” ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ณ€ํ™”
  • ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋ฉด ๋‹ค๋ฅธ ์š”์†Œ๋“ค์˜ ์ด๋™์— ๋Œ€ํ•œ ๊ตฌํ˜„์„ ํ•ด์•ผ ํ•จ

 

1) ArrayList ์ƒ์„ฑ

ArrayList๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ์˜ ๊ตฌ๋ฌธ์„ ์ž…๋ ฅํ•˜์—ฌ import ํ•ด์ค€๋‹ค.
import java.util.ArrayList;

ArrayList ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

// ํƒ€์ž… ์ง€์ •
ArrayList<String> name1 = new ArrayList<String>(); 
// ํƒ€์ž… ์ƒ๋žต ๊ฐ€๋Šฅ
ArrayList<String> name2 = new ArrayList<>(); 

 

2) ArrayList ์š”์†Œ ์ถ”๊ฐ€/๋ณ€๊ฒฝ

  • ์š”์†Œ(elements)๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” add() ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉ
    ex. name1.add("์ถ˜์‹์ด")
  • ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” set() ๋ฉ”์†Œ๋“œ ์ด์šฉ
    ex. name2.set(0,"๋ผ์ด์–ธ")

 

3) ArrayList ์š”์†Œ ์‚ญ์ œ

์š”์†Œ๋ฅผ ์‚ญ์ œ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” remove(),clear() ๋ฉ”์†Œ๋“œ ์ด์šฉ

  • remove()
    → ๊ฐ’์„ ์ง€์›€๊ณผ ๋™์‹œ์— ํ•ด๋‹น ๊ฐ’์œผ๋กœ ๋ณ„๋„์˜ ์ž‘์—…์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๋ฅผ ์ด์šฉํ•ด ๋ฆฌํ„ด์„ ๋ฐ›์•„์„œ ์‚ฌ์šฉ
// ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•œ ์š”์†Œ ์‚ญ์ œ
String removedName = name1.remove(0)
// ์š”์†Œ๋ฅผ ์ด์šฉํ•œ ์š”์†Œ ์‚ญ์ œ
name1.remove("์ถ˜์‹์ด")
  • clear()
    : ์ „์ฒด ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” clear() ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ

 


 

๐Ÿšฉ 1์ฃผ์ฐจ ํ•™์Šต ๋‚ด์šฉ

 

๐Ÿ“ฆ ๊ฐ์ฒด

: ๊ตฌ์ฒด์ , ์ถ”์ƒ์  ๋ฐ์ดํ„ฐ์˜ ๋‹จ์œ„

๐Ÿ” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ vs ์ ˆ์ฐจ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ ˆ์ฐจ ) ์‚ฌ๊ฑด์˜ ํ๋ฆ„์— ๋”ฐ๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
๊ฐ์ฒด ) ๊ฐ์ฒด๋“ค ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

โœ๏ธ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

: ๊ฐ์ฒด ์ •์˜, ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„, ๊ธฐ๋Šฅ๋“ค ๊ฐ„ ์†Œํ†ต์„ ํ†ตํ•ด ํ˜‘๋ ฅ ๊ตฌํ˜„

* ์ž๋ฐ” ํŒŒ์ผ ํ•˜๋‚˜์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ, public ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜
* ๊ฐ์ฒด์˜ ์†์„ฑ์€ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ๊ตฌํ˜„

 


โ“ ํ•จ์ˆ˜๋ž€

  • ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ๋ จ์˜ ์ฝ”๋“œ

โ” ๋ฉ”์†Œ๋“œ

  • ๊ฐ์ฒด์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํด๋ž˜์Šค ๋‚ด๋ถ€์— ๊ตฌํ˜„๋˜๋Š” ํ•จ์ˆ˜
  • ๋ฉค๋ฒ„ ํ•จ์ˆ˜ (member function)์ด๋ผ๊ณ ๋„ ํ•จ

๐Ÿ“Œ ๋ณ€์ˆ˜์˜ ์ž๋ฃŒํ˜•

  • ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• (int, long, double ...)
  • ์ฐธ์กฐ ์ž๋ฃŒํ˜• (String, Student ...)
๋”๋ณด๊ธฐ

*  ์ฐธ์กฐ ์ž๋ฃŒํ˜•

1) ํด๋ž˜์Šคํ˜•์œผ๋กœ ๋ณ€์ˆ˜ ์„ ์–ธ
2) ์‚ฌ์šฉ ํ• ๋•Œ๋Š” ํ•ด๋‹น ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ƒ์„ฑํ•˜์—ฌ์•ผ ํ•จ
* String ์˜ˆ์™ธ

 


๐Ÿ“‘ ์ ‘๊ทผ ์ œ์–ด ์ง€์‹œ์ž

  • ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ, ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•˜๋Š” ํ‚ค์›Œ๋“œ
  1. private : ๊ฐ™์€ ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ (์™ธ๋ถ€ ํด๋ž˜์Šค, ์ƒ์† ๊ด€๊ณ„์˜ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ ๋ถˆ๊ฐ€)
  2. default (์ƒ๋žต๊ฐ€๋Šฅ) : ๊ฐ™์€ ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ ( ์ƒ์† ๊ด€๊ณ„๋ผ๋„ ํŒจํ‚ค์ง€๊ฐ€ ๋‹ค๋ฅด๋ฉด ์ ‘๊ทผ ๋ถˆ๊ฐ€)
  3. protected : ๊ฐ™์€ ํŒจํ‚ค์ง€๋‚˜ ์ƒ์†๊ด€๊ณ„์˜ ํด๋ž˜์Šค์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ทธ ์™ธ ์™ธ๋ถ€์—์„œ๋Š” ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†์Œ
  4. public : ํด๋ž˜์Šค์˜ ์™ธ๋ถ€ ์–ด๋””์„œ๋‚˜ ์ ‘๊ทผ ํ•  ์ˆ˜ ์žˆ์Œ

๐Ÿ—‚๏ธ static ๋ณ€์ˆ˜

: ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ํ•„์š”

  • ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ๋งŒ๋“ค์–ด์ง€๋Š” ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ, ์ฒ˜์Œ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น
  • ํด๋ž˜์Šค ๋ณ€์ˆ˜, ์ •์ ๋ณ€์ˆ˜๋ผ๊ณ ๋„ ํ•จ (vs. ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)
  • ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๊ณผ ์ƒ๊ด€ ์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ํด๋ž˜์Šค ์ด๋ฆ„์œผ๋กœ ์ง์ ‘ ์ฐธ์กฐ

๐Ÿซฅ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ ๋œ ์ , ์ข‹์•˜๋˜ ์ 

  • ๊ณต๋ถ€๋ฅผ ํ•  ๋•Œ๋งˆ๋‹ค ํ•จ์ˆ˜์™€ ๋ฉ”์†Œ๋“œ์˜ ๊ฒฝ๊ณ„๊ฐ€ ๋ถ„๋ช…ํ•˜์ง€ ์•Š๊ณ  ๊ฐ™๋‹ค๊ณ  ์ทจ๊ธ‰ํ•  ๋•Œ๊ฐ€ ๋งŽ์•„์„œ ์ž๋ฐ”์—์„œ๋Š” ํ•จ์ˆ˜ == ๋ฉ”์†Œ๋“œ ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ๋ฉ”์†Œ๋“œ๋Š” 'ํ•จ์ˆ˜์˜ ์ผ์ข…'์œผ๋กœ ํด๋ž˜์Šค ๋‚ด ๊ตฌํ˜„๋œ ํ•จ์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ๊ฐ•์˜๋ฅผ ๋ณด๋ฉด์„œ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ArrayList์™€ ๋ฐฐ์—ด์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ ๋” ์ •ํ™•ํ•˜๊ฒŒ ์ •๋ฆฌํ•ด ๋ณด๋ฉด์„œ ArrayList๊ฐ€ ๋งŽ์ด ์“ฐ์ผ ์ˆ˜ ๋ฐ–์— ์—†๋Š” ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์ด๋ฒˆ ์ฃผ์ฐจ ๋‚ด์šฉ์€ ์ด๋ฏธ ํ•œ๋ฒˆ์”ฉ ๊ณต๋ถ€ํ–ˆ๋˜ ๋‚ด์šฉ์ด์ง€๋งŒ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ํ•œ๋ฒˆ, ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•˜๋ฉด์„œ ํ•œ๋ฒˆ ๋˜์ƒˆ๊ธฐ๋‹ค๋ณด๋‹ˆ ๊ฐ•์˜๋กœ๋งŒ ๋“ฃ๋Š” ๊ฒƒ๋ณด๋‹ค ๋จธ๋ฆฌ ์†์— ํ›จ์”ฌ ๋งŽ์ด ๋‚จ์•„์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
  • ๊ฐœ๋…์ ์ธ ๋‚ด์šฉ์€ ์žŠ์–ด๋ฒ„๋ฆด ๋•Œ๊ฐ€ ๋งŽ์€๋ฐ ๊ทธ๋Ÿด ๋•Œ๋งˆ๋‹ค ๋“ค์–ด์™€์„œ ํ•œ๋ฒˆ์”ฉ ์ฐธ๊ณ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.

1์ฃผ์ฐจ ํ™œ๋™ ํ›„๊ธฐ !!

 

๐Ÿ”ฅ 1์ฃผ์ฐจ ํ™œ๋™ ์‹œ์ž‘

๋“œ๋””์–ด 1์ฃผ์ฐจ ํ™œ๋™์ด ์‹œ์ž‘๋˜์—ˆ๋‹ค.
๊ฑฑ์ • ๋ฐ˜ ๊ธฐ๋Œ€ ๋ฐ˜์œผ๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ์•„์ง 1์ฃผ์ฐจ๋ผ ๊ทธ๋Ÿฐ์ง€ ๋ฐฐ์šฐ๋Š” ๋‚ด์šฉ์ด ์–ด๋ ต์ง€๋Š” ์•Š์•˜๋‹ค.

๊ทธ๋ฃน๋„ ๋งŒ๋“ค์–ด์ง€๊ณ , ์นดํ…Œ์ผ 1๊ธฐ ์• ์นญ๋„ ์ƒ๊ฒผ๋‹ค ! (๐Ÿช's)
์Šฌ๋ž™์œผ๋กœ ์†Œํ†ต์„ ํ•ด์„œ ์ œ๋•Œ ์•Œ๋ฆผ์„ ์ž˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„๊นŒ ์ƒ๊ฐ์„ ํ–ˆ๋Š”๋ฐ ๋ชจ๋ฐ”์ผ๋กœ ๊น”์•„๋‘๋‹ˆ ์•Œ๋ฆผ์ด ๋„ˆ๋ฌด ์ž˜์™€์„œ ์†Œํ†ต์œผ๋กœ ๊ฑฑ์ •ํ•  ํ•„์š”๋Š” ์—†์„ ๋“ฏ ํ–ˆ๋‹ค.

 

๐Ÿ–ฅ๏ธ ๊ฐ•์˜ ๋ฐฉ์‹

๊ฐ•์˜๋Š” ํŒจ์ŠคํŠธ ์บ ํผ์Šค ๊ฐ•์˜๋กœ, ํ•„์ˆ˜ ๊ฐ•์˜์™€ ์„ ํƒ ๊ฐ•์˜๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋Š”๋ฐ ์„ ํƒ ๊ฐ•์˜ ์ค‘์—์„œ ๋“ค์œผ๋ฉด ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์€ ๊ฐ•์˜๊ฐ€ ๋งŽ์•„์„œ ์ฒœ์ฒœํžˆ ๋‹ค ๋“ค์–ด ๋ณด๊ณ  ์‹ถ๋‹ค.

๊ทธ์น˜๋งŒ ์•„์ง ํ•„์ˆ˜ ๋‚ด์šฉ๋„ ํ—ค๋งค๋Š” ๋‚˜.. ์•ž์œผ๋กœ๋„ ์—ด์‹ฌํžˆ ํ•ด์•ผํ•  ๋“ฏ ํ•˜๋‹ค

 

๐Ÿ‘ฅ ์กฐ๋ณ„ ๋ชจ์ž„ ?

2์ฃผ์ฐจ ๊นŒ์ง€๋Š” ์‹œํ—˜๊ธฐ๊ฐ„๊ณผ ๊ฒน์ณ ์žˆ์–ด ์กฐ์›๋“ค๊ณผ ๋งŒ๋‚˜์ง€๋Š” ์•Š์„ ๊ฒƒ ๊ฐ™๊ณ  3์ฃผ์ฐจ๋ถ€ํ„ฐ ๋น„๋Œ€๋ฉด/๋Œ€๋ฉด์œผ๋กœ ๊ฐ™์ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋Ÿด ๊ฒƒ ๊ฐ™๋‹ค.


์ผ๋‹จ ๋‹ค์Œ์ฃผ๊นŒ์ง€๋Š”

  1. ํ•„์ˆ˜ ๊ฐ•์˜ ์—ด์‹ฌํžˆ ๋“ฃ๊ธฐ
  2. ์ฃผ์ฐจ๋ณ„ ํ•™์Šต์ผ์ง€ ์—ด์‹ฌํžˆ ์“ฐ๊ธฐ
  3. ์‹œํ—˜ ๊ณต๋ถ€๊นŒ์ง€ ...

๊ฐ€ ๋ชฉํ‘œ์ด๋‹ค.

1์ฃผ์ฐจ WIL(Week I Learned) ๋— !!


์ฐธ๊ณ ์ž๋ฃŒ :
1. https://gitlab.com/easyspubjava/javacoursework/-/blob/master/Chapter2/2-21/README.md
2. https://psychoria.tistory.com/765
3. https://www.codelatte.io/courses/java_programming_basic