본문 바로가기

분류 전체보기208

[Java Spring] CascadeType.REMOVE와 orphanRemoval = true Level.3 과제를 하면서 게시글과 댓글을 구현하고 삭제하는 과정에서 생긴 궁금증이다. 게시글을 삭제할때 해당 게시글에 달린 댓글 까지 같이 삭제하는 과정에서 CascadeType.REMOVE와 orphanRemoval = true의 차이점이 뭘까라는 궁금증이 생겼다. 그래서 기술매니저님께 질문했다. 자세하게 답변해주셨고 그걸 토대로 자료도 첨부해서 정리해 보았다. 아래는 코드를 실행한 결과다. // 댓글 코드 // 게시글 하나에 댓글이 여러개 생성할 수 있다. // 게시글 : 댓글 = 1 : N -> 양방향 관계다 @Getter @Entity @NoArgsConstructor public class Comment extends Timestamped { @Id @GeneratedValue(strateg.. 2023. 9. 9.
[WIL] DI, IoC, Bean를 공부하며... DI, IoC, Bean 이 3가지 단어를 보자마자 이 친구들은 뭘까? 하고 생각했다. 강의를 보면서 이해한 바로는 DI와 IoC는 서로 뗄 수 없는 디자인과 설계도라고 생각했고 Bean은 필요한 클래스들을 객체로 등록할 수 있게 해 준다고 이해했다. 강의를 듣고 알게 된 것은 위의 3가지가 Springboot에서 코드를 쉽게 구현할 수 있게 해 준다는 사실이다. 전체적으로 이번주를 마무리 하면서 느낀 것은 앞으로 갈길이 멀다는 거다. 강의를 듣고 코드를 따라 치면서 이해했지만 손수 코드를 직접 100% 짜기에는 많이 미숙하고 더 배워야 한다. 그래서 결론은 다른 분들의 코드도 많이 보고 자기 스스로 코드를 직접 구현해 보는 연습을 많이 해야겠다는 생각을 강의를 보면서 다시 하게 됐다. 약간의 쉼은 필요.. 2023. 9. 3.
[Java Spring] 숙련 1 주차 강의 - PART 2 JWT 다루기 build.gradle에 JWT dependency를 추가한다. application.properties에 가서 추가할 부분 추가한다. JWTUtil을 만들어서 JWT 관련 기능을 동작하게 한다. JWT 관련 기능은 5가지가 있다. JWT 생성하기 - 생성할 때 사용자의 권한 정보를 넣는데 Key - Value 형식으로 정보를 넣는다. 확인할 때는 Key 값으로 확인하면 된다. 생성된 JWT를 Cookie에 저장하기 Cookie에 들어있던 JWT 토큰을 Substring 한다. - 토큰의 시작값이 Bearer이 맞는지 확인하고 맞으면 순수 JWT를 반환하기 위해 Substring을 사용해서 Bearer을 잘라낸다. JWT를 검증한다. - secretKey에 key 값을 넣어서 JWT의 위변.. 2023. 9. 1.
[Java Spring] 숙련 1 주차 강의 - PART 1 Bean을 수동으로 등록하는 방법 @Component를 사용하면 해당 클래스를 자동으로 등록을 해줬다. 프로젝트가 커지면 커질수록 Bean이 많아져서 저렇게 자동으로 등록하는 것이 좋다고 배웠다. 기술적인 문제 혹은 공통적인 관심사를 처리할 때는 수동으로 등록하는 것이 좋다고 한다. 공통 로그처리처럼 부가적이고 공통적인 기능들을 기술지원 Bean이라 부르고 수동등록 한다. 수동등록한 Bean 은 문제가 발생하면 그 위치를 파악하기 쉽다는 장점이 있다. 인증과 인가 인증 - 해당 유저가 실제 그 유저가 맞는지 확인(인증) 하는 개념이다. 인가 - 접근의 범위를 허가하는 것이다. 쿠키-세션 방식의 인증 '특정 유저가 로그인 되었다 '는 상태를 저장한다. 정보를 다 가지고 있는 것이 아닌 일부분의 정보만 서버.. 2023. 8. 31.