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

๋ชฉ๋กfull stack/Back-End (19)

JiYoung Dev ๐Ÿ–ฅ

[Spring - Android] JPA ํ™œ์šฉ ์—ฐ๋™ํ•˜๊ธฐ (2023.07.20~21)

controller : ๋ทฐ๋ฐ˜ํ™˜ restcontroller : ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜ Application.java ์œ„์น˜ ๊ธฐ์ค€ ํ•˜์œ„์— ์žˆ๋Š” ๊ฒƒ๋“ค๋งŒ ๊ฐ์ฒด ์ƒ์„ฑ ๋ชจ๋“  ์ปจํŠธ๋กค๋Ÿฌ, ์„œ๋น„์Šค ๋“ฑ์€ ๋ชจ๋‘ boot package ํ•˜์œ„์— ์กด์žฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•จ spring์—์„œ ์‚ฌ์šฉํ•˜๋Š” class => ์–ด๋…ธํ…Œ์ด์…˜ @์„ ๋ถ™์—ฌ์•ผํ•จ. ์–ด๋–ค ๊ธฐ๋Šฅ์„ ํ•˜๋Š”์ง€ JPA object์™€ ๊ด€๊ณ„ํ˜• ํ…Œ์ด๋ธ” ๋งคํ•‘ jpa ์‚ฌ์šฉ์‹œ ์ฃผ์˜์  - ์ž์ฒด์ ์œผ๋กœ ๊ฐ๊ฐ์˜ ๊ฐ’๋“ค์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” (ex.sequence)๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ด ์•„์ด๋ฅผ primary ํ‚ค๋กœ ์‚ฌ์šฉ ์žญ์Šจ object-json ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Stringํ˜•ํƒœ์˜ json์„ java Object๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ์ฒ˜๋ฆฌ 1. throw : ์ฝ”๋“œ๊ฐ€ ๊น”๋”ํ•˜๋‹ค 2. try-..

full stack/Back-End 2023. 7. 20. 14:17
[Node.js] Socket ํ†ต์‹  (2023.07.10)

http ํ†ต์‹  ํ†ต์‹ ์ˆœ์„œ : ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋“ค์–ด์™€์•ผ ์„œ๋ฒ„์ชฝ์—์„œ ๊ทธ์— ์•Œ๋งž๋Š” ์‘๋‹ต์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹ ์„œ๋ฒ„๊ฐ€ ๋จผ์ € ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒŒ ๋ถˆ๊ฐ€๋Šฅํ•จ socket ํ†ต์‹  ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๋Š” ํ†ต์‹ ์œผ๋กœ, ํด๋ผ์ด์–ธํŠธ๋„ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ณ  ์„œ๋ฒ„๋„ ํด๋ผ์ด์–ธํŠธ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ํ†ต์‹  ์˜ˆ๋ฅผ๋“ค์–ด ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ Node.js์—์„œ๋Š” Socket.IO npm ๋ชจ๋“ˆ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ ๋ชจ๋“ˆ ์„ค์น˜ npm install socket.io ์„œ๋ฒ„์ชฝ ์†Œ์ผ“ //์„œ๋ฒ„์ชฝ ์†Œ์ผ“ ์ž‘์„ฑ const socketIO = require('socket.io') //์–ด๋Š ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ์ด ๋œ ์ƒํƒœ๋กœ ์“ธ ๊ฒƒ์ธ์ง€ ์ •์˜๋ฅผ ํ•ด์ค˜์•ผ ํ•จ (ex.port) //express server module.exports = (serve..

full stack/Back-End 2023. 7. 10. 13:47
[Node.js] ์ฟ ํ‚ค/์„ธ์…˜ (2023.07.06 ~ 07)

์ฟ ํ‚ค์™€ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  → HTTP์˜ ํŠน์„ฑ ๋•Œ๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š”(์š”์ฒญ, ์‘๋‹ต) ์—ฐ๊ฒฐ์„ ์œ ์ง€๋˜์–ด์•ผ ํ•จ ๊ทธ๋Ÿฐ๋ฐ ์š”์ฒญ, ์‘๋‹ต์ด ๋๋‚ฌ๋Š”๋ฐ๋„ ๊ณ„์† ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๊ณ„์† ์ž์›์„ ์“ด๋‹ค๋Š” ๊ฒƒ → ๋น„ํšจ์œจ์  ๊ทธ๋ž˜์„œ HTTP๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ์˜ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ ์ด๋กœ์ธํ•ด ํŒŒ์ƒ๋˜๋Š” ํŠน์ง•์ธ ๋ฌด์ƒํƒœ(Stateless) ์š”์ฒญ๊ณผ ์‘๋‹ต์ด ๋๋‚˜๋Š” ์ˆœ๊ฐ„ ์•Œ๊ณ ์žˆ์—ˆ๋˜ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋”์ด์ƒ ๊ธฐ์–ตํ•˜์ง€ ์•Š์Œ! ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค์™€ ์„ธ์…˜์ด ํ•„์š”ํ•จ ์ฟ ํ‚ค ์œ ์ง€ํ•ด์•ผํ•˜๋Š” ์ƒํƒœ ์ •๋ณด๋ฅผ ๋ณด๊ด€ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์— ์ €์žฅ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์ด ๋‚จ์•„์žˆ์œผ๋ฉด ์ปดํ“จํ„ฐ๋ฅผ ๋„๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์Œ ์ƒ์„ฑ์€ ์„œ๋ฒ„์—์„œ, ๋ณด๊ด€์€ ํด๋ผ์ด์–ธํŠธ ์ชฝ์—์„œ ์ง„ํ–‰ํ•˜๋ฏ€๋กœ ์‘๋‹ตํ•  ๋•Œ ์ฟ ํ‚ค๋ฅผ ํฌํ•จ์‹œ์ผœ ์‘๋‹ตํ•ด์•ผ ํ•จ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ตํ•˜๋Š”..

full stack/Back-End 2023. 7. 6. 13:48
[Node.js] Express ์‚ฌ์šฉํ•˜๊ธฐ (2023.07.05)

Express์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์ค‘๊ฐ„์— ์œ„์น˜ํ•˜๊ฒŒ ๋˜๋Š” ํ•จ์ˆ˜๋“ค ์–ด๋Š ๋ฃจํŠธ๋กœ ๊ฐ€๋Š”๊ฒŒ ํšจ์œจ์ ์ธ์ง€ ๋ผ์šฐํ„ฐ๊ฐ€ ํ™•์ธ > ๋„คํŠธ์›Œํฌ์—์„œ ๋งํ•˜๋Š” ๋ผ์šฐํ„ฐ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ๊ฒฝ๋กœ(url)์„ ๋ณด๊ณ  ์–ด๋””์—์„œ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋˜๋Š”์ง€ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ•  > express์—์„œ์˜ ๋ผ์šฐํ„ฐ http ๋ชจ๋“ˆ์—์„œ๋Š” ์กฐ๊ฑด์ ˆ์„ ์‚ฌ์šฉํ–ˆ์Œ app ์ธ์Šคํ„ด์Šค : ์š”์ฒญ๋ฐ›๊ณ , ์‘๋‹ตํ•˜๋Š” ๋ชจ๋“  ์ž‘์—…์„ app ์ธ์Šคํ„ด์Šค๋ฅผ ํ†ตํ•ด์„œ ์ง„ํ–‰ํ•จ ์ธ์Šคํ„ด์Šค๋ž€ ? - ์ƒ์„ฑ๋œ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด ์ •๋ฆฌ http ๋ชจ๋“ˆ : ์š”์ฒญ ๋ฉ”์„œ๋“œ๋ฅผ ์กฐ๊ฑด๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•ด์ค˜์•ผ ํ•จ >> ๋ถˆํŽธ >> express ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํŠน์ง• : ์ดˆ๊ธฐ์—๋Š” ๊ณต๋ถ€ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ / ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ์ตํžˆ๋ฉด ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ํŽธํ•˜๋‹ค. Express ์‚ฌ์šฉ๋ฐฉ๋ฒ• ์ตํžˆ๊ธฐ 1. ์„ค์น˜ : terminal - npm install expre..

full stack/Back-End 2023. 7. 5. 12:25
[Spring] AJAX ๋น„๋™๊ธฐ ํ†ต์‹  - ์•„์ด๋”” ์ค‘๋ณต ์ฒดํฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„ (2023.06.01)

๐ŸŽˆ AJAX (Asynchronous JavaScript and XML) ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„ ๋น„๋™๊ธฐ์  ์ •๋ณด ๊ตํ™˜์ด ๊ฐ€๋Šฅํ•œ ํ†ต์‹  ๊ธฐ๋Šฅ ** ํ™”๋ฉด ์ „ํ™˜ ์—†์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋™ํ•˜๊ณ  ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์›น ํ™”๋ฉด์„ ๊ฐฑ์‹ ํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ณ  ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ• ํ™”๋ฉด ๊ฐฑ์‹ ์ด ์—†์–ด์„œ ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง€๊ฒŒ ํ•จ ํ•˜์ง€๋งŒ, ๋™์ ์œผ๋กœ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋งŒํผ ๊ฐœ๋ฐœ์ž์˜ ๊ตฌํ˜„์€ ๋ณต์žกํ•ด์ง ๐Ÿ“– Ajax ์žฅ์  ํŽ˜์ด์ง€์˜ ๊ฐฑ์‹  ์—†์ด ์„œ๋ฒ„์™€ ๋น„๋™๊ธฐ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์คŒ ํ™”๋ฉด์ด ์ƒˆ๋กœ ๋กœ๋”ฉ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ ์†๋„๋ฉด์—์„œ ์„ฑ๋Šฅ ๊ฐœ์„  (์›นํŽ˜์ด์ง€ ์†๋„ ํ–ฅ์ƒ) ๋ณ„๋„์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ Http ์ „์†ก ์ค‘์—๋„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์ƒํ˜ธ์ž‘์šฉ ํ•  ์ˆ˜ ..

full stack/Back-End 2023. 6. 1. 17:42
[JSP&Servlet] FrontController (2023.05.23~24)

๐ŸŽˆ FrontController๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๐Ÿ“– FrontController ์‚ฌ์šฉํ•˜๊ธฐ ์ „ JoinController, LoginControll๋ฅผ ๋ชจ๋‘ servlet์œผ๋กœ ์ž‘์„ฑ servlet์€ Httpservlet ๊ฐ์ฒด๋ฅผ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ class๋ณด๋‹ค ๋ฌด๊ฑฐ์›€ → servlet์ด ๋งŽ์•„์ง€๋ฉด ํ”„๋กœ์ ํŠธ ์ž์ฒด๊ฐ€ ๋ฌด๊ฑฐ์›Œ์ง ๋”ฐ๋ผ์„œ FrontController๋ผ๋Š” ํ•˜๋‚˜์˜ ์ปจํŠธ๋กค๋Ÿฌ(servlet)๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ ์•ˆ์—์„œ ๊ฐ๊ฐ์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ์ฒ˜๋ฆฌํ•˜๋„๋ก ๋งŒ๋“ฆ! ๐ŸŽˆ FrontController ์‚ฌ์šฉํ•˜๊ธฐ ๐Ÿ“– ์‚ฌ์šฉ์ž ์š”์ฒญ ๊ตฌ๋ถ„ ๋ฐฉ๋ฒ• FrontController๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด mapping๊ฐ’์ด ํ•˜๋‚˜ > mapping๊ฐ’๋งŒ ๋ณด๋ฉด ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ํ•˜๋Š”์ง€, ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ง€๋“ฑ์˜ ์–ด๋–ค ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š”์ง€ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์—†์Œ ์‚ฌ์šฉ์ž..

full stack/Back-End 2023. 5. 24. 12:15
[JSP/Servlet] Maven (2023.05.22)

๐ŸŽˆ Build ํฉ์–ด์ง„ ์ž์›๋“ค์„ WAS๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ๋งž์ถฐ์ฃผ๋Š” ๊ฒƒ ex. ํ™”๋ฉด์— ๋ณด์—ฌ์•ผ ํ•˜๋Š” ๊ฒƒ์€ web-app ๋‚ด๋ถ€์— ๋“ค์–ด๊ฐ€์•ผ ํ•จ. WEB-INF๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ง์ ‘ ์ ‘๊ทผ ๋ถˆ๊ฐ€ํ•œ ๊ณณ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ์„ ์ €์žฅ ๊ณผ๊ฑฐ์—๋Š” ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ–ˆ์Œ >> ์ž๋™ํ™”๋ฅผ ์œ„ํ•œ ๋งŒ๋“ค์–ด์ง„ ๋„๊ตฌ >> ๋นŒ๋“œ ๋„๊ตฌ ๐Ÿ“– ๋นŒ๋“œ๋„๊ตฌ โš™ Ant ์ž๋ฐ” ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ๋ฅผ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” ๋นŒ๋“œ ํˆด โš™ Maven ์ž๋ฐ” ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ๋ฅผ ์ž๋™ํ™”ํ•ด์ฃผ๋Š” ๋นŒ๋“œ ํˆด ์ปดํŒŒ์ผ๊ณผ ๋นŒ๋“œ๋ฅผ ๋™์‹œ์— ์ˆ˜ํ–‰, ํ…Œ์ŠคํŠธ๋ฅผ ๋ณ‘ํ–‰ํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„ ์ž์›์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ ์ œ๊ณต Ant๋ฅผ ๊ฐ„ํŽธํ™”ํ•œ ๊ฒƒ - Ant์˜ ๊ฒฝ์šฐ - Maven์˜ ๊ฒฝ์šฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์„ ์ง์ ‘ ๋‹ค์šด๋ฐ›์•„ ๋„ฃ์–ด์ฃผ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ pom.xml์— ์ ๊ธฐ๋งŒ ํ•˜๋ฉด ๋จ ๐ŸŽˆ Maven ์‹ค์Šต ๐Ÿ“– Maven ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ Gr..

full stack/Back-End 2023. 5. 22. 14:10