본문 바로가기

스테이츠 코드(백엔드)/Main Project13

[Main Project] 내가 적용한 기술 설명 JWT 및 부가기능 (통합서비스 사용) 1. 도메인 분리 도메인의 연관관계를 최소화 하기위해서 각 도메인의 연관관계를 최소화 하기 위해 다 끊어내고 정말 연관성이 깊은 도메인에만 연관관계를 사용해서 N+1, 무한 참조같은 소스낭비나 오류로부터 미연에 방지 2. JWT 구현 JWT Interface 를 통해서 secret key, expiration_time, Header 값을 설정해서 추후에 변경이 있을 때 손쉽게 수정, 관리할 수 있게 구현 토큰에는 id, email, username만 포함하여 유출시 위험성을 방지함 회원과 기업의 권한을 분리해서 로그인 후 토큰에 부여된 권한내에서 각 URL에 접근할 수 있도록 함 3. 좋아요 기능 게시물 postID와 일반 회원의 usersId를 필드값으로 가지는 .. 2022. 10. 7.
[Main Project] Nginx Load Balancer 설정 로드 밸런서 설정 (서버가 죽었을 때 다른 서버에서 정상 작동) event { worker_connections 1024; } http { include mime.types // redirect all traffic to Https http 요청을 https 로 redirect server { listen 80; server_name [server_ip]; return 301 https://$host$reqeust_uri; } server { listen 443 ssl http2; server_name [server_ip]; root /sites/demo; index index.html ssl_certificate /etc/nginx/ssl/self.crt ssl_certificate_key /etc/n.. 2022. 10. 3.
[Main Project] 게시글 좋아요 구현 좋아요 설정에 필요한 클래스 LikesController LikesEntity LikesService LikesRepository LikesController Class @RestController @RequestMapping("/v1") @Slf4j @RequiredArgsConstructor public class LikesController { private final LikesService likeService; @PostMapping("/likes/{posts-id}") public ResponseEntity addLike(@PathVariable("posts-id") Long postsId , @AuthenticationPrincipal PrincipalDetails principal) { l.. 2022. 9. 29.
[Main Project] Spring Security + JWT 설정 Dependencies implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'com.auth0:java-jwt:4.0.0' Spring Security + JWT 설정에 필요한 클래스 SecuritConfig CorsConfig PrincipalDetailsService PrincipalDetails JwtAuthenticationFilter JwtAuthorizationFilter JwtProperties SecurityConfig Class @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig { p.. 2022. 9. 29.