-
Notifications
You must be signed in to change notification settings - Fork 3
3. 문제를 이렇게 해결했어요!
HyeonKyu edited this page Jan 3, 2022
·
23 revisions
애플리케이션 내에서 필요한 중요정보를 어떻게 관리할지 3가지의 방법을 고민했습니다.
- jasypt를 활용한 정보 암호화 -> Key값 관리, 다른 사람도 복호화할 가능성이 있다고 판단해서 사용하지 않았습니다.
- application 파일 분리 -> application 파일 관리하는데 번거로움을 느껴 사용하지 않았습니다.
- AWS Secrets Manger -> 정보를 손쉽게 교체, 관리 및 사용할 수 있는 AWS Secrets Manger를 사용하게 되었습니다.
기존의 피드에서 댓글만 달 수 있는 기능에서 대댓글 기능을 추가하였습니다.
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity
public class Comment extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "comment_id")
private Long id;
@Column(nullable = false)
private String contents;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "feed_id")
private Feed feed;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id")
private Comment parent;
@OneToMany(mappedBy = "parent")
private List<Comment> child = new ArrayList<>();
private void setParent(Comment parent) {
this.parent = parent;
}
// 댓글 생성자
public Comment(Feed feed, String contents, User user) {
CommentValidator.validateCommentCreate(contents, user, feed);
this.contents = contents;
this.feed = feed;
this.user = user;
}
// 대댓글 생성 함수
public static Comment createChildComment(Feed feed, String contents, User user, Comment parent) throws ApiRequestException {
CommentValidator.validateChildCommentCreate(contents, user, feed, parent);
Comment comment = new Comment(feed, contents, user);
comment.setParent(parent);
return comment;
}
}
프로젝트 진행 중 자바 log4j 라이브러리에 보안 취약점이 발견되어 큰 이슈가 되었습니다.
build.gradle에서 log4j의 버전을 올려주어서 해결했습니다.
ext['log4j2.version'] = '2.15.0'