본문 바로가기

분류 전체보기

(484)
[Spring] Store - CartModel / REST API REST API를 사용하여 CART(장바구니) 서비스 구현 DB 관계도 하나의 product가 여러개의 cart item에 담겨 여러개의 cart에 담길 수 있다. List은 DB에 따로 저장하지 않는다. Cart와 CartItem 생성 -Cart.java package kr.ac.hansung.cse.model; import java.util.ArrayList; import java.util.List; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString public class Cart { private int id; private List cartItems = new ArrayList()..
[Spring] Store - Product Detail Product의 info 아이콘을 를 누르면 Product Detail 페이지 (상세 페이지)로 이동할 수 있도록 구현한다. 뷰 수정 width:100% -> 50% style의 width를 줄여 이미지 크기를 줄여주었다. fontawesome 페이지에서 아이콘 가져오기(잘 작동되지 않으니 참고만 하기) https://fontawesome.com/ Font Awesome The world’s most popular and easiest to use icon set just got an upgrade. More icons. More styles. More Options. fontawesome.com 해당 코드를 카피하여 아이콘을 넣고 싶은 곳에 복사해준다. All Products 착한 가격으로 상품을 살펴..
[Spring] Store - Register User / Spring security Spring security를 활용한 유저 등록 기능 구현 user와 shippingaddress class 추가생성 -User.java package kr.ac.hansung.cse.model; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; i..
DFS - 조합과 순열 조합과 순열 조합 nCr (조합) 조합은 순서가 상관이 없는 모임을 의미한다. 순서가 상관 없기 때문에 { 1, 2, 3 }, { 1, 3, 2 } , { 2, 1, 3} 모두 같은 것으로 취급을 한다. (3, 6, 9)에서 숫자 2개로 구성된 조합을 구한다면 -> (3, 6), (3, 9), (6, 9) 순열 nPr (순열) 순열이라는 것은 주어진 수열에서 순서에 따라 결과가 달라지는 방식을 의미한다. 즉 순서가 존재함을 의미한다 즉 순열에서 { 1, 2, 3 } 과 { 1, 3, 2 } , { 2, 1, 3 } 은 모두 다른 결과를 가져온다. (3, 6, 9)에서 숫자 2개로 구성된 순열을 구한다면 -> (3, 6), (3, 9), (6, 3), (6, 9), (9, 3), (9, 6) DFS로 구현..
[프로그래머스] 정렬 - 가장 큰 수 / multimap, sort, compare 문제 풀이 #include #include #include using namespace std; string solution(vector numbers) { string answer = ""; multimap map; for(auto number : numbers){ string n = to_string(number); while(n.size() < 4) { // numbers의 원소는 0 이상 1,000 이하 n = n + n; } n = n.substr(0, 4); map.insert(make_pair(n,to_string(number).size())); } for(auto m : map){ string str = m.first; answer = str.substr(0, m.second) + answ..
[프로그래머스] 프린터 - 스택/큐, max_element, min_element 문제 풀이 #include #include #include using namespace std; int solution(vector priorities, int location) { queue q; int index = location, j, next, count = 0; bool en_pop = true; for(int pri : priorities){ q.push(pri); } while(1){ en_pop = true; j = q.front(); q.pop(); if(q.empty()){ count++; break; } int size = q.size(); for (int i=0; i j) en_pop = false; q.push(next); } if(!en_pop){ // 더 높은 우선순위가 있음..
[Spring] 파일 업로드 중복 제거 - UUID 파일 업로드 기능을 구현하면서, 기존 코드에서는 파일의 이름을 바꾸지 않고 그대로 업로드했는데, 이 경우 같은 이미지의 데이터 두 개 올린 후, 둘 중 하나의 데이터를 지울 경우 다른 한쪽의 이미지도 함께 삭제되어 보이지 않게 되었다. 파일명만 같고 내용이 다른 파일을 사용자가 업로드 하게 된다면, 이전의 파일이 소실되는 문제 또한 발생할 수 있다. 따라서 파일명을 중복되지 않게 저장하는 방법이 필요하다. 파일명에 업로드시간 ( timestamp)를 붙여주기 랜덤 한 문자열(UUID)을 생성하여 파일명 앞에 붙여주기 이 포스트에서는 UUID를 활용해보았다. 랜덤 한 문자열을 생성하여 파일명 앞에 붙여주기 - UUID UUID uuid = UUID.randomUUID(); Path savePath = Pa..
[REST API] 프로젝트 생성 개발환경 준비 이용한 maven 라이브러리 jackson-databind : 버전 - 2.8.5 lombok : 버전 - 1.16.10 com.fasterxml.jackson.core jackson-databind 2.8.5 org.projectlombok lombok 1.16.10 Controller생성 -RestApiController.java @RestController // @Controller + @ResponseBody @RequestMapping("/api") public class RestAPIController { @Autowired UserService userService; // --- Retrieve All Users 모든 사용자 조회 @RequestMapping(value="/us..