[ ๋ฒํผ ๋๋ฅด๋ฉด Hello,World! ์ถ๋ ฅ ]
Spring - [intelliJ] ๋ฒํผ ๋๋ฅด๋ฉด Hello,World! ์ถ๋ ฅ
[ Hello,World ์ถ๋ ฅํ๊ธฐ ] Spring - [IntelliJ] Hello World ์ถ๋ ฅํ๊ธฐ[ Spring MVC์ ๋ํ์ฌ ] Spring - Spring MVC๋ฅผ ์์์ผ ์์์ด ๊ฐ๋ฅํ๋ค.์ฒ์์ ๋์ถฉ ํ๋ก์ ํธ๋ฅผ ์์ํด๋ณด๋ คํ์ง๋ง,์ด๋ด์๊ฐ! ์๋ ๊ฒ์ด ๋ฏธ์ฝํ
post-this.tistory.com
๋ฒํผ์ ๋๋ฅด๋ฉด ๋๋คํ ์ซ์ 6๊ฐ ์ถ๋ ฅํ๊ธฐ
1. ๋์ํ๋ฉด๊ณผ ์ ์ฒด์ฝ๋
๋์ํ๋ฉด
์๋ฐ์ฝ๋
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.*;
@Controller
public class RandomNum {
Random rd = new Random();
Set<Integer> lottoSet = new TreeSet<>();
@GetMapping("/")
public String firstPage() {
return "button";
}
@GetMapping("/Random")
public String randomPage(Model model) {
while(true) {
int ranNum = rd.nextInt(45)+1;
lottoSet.add(ranNum);
if(lottoSet.size() == 6) {
break;
}
}
model.addAttribute("Number",lottoSet);
return "button";
}
}
html ์ฝ๋
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>๋ก๋ ๋ฒํธ ์์ฑ</title>
<link rel="stylesheet" href="css/style.css" type="text/css">
</head>
<body>
<div class="top">
<div class="center">
<h1> <b> ๋ก๋ ๋ฒํธ ์์ฑ๊ธฐ </b> </h1>
<h1> Lotto</h1>
<div class="numPadding">
<h1 th:text="${Number}"> RandomNumber </h1>
</div>
<div class="padding">
<form th:action="@{/Random}" method = "get">
<button class="btn" type="submit" > ๋ฒํผ </button>
</form>
</div>
</div>
</div>
</body>
</html>
css ์ฝ๋
.top {
margin-top: 100px;
margin-bottom: 100px;
margin-left: 50px;
margin-right: 50px;
}
.padding {
padding-top:100px;
padding-bottom:10px;
padding-left:auto;
padding-right:auto;
}
.numPadding {
padding-top:100px;
padding-bottom:0px;
padding-left:0px;
padding-right:0px;
}
.center {
text-align: center;
}
.btn {
background-color: #AC72E5;
color: white;
border: none;
border-radius:20px;
width:200px;
height:60px;
font-size:40px;
text-align: center;
cursor: pointer;
}
2. ์ด๋ป๊ฒ ๋ง๋ค์ง ์๊ฐํ๊ธฐ ๐ง๐ปโ๏ธ
๋ฒํผ ๋๋ฅด๋ฉด Hello,World! ๋ฌธ์ฅ์ด ์ถ๋ ฅ๋๋๋ก ๋ง๋ค์๋ค.
์ฌ๊ธฐ์ ์กฐ๊ธ๋ง ์ฝ๋๋ฅผ ๋ฐ๊พธ๋ฉด ๋๋คํ ์ซ์ 6๊ฐ๋ฅผ ์ถ๋ ฅ๋๋๋ก ๋ง๋ค ์ ์๋ค.
[ ๋ณ๊ฒฝ์ฌํญ ]
โก ํ
์คํธ์ ๋ฒํผ ๊ฐ์ด๋ฐ ์ ๋ ฌํ๊ธฐ.
โป css๋ฅผ ์ฌ์ฉํ๊ธฐ.
โก ๋๋คํ ์ซ์ 6๊ฐ ์ถ๋ ฅ (์ค๋ณตX, ์ค๋ฆ์ฐจ์)
โป java.util.Random ํด๋์ค๋ฅผ ์ฌ์ฉ
3. ์ฒซ๋ฒ์งธ๋ก ๋ณด์ฌ์ค ํ๋ฉด ๋์ถฉ ๋ง๋ค๊ธฐ.
๋๋ ํ ๋ฆฌ ์ฐธ๊ณ
โก Controller ๋๋ ํ ๋ฆฌ ๋ง๋ค๊ณ , ๊ทธ ์์ RandomNum ํด๋์ค ๋ง๋ค๊ธฐ.
โก RandomNum ํด๋์ค์ ์ฒซ ํ๋ฉด ๋ฐํํ๋ ์ฝ๋ ์์ฑํ๊ธฐ.
@GetMapping("/")
public String firstPage() {
return "button";
}
์ ๋ฒ ์์ ์์ ์ค๋ช
์ ์ ์ด๋์์ง๋ง, ์งง๊ฒ ์ค๋ช
ํด๋ณด๊ฒ ๋ค. ์์ฒญ์ด ๋ค์ด์ค๋ฉด @GetMapping์ ๊ดํธ ์์ ์๋ ๊ฒฝ๋ก์ ์์ฒญ ๊ฒฝ๋ก๊ฐ ๋ง๋์ง ๋ณด๊ณ , ๋ง์ผ๋ฉด ํด๋น ๋ฉ์๋๋ฅผ ์คํํ์ฌ ํ์ด์ง๋ฅผ ๋ฐํํ๋ค. ํ์ฌ ์ฝ๋์์ ("/")๋ก ๋ฃจํธ ๊ฒฝ๋ก๋ก ๋ค์ด์ค๋ฉด button.html์ ๋ฐํํ๋ผ๊ณ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
โก button.html์ ๊ธฐ๋ณธ ๋์ ์ฝ๋ ์์ฑํ๊ธฐ.
<head>
<meta charset="UTF-8">
<title>๋ก๋ ๋ฒํธ ์์ฑ</title>
</head>
title์ ํญ์ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒ์ด๋ค.
<body>
<h1> <b> ๋ก๋ ๋ฒํธ ์์ฑ๊ธฐ </b> </h1>
<h1> Lotto</h1>
<h1 th:text="${Number}"> RandomNumber </h1>
<form th:action="@{/Random}" method = "get">
<button class="btn" type="submit" > ๋ฒํผ </button>
</form>
</body>
body ์์ ํ๋ฉด์ ์ถ๋ ฅ๋๊ธธ ์ํ๋ ๋ฌธ์ฅ๊ณผ ๋ฒํผ์ ๋ง๋ค์๋ค. $Number์๋ ๋๋ค์ผ๋ก ์ถ๋ ฅํ 6๊ฐ์ ์ซ์๊ฐ ๋ํ๋ ๊ณต๊ฐ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์๋ ๋ฒํผ์ ๋ง๋ค์๋ค. ๋ฒํผ์ด ๋๋ฆฌ๋ฉด get ๋ฐฉ์์ผ๋ก Controller์๊ฒ ์ ๋ฌ๋๋ค.
์ด ์ฝ๋์ ๋์ ๋ฐฉ์์ ์ด์ ์ ์์ฑํ Hello,World์ ์์ธํ๊ฒ ์ ์ด๋จ๋ค. ํ์ง๋ง ๋ณต์ตํ ๊ฒธ ๊ฐ๋จํ๊ฒ ์ค๋ช
์ ๋ง๋ถ์ฌ๋ณด๊ฒ ๋ค. ํ์๋ฆฌํ๋ ์์ํ html์ ์ ์งํ๋ฉด์ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ๋ก๊ทธ๋จ์ด๋ค. ๊ทธ๋ ๊ธฐ์ ๋์ ์ธ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์๋์ด์ผํ ์ฝ๋์ th๋ฅผ ๋ถ์ฌ์ฃผ์๋ค.
๋ก๋ ๋ฒํธ ์์ฑ๊ธฐ์ Lotto๋ ์์ง์ด์ง ์๋๋ค. ํ
์คํธ๋ก ํ๋ฉด์ ๊ทธ์ ์ถ๋ ฅ๋๊ธฐ๋ง ํ๋ฉด ๋๋ค. ํ์ง๋ง ๋ฒํผ์ ๊ฒฝ์ฐ, ๋ฒํผ์ด ๋๋ฆฌ๋ฉด /Random์ด๋ผ๋ ๊ฒฝ๋ก๋ฅผ get ๋ฐฉ์์ผ๋ก Controller์๊ฒ ๋ณด๋ธ๋ค. ์ด ๋ถ๋ถ์ ๋์ ์ผ๋ก ์์ง์ด๊ฒ ๋๋ฏ๋ก form์ th๊ฐ ๋ถ๊ฒ๋ ๊ฒ์ด๋ค. ๊ทธ ์์ ์ฝ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ์ฒซ ํ๋ฉด์์ ๋๋คํ ์ซ์๊ฐ ๋ํ๋์ง ์๋๋ค. ํ์ง๋ง ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ค์ ํ๋ฉด์ ์ซ์๊ฐ ๋ํ๋์ผํ๋ค. ์ด๊ฒ ๋ฐ๋ก ๋์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ธฐ์ ${Number}์ th๊ฐ ๋ถ์ ๊ฒ์ด๋ค.
์ ์ด๋ ๊ฒ ์์ฑํ๋ฉด ๋ฒํผ์ด ๋๋ฆฌ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฒซ ํ๋ฉด ํ์ด์ง๋ฅผ ๋์ ๋ค.
3. css ๋ง๋ค๊ธฐ.
์ด ๋ถ๋ถ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์กฐ๊ธ ํค๋งธ๋ค.
โก resources ์์ static ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค.
โก static ์์ css ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ ๋ค.
โก ๊ทธ๋ฌ๋ฉด ์ ๋ ๊ฒ static.css๊ฐ ์์ฑ๋๋ค.
โก static.css ๋ฐ์ file - style.css๋ฅผ ๋ง๋ค๋ฉด ๋๋ค.
3. css ์ฝ๋ ์์ฑํ๊ธฐ.
โก ๋ชจ๋ ์์ ์ค์์ ๋ฐฐ์ดํ๊ธฐ.
.center {
text-align: center;
}
โก margin์ผ๋ก ์ฌ๋ฐฑ์ ์ด ์ธ ๊ฐ ๋ง๋ค ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ์ธ๊ตฌ์ญ์ผ๋ก ์ฌ๋ฐฑ์ ์ค์ ํ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ first๋ [๋ก๋๋ฒํธ์์ฑ๊ธฐ-Lotto-๋๋ค์ซ์ 6๊ฐ-๋ฒํผ]์ ๊ฐ์ผ ๋ฐ ๋ถ๋ถ์ ์ฌ๋ฐฑ์ ๋ฃ์ ๊ฒ์ด๊ธฐ์, ์ํ์ข์ฐ์ ์ํ๋ ์ฌ๋ฐฑ์ ํฌ๊ธฐ๋ฅผ ์
๋ ฅํ๋ค.
.first {
margin-top: 100px;
margin-bottom: 100px;
margin-left: 50px;
margin-right: 50px;
}
.second {
margin-top: 100px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
}
.third {
margin-top: 200px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
}
โก ๋ฒํผ ์ปค์คํ
ํ๊ธฐ.
.btn {
background-color: #AC72E5;
color: white;
border: none;
border-radius:20px;
width:200px;
height:60px;
font-size:40px;
text-align: center;
cursor: pointer;
}
background-colo r๋ ์์ ์ด ์ํ๋ ๋ฐฐ๊ฒฝ์ ์ ๋ฃ์ผ๋ฉด ๋๋ค. ๊ฒ์์ฐฝ์ ์ปฌ๋ฌ์ฐจํธ๋ผ๊ณ ๊ฒ์ํ๋ฉด ๋ค์ํ ์ฌ์ดํธ๊ฐ ๋ฌ๋ค. ์๋ฌด ๊ณณ์ ๋ค์ด๊ฐ ์ํ๋ ์ปฌ๋ฌ๋ฅผ ์ ํํ์ฌ HEX ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ ๋ฃ์ผ๋ฉด ๋๋ค. color ๋ ๊ธ์ ์์ ์ด ๋๊ณ ์ด๊ฒ๋ ์ํ๋ ์์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ๋๋ค. border ๋ ํ
๋๋ฆฌ , border-radius ๋ ํ
๋๋ฆฌ์ ๊ณก์ ์ ์๋ฏธํ๋ค. ์ฝ๊ฐ ๋ฅ๊ทผ ๋ฒํผ์ ์ํด์ 20px๋ก ์ ์ด์ฃผ์๋ค. width์ height ๋ ๋ฒํผ ๋๋น์ ๋์ด ๊ฐ ๋๊ณ , font-size ๋ ๊ธ์ ํฌ๊ธฐ , text-align ์ ๊ธ์ ์ค์๋ฐฐ์ด ์ ์๋ฏธํ๋ค. cursor ๋ ๋ฒํผ ์์ ๋๋ ์ ๋ ๋ง์ฐ์ค ๋ชจ์์ด ๋ณ๊ฒฝ ๋๋๋ก ํ๋ ๊ฒ์ด๋ค.
์ปค์ ๋ชจ์ ๋ณ๊ฒฝ
4. html์ css ์ ์ฉ์ํค๊ธฐ.
โก html์ css ์ฐ๊ฒฐํ๊ธฐ.
<head>
<meta charset="UTF-8">
<title>๋ก๋ ๋ฒํธ ์์ฑ</title>
<link rel="stylesheet" href="css/style.css" type="text/css">
</head>
head์ ๋ง๋ค์ด๋ css๋ฅผ link๋ฅผ ํตํด ์ฐ๊ฒฐ ํ ๊ฒ์ด๋ค. rel ์ ์์ฑ ๊ฐ ์ผ๋ก ๋ฐ๋์ ์ ์ด์ค์ผํ๋ค. ๊ฐ์ผ๋ก "stylesheet"๋ฅผ ์ ์๋ค. ์๋ฏธ๋ ๋งํฌ๋ ํ์ผ์ ์คํ์ผ์ํธ๋ก ์ฌ์ฉํ๊ฒ ๋ค ๊ณ ์๋ฆฌ๋ ๊ฒ์ด๋ค. href ๋ ์คํ์ผ์ํธ๊ฐ ์๋ ๊ฒฝ๋ก๋ฅผ ์ ์ด์ฃผ๊ณ type ์ ๋งํฌ๋ ํ์ผ์ ํ์
์ ์ง์ ํ๋ค.
โก css ์ ์ฉ์ํค๊ธฐ.
<div class="first">
<div class="center">
<h1> <b> ๋ก๋ ๋ฒํธ ์์ฑ๊ธฐ </b> </h1>
<h1> Lotto</h1>
<div class="second">
<h1 th:text="${Number}"> RandomNumber </h1>
</div>
<div class="third">
<form th:action="@{/Random}" method = "get">
<button class="btn" type="submit" > ๋ฒํผ </button>
</form>
</div>
</div>
</div>
css์์ .first ์ ์ค์ ํ margin(์ฌ๋ฐฑ)์ ๋ชจ๋ ์์์ ์ ์ฉ์ํค๊ธฐ ์ํด ๊ฐ์ฅ ์ฒซ๋ฒ์งธ๋ก ์ ์ด์ฃผ์๋ค . css ์์๋ฅผ ์ ์ฉ์ํฌ๋ ์ง์ ํ ์ด๋ฆ์์ ์จ์ ์ ๋บ ์ด๋ฆ์ class=" "์ ์ ์ด์ฃผ๋ฉด ๋๋ค. ์ด์ด์ ๋ชจ๋ ์์์ ์ ์ฉ์ํฌ ๊ฐ์ด๋ฐ ์ ๋ ฌ์ ๊ทธ ๋ค์์ผ๋ก ์ ์ด ๊ธฐ๋ณธ์ ์ธ ํ
๋๋ฆฌ๋ฅผ ๋ง๋ค์๋ค . ๊ทธ๋ฌ๋ฉด ์ด์ ์ด ์์ ๋ค์ด๊ฐ ์์๋ค์ ๊ฐ์ด๋ฐ ์ ๋ ฌ์ ํฌํจํ์ฌ ์•ํ 100px, ์ข•์ฐ 50px๊ฐ ๋์ด์ ธ์ ์์ ๋ ๊ฒ์ด๋ค.
๋๋คํ ์ซ์ 6๊ฐ๊ฐ Lotto์ ๋จ์ด์ ธ์ ์์นํ๊ธธ ์ํ๋ฏ๋ก ์ 100px๋ง ๋์ด์ง .second๋ฅผ class์ ๋ฃ์ด์ค๋ค. ๊ทธ ํ 6๊ฐ์ ๋๋ค ์ซ์์ ๋ฒํผ์ด ์ผ์ ๊ฐ๊ฒฉ ๋จ์ด์ง๊ธธ ์ํ๋ .third๋ฅผ ์ ์ด ๊ฐ์ธ์ค๋ค.
๋ง์ง๋ง์ผ๋ก ๋ฒํผ์๋ <button class="btn"...> ์ ์ ์ด css๋ฅผ ์ ์ฉ์ํจ๋ค.
5. ๋๋คํ ์ซ์ ๋์ค๋๋ก ์ถ๋ ฅํ๊ธฐ.
โก ์ ์ฒด์ฝ๋
@Controller
public class RandomNum {
Random rd = new Random();
Set<Integer> lottoSet = new TreeSet<>();
@GetMapping("/")
public String firstPage() {
return "button";
}
@GetMapping("/Random")
public String randomPage(Model model) {
while(true) {
int ranNum = rd.nextInt(45)+1;
lottoSet.add(ranNum);
if(lottoSet.size() == 6) {
break;
}
}
model.addAttribute("Number",lottoSet);
return "button";
}
}
โก ๋๋ค์ ์ฌ์ฉํ ํจ์ ์ ์
Random rd = new Random();
Set<Integer> lottoSet = new TreeSet<>();
Java์์ ์ ๊ณตํ๋ Random ํจ์๋ฅผ ์ฌ์ฉํ์ฌ rd๋ผ๊ณ ๋ณ์๋ช
์ ๋ฃ์๋ค. ์ด๋ฐ์ ์ด๋ค ์์ผ๋ก ๋ง๋ค์ง ๊ตฌ์ํ ๋, ์ค๋ณต์ด ์์ผ๋ฉด์ ์ค๋ฆ์ฐจ์ ๋ฐฐ์ด ๋ก ๋์ค๋ ๊ฑธ ์ํ๋ค. ๊ทธ๋์ TreeSet์ ์ฌ์ฉ ํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ๋ค. TreeSet์ ์ด์ง๊ฒ์ํธ๋ฆฌ์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ปฌ๋ ์
ํด๋ผ์ค์ธ๋ฐ, ์ด์ง๊ฒ์ํธ๋ฆฌ ์ค ์ฑ๋ฅ์ ํฅ์์ํจ ๋ ๋-๋ธ๋ ํธ๋ฆฌ๋ก ์ด๋ค์ ธ์๋ค. ์๋ง ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ฅผ ํ๊ฑฐ๋, ์์
์ ๋ค์ ์ฌ๋์ด๋ผ๋ฉด ๋ค์ด๋ดค์ ๊ฒ์ด๋ค.
Set ์ธํฐํ์ด์ค๋ ์ค๋ณต์ ํ์ฉํ์ง ์์ง๋ง, ์ ์ฅ ์์๋ ์๊ดํ์ง ์๋๋ค. HashSet ์ ์ฌ์ฉํ๋ฉด ๋ก๋๋ฒํธ์ถ๋ ฅ์์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋๋ก ์ด๋ค์ง์ง ์๋ ๊ฒ์ ์ ์ ์๋ค. ๊ทธ๋ฐ๋ฐ TreeSet์ ์ฌ์ฉํ๋ฉด ๋ถ๋ชจ๋
ธ๋์ ์ผ์ชฝ ๋
ธ๋๋ฅผ ๋น๊ตํ์ฌ ์๋ฆฌ๋ฅผ ๋ฐ๊พธ๋ ๊ณผ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋์ด๋ ๊ฐ์ ์ป์ ์ ์๋ค. ์ด์ ๋ํ ์ค๋ช
์ ๋์ค์ ์ฌ๋ ค๋ณด๋๋ก ํ๋ฉฐ, ์ดํดํ๊ธฐ ์ฌ์ด ๋ธ๋ก๊ทธ๋ฅผ ์ถ์ฒ์ ๋จ๊ฒจ๋๊ฒ ๋ค.
๊ทธ๋ ๊ฒ TreeSet์ ์ด์ฉํ์ฌ ๋๋ค ์ซ์๋ฅผ lottoSet์ ์ ์ฅ๋๋๋ก ๋ง๋ค์๋ค.
โก ๋๋ค์ผ๋ก ์ซ์ 6๊ฐ ์ถ๋ ฅํ๊ณ ๋ฐํํ์ด์ง์ ์ฐ๊ฒฐํ๊ธฐ.
@GetMapping("/Random")
public String randomPage(Model model) {
while(true) {
int ranNum = rd.nextInt(45)+1;
lottoSet.add(ranNum);
if(lottoSet.size() == 6) {
break;
}
}
model.addAttribute("Number",lottoSet);
return "button";
}
@GetMapping์ ๋ค์ด์ฌ ๊ฒฝ๋ก๋ฅผ ์ ์ด์ค๋ค. ํ์ฌ ์ฝ๋์์ /Random์ด๋ผ ์ ์๋๋ฐ ๊ทธ ์ด์ ๋ ๋ฒํผ์ด ๋๋ฆฌ๊ฒ ๋๋ฉด form์์ Random ๊ฒฝ๋ก๋ฅผ get ๋ฐฉ์์ผ๋ก Controller์๊ฒ ๋ณด๋ด๋๋ก ์์ฑํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ ๊ธฐ์ ์์ฒญ ๊ฒฝ๋ก์ ๋ง๊ฒ ์ํํ ๋ฉ์๋๋ฅผ ์ฐ๊ฒฐํ๊ธฐ ์ํด @GetMapping์ /Random์ ์์ฑํ๋ค.
์ ์ด์ ๋ฒํผ์ ๋๋ฅด๋ฉด randomPage ๋ฉ์๋๋ ์ํ๋ ๊ฒ์ด๋ค. ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ์ฝ๋์ธ while๋ฌธ์ผ๋ก ๊ฐ๋ค. lottoSet์ ํฌ๊ธฐ๊ฐ 6์ด ์๋๋ผ๋ฉด while์ ๊ณ์ true ์ผ ๊ฒ์ด๊ณ , ๋๋คํ ์ซ์๋ฅผ ๋ฝ์ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ nextInt(45)+1 ์ ์๋ฏธ๋, 45 = 0 ~ 44๊น์ง์ ์ด 45๊ฐ , +1 = 1์ฉ ๋ํ 1 ~ 45๋ก ๋ฐ๊พผ ๊ฒ ์ด ๋๋ค.
๋๋ค ์ซ์์ ๋ํด ๊ฒ์์ ํ๊ฒ๋๋ฉด for๋ฌธ์ด ๊ฐ์ฅ ๋ง์ด ๋์ฌ ๊ฒ์ด๋ค. ๋ฌผ๋ก for๋ฌธ์ผ๋ก ์์ฑ๊ฐ๋ฅํ๋ค. ๊ทธ๋ฐ๋ฐ ๋๋ while๋ฌธ ์ฌ์ฉ์ ์ ์ํด๋ด์ while๋ฌธ์ผ๋ก ์์ฑํ๋ค. for๋ฌธ ์ฝ๋๋ ์๋์ ์ฌ๋ ค๋๊ฒ ๋ค.
์ด์ ๋ง์ง๋ง์ผ๋ก Model์ ์ด์ฉํ์ฌ ๋๋ค ์ซ์ 6๊ฐ์ ๋ฐฐ์ด์ ๋ทฐ ํ
ํ๋ฆฟ์ผ๋ก ๋ณด๋ด๊ธฐ๋ง ํ๋ฉด ๋๋ค. Model ์ ๊ดํ ์ค๋ช
๋ ์์ ํ๋ Hello,World!์ ์ ์ด๋๋ค. ์ฌ๊ธฐ์ ๋ณต์ตํ ๊ฒธ ๊ฐ๋จํ ์ค๋ช
ํ์๋ฉด, ๋ฐ์ดํฐ๋ฅผ ๋ทฐ๋ก ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ ๊ฐ์ฒด ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๊ทธ๋ ๊ฒ html์ ์๋ Number์ lottoSet์ ๋ณด๋ด๊ณ return์ ํตํด ๋ค์ button ํ์ด์ง๋ฅผ ๋ฐํํ๋๋ก ํ๋ค.
โก for๋ฌธ์ ์ด์ฉํ์ฌ ์์ฑํ Controller
package com.LottoWeb.LuckyLotto.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.*;
@Controller
public class RandomNum {
Random rd = new Random();
Set<Integer> lottoSet = new TreeSet<>();
@GetMapping("/")
public String firstPage() {
return "button";
}
@GetMapping("/Random")
public String randomPage(Model model) {
for(int i=1; lottoSet.size() < 6; i++ ){
int ranNum = rd.nextInt(45)+1;
lottoSet.add(ranNum);
}
model.addAttribute("Number",lottoSet);
return "button";
}
}
[ ๋ก๋, ๋ฒํผ ๋๋ฌ ์ซ์ 6๊ฐ ์ถ๋ ฅํ๊ธฐ (2) ]
Spring - [intelliJ,Thymeleaf] ๋ก๋, ๋ฒํผ ๋๋ฌ ๋๋ค ์ซ์ 6๊ฐ ์ถ๋ ฅํ๊ธฐ(2)
[ ๋ก๋, ๋ฒํผ ๋๋ฌ ๋๋คํ ์ซ์ 6๊ฐ ์ถ๋ ฅํ๊ธฐ ] Spring - [intelliJ,Thymeleaf] ๋ก๋, ๋ฒํผ ๋๋ฌ ๋๋ค ์ซ์ 6๊ฐ ์ถ๋ ฅํ๊ธฐ[ ๋ฒํผ ๋๋ฅด๋ฉด Hello,World! ์ถ๋ ฅ ] Spring - [intelliJ] ๋ฒํผ ๋๋ฅด๋ฉด Hello,World! ์ถ๋ ฅ[ Hello,World
post-this.tistory.com
๐ชฝ
"ํ๋ฆฐ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค."
[ ๋ธ๋ก๊ทธ์ ์ด ๋ด์ฉ๋ค์ ์ถ์ฒ๋ ์๋์ ์ ์ด๋ํ
๋
๋ค์ด๊ฐ์ ์ฝ์ด๋ณด์๋ฉด ๋์ฑ ๋์์ด ๋์ค ๋ฏ ํฉ๋๋ค ]
- TreeSet ์ถ์ฒ
[Java/์๋ฐ] TreeSet ์ฌ์ฉ๋ฒ
TreeSet์ ์ด์ง ๊ฒ์ ํธ๋ฆฌ(binary search tree)๋ผ๋ ์๋ฃ๊ตฌ์กฐ์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ปฌ๋ ์
ํด๋์ค์
๋๋ค. ์ด์ง ๊ฒ์ ํธ๋ฆฌ๋ ์ ๋ ฌ, ๊ฒ์, ๋ฒ์๊ฒ์(range search)์ ๋์ ์ฑ๋ฅ์ ๋ณด์ด๋ฉฐ TreeSet์ ์ด์ง
hstory0208.tistory.com
- ๋๋ค ์ซ์ ์์ฑ ์ถ์ฒ (while)
[JAVA] ๋๋ค ์ซ์(๋์) ์์ฑํ๊ธฐ - Random , Math
๋์๋ฅผ ์์ฑํด๋ด
์๋ค ๐์ค๋์ ์๋ฐ์์ ๋๋ค ์ซ์ ๋ง๋๋ ๋ฒ์ ์์๋ด
์๋ค. ๊ฐ๋
์๋ฐ์์ ๋์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ 2๊ฐ์ง๊ฐ ์์ต๋๋ค.Random ํด๋์ค ์ฌ์ฉMath.random() ์ฐจ์ด์ 1. Random ํด๋์ค๋ int, long,
e-you.tistory.com
- html๊ณผ link ์ฐ๊ฒฐ ์ถ์ฒ
HTML <link> rel, type, href
: HTML Link ์์๋ ํ์ฌ ๋ฌธ์์ ์ธ๋ถ ๋ฆฌ์์ค์์ ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ๋ช
์ํฉ๋๋ค. ์ด ์์๋ ์คํ์ผ ์ํธ์ ๋งํฌํ๋ ๋ฐ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค. rel="์์ฑ ๊ฐ" : ์์์ ๋ฐ๋์ ๋ช
์๋์ด์ผ ํ๋ ํ์ ์์ฑ
junbucks7.tistory.com
- ์คํ์ผ ์ํธ ์ถ์ฒ
์คํ์ผ ์ํธ๋?
์ 1์ฅ ์คํ์ผ ์ํธ๋? ใ
์คํ์ผ ์ํธ๋ ๊ธ๊ผด์ ํฌ๊ธฐ๋ ๋ชจ์, ์ปฌ๋ฌ ๊ทธ๋ฆฌ๊ณ ๋ฌธ๋จ ์ค์ ์ ๋ฏธ๋ฆฌ ์ ์ํด ์คํ์ผ...
blog.naver.com
- ์ปฌ๋ฌ์ฐจํธ ์ถ์ฒ
colorate | ๋์์ด๋์ ๊ฐ๋ฐ์๋ฅผ์ํ ์ ๊ตฌ์ฑํ ๋๊ตฌ.
colorate๋ ๋์์ด๋์ ๊ฐ๋ฐ์์๊ฒ ์๊ฐ์ ์ฃผ๋ ์ ๊ตฌ์ฑํ ๋๊ตฌ์
๋๋ค. ์ด๊ฒ์ ์์ฑ ์์
์ ์ํ ์๋ฃ๋ก ๋์์ด ๋ ๊ฒ์
๋๋ค.
colorate.azurewebsites.net
- CSS ํ
์คํธ ๊ฐ์ด๋ฐ ์ ๋ ฌ ์ถ์ฒ
[HTML/CSS] DIV ์์ ํ
์คํธ ๊ฐ์ด๋ฐ ์ ๋ ฌํ๊ธฐ (๊ฐ๋ก, ์ธ๋ก)
์ด๋ฒ์๋ ๋ค์๊ณผ ๊ฐ์ด div ์์ ์๋ text๋ฅผ ๊ฐ๋ก, ์ธ๋ก๋ก ๊ฐ์ด๋ฐ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค. ์๋
ํ์ธ์ .my-div { border : 1px solid blue; height : 200px; } 1. ๊ฐ๋ก๋ก ๊ฐ์ด๋ฐ ์ ๋ ฌํ๊ธฐ ์ฌ๊ธฐ์์ ์๊ฐ
hianna.tistory.com
- CSS ๋ฒํผ ํฌ๊ธฐ ์กฐ์ ์ถ์ฒ
[HTML/CSS] ๋ฒํผ ํฌ๊ธฐ ์กฐ์ ํ๊ธฐ (padding)
๋ฒํผ์ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๊ธฐ ์ํด์ width, height ์์ฑ์ ์ฌ์ฉํ ์๋ ์์ง๋ง, padding ์์ฑ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ๋ฒํผ ํฌ๊ธฐ ์กฐ์ ํ๊ธฐ (width, height) ๋จผ์ width, height๋ก ๋ฒํผ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด๋ณด์์ต๋๋ค.
hianna.tistory.com
- ๋ฒํผ ์ปค์คํ
์ถ์ฒ
์ฌ๋ฌ ๊ฐ์ง ๋ฒํผ ๊ฐ์ด๋ฐ ์ ๋ ฌ ์ํค๋ ๋ฐฉ๋ฒ
ํธ์์ ํด๋์ค A, B๋ก ์ค๋ช
. 1. ํ๊ทธ๋ก ์ฌ๋ฌ ๋ฒํผ(ํด๋์ค B)๋ค์ ๊ฐ์ธ๋ฉด์ ํด๋์ค(A) ์ง์ ํด์ฃผ๊ณ 2. ํด๋์ค A์ ์คํ์ผ(css)์ text-align: center๋ก ์ค์์ ๋ ฌํ๊ณ 3. ํด๋์ค B์ ์คํ์ผ(css)์ inline-block ์์ฑ
mangocoding-journal.tistory.com