728x90

๐Ÿ–ฅ๏ธ Web Development Study/Back-End 11

[Back-End][์Šคํ”„๋ง ๋ถ€ํŠธ 3 ์ž๋ฐ” ๋ฒก์—”๋“œ ๊ฐœ๋ฐœ ์ž…๋ฌธ] Part2. ๋ทฐ ํ…œํ”Œ๋ฆฟ๊ณผ MVC ํŒจํ„ด

์Šคํ”„๋ง ๋ถ€ํŠธ 3 ์ž๋ฐ” ๋ฒก์—”๋“œ ๊ฐœ๋ฐœ ์ž…๋ฌธ ์ฑ…์„ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.์ €์ž‘๊ถŒ ๋“ฑ์˜ ์ด์Šˆ๋กœ ๋ฌธ์ œ๊ฐ€ ๋  ์‹œ ๋น„๊ณต๊ฐœ ์ฒ˜๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. * ๋ทฐ ํ…œํ”Œ๋ฆฟ์ด๋ž€?: ์›น ํŽ˜์ด์ง€(view)๋ฅผ ํ•˜๋‚˜์˜ ํ‹€(Template)๋กœ ๋งŒ๋“ค๊ณ  ์—ฌ๊ธฐ์— ๋ณ€์ˆ˜๋ฅผ ์‚ฝ์ž…ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ์ˆ . * MVC ํŒจํ„ด: Model, View, Controller๋กœ ์—ญํ• ์„ ๋‚˜๋ˆ ์„œ ๊ฐœ๋ฐœํ•˜๋Š” ๊ธฐ๋ฒ•.

[Back-End][์Šคํ”„๋ง ๋ถ€ํŠธ 3 ์ž๋ฐ” ๋ฒก์—”๋“œ ๊ฐœ๋ฐœ ์ž…๋ฌธ] Part1. Spring Boot

์Šคํ”„๋ง ๋ถ€ํŠธ 3 ์ž๋ฐ” ๋ฒก์—”๋“œ ๊ฐœ๋ฐœ ์ž…๋ฌธ ์ฑ…์„ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.์ €์ž‘๊ถŒ ๋“ฑ์˜ ์ด์Šˆ๋กœ ๋ฌธ์ œ๊ฐ€ ๋ ์‹œ ๋น„๊ณต๊ฐœ ์ฒ˜๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. Spring initializr ๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐhttps://start.spring.io ์— ์ ‘์†ํ•˜๊ณ  Project, Language, Spring Boot version, Project Metadata, Dependencies ๋ฅผ ์œ„์™€ ๊ฐ™์ด ์…‹ํŒ…ํ•ด์ฃผ์ž. *Dependencies1) H2 Database: ์ž๋ฃŒ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค2) Mustache: ํ™”๋ฉด์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋„๊ตฌ3) Spring Data JPA: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ข€ ๋” ํŽธ๋ฆฌํ•˜๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ฃผ๋Š” ๋„๊ตฌ. ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์•„๋ณด๋ฉด ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ํŒŒ์ผ๋“ค์ด ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค. InteliJ๋กœ ์œ„ ํ”„๋กœ์ ํŠธ๋ฅผ ..

[Back-end] ์Šคํ”„๋ง ์ž…๋ฌธ :: AOP

*AOP(Aspect Oriented Programming): ๊ณตํ†ต ๊ด€์‹ฌ ์‚ฌํ•ญ(cross-cutting concern)๊ณผ ํ•ต์‹ฌ ๊ด€์‹ฌ ์‚ฌํ•ญ(core concern)์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ. ๋ชจ๋“  ๋ฉ”์†Œ๋“œ์˜ ํ˜ธ์ถœ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๊ณ  ์‹ถ์„ ๋•ŒํšŒ์› ๊ฐ€์ž… ์‹œ๊ฐ„, ํšŒ์› ์กฐํšŒ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ1. ํšŒ์› ๊ฐ€์ž…, ํšŒ์› ์กฐํšŒ ์‹œ๊ฐ„ ์ธก์ •ํ•˜๊ธฐ(์ผ์ผ์ด)import com.yoonsung.firstproject.domain.Member;import com.yoonsung.firstproject.repository.MemberRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;i..

[Back-end] ์Šคํ”„๋ง ์ž…๋ฌธ :: ์Šคํ”„๋ง DB ์ ‘๊ทผ ๊ธฐ์ˆ 

*JPA: Java Persistence API.          ์ž๋ฐ”์—์„œ ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” API.          Jdbc > JPA๋กœ ์ง„ํ™”ํ•˜๋ฉฐ ์ฟผ๋ฆฌ ์—†์ด ๊ฐ์ฒด๋ฅผ DB์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ. *JPA ์žฅ์ : ๊ธฐ์กด์˜ ๋ฐ˜๋ณต ์ฝ”๋“œ๋Š” ๋ฌผ๋ก ์ด๊ณ  ๊ธฐ๋ณธ์ ์ธ SQL ๋„ JPA ๊ฐ€ ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰ํ•ด์ค€๋‹ค.                  SQL๊ณผ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์˜ ์„ค๊ณ„์—์„œ ๊ฐ์ฒด ์ค‘์‹ฌ์˜ ์„ค๊ณ„๋กœ ํŒจ๋Ÿฌ๋‹ค์ž„์„ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค.                  ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ๋†’์ด๊ธฐ !  ๊ต์œก์šฉ์œผ๋กœ ์ข‹์€ ๊ฐ€๋ฒผ์šด DB๋ฅผ ์„ค์น˜ํ•ด ๋ณด์ž. 1. H2 Database Engine ์„ค์น˜https://www.h2database.com/html/main.html H2 Database Engin..

[Back-end] ์Šคํ”„๋ง ์ž…๋ฌธ :: ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ - ์›น MVC ๊ฐœ๋ฐœ

//ํšŒ์›๋“ฑ๋ก ๊ธฐ๋Šฅ ๋งŒ๋“ค๊ธฐ controller > HomeController.javaimport org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HomeController { @GetMapping("/") public String home(){ return "home"; }}localhost:8080/homeSpring ์„ ์‹คํ–‰์‹œํ‚ค๋ฉด GetMapping ์„ ๋จผ์ € ์ฐพ์•„์„œ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค€๋‹ค. GetMapping ์ด ์—†์œผ๋ฉด ๊ทธ ๋•Œ static ํŒŒ์ผ์„ ์ฐพ์•„์„œ ๋ณด์—ฌ์ค€๋‹ค.  templates > home.html ..

[Back-End] ์Šคํ”„๋ง ์ž…๋ฌธ :: ์Šคํ”ผ๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„

* ์˜์กด๊ด€๊ณ„ ?MemberService ๊ฐ€ MemberController ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๋ณด์—ฌ์ฃผ๊ณ  ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ MemberService ๊ฐ€ MemberController ๋ฅผ ์˜์กดํ•œ๋‹ค๊ณ  ํ‘œํ˜„ํ•œ๋‹ค. [์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•˜๊ณ  ์˜์กด๊ด€๊ณ„ ์„ค์ •ํ•˜๊ธฐ]ํšŒ์› ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํšŒ์› ์„œ๋น„์Šค์™€ ํšŒ์› ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์˜์กด๊ด€๊ณ„๋ฅผ ์ค€๋น„ํ•˜์ž.@Controllerpublic class MemberController{ private final MemberService memberService; @Autowired public MemberController(MemberService memberService){ this.memberService = memberService; }}@Serv..

[Back-End] ์Šคํ”„๋ง ์ž…๋ฌธ :: ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ - ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ

1. ํšŒ์› domain ๊ณผ repository ๋งŒ๋“ค๊ธฐ  src/main/java/com.yoonsung.firstproject/domain/Member.javapackage com.yoonsung.firstproject.domain;public class Member { private Long id; private String name; public Long getId(){ return id; } public void setId(Long id){ this.id = id; } public String getName(){ return name; } public void setName(String name){ t..

[Back-End] ์Šคํ”„๋ง ์ž…๋ฌธ :: Spring ์›น ๊ฐœ๋ฐœ ๊ธฐ์ดˆ

Spring Boot ๋กœ ์›น์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ• 3๊ฐ€์ง€. 1. Static Content ์ •์  ์ปจํ…์ธ ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์›น๋ธŒ๋ผ์šฐ์ €์— ๋‚ด๋ฆฌ๋Š” ๊ฒƒ.Spring Boot ๋Š” ์ •์  ์ปจํ…์ธ ๋ฅผ ์ž๋™์œผ๋กœ ์ฐพ์•„์„œ ๋‚ด๋ ค์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.์ฆ‰, static ์ด๋ผ๋Š” ์˜ˆ์•ฝ์–ด๋กœ ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ์•ˆ์— .html ํŒŒ์ผ์„ ๋„ฃ์œผ๋ฉด ์ด๋ฅผ ์Šคํ”„๋ง ๋ถ€ํŠธ๊ฐ€ ์ฐพ์•„์„œ ๊ทธ๋Œ€๋กœ ์ปจํ…์ธ ๋ฅผ ๋‚ด๋ ค์ค€๋‹ค. ์ •์  ์ปจํ…์ธ ์— ๋”ฐ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ํ•  ์ˆ˜ ์—†๋‹ค. controller ๊ฐ€ ๋” ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–๋Š”๋‹ค. Servlet Web Applications :: Spring BootIf you want to build servlet-based web applications, you can take advantage of Spring Boot’s auto-configuration ..

[Back-End] ์Šคํ”„๋ง ์ž…๋ฌธ :: Build, ์‹คํ–‰

IntelliJ ๊ฐ€ ์•„๋‹Œ ์„œ๋ฒ„์— ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋Š” jar ํŒŒ์ผ๋กœ ๋นŒ๋“œ๋ฅผ ํ•ด๋ณด์ž. 1. cmd ์—์„œ project ํด๋”๋กœ ์ด๋™ํ•˜๊ธฐ 2. gradle build ํ•˜๊ธฐ./gradlew build 3. ์ƒ์„ฑ๋œ java ํŒŒ์ผ์ด ์žˆ๋Š” ๊ณณ์œผ๋กœ ์ด๋™ํ•ด์„œ jar ํŒŒ์ผ ์‹คํ–‰ํ•˜๊ธฐ cd build/libsjava -jar firstproject-0.0.1-SNAPSHOT.jar ๋—๋—๋—. ์„œ๋ฒ„์— ์š” jar ํŒŒ์ผ ๋„ฃ๊ณ  ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋˜‘๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค๊ณ ..!

[Back-End] ์Šคํ”„๋ง ์ž…๋ฌธ :: View ํ™˜๊ฒฝ ์„ค์ •

1. Welcome page ๋งŒ๋“ค๊ธฐstatic ์ด๋ผ๋Š” ์ •์ ํด๋” ๋ฐ‘์— index.html ์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ์ž๋™์œผ๋กœ welcome page ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. https://docs.spring.io/spring-boot/reference/web/servlet.html Servlet Web Applications :: Spring BootFor servlet application, Spring Boot includes support for embedded Tomcat, Jetty, and Undertow servers. Most developers use the appropriate “Starter” to obtain a fully configured instance. By default, t..

728x90