๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป ํ”„๋กœ์ ํŠธ/๐Ÿ ํšŒ์›๊ฐ€์ž… ํŽ˜์ด์ง€๐Ÿ 

[Spring] (MAC, IntelliJ, vue.js) Spring boot๋กœ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ณ , vue.js ์„ค์น˜์™€ ํ”„๋กœ์ ํŠธ ์—ด๊ธฐ.

by ._.sori 2025. 7. 10.

 

 

์ด๋ฒˆ์— ๋งŒ๋“ค ์›น์‚ฌ์ดํŠธ๋Š”
vue.js๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค
๐Ÿ 

 

 

 

 

 

1. ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€?

 

ํšŒ์›๊ฐ€์ž… ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค. Vue.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ก ํŠธ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ, ๊ฐ„๋‹จํ•œ ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์›น์‚ฌ์ดํŠธ์— ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์€ ํ•„์š”ํ•˜๋‹ˆ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ฒŒ ๋ผ๋„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘๋ฉด ํŽธ๋ฆฌํ•  ๊ฒƒ ๊ฐ™๋‹ค.

๊ฐ„ํŽธ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ์ด๋ฉฐ, Vue์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ํ„ฐ๋“ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํ˜๋Ÿฌ๊ฐ€๋Š”์ง€ ํŒŒ์•…ํ•˜๊ณ ์ž ํ•œ๋‹ค.

 

 

 

 

 

 

 


 

 

 

 

2. Spring initializr ์ƒ์„ฑํ•˜๊ธฐ.

 

โ–ก  https://start.spring.io/

 

โ–ก dependencies ์„ค์ •ํ•˜๊ธฐ.

 

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
	implementation 'org.springframework.boot:spring-boot-starter-security'
	implementation 'org.springframework.boot:spring-boot-starter-validation'
	implementation 'org.springframework.boot:spring-boot-starter-web'

	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'

	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'org.springframework.security:spring-security-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
  • implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    : @Entity, @Repository ๋“ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

  • implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
    : ์นด์นด์˜คํ†ก, ๊ตฌ๊ธ€๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋กœ๊ทธ์ธํ•˜๋Š” ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์ด๋‹ค.
  • implementation 'org.springframework.boot:spring-boot-starter-security'
    : ์ธ์ฆ๊ณผ ๊ถŒํ•œ ๋“ฑ ๋ณด์•ˆ ๊ด€๋ฆฌ ๋‹ด๋‹นํ•œ๋‹ค.

  • implementation 'org.springframework.boot:spring-boot-starter-validation'
    : @Email, @NotNull ๋“ฑ ์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด ์ค€๋‹ค.

  • implementation 'org.springframework.boot:spring-boot-starter-web'
    : ๋‚ด์žฅ๋œ ํ†ฐ์ผ“ ์„œ๋ฒ„, ์ปจํŠธ๋กค๋Ÿฌ ๋“ฑ web์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

  • compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    : ๋กฌ๋ณต ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ @Getter, @Setter ๋“ฑ ์ฝ”๋“œ ์–‘์„ ์ค„์ด๋Š”๋ฐ ๋„์›€์„ ์ค€๋‹ค.

  • developmentOnly 'org.springframework.boot:spring-boot-devtools'
    : ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ฆฌ๋กœ๋“œ๋ฅผ ํ•ด์ฃผ๋Š” ๋“ฑ ํŽธ๋ฆฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

  • runtimeOnly 'com.h2database:h2'
    : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ h2๋กœ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์„ ํƒํ•œ๋‹ค.



โ–ก Java ๋ฒ„์ „ ์„ ํƒํ•˜๊ธฐ

โœ”๏ธŽ  [Mac ๊ธฐ์ค€] ์ž๋ฐ” ๋ฒ„์ „์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด?

 

  • ํ„ฐ๋ฏธ๋„์— ๋“ค์–ด๊ฐ„๋‹ค.
  • ํ„ฐ๋ฏธ๋„์— java --version์ด๋ผ๊ณ  ์น˜๋ฉด ๋œ๋‹ค.
    โ–ธ openjdk 17.0.11์œผ๋กœ ํ™•์ธ๋๋‹ค.
  • ๋งŒ์•ฝ ์•ˆ ๋œฌ๋‹ค๋ฉด java ์„ค์น˜๊ฐ€ ์•ˆ๋˜์–ด์žˆ์œผ๋‹ˆ, ์„ค์น˜ํ•ฉ์‹œ๋‹ค.

 

 

โ–ก ์‚ฌ์šฉ์ž ์„ค์ •ํ•˜๊ธฐ

spring.application.name=JoinWeb

// ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ
spring.security.user.name=sori
spring.security.user.password=1234
๋ณธ์ธ์ด ์›ํ•˜๋Š” ์ด๋ฆ„๊ณผ ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

 

 

โ–ก ๊ฐ„๋‹จํ•˜๊ฒŒ ํ™”๋ฉด์— hello, join-web ์ถœ๋ ฅ

@RestController
public class Hello {

    @GetMapping("/hello")
    public String helloWorld() {
        return "hello, join-web";
    }
}



โ–ก http://localhost:8080/hello ๋“ค์–ด๊ฐ€๊ธฐ

  • ์ฒ˜์Œ์— ์œ„์˜ ๊ฒฝ๋กœ๋กœ ๋“ค์–ด๊ฐ€๋ฉด /login์œผ๋กœ url์ด ๋ณ€๊ฒฝ๋˜๋ฉด์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค.

 

 

  • dependencies์— security๋ฅผ ๋„ฃ์–ด์„œ ๊ทธ๋Ÿฐ ๊ฑฐ๋‹ˆ, ์œ„์— ์žˆ๋Š” ์‚ฌ์šฉ์ž ์„ค์ •ํ•˜๊ธฐ์—์„œ ์ด๋ฆ„๊ณผ ํŒจ๋“œ์›Œ๋“œ๋ฅผ ๋„ฃ์–ด๋†จ๋˜ ์ •๋ณด๋Œ€๋กœ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด ์ œ๋Œ€๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

  • ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด /hello๋กœ ๋“ค์–ด๊ฐ€์ง„๋‹ค.

์ž˜ ๋œจ๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

 

 

 


 

 

 

 

3. Vue.js ์„ค์น˜ํ•˜๊ธฐ.

โ–ก Node.js ์„ค์น˜ํ•˜๊ธฐ
https://nodejs.org/ko

 

Node.js — Run JavaScript Everywhere

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

nodejs.org

 

 

โ–ก ์„ค์น˜ ํ›„ ํ„ฐ๋ฏธ๋„์—์„œ npm -v๋กœ ํ™•์ธํ•˜๊ธฐ

 

 

โ–ก npm create vue@latest  ->  y๋ฅผ ๋ˆ„๋ฅด๋ฉด ์„ค์น˜๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

 

 

โ–ก ์„ค์ •ํ•˜๊ธฐ

  • Project name : ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ์„ค์ •
    ์—ฌ๊ธฐ์„œ vue-project๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ, ๋‚˜์ค‘์— ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
    ์ˆ˜์ • ๋ฐฉ๋ฒ•์€ mv vue-project join-web์œผ๋กœ mv ์›๋ž˜์ด๋ฆ„ ๋ณ€๊ฒฝ์ด๋ฆ„์˜ ํ˜•์‹์œผ๋กœ ์“ฐ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • Select features to include in your project : ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ
    ๋ฐฉํ–ฅํ‚ค๊ณ  ์ด๋™ํ•˜์‹œ๊ณ , ์ŠคํŽ˜์ด์Šค๋ฐ”๋กœ ์„ ํƒ/ํ•ด์ œํ•˜์„ธ์š”.

  • Select experimental features to include in your project: ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ
    ์„ ํƒํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

 

 

 

 

โ–ก ์‹คํ–‰ํ•˜๊ธฐ

  • cd join-web ๋งŒ๋“  ํ”„๋กœ์ ํŠธ๋กœ ์ด๋™ํ•˜๊ธฐ.

  • npm install ์˜์กด์„ฑ ์„ค์น˜ํ•˜๊ธฐ.

  • npm run dev ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๊ธฐ.
  • http://localhost:5173/ ๋กœ ๋“ค์–ด๊ฐ€์„œ ํ™•์ธํ•˜๊ธฐ.

์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋˜๋Š”์ง€ ์นœ์ ˆํžˆ ์„ค๋ช…๋„ ํ•ด์ค€๋‹ค

 

๋