diff --git a/pom.xml b/pom.xml
index c6d356c04f6ed2e8dc4d162bdd8bef6291fbc951..1f758cc9113c1fcedff1a1bec100798ec5e2b67e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,18 @@
 			<artifactId>spring-boot-starter-web</artifactId>
 		</dependency>
 
+		<dependency>
+    		<groupId>org.webjars</groupId>
+    		<artifactId>jquery</artifactId>
+    		<version>3.6.0</version>
+		</dependency>
+
+		<dependency>
+         	<groupId>org.webjars</groupId>
+         	<artifactId>bootstrap</artifactId>
+         	<version>5.1.3</version>
+		</dependency>
+		
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-starter-test</artifactId>
@@ -79,6 +91,12 @@
 			<version>5.0.0</version>
 		</dependency>
 
+		<dependency>
+    <groupId>mysql</groupId>
+    <artifactId>mysql-connector-java</artifactId>
+    <scope>runtime</scope>
+</dependency>
+
 		<dependency>
 			<groupId>com.googlecode.json-simple</groupId>
 			<artifactId>json-simple</artifactId>
@@ -91,6 +109,19 @@
 			<version>2.9.0</version>
 		</dependency>
 
+		<dependency>
+			<groupId>com.querydsl</groupId>
+			<artifactId>querydsl-jpa</artifactId>
+			<version>5.0.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.querydsl</groupId>
+			<artifactId>querydsl-apt</artifactId>
+			<version>5.0.0</version>
+		</dependency>
+
+
+		
 		<dependency>
 			<groupId>org.webjars</groupId>
 			<artifactId>jquery</artifactId>
@@ -133,14 +164,7 @@
 		</dependency>
 		
 
-
-	
-   <dependency>
-     <groupId>com.google.code.gson</groupId>
-     <artifactId>gson</artifactId>
-     <version>2.8.5</version>
-   </dependency>
- </dependencies>
+	</dependencies>
 
 	<build>
 		<plugins>
@@ -180,9 +204,6 @@
 					</execution>
 				</executions>
 			</plugin>
-
-			
-    
 		</plugins>
 	</build>
 
diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java
index 0aa3d9205673fc9b5b7a13941a2c7cb50f90741d..7c80619bc757669f2535c09804ff63ad849f93d5 100644
--- a/src/main/java/com/example/demo/DemoApplication.java
+++ b/src/main/java/com/example/demo/DemoApplication.java
@@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+
 import org.springframework.boot.autoconfigure.domain.EntityScan;
 import org.springframework.context.ApplicationContext;
 import java.util.Arrays;
@@ -14,13 +15,16 @@ import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionFactoryBean;
 import org.springframework.context.annotation.Bean;
 import javax.sql.DataSource;
+//import org.springframework.core.io.support.PathMatchingResourcePatternReso
 import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
 import org.springframework.core.io.Resource;
 
-@SpringBootApplication
 @RestController
-public class DemoApplication {
-
+@SpringBootApplication
+// @EntityScan(basePackageClasses = {Item.class})
+public class DemoApplication {// implements CommandLineRunner{
+	// @Autowired
+	// private ApplicationContext appContext;
 	public static void main(String[] args) {
 		SpringApplication.run(DemoApplication.class, args);
 	}
diff --git a/src/main/java/com/example/demo/controller/MemberController.java b/src/main/java/com/example/demo/controller/MemberController.java
index 3c0e658e312839d850cae40a056833e2a83e368a..833a0a9eaccf166493624a8b17cee7b807fb0541 100644
--- a/src/main/java/com/example/demo/controller/MemberController.java
+++ b/src/main/java/com/example/demo/controller/MemberController.java
@@ -1,37 +1,68 @@
 package com.example.demo.controller;
 
 import com.example.demo.service.MemberService;
+import com.google.gson.JsonParser;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
 import com.example.demo.entity.Member;
 import com.example.demo.dto.MemberDto;
+import com.example.demo.constant.Role;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.repository.query.Param;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 @RestController
 public class MemberController {
-    @Autowired
-    MemberService memberService;
+    private final MemberService memberService;
+
+    public MemberController(MemberService memberService) {
+        this.memberService = memberService;
+    }
 
-    public Member createMember() {
+    private Member createMember() {
         MemberDto memberDto = new MemberDto();
-        memberDto.setEmail("test@email.com");
+        memberDto.setEmail("user" + System.currentTimeMillis() + "@email.com"); // Unique email
         memberDto.setName("홍길동");
         memberDto.setAddress("서울시 마포구 합정동");
         memberDto.setPassword("1234");
         return Member.createMember(memberDto);
     }
 
-    @RequestMapping(value = "/membertest", method = RequestMethod.GET)
-    public void membertest() {
-        Member member = createMember();
-        Member savedMember = memberService.saveMember(member);
-        System.out.println(member);
-        System.out.println(savedMember);
+    @GetMapping("/membertest")
+    public ResponseEntity<Map<String, Object>> membertest() {
+        try {
+            Member member = createMember();
+            Member savedMember = memberService.saveMember(member);
+            return ResponseEntity.ok(Map.of("status", "success", "data", savedMember));
+        } catch (IllegalStateException e) {
+            return ResponseEntity.status(HttpStatus.CONFLICT)
+                    .body(Map.of("status", "error", "message", "이미 가입된 회원입니다."));
+        } catch (Exception e) {
+            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
+                    .body(Map.of("status", "error", "message", "서버 오류가 발생했습니다."));
+        }
     }
 
-    @RequestMapping(value = "/makeMember", method = RequestMethod.POST)
-    public String makeMember(@RequestBody String param) {
-        System.out.println(param);
-        return "OK";
+    @PostMapping("/makeMember")
+    public ResponseEntity<Map<String, Object>> makeMember(@RequestBody MemberDto memberDto) {
+        try {
+            System.out.println("name: " + memberDto.getName());
+            System.out.println("email: " + memberDto.getEmail());
+            System.out.println("address: " + memberDto.getAddress());
+            System.out.println("password: " + memberDto.getPassword());
+            Member member = Member.createMember(memberDto);
+            Member savedMember = memberService.saveMember(member);
+            return ResponseEntity.ok(Map.of("status", "success", "message", "OK", "data", savedMember));
+        } catch (IllegalStateException e) {
+            return ResponseEntity.status(HttpStatus.CONFLICT)
+                .body(Map.of("status", "error", "message", "이미 가입된 회원입니다."));
+        } catch (Exception e) {
+            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
+                .body(Map.of("status", "error", "message", "서버 오류가 발생했습니다."));
+        }
     }
 }
diff --git a/src/main/java/com/example/demo/controller/TestController.java b/src/main/java/com/example/demo/controller/TestController.java
index bfb623384576dc6bdd00c65084f674a54a432d95..e65a576e31395c991793bbd82edb2b7512f1b253 100644
--- a/src/main/java/com/example/demo/controller/TestController.java
+++ b/src/main/java/com/example/demo/controller/TestController.java
@@ -15,34 +15,21 @@ public class TestController {
     public String test(@RequestParam("id") String id) {
         JsonObject obj = new JsonObject();
         obj.addProperty("item_nm", "수제 햄버거");
-        obj.addProperty("item_detail", "소고기 패티와 토마토가 들어 있는햄버거");
+        obj.addProperty("item_detail", "소고기 패티와 토마토가 들어 있는 햄버거");
         obj.addProperty("item_reg_date", "2022/04/22");
         obj.addProperty("item_price", "4000");
         return obj.toString();
     }
 
-    @RequestMapping(value = "/productlist", method = RequestMethod.GET)
-    public String productList() {
-        JsonObject obj1 = new JsonObject();
-        obj1.addProperty("item_nm", "수제 햄버거");
-        obj1.addProperty("item_detail", "소고기 패티와 토마토가 들어 있는햄버거");
-        obj1.addProperty("item_reg_date", "2022/04/22");
-        obj1.addProperty("item_price", "4000");
-        JsonObject obj2 = new JsonObject();
-        obj2.addProperty("item_nm", "카레라이스");
-        obj2.addProperty("item_detail", "매운 3 분 카레라이스");
-        obj2.addProperty("item_reg_date", "2022/03/10");
-        obj2.addProperty("item_price", "8000");
-        JsonObject obj3 = new JsonObject();
-        obj3.addProperty("item_nm", "라면");
-        obj3.addProperty("item_detail", "소고기 라면");
-        obj3.addProperty("item_reg_date", "2021/09/10");
-        obj3.addProperty("item_price", "1500");
+    @RequestMapping(value = "/productlist", method = RequestMethod.GET) public String productList(){
+        JsonObject obj1 = new JsonObject(); obj1.addProperty("item_nm", "수제 햄버거"); obj1.addProperty("item_detail", "소고기 패티와 토마토가 들어 있는 햄버거");
+        obj1.addProperty("item_reg_date", "2022/04/22"); obj1.addProperty("item_price", "4000");
+        JsonObject obj2 = new JsonObject(); obj2.addProperty("item_nm", "카레라이스"); obj2.addProperty("item_detail", "매운 3 분 카레라이스"); obj2.addProperty("item_reg_date", "2022/03/10"); obj2.addProperty("item_price", "8000");
+        JsonObject obj3 = new JsonObject(); obj3.addProperty("item_nm", "라면"); obj3.addProperty("item_detail", "소고기 라면"); obj3.addProperty("item_reg_date", "2021/09/10"); obj3.addProperty("item_price", "1500");
         JsonArray infoArray = new JsonArray();
         infoArray.add(obj1);
         infoArray.add(obj2);
         infoArray.add(obj3);
-        return infoArray.toString();
-
-    }
-}
\ No newline at end of file
+        return infoArray.toString();   
+        }
+}
diff --git a/src/main/java/com/example/demo/dao/UserDAO.java b/src/main/java/com/example/demo/dao/UserDAO.java
index a2fada19ef9376399adb0f23aaa441453e9ccf87..b2cba5bf266b956bad330532d21c74558282a196 100644
--- a/src/main/java/com/example/demo/dao/UserDAO.java
+++ b/src/main/java/com/example/demo/dao/UserDAO.java
@@ -2,5 +2,5 @@ package com.example.demo.dao;
 import java.util.List;
 import com.example.demo.dto.UserDTO;
 public interface UserDAO {
-    List<UserDTO> selectUsers(UserDTO param) throws Exception;
+List<UserDTO> selectUsers(UserDTO param) throws Exception;
 }
diff --git a/src/main/java/com/example/demo/dto/MemberDto.java b/src/main/java/com/example/demo/dto/MemberDto.java
index c5e0c42835e149431d48e83da70ed0650f0aa1c4..313190f38f66176ba891934d804cc0eec2196458 100644
--- a/src/main/java/com/example/demo/dto/MemberDto.java
+++ b/src/main/java/com/example/demo/dto/MemberDto.java
@@ -11,5 +11,4 @@ public class MemberDto {
     private String password;
     private String address;
 
-
 }
diff --git a/src/main/java/com/example/demo/dto/UserDTO.java b/src/main/java/com/example/demo/dto/UserDTO.java
index 761e5d1ecaf5ab305399a0d9681def2289bbd54d..5db2c83dcdb774282a4c9287c5889f4add0575a0 100644
--- a/src/main/java/com/example/demo/dto/UserDTO.java
+++ b/src/main/java/com/example/demo/dto/UserDTO.java
@@ -1,10 +1,14 @@
 package com.example.demo.dto;
+
 import lombok.AllArgsConstructor;
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 import lombok.Setter;
-@AllArgsConstructor // 자동으로 모든 매개변수를 받는 생성자를 생성 
-@Getter // Getter 생성
-@Setter // Setter 생성
+
+@Getter
+@Setter
+@NoArgsConstructor // Add no-args constructor for MyBatis
+@AllArgsConstructor
 public class UserDTO {
     private int seq;
     private String name;
diff --git a/src/main/java/com/example/demo/entity/Item.java b/src/main/java/com/example/demo/entity/Item.java
index 5c433f0670d909c63e670f20fc5b966f583f54f2..13bc38c565ded8ef47858f8f04402707a3769384 100644
--- a/src/main/java/com/example/demo/entity/Item.java
+++ b/src/main/java/com/example/demo/entity/Item.java
@@ -1,4 +1,5 @@
 package com.example.demo.entity;
+
 import com.example.demo.constant.ItemSellStatus;
 import lombok.Getter;
 import lombok.Setter;
@@ -7,26 +8,26 @@ import java.time.LocalDateTime;
 import javax.persistence.*;
 import org.springframework.stereotype.Component;
 
-@Table(name="item")
+@Table(name = "item")
 @Getter
 @Setter
 @ToString
 @Entity
 public class Item {
     @Id
-    @Column(name="item_id")
-@GeneratedValue(strategy = GenerationType.AUTO)
-private Long id;
-@Column(nullable = false, length= 50)
-private String itemNm;
-@Column(name="price", nullable = false)
-private int price;
-@Column(nullable = false)
-private int stockNumber;
-@Lob
-@Column(nullable = false)
-private String itemDetail;
-@Enumerated(EnumType.STRING)
+    @Column(name = "item_id")
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    private Long id;
+    @Column(nullable = false, length = 50)
+    private String itemNm;
+    @Column(name = "price", nullable = false)
+    private int price;
+    @Column(nullable = false)
+    private int stockNumber;
+    @Lob
+    @Column(nullable = false)
+    private String itemDetail;
+    @Enumerated(EnumType.STRING)
     private ItemSellStatus itemSellStatus;
     private LocalDateTime regTime;
     private LocalDateTime updateTime;
diff --git a/src/main/java/com/example/demo/repository/ItemRepository.java b/src/main/java/com/example/demo/repository/ItemRepository.java
index fd9afc8b7b99c1262c5a5410a03e439e34ed6934..c53903d77e03310f1f80555db7bae411c69893f4 100644
--- a/src/main/java/com/example/demo/repository/ItemRepository.java
+++ b/src/main/java/com/example/demo/repository/ItemRepository.java
@@ -6,18 +6,12 @@ import org.springframework.data.repository.query.Param;
 import java.util.List;
 import com.example.demo.entity.Item;
 // @NoRepositoryBean
-
 public interface ItemRepository extends JpaRepository<Item, Long>{ 
     List<Item> findByItemNm(String itemNm);
     List<Item> findByItemNmOrItemDetail(String itemNm, String itemDetail);
     List<Item> findByPriceLessThan(Integer price);
-    List<Item> findByPriceLessThanOrderByPriceDesc(Integer price);
-    
-    /*
-     * @Query("select i from Item i where i.itemDetail like %:itemDetail%order by i.price desc")
-    List<Item> findByItemDetail(@Param("itemDetail") String itemDetail);
-     * 
-     */
+    @Query("select i from Item i where i.itemDetail like concat('%', :itemDetail, '%') order by i.price desc")
+List<Item> findByItemDetail(@Param("itemDetail") String itemDetail);
     
 }
 
diff --git a/src/main/java/com/example/demo/repository/MemberRepository.java b/src/main/java/com/example/demo/repository/MemberRepository.java
index f7fd5e297072efec425edb994bf650d927d2e433..18dfe8bd7ba83dad8dd286ab4ade0ca1cc799651 100644
--- a/src/main/java/com/example/demo/repository/MemberRepository.java
+++ b/src/main/java/com/example/demo/repository/MemberRepository.java
@@ -1,7 +1,8 @@
 package com.example.demo.repository;
-import com.example.demo.entity.*;
+
 import org.springframework.data.jpa.repository.JpaRepository;
+import com.example.demo.entity.*;
 
-public interface MemberRepository extends JpaRepository<Member, Long>{
+public interface MemberRepository extends JpaRepository<Member, Long> {
     Member findByEmail(String email);
 }
diff --git a/src/main/java/com/example/demo/service/MemberService.java b/src/main/java/com/example/demo/service/MemberService.java
index aac177aad84dfe45e6af208540f89eb8fabed893..190d4eb4359cf22371fd67f9e2ca30abc17a6b6f 100644
--- a/src/main/java/com/example/demo/service/MemberService.java
+++ b/src/main/java/com/example/demo/service/MemberService.java
@@ -14,17 +14,14 @@ public class MemberService {
     private final MemberRepository memberRepository;
 
     public Member saveMember(Member member) {
-        validateDuplicatetMember(member);
+        if (!validateDuplicatetMember(member)) {
+            throw new IllegalStateException("이미 가입된 회원입니다.");
+        }
         return memberRepository.save(member);
     }
 
     private boolean validateDuplicatetMember(Member member) {
         Member findMember = memberRepository.findByEmail(member.getEmail());
-        if (findMember != null) {
-            System.out.println("이미 가입된 회원입니다.");
-            return false;
-        }
-        return true;
+        return findMember == null;
     }
-
 }
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 9f08d1d929b12901ee9b76fa59474df96b011e5d..0d6bd92bc5cbb2ea8f2ee59ac3cfda170e5c3122 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -7,9 +7,12 @@ spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.datasource.username=root
 spring.datasource.password=web1
 # spring.datasource.driver-class-name=org.h2.Driver
-# spring.datasource.url=jdbc:h2:mem:test
+#spring.datasource.url=jdbc:h2:mem:testdb
 # spring.datasource.username=sa
 # spring.datasource.password=
 # spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
 # spring.jpa.hibernate.ddl-auto=create
-spring.jpa.properties.hibernate.show_sql = true spring.jpa.properties.hibernate.connection.autocommit = true spring.jpa.properties.hibernate.format_sql = true logging.level.org.hibernate.type.descriptor.sql = trace
\ No newline at end of file
+spring.jpa.properties.hibernate.show_sql = true 
+spring.jpa.properties.hibernate.connection.autocommit = true
+spring.jpa.properties.hibernate.format_sql = true 
+logging.level.org.hibernate.type.descriptor.sql = trace
\ No newline at end of file
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..34c66f2a549d60987ec0162356a55cd78314b760
--- /dev/null
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.demo.dao.UserDAO"><!--namespace 를 통해 UserDAO 와 연결합니다. -->
+  <select id="selectUsers"
+parameterType="com.example.demo.dto.UserDTO"
+resultType="com.example.demo.dto.UserDTO">
+SELECT `seq`, `name`, `country` FROM lab03
+<if test='country != null and country != ""'> WHERE country = #{country}
+    </if>
+  </select>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html
index 74c4777e246ac6f5e1e14126581fa7dae5255b5d..483e0cc8b992c8f57c7378db357be9071f427086 100644
--- a/src/main/resources/static/index.html
+++ b/src/main/resources/static/index.html
@@ -2,41 +2,41 @@
 <html>
 
 <head>
-    <meta charset="utf-8">
-    <title>Insert title here</title>
-    <link rel="stylesheet" href="/webjars/bootstrap/5.1.3/css/bootstrap.min.css">
-    <script src="/webjars/jquery/3.6.0/jquery.min.js"></script>
-    <script src="/webjars/popper.js/2.9.3/umd/popper.min.js"></script>
-    <script src="/webjars/bootstrap/5.1.3/js/bootstrap.min.js"></script>
+  <title>Test Webjars</title>
+  <link rel="stylesheet" href="/app/s202322014/code/proxy/3000/webjars/bootstrap/5.1.3/css/bootstrap.min.css">
+  <script src="/app/s202322014/code/proxy/3000/webjars/jquery/3.6.0/jquery.min.js"></script>
+  <script src="/app/s202322014/code/proxy/3000/webjars/popper.js/2.9.3/umd/popper.min.js"></script>
+  <script src="/app/s202322014/code/proxy/3000/webjars/bootstrap/5.1.3/js/bootstrap.min.js"></script>
+</head>
 </head>
 
 <body>
-    <div class="container">
-        <table class="table table-hover">
-            <thead class="thead-dark">
-                <tr>
-                    <th>codeId</th>
-                    <th>code</th>
-                    <th>codeNm</th>
-                    <th>codeDc</th>
-                </tr>
-            </thead>
-            <tbody>
-                <tr>
-                    <td>COM001</td>
-                    <td>REG01</td>
-                    <td>단일 게시판 이용 등록</td>
-                    <td>단일 게시판 이용 등록</td>
-                </tr>
-                <tr>
-                    <td>COM001</td>
-                    <td>REG02</td>
-                    <td>커뮤니티 등록/td>
-                    <td>커뮤니티 등록</td>
-                </tr>
-            </tbody>
-        </table>
-    </div>
+  <div class="container">
+    <table class="table table-hover">
+      <thead class="thead-dark">
+        <tr>
+          <th>codeId</th>
+          <th>code</th>
+          <th>codeNm</th>
+          <th>codeDc</th>
+        </tr>
+      </thead>
+      <tbody>
+        <tr>
+          <td>COM001</td>
+          <td>REG01</td>
+          <td>단일 게시판 이용 등록</td>
+          <td>단일 게시판 이용 등록</td>
+        </tr>
+        <tr>
+          <td>COM001</td>
+          <td>REG02</td>
+          <td>커뮤니티 등록/td>
+          <td>커뮤니티 등록</td>
+        </tr>
+      </tbody>
+    </table>
+  </div>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/src/main/resources/static/product.html b/src/main/resources/static/product.html
index 46488063a229b5bf513fca113367835dd87e596a..af89066bd6c4da6ca4e71891db1ed80b7a8971a2 100644
--- a/src/main/resources/static/product.html
+++ b/src/main/resources/static/product.html
@@ -4,29 +4,22 @@
 <head>
     <meta charset="UTF-8">
     <title>Product</title>
-    <link rel="stylesheet" href="/webjars/bootstrap/5.1.3/css/bootstrap.min.css">
-    <script src="/webjars/jquery/3.6.0/jquery.min.js"></script>
-    <script src="/webjars/popper.js/2.9.3/umd/popper.min.js"></script>
-    <script src="/webjars/bootstrap/5.1.3/js/bootstrap.min.js"></script>
+    <link rel="stylesheet" href="/app/s202322014/code/proxy/3000/webjars/bootstrap/5.1.3/css/bootstrap.min.css">
+    <script src="/app/s202322014/code/proxy/3000/webjars/jquery/3.6.0/jquery.min.js"></script>
+    <script src="/app/s202322014/code/proxy/3000/webjars/popper.js/2.9.3/umd/popper.min.js"></script>
+    <script src="/app/s202322014/code/proxy/3000/webjars/bootstrap/5.1.3/js/bootstrap.min.js"></script>
     <script>
         $(document).ready(function () {
             $("button").click(function () {
                 $.ajax({
                     type: 'GET',
-                    url: '/productlist',
+                    url: '/app/s202322014/code/proxy/3000/test?id=1',
                     success: function (data) {
-                        var array = JSON.parse(data);
-                        for (i = 0; i < array.length; i++) {
-                            var obj = array[i];
-                            html = '';
-                            html += '<tr>';
-                            html += '<td>' + obj.item_nm + '</td>'
-                            html += '<td>' + obj.item_detail + '</td>'
-                            html += '<td>' + obj.item_reg_date + '</td>'
-                            html += '<td>' + obj.item_price + '</td>'
-                            html += '</tr>';
-                            $("#tableBody").append(html);
-                        }
+                        var obj = JSON.parse(data);
+                $('#item_nm span').text(obj.item_nm)
+                $('#item_detail span').text(obj.item_detail)
+                $('#item_reg_date span').text(obj.item_reg_date)
+                $('#item_price span').text(obj.item_price)
                     }
                 });
             });
@@ -35,6 +28,7 @@
 </head>
 
 <body>
+<<<<<<< HEAD
     <h1>상품 데이터 목록 출력</h1>
     <button>조회</button>
     <table class="table table-hover">
@@ -49,6 +43,14 @@
         <tbody id="tableBody">
         </tbody>
     </table>
+=======
+    <h1>상품 데이터 출력 예제</h1>
+    <div id="item_nm">상품명: <span></span></div>
+    <div id="item_detail">상품 상세설명: <span></span></div>
+    <div id="item_reg_date">상품 등록일: <span></span></div>
+    <div id="item_price">삼품가격: <span></span></div>
+    <button>조회</button>
+>>>>>>> fix_branch
 </body>
 
 </html>
\ No newline at end of file
diff --git a/src/main/resources/static/productList.html b/src/main/resources/static/productList.html
new file mode 100644
index 0000000000000000000000000000000000000000..4b0828118ba11b24ca39d049dbefc918fd4f38bf
--- /dev/null
+++ b/src/main/resources/static/productList.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <title>Product</title>
+    <link rel="stylesheet" href="/app/s202322014/code/proxy/3000/webjars/bootstrap/5.1.3/css/bootstrap.min.css">
+    <script src="/app/s202322014/code/proxy/3000/webjars/jquery/3.6.0/jquery.min.js"></script>
+    <script src="/app/s202322014/code/proxy/3000/webjars/popper.js/2.9.3/umd/popper.min.js"></script>
+    <script src="/app/s202322014/code/proxy/3000/webjars/bootstrap/5.1.3/js/bootstrap.min.js"></script>
+    <script>
+        $(document).ready(function () {
+            $("button").click(function () {
+                $.ajax({
+                    type: 'GET',
+                    url: '/app/s202322014/code/proxy/3000/productlist',
+                    success: function (data) {
+                        var array = JSON.parse(data);
+                        for (i = 0; i < array.length; i++) {
+                            var obj = array[i];
+                            html = '';
+                            html += '<tr>';
+                            html += '<td>' + obj.item_nm + '</td>'
+                            html += '<td>' + obj.item_detail + '</td>'
+                            html += '<td>' + obj.item_reg_date + '</td>'
+                            html += '<td>' + obj.item_price + '</td>'
+                            html += '</tr>';
+                            $("#tableBody").append(html);
+                        }
+                    }
+                });
+            });
+        });
+    </script>
+</head>
+
+<body>
+    <h1>상품 데이터 목록 출력</h1>
+    <button>조회</button>
+    <table class="table table-hover">
+        <thead class="thead-dark">
+            <tr>
+
+                <th>상품이름</th>
+            </tr>
+            <th>상품상세설명</th>
+            <th>상품등록일</th>
+            <th>상품가격</th>
+            </tr>
+        </thead>
+        <tbody id="tableBody">
+        </tbody>
+    </table>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java
index b48853ff5387702a0386ee7d1601c387d47fddf0..60265cd5911bb276ab7bf9781b181d4b5211f76c 100644
--- a/src/test/java/com/example/demo/repository/ItemRepositoryTest.java
+++ b/src/test/java/com/example/demo/repository/ItemRepositoryTest.java
@@ -18,7 +18,11 @@ import com.querydsl.jpa.impl.JPAQueryFactory;
 import com.querydsl.jpa.impl.JPAQuery;
 import javax.persistence.EntityManager;
 import javax.persistence.PersistenceContext;
+import javax.swing.text.html.parser.Entity;
 
+@SpringBootTest
+@TestPropertySource(locations = "classpath:application-test.properties")
+@RunWith(SpringJUnit4ClassRunner.class)
 public class ItemRepositoryTest {
     @Autowired
     ItemRepository itemRepository;
@@ -28,7 +32,62 @@ public class ItemRepositoryTest {
 
     public void createItemList() {
         for (int i = 1; i <= 10; i++) {
+        }
+    }
+
+    @Test
+    @DisplayName("상품명 조회 테스트")
+    public void findByItemNmTest() {
+        this.createItemList();
+        List<Item> itemList = itemRepository.findByItemNm("테스트 상품 1");
+        for (Item item : itemList) {
+            System.out.println(item.toString());
+        }
+    }
+
+    @Test
+    @DisplayName("상품명, 상품상세 설명 OR 테스트")
+    public void findByItemNmOrItemDetailTest() {
+        this.createItemList();
+        List<Item> itemList = itemRepository.findByItemNmOrItemDetail("테스트 상품 1", "테스트 상품 상세 설명 5");
+        for (Item item : itemList) {
+            System.out.println(item.toString());
+        }
+    }
+
+    @Test
+    @DisplayName("가격 LessThan 테스트")
+    public void findByPriceLessThanTest() {
+        this.createItemList();
+        List<Item> itemList = itemRepository.findByPriceLessThan(10005);
+        for (Item item : itemList) {
+            System.out.println(item.toString());
+        }
+    }
 
+    @Test
+    @DisplayName("@Query를 이용한 상품 조회 테스트")
+    public void findByItemDetailTest() {
+        this.createItemList();
+        List<Item> itemList = itemRepository.findByItemDetail("테스트 상품 상세 설명");
+        for (Item item : itemList) {
+            System.out.println(item.toString());
+        }
+    }
+
+    @Test
+    @DisplayName("Querydsl 조회테스트 1")
+    public void queryDslTest() {
+        this.createItemList();
+        JPAQueryFactory queryFactory = new JPAQueryFactory(em);
+        QItem qItem = QItem.item;
+        JPAQuery<Item> query = queryFactory.selectFrom(qItem)
+                .where(qItem.itemSellStatus.eq(ItemSellStatus.SELL))
+                .where(qItem.itemDetail.like("%" + "테스트 상품 상세설명" + "%"))
+                .orderBy(qItem.price.desc());
+        List<Item> itemList = query.fetch();
+        for (Item item : itemList) {
+            System.out.println(item.toString());
         }
     }