๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐ŸŒพBackEnd17

MySQL ์—”์ง„ ์•„ํ‚คํ…์ฒ˜ ๐Ÿšฉ MySQL ์—”์ง„ ์•„ํ‚คํ…์ฒ˜ MySQL์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž MySQL ์„œ๋ฒ„๋Š” ํฌ๊ฒŒ MySQL ์—”์ง„ + ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์ด ์žˆ๋‹ค. MySQL์—”์ง„ ํฌ๊ฒŒ 3๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค. (์ฟผ๋ฆฌ ํŒŒ์‹ฑ, ์ฟผ๋ฆฌ ์˜คํ‹ฐ๋งˆ์ด์ง•, ์ฟผ๋ฆฌ ์‹คํ–‰์„ ํ•œ๋‹ค.) ์ฟผ๋ฆฌ ํŒŒ์‹ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ DB์— ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋‚ด๋ฉด SQL์ด ์ดํ•ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•œ๋‹ค. ์ฟผ๋ฆฌ ์˜คํ‹ฐ๋งˆ์ด์ง• ํŒŒ์‹ฑ์„ ํ†ตํ•ด ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์˜คํ‹ฐ๋งˆ์ด์ง•์„ ํ•˜์—ฌ ์ตœ์ ํ™”๋ฅผ ํ•œ๋‹ค. ์ฟผ๋ฆฌ ์‹คํ–‰ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ MyISAM ์ฒ˜์Œ์— ๊ธฐ๋ณธ ์—”์ง„์œผ๋กœ ์‚ฌ์šฉ์„ ํ•˜์˜€๋‹ค. ํ‚ค ์บ์‹ฑ์ด๋ผ๋Š” ์žฅ์ ์„ ๊ฐ€์ง€๋ฉฐ ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. InnoDB ๋ฒ„ํผ๋ง, FK์ œ์•ฝ ์กฐ๊ฑด, ์ถฉ๋Œ ๋ณต๊ตฌ, ํŠธ๋žœ์žญ์…˜์„ ์ง€์›ํ•˜์—ฌ ์ฃผ๋กœ InnoDB๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์บ์‹œ๋ฅผ ํ†ตํ•˜์—ฌ ๋””์ŠคํฌI/O ์ž‘์—…์„ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ(๋ฒ„ํผ ํ’€).. 2023. 2. 10.
JPA ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ EntityManager Factory EMF๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด Entity Manager๋ฅผ ์ƒ์„ฑ์„ ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ดํ›„ EM์ด ์ปค๋„ฅ์…˜ํ’€์„ ์ด์šฉํ•˜์—ฌ DB์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค. ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ( ์—”ํ‹ฐํ‹ฐ๋ฅผ ์˜๊ตฌ ์ €์žฅํ•˜๋Š” ํ™˜๊ฒฝ) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์ด์— ๊ฐ์ฒด๋ฅผ ๋ณด๊ด€ํ•˜๋Š” ๊ฐ€์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค. ์—”ํ‹ฐํ‹ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๋น„์˜์† ์˜์†์„ฑ ์ปจํ…Œ์ŠคํŠธ์™€ ๊ด€๊ณ„๊ฐ€ ์—†๋Š” ์ƒˆ๋กœ์šด ์ƒํƒœ Member m = new Member(); member.setId("1"); ์˜์† ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์— ๊ด€๋ฆฌ๋˜๋Š” ์ƒํƒœ Entity Manager์˜ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ํ†ตํ•ด์„œ Entity๊ฐ€ ๊ด€๋ฆฌ๊ฐ€ ๋œ๋‹ค. Member member = new Member(); member.setUserName("๊น€๋ฌด๊ฑด"); member.. 2023. 2. 4.
๋žŒ๋‹ค์‹ ๋กœ์ปฌ ๋ณ€์ˆ˜ - Effectively Final Effectively Final Java8์—์„œ final์ด ๋ถ™์ง€ ์•Š์€ ๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ๊ทธ ๋ณ€์ˆ˜๋ฅผ Effectively final์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋žŒ๋‹ค์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ์ปฌ ๋ณ€์ˆ˜๋Š” Effectively Final๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. public class EffectivelyFinal { public static void main(String[] args) { new Pint().go(); } } class Pint { void go() { int baseAnInt = 111; Function function = (num) -> num + baseAnInt; System.out.println(baseAnInt+"baseAnInt"); System.out.println(function.a.. 2023. 1. 28.
ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ & ๋žŒ๋‹ค ๐Ÿ˜ถ‍๐ŸŒซ๏ธํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ Java๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•˜์ง€๋งŒ JDK8๋ถ€ํ„ฐ Stream API์™€ ๋žŒ๋‹ค์‹, ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค ๋“ฑ์„ ์ง€์›ํ•˜๋ฉด์„œ Java๋ฅผ ์ด์šฉํ•ด ํ•จ์ˆ˜ํ˜•์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ๋Š” API ๋“ค์„ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ๋‹ค. First Class Citizon First Class Citizon ์€ ์•„๋ž˜์˜ ์†์„ฑ๋“ค์„ ๋ชจ์ฃผ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. • ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. • ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜๊ฒจ์ค„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. • ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด ๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html Function (Java Platform SE 8 ) doc.. 2023. 1. 28.