diff --git a/build.gradle b/build.gradle
index c25ceac9..c209c3a7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -64,6 +64,8 @@ dependencies {
//aws
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
+ //타임리프
+ implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
}
tasks.named('test') {
diff --git a/src/main/java/com/sptp/backend/home/HomeController.java b/src/main/java/com/sptp/backend/home/HomeController.java
new file mode 100644
index 00000000..be99b117
--- /dev/null
+++ b/src/main/java/com/sptp/backend/home/HomeController.java
@@ -0,0 +1,27 @@
+package com.sptp.backend.home;
+
+import com.sptp.backend.member.service.MemberService;
+import com.sptp.backend.member.web.dto.request.MemberLoginRequestDto;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PostMapping;
+
+@Controller
+@RequiredArgsConstructor
+public class HomeController {
+
+ private final MemberService memberService;
+ private final PasswordEncoder passwordEncoder;
+
+ @PostMapping("/login")
+ public String login(String username, String password) {
+ System.out.println(username + " " + password);
+ memberService.login(MemberLoginRequestDto.builder()
+ .userId(username)
+ .password(password)
+ .build());
+
+ return "redirect:/index";
+ }
+}
diff --git a/src/main/resources/static/app.js b/src/main/resources/static/app.js
new file mode 100644
index 00000000..dd1ceaa8
--- /dev/null
+++ b/src/main/resources/static/app.js
@@ -0,0 +1,50 @@
+var stompClient = null;
+
+function setConnected(connected) {
+ $("#connect").prop("disabled", connected);
+ $("#disconnect").prop("disabled", !connected);
+ if (connected) {
+ $("#conversation").show();
+ }
+ else {
+ $("#conversation").hide();
+ }
+ $("#greetings").html("");
+}
+
+function connect() {
+ var socket = new SockJS('/ws-connection');
+ stompClient = Stomp.over(socket);
+ stompClient.connect({}, function (frame) {
+ setConnected(true);
+ console.log('Connected: ' + frame);
+ stompClient.subscribe('/topic/greetings', function (greeting) {
+ showGreeting(JSON.parse(greeting.body).content);
+ });
+ });
+}
+
+function disconnect() {
+ if (stompClient !== null) {
+ stompClient.disconnect();
+ }
+ setConnected(false);
+ console.log("Disconnected");
+}
+
+function sendName() {
+ stompClient.send("/app/hello", {}, JSON.stringify({'name': $("#name").val()}));
+}
+
+function showGreeting(message) {
+ $("#greetings").append("
" + message + " |
");
+}
+
+$(function () {
+ $("form").on('submit', function (e) {
+ e.preventDefault();
+ });
+ $( "#connect" ).click(function() { connect(); });
+ $( "#disconnect" ).click(function() { disconnect(); });
+ $( "#send" ).click(function() { sendName(); });
+});
\ No newline at end of file
diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html
new file mode 100644
index 00000000..b58f37fa
--- /dev/null
+++ b/src/main/resources/static/index.html
@@ -0,0 +1,53 @@
+
+
+
+ Hello WebSocket
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Greetings |
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file