[이커머스 프로젝트] 주문 로직 - 리팩토링 3 (문제 발생)
·
Web/Spring Boot
이전글에서 이어지는 내용[이커머스 프로젝트] 주문 로직 - 리팩토링 2 (제네릭과 리플렉션) [이커머스 프로젝트] 주문 로직 - 리팩토링 2 (제네릭과 리플렉션)이전글에서 이어지는 내용[이커머스 프로젝트] 주문 로직 - 전략 패턴 적용(리팩토링) [이커머스 프로젝트] 주문 로직 - 전략 패턴 적용(리팩토링)초기 코드현재 주문로직은 상품을 직접 주문하mrxx.tistory.com 문제 발생Caused by: java.lang.ClassCastException: class java.lang.Class cannot be cast to class java.lang.reflect.ParameterizedType (java.lang.Class and java.lang.reflect.ParameterizedType ..
[이커머스 프로젝트] 주문 로직 - 리팩토링 2 (제네릭과 리플렉션)
·
Web/Spring Boot
이전글에서 이어지는 내용[이커머스 프로젝트] 주문 로직 - 전략 패턴 적용(리팩토링) [이커머스 프로젝트] 주문 로직 - 전략 패턴 적용(리팩토링)초기 코드현재 주문로직은 상품을 직접 주문하는경우와 장바구니의 상품을 주문하는 경우로 나뉘어있다.상품을 직접 주문할때는 수량을 선택하여 주문하지만장바구니에 담긴 상품을 주문할때mrxx.tistory.com  문제점 발견이전에 전략패턴을 적용해보았는데 뭔가 잘못됨을 느꼇다public Order createOrderByProduct(OrderByProductRequest request, Member member) throws CustomException { Address address = addressQueryService.getAddress(request...
[이커머스 프로젝트] 주문 로직 - 전략 패턴 적용(리팩토링)
·
Web/Spring Boot
초기 코드현재 주문로직은 상품을 직접 주문하는경우와 장바구니의 상품을 주문하는 경우로 나뉘어있다.상품을 직접 주문할때는 수량을 선택하여 주문하지만장바구니에 담긴 상품을 주문할때는 장바구니에 담긴 수량만큼 주문하기위해 나눠놓았다public Order createOrderByProduct(CreateOrderByProductRequest request, Member member) throws CustomException { Address address = addressQueryService.getAddress(request.getAddressId()); Order order = Order.createByProduct(request, member, address); ProductVariant ..
[이커머스 프로젝트] 상품 옵션 검증 로직 (리팩토링)
·
Web/Spring Boot
초기 코드/* request 에 categoryOption 이 누락되었는지 검증 */private void validateProductRequestContainsNeedOptions(CreateProductRequest request) throws CustomException { List categoryOptions = categoryOptionService.getCategoryOption(request.getCategoryId()); Set needOptionIdSet = categoryOptions.stream() .map(CategoryOption::getId) .collect(Collectors.toSet()); requ..
[회고록] 구름톤 유니브 10~11월 회고록
·
이것저것/구름톤유니브
구름톤 유니브의 마지막 회고록스터디 마무리파트별로 진행하던 스터디가 마무리 되었다.우리 백엔드 팀은 인프런 강의를 통해 MSA를 학습하였는데 팀원 모두 열정적으로 학습하며 나도 같이 동기부여가 되었던 좋은 스터디였었다. 스터디 기간은 끝나서 마무리 되었지만 아직 강의의 절반도 듣지않았다. 워낙 양이 방대하고 학습해야할것도 많아 진도를 많이 나가진 못하였지만 추후에 개인적으로 강의를 끝 마칠 생각이다. 이번 스터디를 통해 처음 알게된 MSA이지만 학습하며 굉장히 재미있었고 좋은 팀원들을 만나 같이 성장할 수 있었다는 점이 가장 기억에 남는다.9CUON구름톤에 참여한 모든 파트가 모여 교내 세미나를 진행하였다. 각각의 파트에서 그동안 무엇을 어떻게 공부하였는지 발표하는 시간이였고 내가 속한 백엔드 팀인 "봄..
[회고록] 구름톤 유니브 9월 회고록
·
이것저것/구름톤유니브
9월 동안 굉장히 바빴다. 개강과 더불어 개인 프로젝트, 졸업 작품, 스터디 등등 할일이 너무 많았다.파트 별 스터디우리 BOM팀은 백엔드 파트 팀으로 저번달에 정한 인프런의 MSA강의를 주제로 스터디를 진행하였다. 이번 스터디동안 강의를 수강하며 학습한 내용을 깃허브에 올려서 정리하였다. 직접 MSA를 실습해보며 Spring Cloud Netflix Eureka를 통해 Service Discovry를 구현해보고, Spring Cloud Gateway를 통해 API Gateway도 구축해 보았다. 처음 접하는 분야를 새로 배우는것은 즐거운거같다.  KDC [08/27 개강] 47기 오늘부터 웹 개발 - 인공지능 맛보기 학습현재까지 Django를 이용해 설문조사 웹서비스를 만들어 보았다. 오래전에 Djan..
[Spring Boot] Redis Cache - 1
·
Web/Spring Boot
프로젝트에 캐시를 적용하기위해 redis를 사용하기로 하였다.Redis 기본설정build.gradle 의존성 추가implementation 'org.springframework.boot:spring-boot-starter-data-redis' yml 설정spring: data: redis: host: localhost port: 6379 @Configurationpublic class RedisConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private int port; @Bean public RedisConnectionFactory redisCo..
[Spring Boot] QueryDsl 적용기 - 1
·
Web/Spring Boot
QueryDsl이란querydsl은 sql, jpql등 Java 코드로 작성할수있게 해주는 프레임워크이다 QueryDsl 동작 과정jqpl은 개발자가 직접 문자열 형식으로 jqpl을 작성하여 entity manager에게 전달한다.querydsl을 사용하게된다면 개발자는 java코드로 querydsl 문법에 맞게 작성한뒤 요청한다. 그리고 querydsl이 자동으로 jpql을 작성하여 entity manager에게 요청을 보내는 방식이다.JPQL vs QueryDsljpql(문자열) - querydsl(코드)jpql은 문자열로 동적쿼리를 생성하기 불편하고 타입 안정성이 떨어진다. 그에반해 querydsl은 java 코드로 동작하므로 컴파일시 에러를 체크할수있고 타입 안정성 측면에서 뛰어나다.QueryDs..
Junyoung.dev
'분류 전체보기' 카테고리의 글 목록 (2 Page)