์ „์ฒด ๊ธ€ 156

[JAVA] ์ž…์ถœ๋ ฅ(I/O)

Decorator ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด ๋‚ด์šฉ๋ฌผ์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„  ๊ณ„์† ์ถ”๊ฐ€ํ•ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.  1. ์ž…์ถœ๋ ฅ(I/O)1. ์ž…์ถœ๋ ฅ๊ณผ ์ŠคํŠธ๋ฆผ 2. ๋ฐ”์ดํŠธ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ InputStream, OutputStream 3. ๋ณด์กฐ์ŠคํŠธ๋ฆผ --(Decorator ํŒจํ„ด) 4. ๋ฌธ์ž๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ Reader, Writer2. ๋ฐ”์ดํŠธ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ1. InputStream, OutputStream ์ตœ๊ณ ์กฐ์ƒ 2. ByteArrayInputStream, ByteArrayOutputStream ๋ฉ”๋ชจ๋ฆฌ 3. FileInputStream, FileOutputStream ํŒŒ์ผ3. ๋ฐ”์ดํŠธ๊ธฐ๋ฐ˜ ๋ณด์กฐ์ŠคํŠธ๋ฆผ1. FilterInputStream, FilterOutputStream ์ตœ๊ณ ์กฐ์ƒ 2. BufferedInputStream, BufferedOutputS..

[๋””์ž์ธํŒจํ„ด] Bridge - ๊ธฐ๋Šฅ ๊ณ„์ธต๊ณผ ๊ตฌํ˜„ ๊ณ„์ธต์„ ๋ถ„๋ฆฌํ•œ๋‹ค

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.  (๊ธฐ๋Šฅ์˜ ํด๋ž˜์Šค ๊ณ„์ธต) == Bridge == (๊ตฌํ˜„์˜ ํด๋ž˜์Šค ๊ณ„์ธต)๊ธฐ๋Šฅ์˜ ํด๋ž˜์Šค ๊ณ„์ธต๊ณผ ๊ตฌํ˜„์˜ ํด๋ž˜์Šค ๊ณ„์ธต์„ ์—ฐ๊ฒฐ(๋ถ„๋ฆฌ)ํ•œ๋‹ค๋‘ ๊ฐœ์˜ ๋…๋ฆฝ๋œ ํด๋ž˜์Šค ๊ณ„์ธต์„ Bridge๋กœ ์—ฐ๊ฒฐ์ƒ์†์€ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ, ์œ„์ž„์€ ์•ฝํ•œ ๊ฒฐํ•ฉ /  ํ•„์š”์— ๋”ฐ๋ผ ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ „ํ™˜ํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ„์ž„ ์‚ฌ์šฉ ๊ธฐ๋Šฅ์˜ ํด๋ž˜์Šค ๊ณ„์ธต- ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์ž์‹ ์˜ ๋ชฉ์ ๊ณผ ๊ฐ€๊นŒ์šด ํด๋ž˜์Šค๋ฅผ ์ฐพ์•„ ํ•˜์œ„ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฑฐ๊ธฐ์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•œ๋‹คSomethingใ„ดSomethingGood ใ„ดSomethingBetter  ๊ตฌํ˜„์˜ ํด๋ž˜์Šค ๊ณ„์ธต- ์ƒ์œ„ ํด๋ž˜์Šค๋Š” ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋กœ ์ธํ„ฐํŽ˜์ด์Šค(API)๋ฅผ ๊ทœ์ •ํ•œ๋‹ค- ํ•˜์œ„ ํด๋ž˜์Šค๋Š” ๊ตฌ์ƒ ๋ฉ”์„œ๋“œ๋กœ ๊ทธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„..

[database] ์—”ํ‹ฐํ‹ฐ, ๋ฆด๋ ˆ์ด์…˜, ํŠœํ”Œ, ์นด๋””๋„๋ฆฌํ‹ฐ

๋ฆด๋ ˆ์ด์…˜์ด์ฐจ์› ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์—”ํ‹ฐํ‹ฐ์˜ ์ง‘ํ•ฉ์—”ํ‹ฐํ‹ฐ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ๋˜๋Š” ๋ฐ์ดํ„ฐ ๋‹จ์œ„๋„๋ฉ”์ธ์—”ํ‹ฐํ‹ฐ์˜ ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๋ฒ”์œ„ ํŠœํ”Œ (=๋ ˆ์ฝ”๋“œ)๋ฆด๋ ˆ์ด์…˜์˜ ๊ฐ ํ–‰์„ ๋ ˆ์ฝ”๋“œ๋ผ๊ณ  ํ•˜๋Š”๋ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋” ๊ณต์‹์ ์œผ๋กœ ํŠœํ”Œ๋กœ ๋ถ€๋ฆ„์นด๋””๋„๋ฆฌํ‹ฐ๋ฆด๋ ˆ์ด์…˜ ํŠœํ”Œ์˜ ๊ฐœ์ˆ˜์Šคํ‚ค๋งˆ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ์™€ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ •์˜ํ•˜๋Š” ๊ตฌ์กฐ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฐœ์ฒด, ์†์„ฑ, ๊ด€๊ณ„ ๋ฐ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์‹œ ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์ด ๊ฐ–๋Š” ์ œ์•ฝ ์กฐ๊ฑด๋“ฑ์— ๊ด€ํ•ด ์ „๋ฐ˜์ ์œผ๋กœ ์ •์˜cf. https://hoyeonkim795.github.io/posts/db-%EC%9A%A9%EC%96%B4/ [Database] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฉ์–ด - ๋ฆด๋ ˆ์ด์…˜, ์–ดํŠธ๋ฆฌ๋ทฐํŠธ, ํŠœํ”Œ, ๋„๋ฉ”์ธ, ์ฐจ์ˆ˜, ์นด๋””๋„๋ฆฌํ‹ฐ,..

database 2025.02.04

[๋””์ž์ธํŒจํ„ด] Strategy - ์Šค์œ„์น˜๋ฅผ ์ „ํ™˜ํ•˜๋“ฏ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ฐ”๊พผ๋‹ค

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1. Strategy ์ธํ„ฐํŽ˜์ด์Šค(API)2. ๊ตฌ์ฒด ์ „๋žต ํด๋ž˜์Šค3. Strategy๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ (Player) Player์—์„œ ์–ด๋–ค Strategy ์ „๋žต ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด ๊ฒŒ์ž„์„ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.  Player์™€ ๊ฐ™์ด Strategy๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณณ์—์„œ ๊ตฌ์ฒด ํด๋ž˜์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•ด ์ฝ”๋“œ๋ฅผ ์งœ๋ฉด Strategy์— ๋ญ๊ฐ€ ๋“ค์–ด์˜ค๋“ ์ง€ ๊ฐ„์— '์–ด๋–ค' ์ „๋žต์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. (Player๋Š” ๋„“์€ ์‹œ์•ผ์—์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์–ด๋–ป๊ฒŒ ์ „๊ฐœ์‹œํ‚ฌ์ง€ ์ •ํ•œ๋‹ค.) ๋‹ค์‹œ ๋งํ•ด Main ํด๋ž˜์Šค์—์„œ new Player(new RandomStrategy())์™€ ๊ฐ™์ด Playe ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋‚ด๊ฐ€ Strategy ์ธ..

[database] Constraint

Constraint ์ข…๋ฅ˜์ œ์•ฝ์กฐ๊ฑด์„ค๋ช…NOT NULL์ปฌ๋Ÿผ์ด ๋„ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์ŒUNIQUE์ปฌ๋Ÿผ์ด๋‚˜ ์ปฌ๋Ÿผ์˜ ์กฐํ•ฉ์ด ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์—์„œ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•จ, UNIQUE ์ปฌ๋Ÿผ์— ๋Œ€ํ•œ ์ธ๋ฑ์Šค๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑPRIMARY KEYNOT NULL + UNIQUE์ปฌ๋Ÿผ์ด๋‚˜ ์ปฌ๋Ÿผ์˜ ์กฐํ•ฉ์ด ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ–‰์„ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ณ„์‹œ์ผœ ์คŒFOREIGN KEY๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ PK, ์ปฌ๋Ÿผ์ด๋‚˜ ์ปฌ๋Ÿผ์˜ ์กฐํ•ฉ์ด ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์ด๋‚˜ ์ปฌ๋Ÿผ์˜ ์กฐํ•ฉ์„ ์ฐธ์กฐํ•จCHECK์ปฌ๋Ÿผ๊ฐ’์ด ๋ฐ˜๋“œ์‹œ ์ฐธ์ด์–ด์•ผ ํ•˜๋Š” ์กฐ๊ฑด Contraint ์ •์˜ ๋ฐฉ๋ฒ•์ปฌ๋Ÿผ ๋ ˆ๋ฒจํ…Œ์ด๋ธ” ๋ ˆ๋ฒจํ…Œ์ด๋ธ”๊ณผ ์ œ์•ฝ์กฐ๊ฑด์€ ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋˜์–ด ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•œ๋‹ค๊ณ  ์ œ์•ฝ์กฐ๊ฑด๋„ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ” ์‚ญ์ œ ์‹œ ์ œ์•ฝ์กฐ๊ฑด๋„ ์‚ญ์ œ๋˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” [CASCADE CONSTRAINTS] ์˜ต์…˜์„ ๋ช…์‹œํ•œ๋‹ค.๋ฐ˜๋ฉด..

[database] SQL ์šฉ์–ด ์„ค๋ช…, ์กฐ์ธ๊ณผ ์„œ๋ธŒ์ฟผ๋ฆฌ

SQL(Structured Query Language)์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋‹ค. ๊ฐœ๋… ์„ค๋ช…Table Table์€ RDBS์˜ ๊ธฐ๋ณธ์ ์ธ ์ €์žฅ๊ตฌ์กฐ๋กœ, ํ•œ ๊ฐœ ์ด์ƒ์˜ Column๊ณผ 0๊ฐœ ์ด์ƒ์˜ Row๋กœ ๊ตฌ์„ฑRowColumn๋“ค์˜ ๊ฐ’์˜ ์กฐํ•ฉ, ์ฆ‰ ์ž๋ฐ”์—์„œ๋Š” iv๋“ค์˜ ์กฐํ•ฉ์œผ๋กœ์„œ ๊ฐ์ฒด๋ฅผ ๋‚˜ํƒ€๋ƒ„ (=๋ ˆ์ฝ”๋“œ)FieldRow์™€ Column์˜ ๊ต์ฐจ์ ๋ทฐ(View)ํ•˜๋‚˜ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•œ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์œผ๋กœ์„œ ๋…ผ๋ฆฌ์ ์ด๊ณ  ๊ฐ€์ƒ์ ์ธ ํ…Œ์ด๋ธ”์‹œํ€€์Šค(Sequence)์ž๋™์œผ๋กœ ๊ณ ์œ ํ•œ ์ˆซ์ž๊ฐ’ ์ƒ์„ฑํ•ด ์ฃผ๋ฉฐ ์ฃผ๋กœ ๊ธฐ๋ณธ ํ‚ค ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ธ๋ฑ์Šค(index)์ฟผ๋ฆฌ ์†๋„ ํ–ฅ์ƒ์‹œ๋…ธ๋‹˜(synonym)Obejct์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ alias ์—ญํ• ํ”„๋กœ๊ทธ๋žจ..

[database] ์˜ค๋ผํด ๋‹ค์ค‘ insert ๋ฌธ

1. insert allcreate table test( person VARCHAR(255) PRIMARY KEY, salary INT);insert into test values ('one', 1000),('two', 2000); -- ์—๋Ÿฌ!-- SQL ์˜ค๋ฅ˜: ORA-00933: SQL ๋ช…๋ น์–ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ข…๋ฃŒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค mysql(maria db)์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ˜•์‹์˜ ๋‹ค์ค‘ ์‚ฝ์ž…๋ฌธ์ด ์˜ค๋ผํด์—์„œ๋Š” SQL ๋ช…๋ น์–ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ข…๋ฃŒ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๋œจ๋ฉฐ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๋“ค์„ ์ฐธ๊ณ ํ–ˆ๋”๋‹ˆ ์ฒซ ๋ฒˆ์งธ๋กœ ์ด ํ•ด๊ฒฐ์ฑ…์„ ์ œ์‹œํ–ˆ๋‹ค. insert all into test (person, salary) values ('one', 1000) into test (person, sal..

[๋””์ž์ธํŒจํ„ด] Template Method - ์ƒ์†

์ฑ… [JAVA ์–ธ์–ด๋กœ ๋ฐฐ์šฐ๋Š” ๋””์ž์ธ ํŒจํ„ด ์ž…๋ฌธ 3ํŒ;์œ ํ‚ค ํžˆ๋กœ์‹œ ์ €]์„ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ถ”์ƒ ํด๋ž˜์Šค- ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ์—์„œ ์ถ”์ƒ ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ- ์ด ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„๋ถ€์—์„œ ๊ตฌํ˜„- ์ƒ์œ„ ํด๋ž˜์Šค์—์„œ๋Š” ์ฒ˜๋ฆฌ์˜ ๋ผˆ๋Œ€(์•Œ๊ณ ๋ฆฌ์ฆ˜)๋ฅผ ๊ฒฐ์ •- ๊ตฌ์ฒด์ ์ธ ์ฒ˜๋ฆฌ ๋‚ด์šฉ์€ ํ•˜์œ„ ํด๋ž˜์Šค๊นŒ์ง€ ๊ฐ€์•ผ ๊ฒฐ์ •๋˜์ง€๋งŒ, ์ถ”์ƒ ํด๋ž˜์Šค ๋‹จ๊ณ„์—์„œ ์ฒ˜๋ฆฌ ํ๋ฆ„์„ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.  ๊ตฌํ˜„ ํด๋ž˜์Šค - ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ๊ทธ ๊ตฌ์ฒด์  ๋‚ด์šฉ์„ ๊ฒฐ์ • ๋ฉ”์ธ๋ถ€ ๋กœ์ง์„ ๊ณตํ†ตํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค ... ๊ณตํ†ต๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์œ ์ง€๋ณด์ˆ˜ ๊ด€์ ์ƒ์œ„ ํด๋ž˜์Šค์™€ ํ•˜์œ„ ํด๋ž˜์Šค์˜ ์—ฐ๊ณ„ ํ”Œ๋ ˆ์ด ... ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์†Œ์Šค ํ”„๋กœ๊ทธ๋žจ ์—†์ด ํ•˜์œ„ ํด๋ž˜์Šค์˜ ๊ตฌํ˜„์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ๋‹คํ•˜์œ„ ํด๋ž˜์Šค๋ฅผ ์ƒ์œ„ ํด๋ž˜์Šค์™€ ๋™์ผ์‹œํ•œ๋‹ค - ์ƒ์œ„ ํด๋ž˜์Šคํ˜• ๋ณ€์ˆ˜์— ํ•˜์œ„ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ์ค‘ ์–ด๋Š ๊ฒƒ์„ ๋Œ€์ž…ํ•ด๋„ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•  ..

[JAVA] ์Šค๋ ˆ๋“œ

program โ†’ process โ†’ threadํ”„๋กœ๊ทธ๋žจ์€ ํŒŒ์ผ๋กœ์„œ ๋ณด์กฐ ๋ฉ”๋ชจ๋ฆฌ(SSD, HDD ๋“ฑ)์— ์ €์žฅ๋˜์–ด ์žˆ๊ณ  ํ”„๋กœ์„ธ์Šค๋Š” ์ปดํ“จํ„ฐ์˜ ์ž์›์„ ํ• ๋‹น ๋ฐ›์•„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ๋œ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๋“ค์–ด๊ฐ€ ์ด ํ”„๋กœ์„ธ์Šค ์•ˆ์— ๊ตฌ์„ฑ๋˜์–ด์„œ ์‹ค์ œ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์ผ๊พผ์ด๋‹ค. ์š”์ฆ˜ ์‹œ๋Œ€๋Š” ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์‹ฑ, ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋”ฉ์ด๋ผ๊ณ  ํ•ด์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ž‘์—…์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•˜๋Š” ์ˆ˜์ค€๊นŒ์ง€ ๋˜์—ˆ๋‹ค.  ๋ณ‘ํ–‰/๋™์‹œ์„ฑ(concurrent): ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์‹œ๋ถ„ํ• ๋กœ ํ•จ๊ป˜ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฒ‰์œผ๋กœ ๋ด์„œ๋Š” ๋™์‹œ์— ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค  ๋ณ‘๋ ฌ(parallel): ํฐ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์ž‘์—…์œผ๋กœ ์ชผ๊ฐœ์–ด ๋™์‹œ์— ์ฒ˜๋ฆฌ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ๋งŽ์€ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์œ ํ•˜๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋™๊ธฐํ™” ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์ˆ˜๋กœ ์š”๊ตฌ๋œ๋‹ค. synchro..

[JAVA] ์ œ๋„ค๋ฆญ์Šค

class Box // ์›์‹œ ํƒ€์ž… โ†“class Box // ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค โ†“class Box // ์ œํ•œ๋œ ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค โ†“class Box // ์™€์ผ๋“œ ์นด๋“œclass Box์ œ๋„ค๋ฆญ์Šค1. ์ œ๋„ค๋ฆญ์Šค๋ž€? 2. ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค์˜ ์„ ์–ธ 3. ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ์‚ฌ์šฉ 4. ์ œํ•œ๋œ ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค 5. ์™€์ผ๋“œ ์นด๋“œ 6. ์ œ๋„ค๋ฆญ ๋ฉ”์„œ๋“œ 7. ์ œ๋„ค๋ฆญ ํƒ€์ž…์˜ ํ˜•๋ณ€ํ™˜ 8. ์ œ๋„ค๋ฆญ ํƒ€์ž…์˜ ์ œ๊ฑฐ