분류 전체보기

0.기존방식기존에는 이미지 업로드 기능이 없이 다음처럼 ProductCreateRequestDTO 내부에 url을 받아서 넣는 방식으로 있었기에 이번에 이미지를 업로드해서 하도록 만들었다.@Operation(summary = "판매자 상품 추가", description = "판매자가 새로운 상품을 추가합니다.")@PostMapping("/{memberId}/product/create")@PreAuthorize("hasRole('ROLE_ADMIN') or #memberId == authentication.principal.id")public ResponseEntity createProduct(@Valid @PathVariable Long memberId, @Valid @RequestBody ..
1.RedisConfig Redis를 설정하여 Redis 서버와 연결하고 값은 JSON 형식으로 직렬화하여 Redis에 저장할 수 있도록 설정한 파일을 생성했다.@Configuration@EnableCachingpublic class RedisConfig { @Bean public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) { RedisTemplate template = new RedisTemplate(); template.setConnectionFactory(connectionFactory); template.setKeySerializer(new StringRedisSeri..
1.어노테이션 만들기컨트롤러에서 요청 제한 로직을 직접 작성하는것은 코드가 너무 중복되고 비효율적이라 생각하기때문에 어노테이션으로 만들어서 사용하기로 하였다. 다음은 메서드에 적용하여 런타임동안 유지되고 파라미터로 value와 timeWindow를 받게 하였다.@Target(ElementType.METHOD) // 메서드에만 적용@Retention(RetentionPolicy.RUNTIME) // 런타임까지 유지public @interface RateLimit { long value() default 5; // 초당 허용 요청 수 long timeWindow() default 1; // 제한 시간 (초)}  다음과같은 형태로 어노테이션을 사용할수있다.@Rat..
1.Spring Cache반복적인 연산 결과를 메모리또는 외부 저장소(Redis 등)에 저장하여 성능을 최적화하는 기능이다.이번에는 Redis를 프로젝트에 추가했기때문에 Redis를 사용해서 spring Cache를 사용할것이다.     2.의존성 추가redis 의존성과 spring Cache의존성을 추가한다. org.springframework.boot spring-boot-starter-data-redis org.springframework.boot spring-boot-starter-cache    3.CacheConfig 파일생성@EnableCaching을 통해 Spring Cache를 활성화하고 RedisCacheManager로 Redis를 캐시 저장소로 지정한다.@Conf..
1.Redis(Remote Dictionary Server)키-값(key-value) 구조를 사용하는 NoSQL 데이터베이스      2. Redis 실행하기 (Docker)Docker를 실행하고 다음 명령어를 실행하여 redis 를 실행한다.docker run --name redis -d -p 6379:6379 redis    3.SpringBoot 프로젝트에 Redis 의존성추가Spring Data Redis를 기반으로 하며, Redis 연결, 데이터 저장, 캐싱 등을 편리하게 처리할 수 있도록 도와주는 의존성을 추가한다. org.springframework.boot spring-boot-starter-data-redis    4.Redis 설정 application.propertiessp..
1.Entity 설계우선 기존 Entity에 CartItem , OrderItem 테이블을 추가하였다. 각각 Customer 과 Product에 연결되어있다.  2.SpringBoot Entity 생성2-1.Customer 수정orderedItems,cartItems을 Customer 엔티티에 추가한다CascadeType.ALL로 해서 Customer가 삭제될시 연결된 orderedItems,cartItems를 삭제한다.public class Customer { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToOne(cascade = CascadeType.ALL) @JoinColumn(..
1.@EnableMethodSecurity 설정 (SecurityConfig)EnableMethodSecurity는 메소드 보안을 활성화하는 설정이다.PreAuthorize을 사용하기 위해 prePostEnabled 옵션을 true 로 설정하였다.@Configuration@EnableWebSecurity@EnableMethodSecurity(prePostEnabled = true)@RequiredArgsConstructorpublic class SecurityConfig {}   2.createToken id,role 추가 (JwtTokenProvider)createToken을 할때 claims를 사용하여 PostAuthorize 에 사용할 role과 id를 추가해준다.// JWT 토큰 생성public ..
1.맴버 권한 나누기지금 Member에는 role 로 역할을 나누고 있고 CUSTOMER ,SELLER , ADMIN 은 각각 접근할수있는 엔드포인트가 달라야 하므로 이를 설정할것이다.public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "member_id", nullable = false, unique = true) private String memberId; @Column(nullable = false) private String password; @Column(nullable = false) private St..
아사_
'분류 전체보기' 카테고리의 글 목록 (2 Page)