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

์ „์ฒด ๊ธ€103

[Spring] REST์™€ API ๊ทธ๋ฆฌ๊ณ  REST API๋ž€? Swagger๋ฅผ ํ†ตํ•ดAPI์˜ ๋ช…์„ธ์„œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ คํ–ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ REST API์™€ ์—ฐ๊ด€์ด ์žˆ๋Š” ๋“ฏ ํ•˜๋‹ค.REST API๊ฐ€ ๋ญ˜๊นŒ? REST๋ž€?REST๋Š” Representational State Transfer์˜ ์•ฝ์ž์ด๋‹ค.์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.HTTP URI๋ฅผ ํ†ตํ•ด ์ž์›์„ ๋ช…์‹œํ•˜๊ณ , HTTP Method(GET, POST ๋“ฑ)๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ž์›(URI)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ๋“ค์„ ์ ์šฉํ•œ๋‹ค.์—ฌ๊ธฐ์„œ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์€ CRUD Operation์œผ๋กœ Create(์ƒ์„ฑ), Read(์ฝ๊ธฐ), Update(๊ฐฑ์‹ ), Delete(์‚ญ์ œ)๋ฅผ ๋งํ•œ๋‹ค. REST์˜ ๋‹จ์ ํ‘œ์ค€ ์ž์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„ ์ •์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.HTTP Method ํ˜•ํƒœ๊ฐ€ ์ œํ•œ์ ์ด๋‹ค... 2025. 7. 16.
[Spring] ๊น€์˜ํ•œ ์Šคํ”„๋ง MVC_ ์„น์…˜5. MVC ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒ๋“ค๊ธฐ ์„น์…˜ 5๋Š” ํ˜„์žฌ์˜ Spring MVC๊นŒ์ง€ ์˜ค๊ฒŒ๋œ ๊ณผ์ •์„ ์ฐจ๊ทผ์ฐจ๊ทผ ์‚ดํŽด๋ดค๋‹ค. ์•ž์„œ ๋ฐฐ์šด ์ ์—์„œ ๊ฐ€์žฅ ํฐ ๋ณ€ํ™”๋Š” ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ์ฒ˜๋ฆฌํ–ˆ๋˜ ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์—ญํ• ์„ ์ „๊ฐ€ํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์ ์  ํŽธ๋ฆฌํ•˜๊ฒŒ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ตœ๋Œ€ํ•œ ์ค„์ด๋ฉฐ ์ ์ง„์ ์ธ ๊ตฌ์กฐ์  ๋ณ€ํ™”๋ฅผ ์ฃผ์—ˆ๋‹ค. โ˜˜๏ธ ์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โœ”๏ธ V1_ ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋„์ž…ํ•˜์ž.ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์š”์ฒญ์„ ๋ฐ›์•„ ์•Œ๋งž๋Š” ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ฐพ์•„ ํ˜ธ์ถœํ•œ๋‹ค.๋‚˜๋จธ์ง€ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์„œ๋ธ”๋ฆฟ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. โ–บ ControllerV1.interfacepublic interface ControllerV1 { void process(HttpServletRequest r.. 2025. 7. 14.
[Spring] (MAC, IntelliJ, vue.js) Spring boot๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ณ , vue.js ์„ค์น˜์™€ ํ”„๋กœ์ ํŠธ ์—ด๊ธฐ. ์ด๋ฒˆ์— ๋งŒ๋“ค ์›น์‚ฌ์ดํŠธ๋Š”vue.js๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค๐Ÿ  1. ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€? ํšŒ์›๊ฐ€์ž… ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค. Vue.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ก ํŠธ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ, ๊ฐ„๋‹จํ•œ ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์›น์‚ฌ์ดํŠธ์— ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์€ ํ•„์š”ํ•˜๋‹ˆ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ฒŒ ๋ผ๋„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๋ฉด ํŽธ๋ฆฌํ•  ๊ฒƒ ๊ฐ™๋‹ค.๊ฐ„ํŽธ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ์ด๋ฉฐ, Vue์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ํ„ฐ๋“ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํ˜๋Ÿฌ๊ฐ€๋Š”์ง€ ํŒŒ์•…ํ•˜๊ณ ์ž ํ•œ๋‹ค. 2. Spring initializr ์ƒ์„ฑํ•˜๊ธฐ. โ–ก https://start.spring.io/ โ–ก dependencies ์„ค์ •ํ•˜๊ธฐ. dependencies { implementation 'org.springfr.. 2025. 7. 10.
[Java] Set<E> ์ปฌ๋ ‰์…˜ ์ธํ„ฐํŽ˜์ด์Šค, HashSet<E>, LinkedHashSet<E>, TreeSet<E> ์ฐจ์ด์  ๐Ÿ“š ์ฐธ๊ณ ํ•œ ์ฑ… - ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์„ ์ •๋ฆฌํ•˜๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ ๊ถ๊ธˆํ•œ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค - ๐Ÿฅ ๐Ÿฅ ๐Ÿฅ โœ”๏ธ Set_ 646p • Set: ๋™์ผํ•œ ํƒ€์ž…์„ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ธ๋ฑ์Šค ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์ง€ ์•Š์€, ์ง‘ํ•ฉ์˜ ๊ฐœ๋…๊ณผ ๊ฐ™์€ ์ปฌ๋ ˆ์…˜์ด๋‹ค.Set hset1 = new HashSet();hset1.add("a");hset1.add("b");hset1.add("c");System.out.println(hset1.toString());System.out.println(hset1.size());hset1.add("a");System.out.println(hset1.toString());System.out.println(hset1.size());Set๋Š” ์ธ๋ฑ์Šค ์ •๋ณด๊ฐ€ ์—†์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณตํ•ด ์ €์žฅํ•˜.. 2025. 7. 7.
[Spring] ๊น€์˜ํ•œ ์Šคํ”„๋ง MVC_ ์„น์…˜4. ์„œ๋ธ”๋ฆฟ, JSP, MVC ํŒจํ„ด(2) ์„น์…˜ 4๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํšŒ์›๊ด€๋ฆฌ ์›น์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ํ•ด๋ณด๊ณ  JSP, SpringMVC๋ฅผ ์ฐจ๋ก€๋กœ ์‚ดํŽด๋ดค๋‹ค. ์„œ๋ธ”๋ฆฟ๊ณผ JSP๋กœ ๋งŒ๋“  ์ฝ”๋“œ์—๋Š” ์–ด๋–ค ๋ถˆํŽธํ•œ ์ ์ด ์žˆ๋Š”์ง€, SpringMVC๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๋ฉฐ ์„œ๋ธ”๋ฆฟ๊ณผ JSP์˜ ๋ฌธ์ œ์ ์„ ์–ด๋–ป๊ฒŒ ๋ณด์™„ํ–ˆ๋Š”์ง€ ์‚ดํŽด๋ดค๋‹ค. โ˜˜๏ธ ์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โœ”๏ธ MVC ํŒจํ„ด - ํšŒ์›์ •๋ณด ์ €์žฅ๊ณผ ์ถœ๋ ฅ์„œ๋ธ”๋ฆฟ์„ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์‚ฌ์šฉํ•˜๊ณ , JSP๋ฅผ ๋ทฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. โ–บ MvcMemeberFormServlet.classํšŒ์› ๋“ฑ๋ก ํผ ํด๋ž˜์Šค์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค. RequestDispatcher: ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ตœ์ดˆ๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์›ํ•˜๋Š” ์ž์›์œผ๋กœ ์š”์ฒญ์„ ๋„˜๊ธฐ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜, ํŠน์ • ์ž์›์— ์ฒ˜๋ฆฌ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด์˜ค๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํด.. 2025. 7. 4.
[Python] 2์ฐจ์› ๋ฆฌ์ŠคํŠธ(๋ฐฐ์—ด) ์•ž์—์„œ ํŒŒ์ด์ฌ์˜ ๋ฆฌ์ŠคํŠธ์— ๊ด€ํ•ด ๋ฐฐ์› ๋Š”๋ฐ,2์ฐจ์› ๋ฆฌ์ŠคํŠธ๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค๊นŒ? ♣ 2์ฐจ์› ๋ฆฌ์ŠคํŠธ ์ง์ ‘ ๊ฐ’ ๋„ฃ์–ด 2์ฐจ์› ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐage = [[10, 11, 12], [13, 14, 15], [16, 17, 18]][[1, 2, 3], [4, 5, 6], [7, 8, 9]] ํฌ๊ธฐ๋งŒ ์ •ํ•˜๊ณ  ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ 2์ฐจ์› ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ# ํ–‰ ๊ฐœ์ˆ˜n = 3# ์—ด ๊ฐœ์ˆ˜m = 4# 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ 2์ฐจ์› ๋ฆฌ์ŠคํŠธage = [[0]*m for _ in range(n)][[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] ์›์†Œ ๊ฐ’์„ ์ง์ ‘ ์ž…๋ ฅ ๋ฐ›์•„ 2์ฐจ์› ๋ฆฌ์ŠคํŠธ ๋งŒ๋“ค๊ธฐ# ํ–‰๊ณผ ์—ด์„ ์ž…๋ ฅํ•œ๋‹ค.n = int(input())age = []# ์ž…๋ ฅํ•œ ํ–‰์˜ ์ˆ˜ ๋งŒํผ ๋ฐ˜๋ณตํ•œ๋‹ค.for _ in range.. 2025. 7. 2.