๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (196)

JUINTINATION

TODO API SERVER with ์Šคํ”„๋ง๋ถ€ํŠธ

์ข…๊ฐ•์„ ํ•˜๊ณ  ์ด๋Ÿฐ์ €๋Ÿฐ ๋ฐ€๋ฆฐ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ณด๋‹ˆ ์–ด๋Š์ƒˆ 7์›”.. ๋‚ ์”จ๊ฐ€ ๊ฒฌ๋”œ ์ˆ˜ ์—†์„ ๋งŒํผ ๋”์›Œ์ง€๊ณ  ์ด๋Ÿฌ๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰ ๋ฐฉํ•™์„ ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ํ•˜๊ณ  ์ข…์ผ ์œ ํŠœ๋ธŒ๋งŒ ๋ณด๋ฉด์„œ ๋ณด๋‚ผ ๊ฒƒ ๊ฐ™์•„์„œ ์˜ˆ์ „์— ์ž‘์„ฑํ–ˆ์—ˆ๋˜ todo-api-server์˜ ๋‚ด์šฉ์„ ์Šคํ”„๋ง ๋ณต์Šต ๊ฒธ ์ž‘์„ฑํ•ด ๋ณด๊ณ ์ž ํ•œ๋‹ค.์ง€๋‚œ ํ•™๊ธฐ์— ์ธํ”„๋Ÿฐ ๊ฐ•์˜(์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” React with ์Šคํ”„๋ง๋ถ€ํ„ฐ API์„œ๋ฒ„)๋ฅผ ๋ณด๋ฉด์„œ ์ž‘์„ฑํ•˜์˜€์œผ๋ฉฐ, ์›๋ณธ ์†Œ์Šค์ฝ”๋“œ๋Š” ๋‹ค์Œ ๋งํฌ์— ๊ณต๊ฐœ๋˜์–ด ์žˆ๋‹ค. ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” React with ์Šคํ”„๋ง๋ถ€ํŠธ API์„œ๋ฒ„ ๊ฐ•์˜ | ๊ตฌ๋ฉ๊ฐ€๊ฒŒ์ฝ”๋”ฉ๋‹จ - ์ธํ”„๋Ÿฐ๊ตฌ๋ฉ๊ฐ€๊ฒŒ์ฝ”๋”ฉ๋‹จ | ์Šคํ”„๋ง ๋ถ€ํŠธ(Spring Boot ver3.1(3.2 ํ˜ธํ™˜))๋กœ ์ œ์ž‘๋˜๋Š” API ์„œ๋ฒ„์™€ ๋ฆฌ์•กํŠธ์˜ ์—ฐ๋™ ํ”„๋กœ์ ํŠธ ์™„์„ฑํ•˜๊ธฐ! ํฌํŠธํด๋ฆฌ์˜ค ์ž‘์„ฑ ๋ถ€ํŠธ์บ ํ”„ ๊ณผ์ • ์ „์ฒด๋ฅผ ๊ฐ•์˜๋กœ ์ œ์ž‘, '๊ตฌ์Šฌ์ด ์„œ ๋ง..

Java Spring Boot 2024. 7. 1. 19:39
๋น„์ง€ํ„ฐ(Visitor) ํŒจํ„ด

๋น„์ง€ํ„ฐ ํŒจํ„ด์ด๋ž€?๋น„์ง€ํ„ฐ ํŒจํ„ด(๋ฐฉ๋ฌธ์ž ํŒจํ„ด)์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐ์ฒด ๊ตฌ์กฐ์—์„œ ๋ถ„๋ฆฌ์‹œํ‚ค๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. GOF ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ–‰์œ„ ํŒจํ„ด์— ํ•ด๋‹นํ•˜๋ฉฐ, ์ด๋ ‡๊ฒŒ ๋ถ„๋ฆฌ๋ฅผ ํ•˜๋ฉด ๊ตฌ์กฐ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ์‹ค์งˆ์ ์œผ๋กœ ์ƒˆ๋กœ์šด ๋™์ž‘์„ ๊ธฐ์กด์˜ ๊ฐ์ฒด ๊ตฌ์กฐ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฐœ๋ฐฉ-ํ์‡„ ์›์น™์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ํ•˜๋‚˜์ด๋‹ค.๋น„์ง€ํ„ฐ ํŒจํ„ด์€ ์ดํ•ดํ•˜๊ฑฐ๋‚˜ ๊ตฌํ˜„ํ•˜๊ธฐ ๋งค์šฐ ์–ด๋ ต๊ณ , ์‹ฌ์ง€์–ด ์ ์šฉํ•˜๋ฉด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋–จ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ๊ฑฐ์˜ ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋งค์šฐ ํŠน์ˆ˜ํ•œ ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ผ๋ฉด ๋น„์ง€ํ„ฐ ํŒจํ„ด์€ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.๋น„์ง€ํ„ฐ ํŒจํ„ด์˜ ๋„์ถœ ๊ณผ์ •๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ๋น„์ง€ํ„ฐ ํŒจํ„ด์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •์„ ์‚ดํŽด๋ณด์ž.์›น ์‚ฌ์ดํŠธ์—์„œ ๋Œ€๋Ÿ‰์˜ ํŒŒ์ผ์„ ํฌ๋กค๋งํ•˜๋Š”๋ฐ ์ด ํŒŒ์ผ๋“ค์˜ ํ˜•์‹์€ PDF, PPT, Word๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์ด ๋ฆฌ์†Œ์Šค ํŒŒ์ผ์„ ..

StudyNote 2024. 6. 26. 02:21
๋นŒ๋”(Builder) ํŒจํ„ด

๋นŒ๋” ํŒจํ„ด์ด๋ž€?๋นŒ๋” ํŒจํ„ด์€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ƒ์„ฑ์ž(Constructor)๋งŒ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋˜์—ˆ์œผ๋ฉฐ, ์ƒ์„ฑ๊ธฐ ํŒจํ„ด์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค. GOF ๋””์ž์ธ ํŒจํ„ด ์ค‘ ์ƒ์„ฑ ํŒจํ„ด์— ํ•ด๋‹นํ•˜๋ฉฐ, ๋ณต์žกํ•œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํด๋ž˜์Šค์™€ ํ‘œํ˜„ํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋™์ผํ•œ ์ ˆ์ฐจ์—์„œ๋„ ์„œ๋กœ ๋‹ค๋ฅธ ํ‘œํ˜„์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋ฐœ์—์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ new ์˜ˆ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋ฆฌ์†Œ์Šค ํ’€(Resource pool)์˜ ์„ค์ •์„ ์œ„ํ•œ ResourcePoolConfig ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ์ด ๋ฆฌ์†Œ์Šค ํ’€ ์„ค์ • ํด๋ž˜์Šค์—๋Š” ์•„๋ž˜์˜ ํ‘œ์™€ ๊ฐ™์ด ์„ค์ • ๊ฐ€๋Šฅํ•œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋‹ค.๋ฉค๋ฒ„ ๋ณ€์ˆ˜์„ค๋ช…ํ•จ์ˆ˜ ์„ค์ •๊ธฐ๋ณธ๊ฐ’name๋ฆฌ์†Œ์Šค ์ด๋ฆ„O์—†์ŒmaxTo..

StudyNote 2024. 4. 30. 15:42
์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„(JSON / XML / AJAX / REST)

JSON(Javascript Object Notation)์ด๋ž€? JSON์€ ์†์„ฑ-๊ฐ’ ์Œ(Attribute-Value Pair) ๋˜๋Š” ํ‚ค-๊ฐ’ ์Œ(Key-Value Pair)์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ธ๊ฐ„์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํฌ๋งท์ด๋‹ค. AJAX(Asynchronous Javascript and XML)์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. XML(eXtensible Markup Language)์„ ๋Œ€์ฒดํ•˜๋Š” ์ฃผ์š” ๋ฐ์ดํ„ฐ ํฌ๋งท์ด๋‹ค. ์–ธ์–ด ๋…๋ฆฝํ˜• ๋ฐ์ดํ„ฐ ํฌ๋งท์œผ๋กœ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋œ๋‹ค. JSON ํ‘œํ˜„ ์ž๋ฃŒํ˜• ์ž๋ฃŒํ˜• ์‚ฌ๋ก€ ์ˆซ์ž(Number) ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์˜ ์ˆ˜๋Š” ์ •์ˆ˜, ์‹ค์ˆ˜(๊ณ ์ •์†Œ์ˆ˜์ , ๋ถ€๋™์†Œ์ˆ˜์ )๋กœ ํ‘œํ˜„ ex) 74, 3.14, 3.4e+4 ๋ฌธ์ž์—ด(String) ํ•ญ์ƒ..

์Šคํ”„๋ง๋ถ€ํŠธ + MySQL ํ”„๋กœ์ ํŠธ ๋„์ปค๋ผ์ด์ง•ํ•˜๊ธฐ

์ง€๋‚œ๋ฒˆ์— ์ฑ…์„ ๋ณด๋ฉด์„œ ๋”ฐ๋ผ์„œ ๋งŒ๋“  ๊ฐ„๋‹จํ•œ ๊ฒŒ์‹œํŒ ํ”„๋กœ์ ํŠธ์ธ Board-Clone ํ”„๋กœ์ ํŠธ๋ฅผ ๋„์ปค๋ผ์ด์ง•ํ•ด๋ดค๋‹ค. Express.js๋ฅผ ์‚ฌ์šฉํ•œ ์ŠคํผํŠธ ํ”„๋กœ์ ํŠธ์—๋„ ์ ์šฉํ•ด๋ณธ ์ ์ด ์žˆ๋Š”๋ฐ ๊ทธ ๋‚ด์šฉ์„ ๋‚ด๊ฐ€ ์•ˆ ์ ์–ด๋‘ฌ์„œ ์ฒ˜์Œ์— ์กฐ๊ธˆ ํ—ค๋งธ๋‹ค..์—ฌ๋Ÿฌ ๋ธ”๋กœ๊ทธ์™€ ํ•™๊ต ์„ ๋ฐฐ์˜ ๊นƒํ—ˆ๋ธŒ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•ด๊ฐ€๋ฉด์„œ Dockerfile์„ ์ž‘์„ฑํ•ด๋‚˜๊ฐ€๋Š”๋ฐ Express.js๋ฅผ ๋„์ปค๋ผ์ด์ง•ํ•  ๋•Œ์™€ ํฐ ์ฐจ์ด๋Š” ์—†์—ˆ์ง€๋งŒ ์•ฝ๊ฐ„์”ฉ ๋‹ฌ๋ผ์„œ ์ข€ ๋‹นํ™ฉํ•˜๊ธด ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  jdk 17 ๋ฒ„์ „์œผ๋กœ ํ•œ ์‚ฌ๋žŒ์ด ๋„ˆ๋ฌด ์ ์–ด์„œ ๋น„๊ต๊ตฐ์„ ์ฐพ๊ธฐ๋„ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜๋„ ์•„๋ฌดํŠผ ์„ฑ๊ณตํ•˜๊ธด ํ–ˆ๋Š”๋ฐ ๊ทธ ๋‚ด์šฉ์„ ๋˜ ๊นŒ๋จน๊ธฐ ์ „์— ์ ์–ด๋ณด์ž.DockerfileFROM gradle:7.3.3-jdk17 AS builderWORKDIR /buildCOPY . /buildRUN ./gradlew ..

StudyNote 2024. 3. 11. 22:51
์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ Board Clone

์ง€๋‚œ Mac OS ์ž๋ฐ” ๋ฒ„์ „ ์—ฌ๋Ÿฌ ๊ฐœ ๊ด€๋ฆฌํ•˜๊ธฐ ๊ธ€์—์„œ ์ž ๊น ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์Šคํ”„๋ง์„ ์“ธ ์ผ์ด ์ƒ๊ฒจ์„œ jdk 17 ๋ฒ„์ „์„ ์„ค์น˜ํ–ˆ์—ˆ๋‹ค. ์ดํ›„์— ETRI์—์„œ ๋Œ€์—ฌํ•œ ์ฝ”๋“œ๋กœ ๋ฐฐ์šฐ๋Š” ์Šคํ”„๋ง ๋ถ€ํŠธ ์›น ํ”„๋กœ์ ํŠธ ์ฑ…๊ณผ ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ์ ํžŒ ๊นƒํ—ˆ๋ธŒ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ฒŒ์‹œํŒ ํ”„๋กœ์ ํŠธ๋ฅผ ๋”ฐ๋ผ ์น˜๋ฉด์„œ ์Šคํ”„๋ง ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ๋ฌผ๋ก  ์ฑ…์˜ ๋ฒ„์ „๊ณผ ์ง€๊ธˆ ๋ฒ„์ „์ด ๋งŽ์ด ๋‹ฌ๋ผ์ ธ์„œ ์˜ค๋ฅ˜๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ–ˆ๊ณ  ๊ด€๋ จ ๋‚ด์šฉ์€ ๋„ค์ด๋ฒ„ ์นดํŽ˜์˜ QnA ๊ฒŒ์‹œํŒ๋„ ์ฐธ๊ณ ํ–ˆ๋‹ค. ์ด์ œ ๊ทธ ๋‚ด์šฉ์„ ์ฐจ๊ทผ์ฐจ๊ทผ ๋”ฐ๋ผ๊ฐ€๋ณด์ž. ๊ตฌ๋ฉ๊ฐ€๊ฒŒ์ฝ”๋”ฉ๋‹จ : ๋„ค์ด๋ฒ„ ์นดํŽ˜์•ˆ๋…•ํ•˜์„ธ์š”? ๊ตฌ๋ฉ๊ฐ€๊ฒŒ ์ฝ”๋”ฉ๋‹จ์˜ ํ™œ๋™์„ ์œ„ํ•œ ์นดํŽ˜์ž…๋‹ˆ๋‹ค.cafe.naver.comํ”„๋กœ์ ํŠธ ์ƒ์„ฑstart.spring.io์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด Thymeleaf, Lombok, Spring Data JPA, Spring Web, Spring B..

Java Spring Boot 2024. 3. 10. 23:09