์ „์ฒด ๊ธ€

๊ฐœ๋ฐœ/Java

[Java] Collection Framework - List์˜ ๊ตฌํ˜„์ฒด(๊ธฐ๋ณธ)

0. List ์ธํ„ฐํŽ˜์ด์Šค ํŠน์ง• Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค. ์š”์†Œ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค. ์ธ๋ฑ์Šค ์ˆœ์„œ๋กœ ์ €์žฅ๋œ๋‹ค. (sequence) null ์š”์†Œ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค. Unmodifiable List List.of ํ˜น์€ List.copyOf ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ํ†ตํ•ด ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅํ•œ List๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฝ์ž…, ์‚ญ์ œ, ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ → ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ UnsupportedOperationException์ด ๋ฐœ์ƒํ•œ๋‹ค. null ์š”์†Œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. 1. List ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„ ArrayList LinkedList Vector ๋ฐฐ์—ด๊ณผ List ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฐจ์ด ๋ฐฐ์—ด List ์ธํ„ฐํŽ˜์ด์Šค ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ฒ˜์Œ ์„ ์–ธ ์ดํ›„๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ List์˜ ๊ธธ์ด๊ฐ€ ๊ฐ€๋ณ€์  ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†์ ์œผ๋กœ ํ• ๋‹น ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์†์ ..

๊ฐœ๋ฐœ/Java

[Java] ์ถ”์ƒํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค

0. Java ์—์„œ ํด๋ž˜์Šค ์ถ”์ƒ ํด๋ž˜์Šค(Abstract Class): ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๊ฐ€ ํ•˜๋‚˜ ์ด์ƒ ํฌํ•จ๋˜๊ฑฐ๋‚˜ abstract ๋กœ ์ •์˜๋œ ๊ฒฝ์šฐ ์ธํ„ฐํŽ˜์ด์Šค(Interface): ๋ชจ๋“  ๋ฉ”์†Œ๋“œ๊ฐ€ ์ถ”์ƒ ๋ฉ”์†Œ๋“œ์ธ ๊ฒฝ์šฐ(Java 8 ์ดํ›„๋ถ€ํ„ฐ๋Š” default ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜ ๋ฉ”์†Œ๋“œ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅ) 1. ์ถ”์ƒ ํด๋ž˜์Šค ์ถ”์ƒ ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ณตํ†ต๋œ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ํ™•์žฅํ•œ๋‹ค. ์ž์‹ ํด๋ž˜์Šค์—์„œ ์ถ”์ƒ ํด๋ž˜์Šค์˜ ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ฐ˜๋“œ์‹œ ์žฌ์ •์˜(override) ํ•ด์•ผํ•œ๋‹ค. ์ถ”์ƒ ํด๋ž˜์Šค๋Š” ๋™์ž‘์ด ์ •์˜๋˜์ง€ ์•Š๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์–ด ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค. ์ถ”์ƒ ๋ฉ”์†Œ๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ์  ์ด์™ธ์—๋Š” ์ผ๋ฐ˜ ํด๋ž˜์Šค์™€ ๋ชจ๋‘ ๋™์ผํ•˜๋‹ค. ์ถ”์ƒํด๋ž˜์Šค์—์„œ default ์ ‘๊ทผ์ œ์–ด์ž public abstract class AbstractC..

Tools

[IntelliJ] @DisplayName์œผ๋กœ ์„ค์ •ํ•œ ์ด๋ฆ„์ด Intellij ์‹คํ–‰ ํƒญ์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ

IntelliJ > Preferences > Build, Execution, Deployment > Build Tools > Gradle ์„ค์ •์—์„œ Run tests using๋ฅผ "IntelliJ IDEA" ์„ ํƒ์œผ๋กœ ๋ณ€๊ฒฝ

๊ฐœ๋ฐœ/Java

[Java] Collection Framework - Set์˜ ๊ตฌํ˜„์ฒด(๊ธฐ๋ณธ)

0. Set ์ธํ„ฐํŽ˜์ด์Šค ํŠน์ง• Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์Œ ์š”์†Œ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ ์ˆœ์„œ ์—†์Œ(์ €์žฅ์ˆœ์„œ ์œ ์ง€ ์•ˆ๋จ) โžก get ๋ฉ”์„œ๋“œ ๋Œ€์‹ ์— iterator๋ฅผ ํ†ตํ•ด์„œ ๊ฐ ์š”์†Œ์— ์ ‘๊ทผํ•ด์•ผ ํ•œ๋‹ค. (์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ ๋ถˆ๊ฐ€) ์‚ฌ์šฉ์‹œ ์ฃผ์˜ํ•ด์•ผํ•  ์  Note: Great care must be exercised if mutable objects are used as set elements. The behavior of a set is not specified if the value of an object is changed in a manner that affects equals comparisons while the object is an element in the set. A special c..

๊ฐœ๋ฐœ/Java

[Java] Collection Framework - Map์˜ ๊ตฌํ˜„์ฒด(์‹ฌํ™”)

[Java] Collection Framework - Map์˜ ๊ตฌํ˜„์ฒด(๊ธฐ๋ณธ) ์•„๋ž˜ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์€ ํ•ด๋‹น ๊ธ€ ํ•˜๋‹จ์—์„œ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 1. ์™œ Map ์ธํ„ฐํŽ˜์ด์Šค๋Š” Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์ง€ ์•Š๋Š”๊ฐ€? 2. HashMap์€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€? 3. ์–ด๋– ํ•œ ํด๋ž˜์Šค๋„ Map์˜ Key๋กœ ์‚ฌ์šฉ๋  suyeon-jung.tistory.com Map์˜ ๊ตฌํ˜„์ฒด(๊ธฐ๋ณธ) ๋‚ด์šฉ์„ ํ•™์Šตํ•˜๋ฉด์„œ ๊ถ๊ธˆํ–ˆ๋˜ ํ‚ค์›Œ๋“œ ์œ„์ฃผ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค. 1. ํ•ด์‹œ ์ถฉ๋Œ ํ•ด์‹œํ…Œ์ด๋ธ”์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘๊ฐœ์˜ key๊ฐ€ ๊ฐ™์€ ํ•ด์‹œ๊ฐ’(hash code)๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•œ๋‹ค. ํ•ด์‹œ ์ถฉ๋Œ ํ•ด๊ฒฐ ๋ฐฉ์‹ Chaining ๊ฐ™์€ ํ•ด์‹œ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠฝํŠธ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ํ•ด์‹œ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฒ€์ƒ‰์‹œ์—..

๊ฐœ๋ฐœ/Java

[Java] Collection Framework - Map์˜ ๊ตฌํ˜„์ฒด(๊ธฐ๋ณธ)

์•„๋ž˜ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์€ ํ•ด๋‹น ๊ธ€ ํ•˜๋‹จ์—์„œ ํ™•์ธํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 1. ์™œ Map ์ธํ„ฐํŽ˜์ด์Šค๋Š” Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์ง€ ์•Š๋Š”๊ฐ€? 2. HashMap์€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€? 3. ์–ด๋– ํ•œ ํด๋ž˜์Šค๋„ Map์˜ Key๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š”๊ฐ€? 4. Map ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹ค๋ฅธ Collection ๋ทฐ๋Š” ๋ฌด์—‡์ธ๊ฐ€? 6. HashMap๊ณผ TreeMap์€ ๊ฐ๊ฐ ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ ํ•ฉํ•œ๊ฐ€? 0. Map ์ธํ„ฐํŽ˜์ด์Šค ํŠน์ง• List, Set, Queue ์™€ ๊ฐ™์€ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋‹ฌ๋ฆฌ Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์ง€ ์•Š์Œ key-value ์Œ(Entry) ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ ์ˆœ์„œ ์—†์Œ key ์ค‘๋ณต ๋ถˆ๊ฐ€/value๋Š” ์ค‘๋ณต๋  ์ˆ˜ ์žˆ์Œ ์‚ฌ์šฉ์‹œ ์ฃผ์˜ํ•ด์•ผํ•  ์  Map ์ธํ„ฐํŽ˜์ด์Šค ์ฃผ์„ ์ฐธ๊ณ  Note: great ca..

Linux

๋ฉ”์ผ ์„œ๋ฒ„ ๊ตฌ์ถ•ํ•˜๊ธฐ

๋ฉ”์ผ์„œ๋ฒ„ ๊ฐœ๋… E-mail์˜ ์†ก์ˆ˜์‹ ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ SMTP(Simple Mail Transfer Protocol) : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฉ”์ผ์„ ๋ณด๋‚ด๊ฑฐ๋‚˜ ๋ฉ”์ผ ์„œ๋ฒ„๋ผ๋ฆฌ ๋ฉ”์ผ์„ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ POP3(Post Office Protocol) : ๋ฉ”์ผ ์„œ๋ฒ„์— ๋„์ฐฉ๋˜์–ด ์žˆ๋Š” ๋ฉ”์ผ์„ ํด๋ผ์ด์–ธํŠธ๋กœ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ IMAP(Internet Mail Access Protocol) : POP3์™€ ๊ฐ™์Œ ๋ฉ”์ผ ์„œ๋ฒ„์˜ ์ž‘๋™ ์›๋ฆฌ ์‚ฌ์šฉ์ž01์ด ๋„ค์ด๋ฒ„ ๋ฉ”์ผ ๊ณ„์ •์„ ์‚ฌ์šฉํ•ด์„œ ๋ฉ”์ผ์„ ๋ณด๋‚ธ๋‹ค. ๋ณด๋‚ธ ๋ฉ”์ผ์€ SMTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด์„œ ๋„ค์ด๋ฒ„ ๋ฉ”์ผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด์ง„๋‹ค. ๋„ค์ด๋ฒ„ ๋ฉ”์ผ ์„œ๋ฒ„๋Š” ์ˆ˜์‹ ํ•œ ๋ฉ”์ผ์„ ๋ฐ”๋กœ ๋ณด๋‚ด์ง€ ์•Š๊ณ  ํ๋ผ๋Š” ๊ณณ์— ๋Œ€๊ธฐ ์‹œํ‚จ๋‹ค. ๋„ค์ด๋ฒ„ ๋ฉ”์ผ ์„œ๋ฒ„๋Š” SMTP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ..

CS/์•Œ๊ณ ๋ฆฌ์ฆ˜

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์ˆœ์—ด, ์กฐํ•ฉ, ์ค‘๋ณต์ˆœ์—ด, ์ค‘๋ณต์กฐํ•ฉ

์ˆœ์—ด: N๊ฐœ ์ค‘์—์„œ R๊ฐœ๋ฅผ ๋ฝ‘๋Š”๋ฐ ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ์žˆ๋Š” ๊ฒฝ์šฐ([1, 2, 3]๊ณผ [2, 3, 1]์€ ๋‹ค๋ฆ„) ์ค‘๋ณต์ˆœ์—ด: N๊ฐœ ์ค‘์—์„œ R๊ฐœ๋ฅผ ๋ฝ‘๋Š”๋ฐ ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ์žˆ๋Š” ๊ฒฝ์šฐ + ๊ฐ™์€ ์ˆซ์ž๋ฅผ ์ค‘๋ณตํ•ด์„œ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์กฐํ•ฉ: N๊ฐœ ์ค‘์—์„œ R๊ฐœ๋ฅผ ๋ฝ‘๋Š”๋ฐ ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ์—†๋Š” ๊ฒฝ์šฐ([1, 2, 3]๊ณผ [2, 3, 1]์€ ๊ฐ™์Œ) ์ค‘๋ณต์กฐํ•ฉ: N๊ฐœ ์ค‘์—์„œ R๊ฐœ๋ฅผ ๋ฝ‘๋Š”๋ฐ ์ˆœ์„œ๊ฐ€ ์˜๋ฏธ์—†๋Š” ๊ฒฝ์šฐ + ๊ฐ™์€ ์ˆซ์ž๋ฅผ ์ค‘๋ณตํ•ด์„œ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ™œ์šฉํ•˜์—ฌ ์ˆœ์—ด, ์ค‘๋ณต์ˆœ์—ด, ์กฐํ•ฉ, ์ค‘๋ณต์กฐํ•ฉ์„ ๊ตฌํ•ด๋ณด์ž. ์—ฌ๊ธฐ์„œ "๋ฐฑํŠธ๋ž˜ํ‚น"์ด๋ž€ ํ˜„์žฌ ์ƒํƒœ์—์„œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ›„๋ณด๊ตฐ์„ ๋”ฐ๋ผ ๋“ค์–ด๊ฐ€๋ฉฐ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งํ•œ๋‹ค. (๊ฐ€๋Šฅํ•œ → ๊ฐ€๋Šฅํ•œ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ ๊ฒƒ์€ ๋”์ด์ƒ ํƒ์ƒ‰์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด = ์œ ๋งํ•˜์ง€ ์•Š๋‹ค๋ฉด ํƒ์ƒ‰์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‚ดํฌํ•˜๊ณ  ์žˆ๋‹ค.) ์ˆœ..

CS/์•Œ๊ณ ๋ฆฌ์ฆ˜

[BOJ 17609] ํšŒ๋ฌธ - Java

๋ฌธ์ œ https://www.acmicpc.net/problem/17609 17609๋ฒˆ: ํšŒ๋ฌธ ๊ฐ ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ์ธ์ง€, ์œ ์‚ฌ ํšŒ๋ฌธ์ธ์ง€, ๋‘˜ ๋ชจ๋‘ ํ•ด๋‹น๋˜์ง€ ์•Š๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜์—ฌ ํšŒ๋ฌธ์ด๋ฉด 0, ์œ ์‚ฌ ํšŒ๋ฌธ์ด๋ฉด 1, ๋‘˜ ๋ชจ๋‘ ์•„๋‹ˆ๋ฉด 2๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค. www.acmicpc.net ํ’€์ด ํšŒ๋ฌธ ๊ฒ€์‚ฌ ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘(start), ๋(end) ๊ฐ๊ฐ์—์„œ ํ•˜๋‚˜์”ฉ ์ธ๋ฑ์Šค๋ฅผ ์กฐ์ •ํ•˜๋ฉด์„œ ํšŒ๋ฌธ ์—ฌ๋ถ€ ๊ฒ€์‚ฌ str[start] == str[end] โžก ๋‹ค์Œ ํƒ์ƒ‰ str[start] == str[end] โžก ํšŒ๋ฌธ์ด ์•„๋‹˜ while์˜ ์ข…๋ฃŒ ์กฐ๊ฑด: end ์ธ๋ฑ์Šค๊ฐ€ start ์ธ๋ฑ์Šค๋ณด๋‹ค ์ปค์งˆ ๋•Œ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— while ์ง€์† ์กฐ๊ฑด์œผ๋กœ start = end ์ผ๋•Œ๋„ ํฌํ•จ๋œ๋‹ค. ์œ ์‚ฌํšŒ๋ฌธ ๊ฒ€์‚ฌ ๋ฌธ์ž์—ด์˜ ..

Web/Spring

Maven Lifecycle

Maven POM์„ ๋ฐ”ํƒ•์œผ๋กœ Java ํ”„๋กœ์ ํŠธ์˜ ์ „์ฒด์ ์ธ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•˜๋Š” ๋„๊ตฌ(์˜์กด์„ฑ ๊ด€๋ฆฌ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ, ํ”„๋กœ์ ํŠธ ๋ผ์ดํ”„์‚ฌ์ดํด ๊ด€๋ฆฌ, ๋นŒ๋“œ ๋“ฑ) Maven์€ settings.xml ๊ณผ pom.xml์„ ์ฐธ์กฐํ•œ๋‹ค. settings.xml: maven ์ž์ฒด์— ๋Œ€ํ•œ ์„ค์ • pom.xml: POM(Project Object Model)์„ ์„ค์ •, ํ”„๋กœ์ ํŠธ ์ •๋ณด/์˜์กด์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ •๋ณด/๋นŒ๋“œ ์ •๋ณด Maven Lifecycle 1. basic ๋ผ์ดํ”„์‚ฌ์ดํด compile โžก test โžก package โžก install โžก deploy compile: src/java ํ•˜์œ„ ๋ชจ๋“  Java ์†Œ์Šค๋ฅผ ์ปดํŒŒ์ผํ•ด target/classes๋กœ ๋ณต์‚ฌ test: ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์˜ ๋‹จ์œ„ํ…Œ์ŠคํŠธ ์ง„ํ–‰(ํ…Œ์ŠคํŠธ ์‹คํŒจ์‹œ ๋นŒ๋“œ ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌ๋จ) ..

๊ฐœ๋ฐœ/OOP

[OOP] ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ 5๊ฐ€์ง€ ์›์น™

๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„ 5๊ฐ€์ง€ ์›์น™ SRP(Single Responsibility Principle): ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ OCP(Open/Closed Principle): ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ LSP(Liskov Substitution Principle): ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ ISP(Interface Segregation Principle): ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ๋ฒ•์น™ DIP(Dependency Inversion Principle): ์˜์กด๊ด€๊ณ„ ์—ญ์ „ ์›์น™ 1. ๋‹จ์ผ ์ฑ…์ž„ ์›์น™ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. โžก ๋ณ€๊ฒฝ์ด ์žˆ์„ ๋•Œ ํŒŒ๊ธ‰ ํšจ๊ณผ๊ฐ€ ์ ์œผ๋ฉด ๋‹จ์ผ ์ฑ…์ž„ ์›์น™์„ ์ž˜ ๋”ฐ๋ฅธ ๊ฒƒ 2. ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™ ์†Œํ”„ํŠธ์›จ์–ด ์š”์†Œ๋Š” ํ™•์žฅ์—๋Š” ์—ด๋ ค ์žˆ์œผ๋‚˜ ๋ณ€๊ฒฝ์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋‹คํ˜•์„ฑ์„ ํ™œ์šฉ ๋ฌธ์ œ์  MemberService ํด๋ผ..

Web/React

ReactDOM.render is no longer supported in React 18

CRA ์—†์ด ๋ฆฌ์•กํŠธ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•ด ๊ฐœ๋ฐœํ•˜๋˜ ์ค‘ ์ฝ˜์†”์ฐฝ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ warning ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๊ฒŒ๋˜์—ˆ๋‹ค. ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ React ๋ฒ„์ „ : 18.0.7 ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ index.tsx ์ฝ”๋“œ import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; const rootElement = document.getElementById('root'); ReactDOM.render(, rootElement); warning ๋ฉ”์‹œ์ง€์˜ ๋งํฌ๋ฅผ ๋“ค์–ด๊ฐ€ ํ™•์ธํ•ด๋ณด๋‹ˆ React 18 ๋ฒ„์ „์—์„œ๋Š” ๋”์ด์ƒ ReactDOM.render ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋‚ด์šฉ์ด ์žˆ์—ˆ๋‹ค. ์„ค๋ช…ํ•˜๋Š”๋Œ€๋กœ ์ƒˆ๋กœ์šด API๋ฅผ ์ ์šฉํ•˜์—ฌ index ์ฝ”๋“œ๋ฅผ ์žฌ๊ตฌ์„ฑํ–ˆ๋‹ค...

suyeon-jung
HELLO WORLDโ• ๐ŸŒ