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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ79

SOA (Service Oriented Architecture) SOA (Service Oriented Architecture) ์„œ๋น„์Šค ์ง€ํ–ฅ ์•„ํ‚คํ…์ณ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋Šฅ๋“ค์„ ๋น„์ง€๋‹ˆ์Šค ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ ๋ฌถ์–ด ํ‘œ์ค€ํ™”๋œ ํ˜ธ์ถœ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค๋ผ๋Š” ๋‹จ์œ„๋กœ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ ์„œ๋กœ ์กฐํ•ฉํ•˜์—ฌ ์—…๋ฌด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์ด๋‹ค. ์‹œ์Šคํ…œ ๊ฐ๊ฐ์ด ๋…๋ฆฝ๋œ ์—…๋ฌด ์‹œ์Šคํ…œ์ด ์•„๋‹Œ, ๊ธฐ์—… ์ „์ฒด ์—…๋ฌด๊ฐ€ ํ•˜๋‚˜์˜ SOA ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์„œ๋น„์Šค ํ”Œ๋žซํผ์— ์ข…์†๋˜์ง€ ์•Š๋Š” ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋น„์ง€๋‹ˆ์Šค์ ์ธ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ๊ธฐ๋Šฅ๋“ค์„ ๋ชจ์•„๋†“์€ ์†Œํ”„ํŠธ์›จ์–ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ฐธ๊ณ ์ž๋ฃŒ ๋ฐ ์ถœ์ฒ˜ ๐Ÿ™‡‍โ™‚๏ธ https://bcho.tistory.com/48 What is SOA? How to SOA? ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์‚ฌ์šฉ๋˜๋ฉด์„œ๋ถ€ํ„ฐ, ๊ฐ ์‹œ๋Œ€์˜ ๊ธฐ์—… ์ „๋žต์— ๋งž๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ณ.. 2022. 3. 8.
MSA (MicroService Architecture) MSA (MicroService Architecture) ๋‹จ์ผ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ ์ปดํฌ๋„ŒํŠธ ๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ž‘์€ ์„œ๋น„์Šค์˜ ์กฐํ•ฉ์œผ๋กœ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์„œ๋น„์Šค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๊ฐ ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ ์„œ๋น„์Šค๋Š” ๋‹ค๋ฅธ ์„œ๋น„์Šค์™€์˜ ์˜์กด์„ฑ์ด ์ตœ์†Œํ™” ๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ฐ ์„œ๋น„์Šค๋Š” ๊ฐœ๋ณ„ ํ”„๋กœ์„ธ์Šค๋กœ ๊ตฌ๋™๋˜๊ณ  ๊ฐ€๋ฒผ์šด ๋ฐฉ์‹์œผ๋กœ ํ†ต์‹ ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋‹ค๋ฅธ ๊ธฐ์ˆ  ์Šคํƒ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹จ์ผ ์‚ฌ์—… ์˜์—ญ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฐธ๊ณ ์ž๋ฃŒ ๋ฐ ์ถœ์ฒ˜ ๐Ÿ™‡‍โ™‚๏ธ https://velog.io/@tedigom/MSA-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-MSA%EC%9D%98-%EA%B8%B0%EB%B3%B8-%.. 2022. 3. 8.
JPA, Hibernate ORM (Object Relational Mapping) ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์„ ๋งคํ•‘ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ๊ฐ์ฒด๋Š” ๊ฐ์ฒด๋Œ€๋กœ, ๊ด€๊ณ„ํ˜• DB๋Š” ๊ด€๊ณ„ํ˜• DB๋Œ€๋กœ ์„ค๊ณ„ ORM ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ค‘๊ฐ„์—์„œ ๋งคํ•‘(์—ฐ๊ฒฐ) ๊ฐ์ฒด๋ฅผ ๊ด€๊ณ„ํ˜• DB ํ…Œ์ด๋ธ”์— ์ž๋™์œผ๋กœ ์˜์†ํ™” JPA (Java Persistence API) ์ž๋ฐ” ORM์— ๋Œ€ํ•œ API ํ‘œ์ค€ ๋ช…์„ธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. JPA๋Š” ORM์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ์œผ๋กœ JPA๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋ฅผ ๊ตฌํ˜„ํ•œ Hibernate, DataNucleus, EclipseLink ๋“ฑ๊ณผ ๊ฐ™์€ ORM ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. JPA๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ JDBC API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SQL์„ ์ƒ์„ฑํ•˜๊ณ  ํ˜ธ์ถœํ•œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ JDBC ์‚ฌ์ด์—์„œ ๋™์ž‘ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ JDBC API๋ฅผ ์“ฐ์ง€ .. 2022. 3. 8.
TDD (Test-Driven-Development) ๋‹จ์œ„ ํ…Œ์ŠคํŠธ vs. ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ โœ” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Unit Test) ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์„ ๊ธฐ์ค€์œผ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ์ง„ํ–‰๋˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์˜ ํ…Œ์ŠคํŠธ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ ๋˜๋Š” ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ํ•˜๋‚˜์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ์ด๋‹ค. โœ” ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ(Integration Test) ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋Š” ๋ชจ๋“ˆ์„ ํ†ตํ•ฉํ•  ๋•Œ ๋ชจ๋“ˆ ๊ฐ„์˜ ํ˜ธํ™˜์„ฑ์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ํ…Œ์ŠคํŠธ์ด๋‹ค. ํ†ตํ•ฉ๋œ ๋ชจ๋“ˆ๋“ค์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—ฐ๊ณ„๋˜์–ด ๋™์ž‘ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•œ๋‹ค. ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋Š” ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ™•์ธํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์— ๊ด€๋ จ๋œ ํ™˜๊ฒฝ์ด ๋ชจ๋‘ ์„ธํŒ…๋˜์–ด์•ผ ํ•ด์„œ(DB, Chche ๋“ฑ) ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋น„์šฉ์ด ์ปค์ง„๋‹ค. ๋”ฐ๋ผ์„œ ์‹ค๋ฌด์—์„œ๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋งŽ์ด ํ™œ์šฉํ•˜๊ฒŒ.. 2022. 3. 7.
Spring Security Spring Security๋ž€? Spring ๊ธฐ๋ฐ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ(์ธ์ฆ๊ณผ ๊ถŒํ•œ, ์ธ๊ฐ€ ๋“ฑ)์„ ๋‹ด๋‹นํ•˜๋Š” ์Šคํ”„๋ง ํ•˜์œ„ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ์ฃผ๋กœ ์„œ๋ธ”๋ฆฟ ํ•„ํ„ฐ์™€ ์ด๋“ค๋กœ ๊ตฌ์„ฑ๋œ ํ•„ํ„ฐ ์ฒด์ธ์œผ๋กœ ๋˜์–ด์žˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๊ฐ€๋กœ์ฑ„๊ณ  Spring Security ํ”„๋กœ์„ธ์Šค์— ๋ณด์•ˆ ์ฒ˜๋ฆฌ๋ฅผ ์œ„์ž„ํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค. ์ธ์ฆ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์นœ ํ›„ ์ธ๊ฐ€ ์ ˆ์ฐจ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์•„์ด๋””(Principal), ๋น„๋ฐ€๋ฒˆํ˜ธ(Credential)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Credential ๊ธฐ๋ฐ˜์˜ ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ์ฆ ์ •๋ณด๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ์„ธ์…˜ ์ €์žฅ์†Œ์ธ SecurityContextHolder์— ์„ธ์…˜-์ฟ ํ‚ค ๋ฐฉ์‹์œผ๋กœ ์ €์žฅ๋œ๋‹ค. Security 3.2 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” xml๋กœ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ  ์ž๋ฐ” bean์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค. ๐Ÿ”Ž ์ธ์ฆ(Au.. 2022. 3. 7.
๋ชจ์˜๊ณ ์‚ฌ (Java) https://programmers.co.kr/learn/courses/30/lessons/42840?language=java ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ชจ์˜๊ณ ์‚ฌ ์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 1๋ฒˆ ๋ฌธ์ œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋ฌธ์ œ๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฐ์Šต๋‹ˆ๋‹ค. 1๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” programmers.co.kr ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณ ๋“์  ์™„์ „ํƒ์ƒ‰ ๋ชจ์˜๊ณ ์‚ฌ(์ˆ˜ํฌ์ž) ๋ฌธ์ œ ํ’€์ด์ด๋‹ค. ์ˆ˜ํฌ์ž๊ฐ€ 3๋ช…์œผ๋กœ ์ •ํ•ด์ ธ ์žˆ๊ณ , ๊ฐ ์ˆ˜ํฌ์ž๊ฐ€ ์ฐ๋Š” ๊ทœ์น™์„ ๋ฐฐ์—ด๋กœ ์„ ์–ธํ•˜๊ณ  ๋ฌธ์ œ ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉฐ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ์—ˆ๋‹ค. import java.util.List; import java.util.ArrayList; import java.util.Arrays; class S.. 2022. 2. 15.
K๋ฒˆ์งธ์ˆ˜ (Java) https://programmers.co.kr/learn/courses/30/lessons/42748 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - K๋ฒˆ์งธ์ˆ˜ [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณ ๋“์  Kit ์ •๋ ฌ K๋ฒˆ์งธ์ˆ˜ ๋ฌธ์ œ ํ’€์ด์ด๋‹ค. ๋ฐฐ์—ด์—์„œ i๋ฒˆ์งธ๋ถ€ํ„ฐ j๋ฒˆ์งธ๊นŒ์ง€ ์ถ”์ถœํ•˜๊ณ  ์ •๋ ฌํ•œ ํ›„ k๋ฒˆ์งธ ๊ฐ’์„ ์ฐพ์œผ๋ฉด๋˜๋Š” ๋กœ์ง์ด ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€๋‹ค. # 1 ์ฒซ ๋ฒˆ์งธ ํ’€์ด๋Š” ๋‹จ์ˆœํžˆ ๋ฐ˜๋ณต๋ฌธ ๋งŒ์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์—ˆ๋‹ค. * Arrays.copyOfRange(array, i, j) ์ฒ˜๋Ÿผ ์ผ๋ถ€๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ž. import java.util.Collections; impor.. 2022. 2. 9.
์ฒด์œก๋ณต (Java) https://programmers.co.kr/learn/courses/30/lessons/42862 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ฒด์œก๋ณต ์ ์‹ฌ์‹œ๊ฐ„์— ๋„๋‘‘์ด ๋“ค์–ด, ์ผ๋ถ€ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์ด ์žˆ๋Š” ํ•™์ƒ์ด ์ด๋“ค์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋Š” ์ฒด๊ฒฉ ์ˆœ์œผ๋กœ ๋งค๊ฒจ์ ธ ์žˆ์–ด, ๋ฐ”๋กœ ์•ž๋ฒˆ programmers.co.kr ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณ ๋“์  Kit ์ฒด์œก๋ณต ๋ฌธ์ œ ํ’€์ด์ด๋‹ค. reserve ๋ชฉ๋ก ๋‚ด lost ๋ชฉ๋ก์„ ๋„ฃ์–ด ์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋น„๊ตํ•ด์„œ ํ’€์—ˆ๋‹ค. ์ดˆ๋ฐ˜์—” ๋น„๊ต์  ์‰ฝ๊ฒŒ ํ’€๋ฆฌ๋Š” ๋“ฏ ํ–ˆ๋Š”๋ฐ ์ผ๋ถ€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์‹คํŒจํ–ˆ๊ณ  ์‹คํŒจ ์›์ธ์€ ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค. - 12, 13, 18 ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์‹คํŒจ reserve ๋ชฉ๋ก๊ณผ lost ๋ชฉ๋ก์€ ์ •๋ ฌ๋˜์–ด์žˆ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์–ด ๋„๋‚œ ๋‹นํ•œ ์‚ฌ๋žŒ์˜ ์•ž,.. 2022. 2. 8.
์ฃผ์‹ ๊ฐ€๊ฒฉ (Java) https://programmers.co.kr/learn/courses/30/lessons/42584 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ฃผ์‹๊ฐ€๊ฒฉ ์ดˆ ๋‹จ์œ„๋กœ ๊ธฐ๋ก๋œ ์ฃผ์‹๊ฐ€๊ฒฉ์ด ๋‹ด๊ธด ๋ฐฐ์—ด prices๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ€๊ฒฉ์ด ๋–จ์–ด์ง€์ง€ ์•Š์€ ๊ธฐ๊ฐ„์€ ๋ช‡ ์ดˆ์ธ์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”. ์ œํ•œ์‚ฌํ•ญ prices์˜ ๊ฐ ๊ฐ€๊ฒฉ์€ 1 ์ด์ƒ 10,00 programmers.co.kr ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณ ๋“์  Kit ์ฃผ์‹๊ฐ€๊ฒฉ ๋ฌธ์ œ ํ’€์ด์ด๋‹ค. ๋ช‡ ์ดˆ๋งŒ์— ์ฃผ์‹์ด ๋–จ์–ด์กŒ๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ธ๋ฐ ๋ฐฐ์—ด ์ธ๋ฑ์Šค์˜ ์ฐจ์ด๋กœ ์‰ฝ๊ฒŒ ์ดˆ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ณ  ํ˜„์žฌ ๋ฐ˜๋ณต ์š”์†Œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ ๋’ค์— ๋–จ์–ด์ง„ ์ ์ด ์žˆ๋Š”์ง€ ์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ํ™•์ธํ–ˆ๋‹ค. ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ ค ํšจ์œจ์„ฑ์—์„œ ํƒˆ๋ฝํ•  ์ค„ ์•Œ์•˜๋Š”๋ฐ ๋ฐฐ์—ด์„ ์ปฌ๋ ‰์…˜์œผ๋กœ ๋ณ€ํ™˜ํ•˜์ง€ ์•Š๊ณ  ์ˆœ.. 2022. 2. 6.
javascript ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชฉ์ฐจ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ• ๊ณ ์ฐจ ํ•จ์ˆ˜ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ํด๋กœ์ €(Closure) ์ปค๋ง(Currying) ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์‚ฐํ•  ๋Œ€์ƒ์ด ํ•จ์ˆ˜๊ฐ€ ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ์™€ ์ƒํƒœ๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ์—ฌ๋Ÿฌ ํ•จ์ˆ˜๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์„ ์–ธ์  ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋˜๋ฉฐ ํ๋ฆ„ ์ œ์–ด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๊ธฐ์ˆ ํ•˜์ง€ ์•Š๊ณ  ๋กœ์ง์„ ํ‘œํ˜„ํ•œ๋‹ค. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŠน์ง• ๐Ÿ’ก ๋ช…๋ นํ˜•์ด ์•„๋‹Œ ์„ ์–ธํ˜•์ด๋‹ค. ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ฌด์—‡์„ ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€์— ์ง‘์ค‘ํ•œ๋‹ค. ex) html, Lisp, Sql ๋“ฑ // ๋ฐฐ์—ด ๋‚ด ์š”์†Œ๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊พธ๋Š” ์ฝ”๋“œ // ๋ฐฐ์—ด ๋‚ด ์š”์†Œ๋ฅผ i๋ฅผ ์ฆ๊ฐ€ํ•ด์ฃผ๋ฉฐ ํ•˜๋‚˜์”ฉ ์ ‘๊ทผํ•˜์—ฌ ๋Œ€๋ฌธ์ž๋กœ ๋ฐ”๊พธ๊ณ  ์ƒˆ ๋ฐฐ์—ด์— ๋‹ด์•„์ค€๋‹ค. const arr = ['a', 'b', 'c']; const result = n.. 2022. 2. 6.