ewhk9887/korean_code_reviews_from_github huggingface dataset:
@@ -0,0 +1,47 @@
+import React, { Component } from 'react';
+import { Link } from 'react-router-dom';
+import Comment from './Comment';
+
+class CommentList extends Component {
+  render() {
+    const { feedId, commentList, onToggleLike, onRemoveComment } = this.props;
+
+    return (
+      <>
+        <div>
+          <div className="all-comments-show">
+            <Link to="/main">
+              댓글 <span>12,739</span>개 모두 보기
+            </Link>
+          </div>
+
+          <div className="other-comments">
+            {commentList?.map((comment, i) => (
+              <Comment
+                key={i}
+                feedId={feedId}
+                comment={comment}
+                onToggleLike={onToggleLike}
+                onRemoveComment={onRemoveComment}
+              />
+            ))}
+          </div>
+
+          <div className="time-container">
+            <Link to="/main">
+              <time
+                className=""
+                dateTime="2021-05-17T18:16:28.000Z"
+                title="2021년 5월 18일"
+              >
+                2일 전
+              </time>
+            </Link>
+          </div>
+        </div>
+      </>
+    );
+  }
+}
+
+export default CommentList;

리뷰: form태그의 submit을 추가하셔서 엔터키를 쳐도 입력이 가능하게 한점 보기 좋습니다!
이렇게 하면 따로 엔터키 함수를 만들지 않아도 되니까 좋은거 같습니다 !
@@ -0,0 +1,47 @@
+import React, { Component } from 'react';
+import { Link } from 'react-router-dom';
+import Comment from './Comment';
+
+class CommentList extends Component {
+  render() {
+    const { feedId, commentList, onToggleLike, onRemoveComment } = this.props;
+
+    return (
+      <>
+        <div>
+          <div className="all-comments-show">
+            <Link to="/main">
+              댓글 <span>12,739</span>개 모두 보기
+            </Link>
+          </div>
+
+          <div className="other-comments">
+            {commentList?.map((comment, i) => (
+              <Comment
+                key={i}
+                feedId={feedId}
+                comment={comment}
+                onToggleLike={onToggleLike}
+                onRemoveComment={onRemoveComment}
+              />
+            ))}
+          </div>
+
+          <div className="time-container">
+            <Link to="/main">
+              <time
+                className=""
+                dateTime="2021-05-17T18:16:28.000Z"
+                title="2021년 5월 18일"
+              >
+                2일 전
+              </time>
+            </Link>
+          </div>
+        </div>
+      </>
+    );
+  }
+}
+
+export default CommentList;

리뷰: 아니요......삭제까지 구현했습니다. ㅠㅠ
@@ -61,7 +61,10 @@ class Nav extends React.Component {
             </a>
             <a href="/">
               <div className="profile-image">
-                <img src="images/profile/me.jpeg" alt="me" />
+                <img
+                  src="/images/hyunchanpark//images/user-icon.jpg"
+                  alt="me"
+                />
               </div>
             </a>
           </div>

리뷰: [참고](https://stackoverflow.com/questions/43087007/react-link-vs-a-tag-and-arrow-function)

`<a>`는 사용하면 새로고침 하는 것처럼 html을 새로 다 받아 오는 반면, `<Link>`를 사용하면 컴포넌트만 바꿔줍니다. 렌더링 최적화를 위해서 `<Link>` 사용해주세요!
@@ -22,6 +22,7 @@ nav {
     .title {
       margin: 0;
       font-size: 30px;
+      font-weight: 400;
       font-family: 'Lobster', cursive;
     }
 
@@ -44,5 +45,30 @@ nav {
         font-weight: 300;
       }
     }
+
+    .path-icon {
+      display: flex;
+
+      a {
+        margin-left: 24px;
+        background-color: transparent;
+        border: none;
+
+        &:hover {
+          text-decoration: none;
+        }
+
+        .profile-image {
+          width: 22px;
+          height: 22px;
+
+          img {
+            width: 22px;
+            height: 22px;
+            border-radius: 50%;
+          }
+        }
+      }
+    }
   }
 }

리뷰: font-weight:400이 기본속성인데 따로 부여하신 이유가 있나요?
@@ -0,0 +1,12 @@
+package develop.baminchan;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class SidedishApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(SidedishApplication.class, args);
+	}
+}

리뷰: Security 설정이 별도 클래스로 독립하면 조금 더 좋을 것 같네요.
@@ -0,0 +1,75 @@
+package develop.baminchan.controller;
+
+import develop.baminchan.dto.BanchanDto;
+import develop.baminchan.dto.CategoryDto;
+import develop.baminchan.dto.banchan.BanchanDetailDto;
+import develop.baminchan.entity.Banchan;
+import develop.baminchan.service.BanchanService;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/api")
+public class BanchanController {
+
+    private BanchanService banchanService;
+
+    public BanchanController(BanchanService banchanService) {
+        this.banchanService = banchanService;
+    }
+
+    @GetMapping("/main")
+    public ResponseEntity<Message> findMain() {
+        List<BanchanDto> banchanDtoList = banchanService.findBanchansByTag("main");
+        Message message = new Message(Message.OK, banchanDtoList);
+        return new ResponseEntity(message, HttpStatus.OK);
+    }
+
+    @GetMapping("/soup")
+    public ResponseEntity<Message> findSoup() {
+        List<BanchanDto> banchanDtoList = banchanService.findBanchansByTag("soup");
+        Message message = new Message(Message.OK, banchanDtoList);
+        return new ResponseEntity(message, HttpStatus.OK);
+    }
+
+    @GetMapping("/side")
+    public ResponseEntity<Message> findSide() {
+        List<BanchanDto> banchanDtoList = banchanService.findBanchansByTag("side");
+        Message message = new Message(Message.OK, banchanDtoList);
+        return new ResponseEntity(message, HttpStatus.OK);
+    }
+    @GetMapping("/main/{detail_hash}")
+    public BanchanDto findOneMain(@PathVariable String detail_hash) {
+        BanchanDto banchanDto = banchanService.findBanchanByDetailHash(detail_hash);
+        return banchanDto;
+    }
+
+    @GetMapping("/soup/{detail_hash}")
+    public BanchanDto findOneSoup(@PathVariable String detail_hash) {
+        BanchanDto banchanDto = banchanService.findBanchanByDetailHash(detail_hash);
+        return banchanDto;
+    }
+
+    @GetMapping("/side/{detail_hash}")
+    public BanchanDto findOneSide(@PathVariable String detail_hash) {
+        BanchanDto banchanDto = banchanService.findBanchanByDetailHash(detail_hash);
+        return banchanDto;
+    }
+
+
+    @GetMapping("/detail/{detail_hash}")
+    public BanchanDetailDto findOneDetail(@PathVariable String detail_hash) {
+        BanchanDetailDto banchanDetailDto = banchanService.findBanchanDetailByDetailHash(detail_hash);
+        System.out.println(banchanDetailDto);
+        return banchanDetailDto;
+    }
+
+    @PostMapping("/create")
+    public String create(@RequestBody Banchan banchan) {
+        banchanService.createBanchan(banchan);
+        return "success";
+    }
+}

리뷰: `@PathVariable` 안에 path variable name을 설정할 수 있는 필드가 있을 거라 생각합니다.
어떠한 순간에도 자바의 기본적 코딩 컨벤션을 계속 준수해주세요.
@@ -0,0 +1,24 @@
+package develop.baminchan.controller;
+
+public class Message {
+    public static final int OK = 200;
+    public static final int BAD_REQUEST = 400;
+    public static final int NOT_FOUND = 404;
+    public static final int INTERNAL_SERVER_ERROR = 500;
+
+    private int statusCode;
+    private Object body;
+
+    public Message(int statusCode, Object body) {
+        this.statusCode = statusCode;
+        this.body = body;
+    }
+
+    public int getStatusCode() {
+        return statusCode;
+    }
+
+    public Object getBody() {
+        return body;
+    }
+}

리뷰: `enum` 으로 관리해보시면 어떨까요?
@@ -0,0 +1,78 @@
+package develop.baminchan.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import develop.baminchan.entity.Banchan;
+
+import java.util.Set;
+
+import static develop.baminchan.dto.util.StringConvertor.convertToSet;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class BanchanDto {
+    private String detail_hash;
+    private String image;
+    private String alt;
+    private Set<String> delivery_type;
+    private String title;
+    private String description;
+    private String n_price;
+    private String s_price;
+    private Set<String> badge;
+
+    protected BanchanDto() {
+
+    }
+
+    private BanchanDto(Banchan banchan) {
+        this.detail_hash = banchan.getDetail_hash();
+        this.image = banchan.getImage();
+        this.alt = banchan.getAlt();
+        this.delivery_type = convertToSet(banchan.getDelivery_type());
+        this.title = banchan.getTitle();
+        this.description = banchan.getDescription();
+        this.n_price = banchan.getN_price();
+        this.s_price = banchan.getS_price();
+        this.badge = convertToSet(banchan.getBadge());
+    }
+
+    // Entity -> DTO
+    public static BanchanDto of(Banchan banchan) {
+        return new BanchanDto(banchan);
+    }
+
+    public String getDetail_hash() {
+        return detail_hash;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public String getAlt() {
+        return alt;
+    }
+
+    public Set<String> getDelivery_type() {
+        return delivery_type;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public String getN_price() {
+        return n_price;
+    }
+
+    public String getS_price() {
+        return s_price;
+    }
+
+    public Set<String> getBadge() {
+        return badge;
+    }
+}

리뷰: `@JsonProperty` 를 통해 JSON field의 이름 정해주시면 될 것 같아요.
언더스코어는 자바 코드에 없었으면 합니다.
@@ -0,0 +1,78 @@
+package develop.baminchan.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import develop.baminchan.entity.Banchan;
+
+import java.util.Set;
+
+import static develop.baminchan.dto.util.StringConvertor.convertToSet;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class BanchanDto {
+    private String detail_hash;
+    private String image;
+    private String alt;
+    private Set<String> delivery_type;
+    private String title;
+    private String description;
+    private String n_price;
+    private String s_price;
+    private Set<String> badge;
+
+    protected BanchanDto() {
+
+    }
+
+    private BanchanDto(Banchan banchan) {
+        this.detail_hash = banchan.getDetail_hash();
+        this.image = banchan.getImage();
+        this.alt = banchan.getAlt();
+        this.delivery_type = convertToSet(banchan.getDelivery_type());
+        this.title = banchan.getTitle();
+        this.description = banchan.getDescription();
+        this.n_price = banchan.getN_price();
+        this.s_price = banchan.getS_price();
+        this.badge = convertToSet(banchan.getBadge());
+    }
+
+    // Entity -> DTO
+    public static BanchanDto of(Banchan banchan) {
+        return new BanchanDto(banchan);
+    }
+
+    public String getDetail_hash() {
+        return detail_hash;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public String getAlt() {
+        return alt;
+    }
+
+    public Set<String> getDelivery_type() {
+        return delivery_type;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public String getN_price() {
+        return n_price;
+    }
+
+    public String getS_price() {
+        return s_price;
+    }
+
+    public Set<String> getBadge() {
+        return badge;
+    }
+}

리뷰: `private` 으로 가려놨으므로 모든 필드에 해당하는 파라메터를 다 선언해주셔도 됩니다.
또 그렇게 해야 추후 확장성 측면에서도 좋을 거라 생각합니다. 
`Banchan` 을 받아서 하나씩 정보를 꺼내는 책임은 `.of()` 에게 맡기고 생성자에선 단순 값 할당에 집중하면 어떨까요.
@@ -0,0 +1,45 @@
+package develop.baminchan.dto;
+
+import develop.baminchan.entity.Category;
+import org.springframework.data.annotation.Id;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CategoryDto {
+    @Id
+    private int id;
+
+    private String category_id;
+    private String name;
+
+    private List<BanchanDto> items = new ArrayList<>();
+
+    public CategoryDto(String category_id, String name) {
+        this.category_id = category_id;
+        this.name = name;
+    }
+
+    public CategoryDto(Category category, List<BanchanDto> banchanDtoList) {
+        this.category_id = category.getCategory_id();
+        this.name = category.getName();
+        this.items = banchanDtoList;
+    }
+
+    // Entity -> DTO
+    public static CategoryDto of(Category category, List<BanchanDto> banchanDtoList) {
+        return new CategoryDto(category, banchanDtoList);
+    }
+
+    public String getCategory_id() {
+        return category_id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public List<BanchanDto> getItems() {
+        return items;
+    }
+}

리뷰: DTO인데 `@Id`.... 괜찮을까요?
@@ -0,0 +1,20 @@
+package develop.baminchan.dto.util;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+public class StringConvertor {
+    private StringConvertor() {
+    }
+
+    public static Set<String> convertToSet(String column) {
+        if (column == null) {
+            return null;
+        }
+        Set<String> set = new HashSet<>();
+        String[] arr = column.split(", ");
+        set.addAll(Arrays.asList(arr));
+        return set;
+    }
+}

리뷰: [이 링크](https://docs.spring.io/spring-data/jdbc/docs/current/reference/html/#jdbc.custom-converters) 를 참고해주시고 표준 스펙에 맞는 클래스로 전환을 부탁드릴게요.
@@ -0,0 +1,35 @@
+package develop.baminchan.entity;
+
+import org.springframework.data.annotation.Id;
+
+public class Order {
+    @Id
+    private Long id;
+
+    private String client_id;
+    private String detail_hash;
+    private int quantity;
+
+    public Order(Long id, String client_id, String detail_hash, int quantity) {
+        this.id = id;
+        this.client_id = client_id;
+        this.detail_hash = detail_hash;
+        this.quantity = quantity;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public String getClient_id() {
+        return client_id;
+    }
+
+    public String getDetail_hash() {
+        return detail_hash;
+    }
+
+    public int getQuantity() {
+        return quantity;
+    }
+}

리뷰: 굳이 약어를 사용하실 필요는 없어 보이기는 합니다.
테이블 상에도 이 이름으로 칼럼이 들어가있나요? 그렇다면 풀 네임인 `quantity` 로의 전환을 제안드립니다.
@@ -0,0 +1,57 @@
+package develop.baminchan.service;
+
+import develop.baminchan.dto.BanchanDto;
+import develop.baminchan.dto.CategoryDto;
+import develop.baminchan.entity.Banchan;
+import develop.baminchan.entity.Category;
+import develop.baminchan.repository.BanchanRepository;
+import develop.baminchan.repository.CategoryRepository;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+@Service
+public class CategoryService {
+    private CategoryRepository categoryRepository;
+    private BanchanRepository banchanRepository;
+
+    public CategoryService(CategoryRepository categoryRepository, BanchanRepository banchanRepository) {
+        this.categoryRepository = categoryRepository;
+        this.banchanRepository = banchanRepository;
+    }
+
+    public List<CategoryDto> findAllBestBanchansByCategories() {
+        Iterable<Category> categoryList = categoryRepository.findAll();
+        Set<String> setOfCategoryIds = new HashSet<>();
+        for (Category category : categoryList) {
+            setOfCategoryIds.add(category.getCategory_id());
+        }
+        System.out.println(setOfCategoryIds); //테스트 // null도 들어가나?
+
+        List<CategoryDto> categoryDtoList = new ArrayList<>();
+        for (String category_id : setOfCategoryIds) {
+            categoryDtoList.add(findBestBanchansByCategory(category_id));
+        }
+        return categoryDtoList;
+    }
+
+    public CategoryDto findBestBanchansByCategory(String category_id) {
+        Category category = categoryRepository.findCategoryByCategory_id(category_id);
+        CategoryDto categoryDto = CategoryDto.of(category, findBanchanListByCategoryId(category_id));
+        return categoryDto;
+    }
+
+    private List<BanchanDto> findBanchanListByCategoryId(String catrgory_id) {
+        List<BanchanDto> banchanDtoList = new ArrayList<>();
+        List<Banchan> banchanList = new ArrayList<>();
+
+        banchanList = banchanRepository.findBanchansByCategory_id(catrgory_id);
+        for (int i = 0; i < banchanList.size(); i++) {
+            banchanDtoList.add(BanchanDto.of(banchanList.get(i)));
+        }
+        return banchanDtoList;
+    }
+}

리뷰: `logger` 사용해주세요.
@@ -0,0 +1,57 @@
+package develop.baminchan.service;
+
+import develop.baminchan.dto.BanchanDto;
+import develop.baminchan.dto.CategoryDto;
+import develop.baminchan.entity.Banchan;
+import develop.baminchan.entity.Category;
+import develop.baminchan.repository.BanchanRepository;
+import develop.baminchan.repository.CategoryRepository;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+@Service
+public class CategoryService {
+    private CategoryRepository categoryRepository;
+    private BanchanRepository banchanRepository;
+
+    public CategoryService(CategoryRepository categoryRepository, BanchanRepository banchanRepository) {
+        this.categoryRepository = categoryRepository;
+        this.banchanRepository = banchanRepository;
+    }
+
+    public List<CategoryDto> findAllBestBanchansByCategories() {
+        Iterable<Category> categoryList = categoryRepository.findAll();
+        Set<String> setOfCategoryIds = new HashSet<>();
+        for (Category category : categoryList) {
+            setOfCategoryIds.add(category.getCategory_id());
+        }
+        System.out.println(setOfCategoryIds); //테스트 // null도 들어가나?
+
+        List<CategoryDto> categoryDtoList = new ArrayList<>();
+        for (String category_id : setOfCategoryIds) {
+            categoryDtoList.add(findBestBanchansByCategory(category_id));
+        }
+        return categoryDtoList;
+    }
+
+    public CategoryDto findBestBanchansByCategory(String category_id) {
+        Category category = categoryRepository.findCategoryByCategory_id(category_id);
+        CategoryDto categoryDto = CategoryDto.of(category, findBanchanListByCategoryId(category_id));
+        return categoryDto;
+    }
+
+    private List<BanchanDto> findBanchanListByCategoryId(String catrgory_id) {
+        List<BanchanDto> banchanDtoList = new ArrayList<>();
+        List<Banchan> banchanList = new ArrayList<>();
+
+        banchanList = banchanRepository.findBanchansByCategory_id(catrgory_id);
+        for (int i = 0; i < banchanList.size(); i++) {
+            banchanDtoList.add(BanchanDto.of(banchanList.get(i)));
+        }
+        return banchanDtoList;
+    }
+}

리뷰: `.stream().map()` 사용으로 앞선 for loop이랑 여기까지 없앨 수 있어 보입니다.
@@ -0,0 +1,57 @@
+package develop.baminchan.service;
+
+import develop.baminchan.dto.BanchanDto;
+import develop.baminchan.dto.CategoryDto;
+import develop.baminchan.entity.Banchan;
+import develop.baminchan.entity.Category;
+import develop.baminchan.repository.BanchanRepository;
+import develop.baminchan.repository.CategoryRepository;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+@Service
+public class CategoryService {
+    private CategoryRepository categoryRepository;
+    private BanchanRepository banchanRepository;
+
+    public CategoryService(CategoryRepository categoryRepository, BanchanRepository banchanRepository) {
+        this.categoryRepository = categoryRepository;
+        this.banchanRepository = banchanRepository;
+    }
+
+    public List<CategoryDto> findAllBestBanchansByCategories() {
+        Iterable<Category> categoryList = categoryRepository.findAll();
+        Set<String> setOfCategoryIds = new HashSet<>();
+        for (Category category : categoryList) {
+            setOfCategoryIds.add(category.getCategory_id());
+        }
+        System.out.println(setOfCategoryIds); //테스트 // null도 들어가나?
+
+        List<CategoryDto> categoryDtoList = new ArrayList<>();
+        for (String category_id : setOfCategoryIds) {
+            categoryDtoList.add(findBestBanchansByCategory(category_id));
+        }
+        return categoryDtoList;
+    }
+
+    public CategoryDto findBestBanchansByCategory(String category_id) {
+        Category category = categoryRepository.findCategoryByCategory_id(category_id);
+        CategoryDto categoryDto = CategoryDto.of(category, findBanchanListByCategoryId(category_id));
+        return categoryDto;
+    }
+
+    private List<BanchanDto> findBanchanListByCategoryId(String catrgory_id) {
+        List<BanchanDto> banchanDtoList = new ArrayList<>();
+        List<Banchan> banchanList = new ArrayList<>();
+
+        banchanList = banchanRepository.findBanchansByCategory_id(catrgory_id);
+        for (int i = 0; i < banchanList.size(); i++) {
+            banchanDtoList.add(BanchanDto.of(banchanList.get(i)));
+        }
+        return banchanDtoList;
+    }
+}

리뷰: 여기도 `.stream().map()` 으로 바꿀 수 있습니다.
@@ -0,0 +1,20 @@
+package develop.baminchan.dto.util;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+public class StringConvertor {
+    private StringConvertor() {
+    }
+
+    public static Set<String> convertToSet(String column) {
+        if (column == null) {
+            return null;
+        }
+        Set<String> set = new HashSet<>();
+        String[] arr = column.split(", ");
+        set.addAll(Arrays.asList(arr));
+        return set;
+    }
+}

리뷰: 데이터 변환을 위한 컨버터에 대한 표준 스펙이 있었군요..스프링 문서 전체적으로 꼭 한번 읽어봐야겠네요.
감사합니다.
@@ -0,0 +1,94 @@
+package develop.baminchan.entity;
+
+import develop.baminchan.entity.banchan.BanchanDetail;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.relational.core.mapping.Embedded;
+
+public class Banchan {
+    @Id
+    private Long id;
+
+    private String detail_hash;
+    private String image;
+    private String alt;
+    private String delivery_type;
+    private String title;
+    private String description;
+    private String n_price;
+    private String s_price;
+    private String badge;
+
+    private String tag;
+    private String category_id;
+
+    @Embedded.Nullable
+    private BanchanDetail banchanDetail;
+
+    public Banchan(Long id, String detail_hash, String image, String alt, String delivery_type, String title, String description, String n_price, String s_price, String badge, String tag, String category_id, BanchanDetail banchanDetail) {
+        this.id = id;
+        this.detail_hash = detail_hash;
+        this.image = image;
+        this.alt = alt;
+        this.delivery_type = delivery_type;
+        this.title = title;
+        this.description = description;
+        this.n_price = n_price;
+        this.s_price = s_price;
+        this.badge = badge;
+        this.tag = tag;
+        this.category_id = category_id;
+        this.banchanDetail = banchanDetail;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public String getDetail_hash() {
+        return detail_hash;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public String getAlt() {
+        return alt;
+    }
+
+    public String getDelivery_type() {
+        return delivery_type;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public String getN_price() {
+        return n_price;
+    }
+
+    public String getS_price() {
+        return s_price;
+    }
+
+    public String getBadge() {
+        return badge;
+    }
+
+    public String getTag() {
+        return tag;
+    }
+
+    public String getCategory_id() {
+        return category_id;
+    }
+
+    public BanchanDetail getBanchanDetail() {
+        return banchanDetail;
+    }
+}

리뷰: 다른 리뷰에서 이런 류의 생성자를 굉장히 싫어하신다고 했었는데 여기도 똑같은 부분 맞나요?