본문 바로가기

분류 전체보기

(53)
(Spring) 발생할 가능성은 언제든지 있다!! StackOverflowError 금일 발생한 문제는 StackOverflowError 이다  StackOverflowError 는 재귀 함수를 많이 호출한 나머지 스텍 메모리가 초과해서 발생하는 애러라고 볼 수 있다 우선 나는 처음에 해당 문제에 대한 인지를 못하고 있고 내가 맵핑하지 않은 애러 메세지만 떴기 때문에 JWT 인증 문제인 줄 알았다 그러나 로그를 확인해보니까  at com.yoong.myissue.domain.team.dto.TeamResponse$Companion.from(TeamResponse.kt:16) ~[main/:na] at com.yoong.myissue.domain.issue.entity.Issue.toIssueResponse(Issue.kt:79) ~[main/:na] // X100이런 애러가..
(프로젝트) 2차 프로젝트 마무리 회고 Keep팀 분위기가 재미있고 유쾌한 편이라서 심적으로 보다 편한 상태에서 프로젝트를 진행했던 것 같습니다예전 팀에서 많이 진행하지 못했던 테스트를 보다 많이 진행해서 다양한 버그를 잡음이번 프로젝트 때는 전부 적용하지는 못했지만 제일 중요한 메서드외 Seivice 기준으로 테스트 코드도 작성을 하면서 다양한 시도를 하면서 테스트를 했다고 생각 합니다필요한 부분이 있다면 시간을 아끼지 않고 바로 테스트를 시도했다 Problem배운 것에 비해서 스코프가 짧았음특히 Spring Security 나 OAuth 같은 경우에는 추가로 공부해야 할 만큼 보완이 필요한 부분이었지만 해당 부분을 다루지 않고 넘어간 부분이 가장 아쉽다 ( 권한을 이번 프로젝트에서 제일 많이 다루기는 했지만 Spring Security를 ..
[Spring / QueryDSL] UnsatisfiedDependencyException, Error creating bean with name 해결 Spring에서 JPA와 QueryDSL 을 동시에 도입 하는 방법은 여러가지가 있는데 그중 2가지를 소개해보자면 Service Layer에서 생성자로 JpaRepository, QueryRepository를 동시에 주입 시키는 방법이 방법은 가장 직관적이고 쉽게 사용하는 방법이다따로 각각의 Repository를 만들어서 Service에서 같이 생성자를 주입받는 방법이다하지만 Service객체의 결합도가 높아진다는 단점이 있다@Service@Transactionalclass TeamService( private val teamRepository: TeamRepository, private val queryDslTeamRepository: QueryDslTeamRepository) 2. 추상적인..
(Spring) 인증 개발을 하면서 겪은 다양한 버그들 1. Error creating bean with name 'jwtPlugin' defined in file여러가지 원인이 있을 수가 있었다Jwt의 의존성이 제대로 적용이 안되어 있을 수 있다application.yml 파일에 설정을 제대로 적용을 안했을 수도 있다JwtPlugin에 @Component Annotation을 붙여주지 않았다나는 이번에 확인 시 에 2번 application.yml 파일에 설정을 제대로 되지 않은 문제가 있었다 정확하게 말하면 주입 받는 생성자에 제대로 된 경로를 적어주지 않아서 발생한 문제였다 따라서 해당 경로를 수정해주면서 문제를 해결 했다AS-IS@Componentclass JwtPlugin( @Value("\${jwt.issuer}") private val is..
(Spring) Type mismatch: inferred type is Duration but TemporalAmount! was expected 애러 해결 금일 인증 토큰을 생성하는 JwtPlugIn 을 만드는 과정에서 뜬금없이 Type mismatch: inferred type is Duration but TemporalAmount! was expected 이런 컴파일 애러를 확인 했다 fun generateToken(subject: String, email: String, role: String, expirationPeriod : Duration): String{ val key = Keys.hmacShaKeyFor(secret.toByteArray(StandardCharsets.UTF_8)) val now = Instant.now() val claims: Claims = Jwts.claims() ..
(프로젝트) 프로젝트 마무리 회고 Keep협업 과정이 마음에 들었다실무처럼 하는 느낌을 받을 수 있었다팀 분위기가 좋았다충분한 휴식, 평소 대화는 적지만 리뷰와 스크럼 회고는 적극적으로 참여하였다군더더기 없는 일정 관리가 된 것 같다이슈 트러블 슈팅이 잘 진행됐다슬랙이든 회고든 이슈 관리는 잘 되었다고 느껴졌다Problem코드 스타일 쪽도 컨벤션 조금 더 맞았으면 좋았을 것 같다충돌 해결과 리뷰를 진행하며 코드 스타일 정립의 필요성이 느껴졌다테스트의 절대적인 양이 부족했다사람이 적기도 했지만 많은 시도를 해보기엔 노하우도 부족했고 불충분한 시간이었다이벤트 스토밍 / ERD 설계 과정에서 나와야할 API가 명세서에 기록되지 않았다명세서 자체도 리뷰코드를 읽는 과정이 어려웠다레퍼런스를 찾는 데에 어려움이 있었다Try다음 프로젝트도 컨벤션 -..
(Spring) HTTP 프로젝트 HTTPS로 업그레이드 하기 HTTP와 HTTPS란??HTTPHyper Text Transfer Protocol의 약자서로 다른 시스템들 사이에서 통신을 주고 받게 하는 가장 기본적인 프로토콜서버에서 브라우저로 데이터를 전송하는 용도로 가장 많이 사용한다전송되는 요청 / 응답 정보가 기본적으로는 암호화 되어 있지 않아서 보안 정보 도난의 위험이 있다HTTPSHyper Text Transfer Protocol Secure 의 약자HTTP의 보안정보와 도난의 단점을 보완하기 위해 사용하는 프로토콜SSL / TLS 프로토콜을 사용하여 HTTP를 암호화 하여 주고 받을 때 쓰는 통신 프로토콜진행 방식인증서를 발급해준다로컬에서 테스트 할 경우 인증서를 application에 등록해준다코드로 HTTP 접속을 전부 HTTPS로 이동 시킨다인증서..
(Spring) 복합키 설정 시 entitynotfoundexception unable to find with id 0 애러 해결 로직 구성부모 Entity가 생성이 되는 로직에서 자식 Entity가 동시에 생성이 되는 로직여기서 자식 Entity는 3개의 복합키를 가지고 있는 Entity이다// 부모... 이상 생략starScoreService.giveCommentScore(reviewResult, userResult, result, score)commentRepository.save(result)... 이하 생략// 자식 @Transactional fun giveCommentScore(review: Review, user: User, comment: Comment, starScore:Float){ val result = StarScore.create(user, review, comment, starSco..