Knowledge 10

[ JavaScript ] ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ

https://cocobi.tistory.com/156 [JS] ์ฐธ์กฐ ํƒ€์ž…์˜ ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ(Shallow Copy & Deep copy)> ๊ด€๋ จ ๊ธ€ :: [JS]์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์›์‹œ ํƒ€์ž…๊ณผ ์ฐธ์กฐ ํƒ€์ž… ๐ŸŒˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ณต์‚ฌ ๋ฐฉ๋ฒ• ์ฐธ์กฐ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋Š” ๋ณต์‚ฌ ์‹œ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์ด ์•„๋‹Œ '๊ฐ’์ด ์ €์žฅ๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ'๊ฐ€ ์ €์žฅ๋œ๋‹ค. cocobi.tistory.com ์–•์€ ๋ณต์‚ฌ(Shallow copy)๋Š” ์ฐธ์กฐ ํƒ€์ž… ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅํ•œ '๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ฐ’'์„ ๋ณต์‚ฌํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๊นŠ์€ ๋ณต์‚ฌ(Deep copy)๋Š” ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•ด ์™„์ „ํžˆ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. โžก๏ธ์‚ฌ๊ฑด์˜ ๋ฐœ๋‹จ const temp = list;temp์— list ๋ณต์‚ฌํ•˜๊ณ  temp ์ง€์ง€๊ณ  ๋ณถ๊ณ  ํ–ˆ๋”๋‹ˆ list๊ฐ€ ์ž๊พธ ๋ฐ”๋€œ...

Knowledge 2023.06.16

call by reference/call by value

1. call by value (๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ) ์žฅ์  : ๋ณต์‚ฌํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•˜๋‹ค. ์›๋ž˜์˜ ๊ฐ’์ด ๋ณด์กด์ด ๋œ๋‹ค. ๋‹จ์  : ๋ณต์‚ฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๋Ÿ‰์ด ๋Š˜์–ด๋‚œ๋‹ค. 2. call by reference (์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ) ์žฅ์  : ๋ณต์‚ฌํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์ฐธ์กฐ๋ฅผ ํ•˜๊ธฐ์— ๋น ๋ฅด๋‹ค. ๋‹จ์  : ์ง์ ‘ ์ฐธ์กฐ๋ฅผ ํ•˜๊ธฐ์— ์›๋ž˜ ๊ฐ’์ด ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค.(๋ฆฌ์Šคํฌ) ์ž๋ฐ”๋Š” ํ™•์‹คํ•˜๊ฒŒ Call by Value ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ํฌ์ธํ„ฐ๋„ ์—†๋‹ค. - call by reference ๊ตฌํ˜„ public class SwapTest { int value; public SwapTest(int value) { this.value = value; } public static void swap(SwapTest a, SwapTest b) {..

Knowledge 2022.04.13

๋™๊ธฐ์‹ vs ๋น„๋™๊ธฐ์‹ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

- ๋™๊ธฐ์‹ ๋™๊ธฐ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๋™์‹œ์— ์ผ์–ด๋‚œ๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. ์š”์ฒญ๊ณผ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ์— ์ผ์–ด๋‚œ๋‹ค๋Š” ์•ฝ์†์ธ๋ฐ์š”. ๋ฐ”๋กœ ์š”์ฒญ์„ ํ•˜๋ฉด ์‹œ๊ฐ„์ด ์–ผ๋งˆ๊ฐ€ ๊ฑธ๋ฆฌ๋˜์ง€ ์š”์ฒญํ•œ ์ž๋ฆฌ์—์„œ ๊ฒฐ๊ณผ๊ฐ€ ์ฃผ์–ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. - ๋น„๋™๊ธฐ์‹ ๋น„๋™๊ธฐ๋Š” ๋™์‹œ์— ์ผ์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ์— ์ผ์–ด๋‚˜์ง€ ์•Š์„๊ฑฐ๋ผ๋Š” ์•ฝ์†์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด๋‹จ์—์„œ submit์„ ๋‚ ๋ฆด ๋•Œ, ๋™๊ธฐ์‹์œผ๋กœ ๋‚ ๋ฆด์ง€ ๋น„๋™๊ธฐ์‹์œผ๋กœ ๋‚ ๋ฆด์ง€ ๊ฒฐ์ •์„ ํ•œ๋‹ค. ์ถœ์ฒ˜: https://private.tistory.com/24 [๊ณต๋ถ€ํ•ด์„œ ๋‚จ ์ฃผ์ž]

Knowledge 2022.04.08

HTTP vs HTTPS

HTTP๋Š” ์•”ํ˜ธํ™”๊ฐ€ ๋˜์ง€ ์•Š์€ ํ‰๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด์˜€๊ธฐ ๋•Œ๋ฌธ์—, HTTP๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋‚˜ ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ ๋“ฑ์„ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉด ์ œ3์ž๊ฐ€ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด HTTPS๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS, HTTP over SSL, HTTP Secure ๋“ฑ์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” HTTPS๋Š” HTTP์— ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๊ฐ€ ์ถ”๊ฐ€๋œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. HTTPS๋Š” HTTP์™€ ๋‹ค๋ฅด๊ฒŒ 443๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์ค‘๊ฐ„์— ์ œ3์ž๊ฐ€ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์—†๋„๋ก ์•”ํ˜ธํ™”๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ์ถœ์ฒ˜: https://mangkyu.tistory.com/98 [MangKyu's Diary]

Knowledge 2022.04.08

java 1.7 vs java 1.8 vs java11 vs java17

Java7String in SwitchSwtich๋ฌธ ๋‚ด์—์„œ ๋ฌธ์ž์—ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅswitch( str ){case "๊ฐ์ž":// do sthbreak;case "๊ณ ๊ตฌ๋งˆ":// do sthbreak;}Type Inference์ œ๋„ค๋ฆญ ํƒ€์ž… ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์„ ์–ธ๊ณผ ์ƒ์„ฑ์‹œ์— ์ค‘๋ณตํ•ด์„œ ์จ์ค˜์•ผ ํ–ˆ์ง€๋งŒ ์ด์ œ๋Š” ๊ทธ๋Ÿด ํ•„์š” ์—†์Œ//Before Jdk 7List primes = new ArrayList();//Jdk7 List primes = new ArrayList();Underscore in Numberic literal์‹ค์ˆ˜, ์ •์ˆ˜ํ˜•์— ‘_’ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ• ์ˆ˜์žˆ์Œint money = 1_000; int moneymoney = 100_000;Catching Multiple Exception Type in Single Catc..

Knowledge 2022.04.06

MYSQL vs ORACLE

์˜ค๋ผํด๊ณผ MySQL์˜ ์ฃผ๋œ ์ฐจ์ด์ ์€ MySQL์€ ์˜คํ”ˆ ์†Œ์Šค์ด์ง€๋งŒ ์˜ค๋ผํด์€ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋Š” ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ค๋ผํด์€ MySQL๋ณด๋‹ค ํ›จ์”ฌ ๊ฐ•๋ ฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋ผํด์€ ๊ด‘๋ฒ”์œ„ํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ผํด์€ SQL ์™ธ์—๋„ PL/SQL์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. MySQL์€ SQL ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. โ–ถ PL/SQL (Procedural Language extension to SQL) - SQL์„ ํ™•์žฅํ•œ ์ ˆ์ฐจ์  ์–ธ์–ด(Procedural Language)์ด๋‹ค. - ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” Oracle์˜ ํ‘œ์ค€ ๋ฐ์ดํ„ฐ ์—‘์„ธ์Šค ์–ธ์–ด๋กœ, ํ”„๋กœ์‹œ์ € ์ƒ์„ฑ์ž๋ฅผ SQL๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ํ†ตํ•ฉํ•œ๋‹ค. ์ฒซ๋ฒˆ์งธ๋กœ NULL๊ฐ’ํ™•์ธํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฆ‰, ์ปฌ๋Ÿผ๊ฐ’์— NULL์ด๋ฉด ๋‹ค๋ฅธ๊ฐ’์œผ๋กœ ํ‘œ์‹œํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์‚ฌ์šฉ๋ฒ•์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ORACLE์—์„œ๋Š” ..

Knowledge 2022.04.05

SVN vs GIT

https://velog.io/@lzhxxn/Git-%EC%9D%B4%EB%9E%80 SVN : ์ค‘์•™ ์„œ๋ฒ„์— ์†Œ์Šค์ฝ”๋“œ์™€ ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ์ €์žฅ Git : ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ PC์™€ ์ €์žฅ์†Œ์— ๋ถ„์‚ฐํ•ด์„œ ์ €์žฅ 0.3.1 SVN SVN์€ ๋ณดํ†ต ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์„ ์™„์„ฑํ•ด๋†“๊ณ  ์†Œ์Šค๋ฅผ ์ค‘์•™ ์ €์žฅ์†Œ์— commit commit์˜ ์ด๋ฏธ ์ž์ฒด๊ฐ€ ์ค‘์•™ ์ €์žฅ์†Œ์— ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ณต๊ฐœํ•œ๋‹ค๋Š” ์˜๋ฏธ. (GIT ๊ณผ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ) ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ๋งŒ์˜ version history๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. (๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— local History๋ฅผ ์ด์šฉํ•˜๊ธด ํ•˜์ง€๋งŒ, ์ผ์‹œ์ ์ด๋‹ค. ๋‚ด๊ฐ€ ๋ช‡์ผ์ „ ๊นŒ์ง€์— ํ•œํ•˜์—ฌ ์ž‘์—…ํ–ˆ๋˜ ๋‚ด์—ญ์„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๋˜์ง„ ์•Š๋Š”๋‹ค.) commitํ•œ ๋‚ด์šฉ์— ์‹ค์ˆ˜๊ฐ€ ์žˆ์„ ์‹œ์— ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฐ”๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ฒŒ ๋˜๋Š” ๋‹จ์ ๋„ ์žˆ๋‹ค...

Knowledge 2022.04.05

ํŠธ๋žœ์žญ์…˜

- ํŠธ๋žœ์žญ์…˜ ํŠธ๋žœ์ ์…˜์ด๋ž€ ๋…ผ๋ฆฌ์  ์ž‘์—…์˜ ๋‹จ์œ„๋กœ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์—…์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด๋†“์€ ์‹คํ–‰๋‹จ์œ„๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠธ๋žœ์žญ์…˜์€ ACID๋กœ ๋ถˆ๋ฆฌ๋Š” 4๊ฐ€์ง€ ์„ฑ์งˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. A(Atomicity) ์›์ž์„ฑ : ํŠธ๋žœ์žญ์„ ์€ ๋ชจ๋‘ ๋ฐ˜์˜๋˜๊ฑฐ๋‚˜, ๋ชจ๋‘ ๋ฐ˜์˜๋˜์ง€ ์•Š์•„์•ผํ•œ๋‹ค. C(Consistency) ์ผ๊ด€์„ฑ : ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ „ ํ›„, DB์˜ ์ƒํƒœ๋Š” ์ด์ „๊ณผ ๋ณ€ํ•จ์ด ์—†์–ด์•ผํ•œ๋‹ค. DB์˜ ๊ณ ์ •์š”์†Œ. I(Isolation) ๊ณ ๋ฆฝ์„ฑ : ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์œผ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋‘˜ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋ณ‘ํ–‰๋  ๋•Œ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์„ ์นจ๋ฒ”ํ•  ์ˆ˜ ์—†๋‹ค. D(Durability) ์ง€์†์„ฑ : ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜์—ˆ์œผ๋ฉด, ๋ฐ˜๋“œ์‹œ ๋กœ๊ทธ๊ฐ€ ๋‚จ์•„์žˆ์–ด์•ผํ•œ๋‹ค. -> ์‹œ์Šคํ…œ์ ์œผ๋กœ ์˜ค๋ฅ˜๊ฐ€ ..

Knowledge 2022.04.04

ํ”„๋กœ๊ทธ๋žจ, ํ”„๋กœ์„ธ์Šค, ์Šค๋ ˆ๋“œ

- Process ํ”„๋กœ์„ธ์Šค(process)๋Š” ์ปดํ“จํ„ฐ์—์„œ ์—ฐ์†์ ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•œ๋‹ค. ์ข…์ข… ์Šค์ผ€์ค„๋ง์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ์ž‘์—…(task)์ด๋ผ๋Š” ์šฉ์–ด์™€ ๊ฑฐ์˜ ๊ฐ™์€ ์˜๋ฏธ๋กœ ์“ฐ์ธ๋‹ค. โ€ปProcess VS Program program : ํ•˜๋“œ ๋””์Šคํฌ ๋“ฑ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์‹คํ–‰์ฝ”๋“œ process : ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ๋™ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์ž์ฒด์™€ ํ”„๋กœ๊ทธ๋žจ์˜ ์ƒํƒœ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์‹คํ–‰๋˜๋Š” ์ž‘์—… ๋‹จ์œ„ ํ”„๋กœ๊ทธ๋žจ์ด ์ •์ ์ธ ์š”์†Œ๋ผ๋ฉด ํ”„๋กœ์„ธ์Šค๋Š” ๋™์ ์ธ ์š”์†Œ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. - Thread ์Šค๋ ˆ๋“œ(thread)๋Š” ์–ด๋– ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์—์„œ, ํŠนํžˆ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ํ๋ฆ„์˜ ๋‹จ์œ„๋ฅผ ๋งํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ์˜ ๋น„๊ต์—ฌ๋Ÿฌ ํ๋ฆ„์ด ๋™์‹œ์— ์ง„ํ–‰๋œ๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ๋‹ค.๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค์˜ ๊ฒฝ์šฐ ๊ฐ ํ”„๋กœ์„ธ์Šค ๋ณ„๋กœ ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ๋…๋ฆฝ..

Knowledge 2022.04.04

[Java] ์ œ๋„ค๋ฆญ ํด๋ž˜์Šค (Generic Class)

์ฐธ๊ณ  : https://movefast.tistory.com/74 - ์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Generic Programming) : ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๊ฐ์ฒด์— ๋Œ€ํ•ด ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ๊ธฐ๋ฒ•์ด๋‹ค. - ์ œ๋„ค๋ฆญ(Generic) : ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ๋•Œ, ๊ตฌ์ฒด์ ์ธ ํƒ€์ž…(type)์„ ์ ์ง€ ์•Š๊ณ  ๋ณ€์ˆ˜ ํ˜•ํƒœ๋กœ ์ ์–ด ๋†“๋Š” ๊ฒƒ์ด๋‹ค. public class Box { private T data; public void set(T data) { this.data = data; } public T get() { return data; } }

Knowledge 2022.04.04