Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
    • ๐Ÿ’ปBackend (10)
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • ๋ฐฑ์ค€
  • ํ† ์ตRC
  • BFS
  • UNION ALL
  • ๊ตฌํ˜„
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • ์™„์ „ํƒ์ƒ‰
  • Python
  • ํ† ์ต์ ์ˆ˜
  • ํ•ด์ปค์Šคํ† ์ต
  • ํ† ์ต๊ณต๋ถ€
  • ๋ฆฌ์ŠคํŠธ
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด
  • ์ฝ”ํ…Œ
  • Union
  • ํ† ์ต๋…ํ•™
  • greedy algorithm
  • ์ •๋ ฌ
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ํ† ์ต์‹œํ—˜
  • mysql
  • ๋‚ด์žฅํ•จ์ˆ˜
  • sort
  • ํ† ์ต๊ธฐ์ถœ
  • BaekJoon
  • ์˜ค๋ธ”์™„
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ๊ทธ๋ฆฌ๋””

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

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

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

2023. 3. 23. 16:04

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 ํŒŒ์ผ์„ ์ •๋…ํ•˜๋ฉด์„œ ์ดํ•ด๋„๋ฅผ ๋†’์ด๊ธฐ๋ฅผ ์ถ”์ฒœ

- [ํƒฌํ”Œ๋ฆฟ ๊ตฌ์„ฑ]

    Route -> Controller - > Provider  ->  Dao

                                      ใ„ด> Service   โคด๏ธ

 

ํ…œํ”Œ๋ฆฟ ๊ตฌ์„ฑ

- [์—ญํ• ]

Route : (Restful) URI ์บ์น˜, ์ฆ‰ ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญํ•˜๋Š” request ์บ์น˜  ex) GET /users/:userId

Controller : URI์— ์žˆ๋Š” Query String ๋˜๋Š” Path Variable ๋˜๋Š” Body ๊ฐ’์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ฐ›๋Š”๋‹ค.(ํ˜•์‹์  Validation ์ฒ˜๋ฆฌ)

Provider, Service: DB connection , Transaction ์ฒ˜๋ฆฌ (์˜๋ฏธ์  Validation ์ฒ˜๋ฆฌ)

Dao : ์‹ค์งˆ์ ์ธ Query & ์‹คํ–‰

 

 

- ๊ฐ ๊ตฌ์„ฑ์€ java ํŒŒ์ผ(ํด๋ž˜์Šค)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์ƒํ˜ธ์ž‘์šฉํ•œ๋‹ค.

- Spring-boot๋Š” Route๊ฐ€ Controller์™€ ํ•จ๊ป˜ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

- ๊ฐ ๊ตฌ์„ฑ ์‚ฌ์ด ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹์€ DTO๋ผ๊ณ  ํ•œ๋‹ค.

- Dao์—์„œ ๋ฐœ์ƒํ•œ row(Response, ์‘๋‹ต)๋ฅผ ์™”๋˜ ๊ธธ๋กœ ๋‹ค์‹œ ์ „๋‹ฌํ•ด์ค€๋‹ค.

 

- ํ•ด๋‹น ๊ตฌ์กฐ๋Š” ๋„๋ฉ”์ธ ๋ณ„๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž‘์„ฑํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

    ๋ฐฐ๋‹ฌ์˜ ๋ฏผ์กฑ ์˜ˆ์‹œ) ์œ ์ € ์ •๋ณด ๋„๋ฉ”์ธ๊ณผ ์‹๋‹น ์ •๋ณด ๋„๋ฉ”์ธ ๋ถ„๋ฆฌํ•˜์—ฌ ์ž‘์„ฑ ์ฆ‰, /users ์™€ /restaurant ๊ฐ ๊ตฌ์กฐ๋ฅผ ์ž‘์„ฑ, ๊ตฌ๋ถ„ํ•˜์—ฌ ์ž‘์„ฑ

 

 

Provider vs Service

- Select => Provider

- Insert, Delete, Update => Service

 

 

Validation

-  ํ˜•์‹์  Validation : ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํ•„์ˆ˜์  ์š”์†Œ ์œ ๋ฌด๋ฅผ ํ™•์ธ  ex) ํšŒ์›๊ฐ€์ž…์„ ์œ„ํ•œ ์š”์ฒญ์— email ์ด ์—†์Œ

ใ„ด ์˜๋ฏธ์  Validation : ์ •๊ตํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์š”์†Œ ํ™•์ธ ex) ์ด๋ฉ”์ผ/ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •๊ทœํ‘œํ˜„์‹ ํ™•์ธ

 

 

 

Transaction

- DB ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•˜๋‚˜์˜ ์ˆ˜ํ–‰ ๋‹จ์œ„

- CRUD(Create, Read, Update, Delete) ์ค‘ ํ•˜๋‚˜์˜ ์ˆ˜ํ–‰ ์ค‘ ์ค‘๋ณต ์ˆ˜ํ–‰ ๋˜๋Š” ์˜จ์ „ํ•œ ์ˆ˜ํ–‰์„ ๋ชป ํ–ˆ์„ ๋•Œ ์ง€๊ธˆ๊นŒ์ง€ ํ•œ ์ˆ˜ํ–‰์„ ๋ชจ๋‘ ์ทจ์†Œ

- ๊ฒฐ๊ณผ๋Š” Rollback(์ˆ˜ํ–‰ ๋ชป ํ•จ) ๋˜๋Š” Commit(์ˆ˜ํ–‰ ์™„๋ฃŒ) ์ค‘ ํ•˜๋‚˜์—๋งŒ ์†ํ•œ๋‹ค.

[ํŠน์ง•]

  • ์›์ž์„ฑ(Atomicity)
  • ํŠธ๋žœ์žญ์…˜์ด DB์— ๋ชจ๋‘ ๋ฐ˜์˜๋˜๊ฑฐ๋‚˜, ํ˜น์€ ์ „ํ˜€ ๋ฐ˜์˜๋˜์ง€ ์•Š์•„์•ผ ๋œ๋‹ค.
  • ์ผ๊ด€์„ฑ(Consistency)
  • ํŠธ๋žœ์žญ์…˜์˜ ์ž‘์—… ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ ์ผ๊ด€์„ฑ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ๋…๋ฆฝ์„ฑ(Isolation)
  • ๋‘˜ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๋ณ‘ํ–‰ ์‹คํ–‰๋˜๊ณ  ์žˆ์„ ๋•Œ, ์–ด๋–ค ํŠธ๋žœ์žญ์…˜๋„ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜ ์—ฐ์‚ฐ์— ๋ผ์–ด๋“ค ์ˆ˜ ์—†๋‹ค.
  • ์ง€์†์„ฑ(Durability)
  • ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฉด, ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•œ๋‹ค.

 

 

 

 

 

 

 


PRACTICE

[๊ธฐ๋ณธ ํ…œํ”Œ๋ฆฟ]

https://github.com/kseenyoung/RC-SprintBoot-tamplate

 

GitHub - kseenyoung/RC-SprintBoot-tamplate: ๋ผ์ด์ง•์บ ํ”„ ์ œ๊ณต ์Šคํ”„๋ง๋ถ€ํŠธ ํ…œํ”Œ๋ฆฟ

๋ผ์ด์ง•์บ ํ”„ ์ œ๊ณต ์Šคํ”„๋ง๋ถ€ํŠธ ํ…œํ”Œ๋ฆฟ. Contribute to kseenyoung/RC-SprintBoot-tamplate development by creating an account on GitHub.

github.com

 

[Netflix ์›น ์„œ๋น„์Šค ํด๋ก  ์ฝ”๋”ฉ]

- Github

https://github.com/kseenyoung/springboot-tamp

 

GitHub - kseenyoung/springboot-tamp: ๋ผ์ด์ง•์บ ํ”„ ์ œ๊ณต ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•œ Netflix ํด๋ก  ์ฝ”๋”ฉ

๋ผ์ด์ง•์บ ํ”„ ์ œ๊ณต ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•œ Netflix ํด๋ก  ์ฝ”๋”ฉ. Contribute to kseenyoung/springboot-tamp development by creating an account on GitHub.

github.com

- Notion ์ •๋ฆฌ

https://www.notion.so/softsquared/4-REST-API-SpringBoot-8961f53889d948cbb8ad2e4d09befb8b?pvs=4 

 

[4์ฃผ์ฐจ] REST API ๋ฆฌ์ŠคํŠธ์—… ํ•˜๊ณ  ๊ตฌํ˜„- SpringBoot

A new tool for teams & individuals that blends everyday work apps into one.

www.notion.so

- API ๋ช…์„ธ์„œ

https://docs.google.com/spreadsheets/d/1jA80oh3hvLQuchgv8Jw5og6WIGZ0TISb/edit?usp=sharing&ouid=109586037964441650079&rtpof=true&sd=true 

 

API__Templete.xlsx

์ธ์ˆ˜์ธ๊ณ„ ์‚ฌํ•ญ Server,DB Spec,t2.micro,Spec,mysql 5.7.21 Ip,ERD Url,Url Id,ubuntu,Password Password,(pem),์ ‘์†์ •๋ณด OS,ubuntu18.04,Ip WebServer,nginx1.10.3,Database Backend-Language,springboot,Port Id,ksy,(root ๋™์ผ) AWS Account,Password Id,<a hr

docs.google.com

 

 

 

 

 


REFERENCE

https://wonit.tistory.com/462

 

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] Transaction, ํŠธ๋žœ์žญ์…˜์ด๋ž€?

Transaction, ํŠธ๋žœ์žญ์…˜ ํŠธ๋žœ์žญ์…˜(Transaction) ์ด๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—… ๋‹จ์œ„์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚จ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋Š” SELECT, UPDATE, INSERT, DELETE ์™€ ๊ฐ™์€

wonit.tistory.com

https://hudi.blog/data-transfer-object/

 

DTO์˜ ๊ฐœ๋…๊ณผ ์‚ฌ์šฉ๋ฒ”์œ„

DTO๋Š” ์šฐํ…Œ์ฝ” ๊ณผ์ • ์ค‘ ์ •๋ง ๋งŽ์ด ๋“ค์–ด๋ดค๊ณ , ๋‚˜๋ฆ„ ์‚ฌ์šฉ๋„ ๋งŽ์ด ํ–ˆ์ง€๋งŒ ์ด์ƒํ•˜๊ฒŒ ๋ฐ”๋žŒ์งํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋Š” ํ™•์‹ ์ด ๋“ค์ง€ ์•Š๋Š” ๊ฐœ๋…์ด๋‹ค. DTO์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ํ•ญ์ƒ ์ƒˆ๋กญ๊ฒŒ ์•Œ์•„๊ฐ€๋Š”๋ฐ, ์ด๋Ÿฌ๋‹ค๊ฐ„ DTO

hudi.blog

https://gyoogle.dev/blog/computer-science/data-base/Transaction.html

 

DB ํŠธ๋žœ์žญ์…˜(Transaction) | ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป Tech Interview

DB ํŠธ๋žœ์žญ์…˜(Transaction) ํŠธ๋ Œ์žญ์…˜์ด๋ž€? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—… ๋‹จ์œ„ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ → SQL ์งˆ์˜์–ด๋ฅผ ํ†ตํ•ด DB์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ ์ž‘์—… ๋‹จ์œ„ → ๋งŽ์€ SQL ๋ช…๋ น๋ฌธ๋“ค

gyoogle.dev

 

'๐Ÿ’ปBackend > ๋ผ์ด์ง•์บ ํ”„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ผ์ด์ง•์บ ํ”„] 3์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 2 | ERD ์„ค๊ณ„ | RDS  (0) 2023.03.20
[๋ผ์ด์ง•์บ ํ”„] 4์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 1 | Backend Language | HTTP | REST API | Query String/ Path Variable  (0) 2023.03.16
[๋ผ์ด์ง•์บ ํ”„] 3์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 1 | DATABASE | SQL  (0) 2023.03.16
[๋ผ์ด์ง•์บ ํ”„] 2์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ | Server ์‹ฌํ™” | ํ”„๋กœํ† ์ฝœ(Protocol) | HTTP(S) | IP/Domain/Port | ํฌํŠธํฌ์›Œ๋”ฉ(Portfowarding)  (0) 2023.03.14
[๋ผ์ด์ง•์บ ํ”„] 1์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ | Server ๊ฐœ์š”  (0) 2023.03.14
    '๐Ÿ’ปBackend/๋ผ์ด์ง•์บ ํ”„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [๋ผ์ด์ง•์บ ํ”„] 3์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 2 | ERD ์„ค๊ณ„ | RDS
    • [๋ผ์ด์ง•์บ ํ”„] 4์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 1 | Backend Language | HTTP | REST API | Query String/ Path Variable
    • [๋ผ์ด์ง•์บ ํ”„] 3์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ 1 | DATABASE | SQL
    • [๋ผ์ด์ง•์บ ํ”„] 2์ฃผ์ฐจ ํ•™์Šต ์ •๋ฆฌ | Server ์‹ฌํ™” | ํ”„๋กœํ† ์ฝœ(Protocol) | HTTP(S) | IP/Domain/Port | ํฌํŠธํฌ์›Œ๋”ฉ(Portfowarding)
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”