๐Ÿ’ปBackend

    [Java Web] 1. WAS (Web Application Server)

    Java๋กœ Servlet๊ธฐ๋ฐ˜ Web Server๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ธ€์ด๋‹ค.๋กœ๊ทธ์ธ ์„œ๋น„์Šค ์ œ๊ณต ์„œ๋ฒ„ ์ œ์ž‘์„ ๋ชฉํ‘œ๋กœ ์ž‘์„ฑํ•จ  Spring framework๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๋ฐ ์™œ ๊ตณ์ด ์“ฐ์ง€๋„ ์•Š๋Š” Servlet์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”์ง€ ์˜๋ฌธ์ด ๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ Spring framework๋„ Servlet์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ‹€(frame)์„ ์ œ๊ณตํ•ด์ค„๋ฟ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๋ถ€ํ•˜๋‹ค๋ณด๋ฉด ์–ธ์  ๊ฐ€ Servlet์ด๋ผ๋Š” ๊ฐœ๋…์„ ๋งˆ์ฃผํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ๋‹ค์‹œ ๋Œ์•„์™€ ๊ณต๋ถ€ํ•˜๊ธฐ ๋ณด๋‹ค ํŠผํŠผํ•œ ๊ธฐ์ดˆ๋ฅผ ์Œ“๊ณ  framework๋ฅผ ๊ณต๋ถ€ํ•˜์ž.  ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ๋ณธ๊ฒฉ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์•ž์„œ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ์„ธํŒ… ๊ฐ’, ํŒจํ‚ค์ง€ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์ž.ํ”„๋กœ์ ํŠธ ์„ค์ •์ด ์ต์ˆ™ํ•˜์ง€ ์•Š๋‹ค๋ฉด ๋‹ค์–‘ํ•œ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด์„œ ๋™์ผํ•œ ํ™˜๊ฒฝ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•ด๋†“๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.https:/..

    [Java Web] Servlet Binding | Local/ Session Storage

    ServerJava Servlet์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์ €์žฅ ๊ณต๊ฐ„์€ Servlet context, reqeust, Page context, Session์ด ์žˆ๋‹ค.๋ฐ”์ธ๋”ฉ ์œ„์น˜์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฒ”์œ„์‚ฌ์šฉ ์˜ˆ์‹œServletContext๋ชจ๋“  ์š”์ฒญ์กฐํšŒ์ˆ˜session๋ธŒ๋ผ์šฐ์ €๋กœ๊ทธ์ธ ์ •๋ณดrequest๊ฐ ์š”์ฒญJSP ๋™์  ํ• ๋‹นPageContextpage  BindTestServlet.java@WebServlet("/jsp/bind1.go")public class BindingTestServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Se..

    [SSAFY] ์„œ์šธ 10๊ธฐ Java ์ „๊ณต๋ฐ˜ ์ˆ˜๋ฃŒ ํ›„๊ธฐ

    ์–ด์ œ(24.06.26) ์‹ธํ”ผ 10๊ธฐ๋ฅผ ์ˆ˜๋ฃŒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค..!์ž…ํ•™์„ ์œ„ํ•ด์„œ ์ •๋ฆฌ ๊ธ€์„ ์ผ๋˜๊ฒŒ ์—Š๊ทธ์ œ ๊ฐ™์€๋ฐ ๋ฒŒ์จ ์ˆ˜๋ฃŒ์‹์„ ์œ„ํ•œ ๋งˆ๋ฌด๋ฆฌ ๊ธ€์ด๋ผ๋‹ˆ.. ๋ฏฟ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.  ๊ธ€ ์ž‘์„ฑ์„ ์œ„ํ•ด์„œ ์‚ฌ์ง„ ์ •๋ฆฌ๋Š” ํ•˜๋Š”๋ฐ ์ €๋„ ๋ชจ๋ฅด๊ฒŒ ์šธ์ปฅํ•˜๊ฒŒ ๋˜๋„ค์š”๋ˆˆ์ฝ” ๋œฐ ์ƒˆ ์—†์ด 1๋…„์ด ์ง€๋‚ฌ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์ˆœ๊ฐ„์ˆœ๊ฐ„์„ ๋“ค์—ฌ๋‹ค๋ณด๋‹ˆ ์ฐธ ์†Œ์ค‘ํ•œ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ž…ํ•™์„ ์œ„ํ•œ ์ค€๋น„ ๊ธ€์ด ๊ถ๊ธˆํ•˜์‹  ๋ถ„์€ ์•„๋ž˜ ๊ธ€์„ ์ฐธ๊ณ  ํ•ด์ฃผ์„ธ์š”!2023.06.22 - [๐Ÿ’ปBackend/SSAFY | ์‹ธํ”ผ] - [SSAFY] 10๊ธฐ ์ „๊ณต์ž ํ•ฉ๊ฒฉ ํ›„๊ธฐ | ์—์„ธ์ด | ์ฝ”๋”ฉํ…Œ์ŠคํŠธ | ์ธํ„ฐ๋ทฐ [SSAFY] 10๊ธฐ ์ „๊ณต์ž ํ•ฉ๊ฒฉ ํ›„๊ธฐ | ์—์„ธ์ด | ์ฝ”๋”ฉํ…Œ์ŠคํŠธ | ์ธํ„ฐ๋ทฐ~๋ชฉ์ฐจ~ ์ง€์›๋™๊ธฐ ์—์„ธ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ธํ„ฐ๋ทฐ ๋ฉด์ ‘์Šคํ„ฐ๋”” PT ๋ฉด์ ‘ ์ธ์„ฑ/๊ธฐ์ˆ ๋ฉด์ ‘ ํ›„๊ธฐ ๊ธ€์„ ๋งˆ์น˜๋ฉฐ ์ง€์›์„œ ์ ‘..

    [SSAFY] 10๊ธฐ ์ „๊ณต์ž ํ•ฉ๊ฒฉ ํ›„๊ธฐ | ์—์„ธ์ด | ์ฝ”๋”ฉํ…Œ์ŠคํŠธ | ์ธํ„ฐ๋ทฐ

    ~๋ชฉ์ฐจ~ ์ง€์›๋™๊ธฐ ์—์„ธ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ธํ„ฐ๋ทฐ ๋ฉด์ ‘์Šคํ„ฐ๋”” PT ๋ฉด์ ‘ ์ธ์„ฑ/๊ธฐ์ˆ ๋ฉด์ ‘ ํ›„๊ธฐ ๊ธ€์„ ๋งˆ์น˜๋ฉฐ ์ง€์›์„œ ์ ‘์ˆ˜ ์—์„ธ์ด ์ œ์ถœ SW ์ ์„ฑ์ง„๋‹จ ์ธํ„ฐ๋ทฐ ์ž…๊ณผ ๋ฐ ๊ต์œก 4/24(์›”) ~ 5/8(์›”) 5/9(ํ™”) ~ 5/20(ํ† ) SW ๋น„์ „๊ณต : 5/13(ํ† ) SW ์ „๊ณต : 5/21(์ผ) 6/7(์ˆ˜) ~ 6/13(ํ™”) 23๋…„ 7์›” ~ ์ง€์›๋™๊ธฐ SW ๋งˆ์—์ŠคํŠธ๋กœ๋ฅผ ์ค€๋น„ํ•˜๋˜ ์ œ๊ฐ€ ํŒจ๋ฐฐ์˜ ์“ด๋ง›์„ ๋ณด๊ณ  SSAFY๋ฅผ ์ค€๋น„ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์กธ์—…๊ณผ ๋™์‹œ์— ๋ง‰๋ง‰ํ•œ ์ทจ์—… ์‹œ์žฅ์—์„œ ์žฌ์ •์  ๋„์›€์„ ๋ฐ›์œผ๋ฉฐ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ๋ผ๊ณ  ํŒ๋‹จ์ด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์—์„ธ์ด ๋‹ค์Œ์€ ์‹ธํ”ผ์—์„œ ์ œ๊ณตํ•œ ์—์„ธ์ด ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์—์„ธ์ด ์ž‘์„ฑ์—์„œ ์š”๊ตฌํ•˜๋Š” ๋Œ€๋กœ ์–ด๋–ค ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ ์‹ถ์€์ง€, ์–ด๋–ค ํ™œ๋™๋“ค์„ ํ–ˆ๋Š”์ง€, ์™œ ์ง€์›ํ–ˆ๋Š”์ง€ ์ž˜ ๋ถ„๋ฐฐํ•˜์—ฌ ์ž‘์„ฑํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ..

    [๋ผ์ด์ง•์บ ํ”„] 4์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 2 | SpringBoot Tamplate

    Web Server - ์›น ์„œ๋ฒ„(Web server)๋Š” HTTP ๋˜๋Š” HTTPS๋ฅผ ํ†ตํ•ด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์š”์ฒญํ•˜๋Š” HTML ๋ฌธ์„œ๋‚˜ ์˜ค๋ธŒ์ ํŠธ(์ด๋ฏธ์ง€ ํŒŒ์ผ ๋“ฑ)์„ ์ „์†กํ•ด์ฃผ๋Š” ์„œ๋น„์Šค ํ”„๋กœ๊ทธ๋žจ์„ ๋งํ•œ๋‹ค. - 1์ฃผ์ฐจ ํ•™์Šต์—์„œ ์ •๋ฆฌํ•œ ๊ทธ๋ฆผ ํ‘œํ˜„์œผ๋กœ๋Š” B.L(Backend Language) ๊ตฌ๊ฐ„์ด๋‹ค - ์ข…๋ฅ˜๋กœ๋Š” Spring, Spring-boot, node.js, php ๋“ฑ์ด ์žˆ๋‹ค. - ๋ผ์ด์ง• ์บ ํ”„์—์„œ 4์ฃผ์ฐจ์— node.js ๋‚˜ SpringBoot ์ค‘์— ์„ ํƒํ•˜๊ฒŒ ๋œ๋‹ค - ํ•„์ž๋Š” ๊ตญ๋‚ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ์•Œ๋ ค์ง„ JAVA ๊ธฐ๋ฐ˜ SpringBoot ๋ฅผ ์„ ํƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ํƒฌํ”Œ๋ฆฟ ์„ค๋ช… ๊ธ€์ด ๋  ๊ฒƒ์ด๋‹ค. SpringBoot Tamplate - ํ•ด๋‹น ๊ธ€ PRACTICE์— Github Springboot ํ…œํ”Œ๋ฆฟ README..

    [๋ผ์ด์ง•์บ ํ”„] 3์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 2 | ERD ์„ค๊ณ„ | RDS

    ERD ์„ค๊ณ„ [ํฌ์ธํŠธ] 1. ์„ค๊ณ„ํ•  ํ™”๋ฉด์„ ์ฐธ๊ณ ํ•˜๋ฉด์„œ 2. ์ค‘๋ณต์ œ๊ฑฐ : ์ •๊ทœํ™” 3. ๋ฆฌ์†Œ์Šค ๋‹จ์œ„๋กœ ์„ค๊ณ„ ํ˜‘์—…์—์„œ๋Š” ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜๋”๋ผ๋„ ์œ ์—ฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ [๋‹จ๊ณ„] ์‹œ์Šคํ…œ ๋ถ„์„ -> ๋…ผ๋ฆฌ -> ๋ฌผ๋ฆฌ [Example] Instagram ์˜ˆ์ œ๋กœ ์ธ์Šคํƒ€๊ทธ๋žจ์˜ ERD๋ฅผ ์„ค๊ณ„ํ•ด๋ณด๊ธฐ! ์‹œ์Šคํ…œ ๋ถ„์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋  ํ™”๋ฉด์—์„œ ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ „์ œ ๊ตฌ์กฐ๋ฅผ ์žก์•„๋ณด๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค. ํฌ๊ฒŒ ์œ ์ € ์ •๋ณด, ๊ฒŒ์‹œ๋ฌผ, ๋Œ“๊ธ€ ํ™”๋ฉด์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์œ ์ € ์ •๋ณด : id, ์ด๋ฆ„, ํ”„๋กœํ•„์‚ฌ์ง„, ๊ฒŒ์‹œ๋ฌผ ์ˆ˜, ํŒ”๋กœ์šฐ ์ˆ˜, ํŒ”๋กœ์›Œ ์ˆ˜, ์†Œ๊ฐœ ๊ธ€, Web site ๋งํฌ, ๊ฒŒ์‹œ๋ฌผ, ๊ฒŒ์‹œ๋ฌผ ์‚ฌ์ง„, ์˜ฌ๋ฆฐ ์‹œ๊ฐ„ ๊ฒŒ์‹œ๋ฌผ : id, ๊ฒŒ์‹œ๋ฌผ ์‚ฌ์ง„, ์ข‹์•„์š” ์ •๋ณด, ๊ฒŒ์‹œ๋ฌผ ๊ธ€, ํ”„๋กœํ•„ ์‚ฌ์ง„, ์˜ฌ๋ฆฐ ์‹œ๊ฐ„ ๋Œ“๊ธ€ : id, ๋Œ“๊ธ€, ๋Œ€๋Œ“..

    [๋ผ์ด์ง•์บ ํ”„] 4์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 1 | Backend Language | HTTP | REST API | Query String/ Path Variable

    ํ•™์Šต ๊ณผ์ • : ์„œ๋ฒ„(1, 2์ฃผ์ฐจ) โžก๏ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(3์ฃผ์ฐจ) โžก๏ธ Backend Language(4์ฃผ์ฐจ, ํ˜„์žฌ) ๋ชฉ์ฐจ HTTP REST API Query String vs Path Variable RESTful GET vs POST PATCH vs PUT PRACTICE HTTP - 2์ฃผ์ฐจ ์„œ๋ฒ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋˜ HTTP๊ธฐ์–ต ๋‚˜์‹œ๋‚˜์š”? - HTTP๋Š” ์ปดํ“จํ„ฐ๊ฐ„ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ(๊ทœ์ •)์ž…๋‹ˆ๋‹ค. - ์ „์†ก ๋‹จ์œ„๋Š” ํŒจํ‚ท์œผ๋กœ Header ์™€ Body๋กœ ๋‚˜๋ˆ ์ง‘๋‹ˆ๋‹ค. - Header๋Š” ์ˆ˜์‹ ์ž์˜ IP ์ •๋ณด๋ฅผ, Body๋Š” ์ „์†กํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. - ๋Œ€ํ‘œ์  ๋ฉ”์†Œ๋“œ๋Š” GET/ POST/ PATCH/ PUT/ DELETE ๋กœ CRUD ๊ธฐ๋ฐ˜์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. REST API - REST(Representat..

    [๋ผ์ด์ง•์บ ํ”„] 3์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 1 | DATABASE | SQL

    DataBase - 1, 2์ฃผ์ฐจ์— ์ด์–ด์„œ ์‹๋‹น์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดํ•ดํ•ด๋ณด์ž - ์†๋‹˜(Client) ↔๏ธ ์ข…์—…์›(Server) ์š”๋ฆฌ์‚ฌ(BackEnd Language) ๋ƒ‰์žฅ๊ณ (DataBase) - ์œ„์™€๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”๋ฆฌ ์š”์ฒญ์— ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์žฌ๋ฃŒ ์ƒ์ž๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋˜๊ฒ ๋‹ค. Query/ SQL - ์ด ๋•Œ BackEnd Language(B.L)๊ฐ€ DataBase(DB)์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•˜๋Š” ๋‹จ์œ„๋Š” Query์ด๋‹ค - ์ด Query๋ฅผ ์œ„ํ•œ ์–ธ์–ด๊ฐ€ SQL, Structured Query Language ์ด๋‹ค. - ์ฆ‰ ์š”๋ฆฌ์‚ฌ๋Š” SQL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ƒ‰์žฅ๊ณ ์—์„œ ์›ํ•˜๋Š” ์žฌ๋ฃŒ๋ฅผ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. - SQL ใ„ด DDL (Data Definition Language) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•˜..

    [๋ผ์ด์ง•์บ ํ”„] 2์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ | Server ์‹ฌํ™” | ํ”„๋กœํ† ์ฝœ(Protocol) | HTTP(S) | IP/Domain/Port | ํฌํŠธํฌ์›Œ๋”ฉ(Portfowarding)

    ์ง€๋‚œ ๊ธ€ Server ๊ฐœ์š”์— ์ด์–ด์„œ Server ์‹ฌํ™”ํ•™์Šต ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค ํ”„๋กœํ† ์ฝœ (Protocol) - ์ปดํ“จํ„ฐ ๋˜๋Š” ๊ธฐ๊ธฐ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐฉ์‹ ๊ทœ์•ฝ - HTTP, HTTPS, MySQL, SSH, FTP ๋“ฑ์˜ ํ”„๋กœํ† ์ฝœ์ด ์กด์žฌํ•œ๋‹ค. * HTTP(S) : ์›น ํ†ต์‹ ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ (HTTP + TLS ์ ์šฉ = HTTPS), HTTP : 80/ HTTPS : 443 * MySQL : DB ํ†ต์‹ ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ * SSH : ๊ด€๋ฆฌ์ž์šฉ ํ”„๋กœํ† ์ฝœ * (S)FTP : ํŒŒ์ผ ์ „์†ก์šฉ ํ”„๋กœํ† ์ฝœ - ์›น ํŽ˜์ด์ง€์˜ url์„ ๋ณด๋ฉด https:// ๊ฐ€ ์•ž์— ๋ถ™์–ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด๋Š” https ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. HTTP/ HTTPS - ์ธํ„ฐ๋„ท ํ†ต์‹ ์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ - OSI 7๊ณ„์ธต ์ค‘ 3..