본문 바로가기

전체 글190

[Dev] 23.01.26. 게시글 목록 조회 시 참조 링크 조회하지 않기 현재 게시글의 List만을 불러오는 것에 참조 링크의 정보는 필요가 없는데, 불필요한 요청으로 인하여 select query가 동작하고 있어서 이를 수정해야 할 필요성을 느낀다. 이는 client로 data를 전달할 DTO로 변환하는 과정에서 무조건적으로 참조링크의 정보를 가져오도록 되어 있을텐데, 이를 단순히 목록만을 가져오는 것에 그친다면 select query 가 수행되는 것을 저지할 수 있다. 문제가 되는 부분은 Recipe Entity 의 DTO 로 변환하는 method에 있다. 단순히 게시글의 목록만을 return 하는 경우에도 이미지의 빨간 네모 부분이 동작하기 때문에 발생하는 문제다. 이를 분리해주면 되겠다. 작업 Recipe.java (...) public RecipeDto toDto().. 2023. 1. 26.
[Dev] 23.01.26. JPQL을 활용한 게시글 data join select (feat. fetch join) 지난 게시글에서의 고찰 2 select 두 번 vs. join 한 번 Recipe 입장에서 Link와 Comment는 모든 정보를 필요로 한다지만 Recipe 입장에서 writer는 SpUser의 모든 정보를 필요로 하는 것이 아니다. 현 상황에서 Recipe 하나의 정보를 가져오는 것에 수행되는 query 문은 recipe table select 한 번, sp_user table select 한 번으로 총 두 번이다. 그런데 이를 아예 jpql을 사용해서 한 번의 select로 가져오는 건 어떨까? 두 번 select 하여 값을 DTO에 담아 response 하는 것이 아니라, query 문의 join을 활용하여 한 번에 조회한 뒤에 DTO에 담에 response 하는 방식이 더 좋은 방식이지 않을까?.. 2023. 1. 26.
[Dev] 23.01.21. Service Layer에서 UserDetails 분리 지난 게시글에서의 고찰 1 Spring Security를 활용한 로그인 방식에 의존성이 생긴다? 사실 작업의 과정은 어렵지 않았고, 오래 걸리는 것도 아니었다. 하지만 바꾸고 보니 드는 생각이 있었다. 이런 식으로 로그인에 성공한 Principal 객체를 service logic에서 활용한다면, 이와 같은 로그인 방식을 사용하는 사이트에 한정되는 개발 방식이라는 생각이다. 이 상황에 만약 로그인 방식이 바뀌기라도 한다면? 그럼 활용했던 UserDetails 인 SpUser 객체와 관련된 모든 항목에 대한 수정 작업이 동반될 것이다. 그럼 로그인에 사용되는 UserDetails인 SpUser 외에, 따로 Member에 대한 Entity를 만들고 이를 table로 해야하는 것일까? 회원 가입 시에는 이 Me.. 2023. 1. 21.
[Dev] 23.01.18. 게시글 작성 및 수정, 댓글 작성 (feat. Database Normalization(데이터베이스 정규화)) 국비 과정에서 필자가 작업했을 때도, 이번 작업에서도 필자는 동일하게 Database Normalization에 대한 생각을 하지 않고 있었다. Database Normalization (데이터베이스 정규화) 는 관계형 데이터베이스의 설계에서 중복을 최소화하도록 데이터를 구조화하는 과정이라고 하는데, 필자는 이에 대한 고민을 전혀 하고 있지 않았던 것이다. 고민을 하고 있지 않다는 사실을 지난 밤 지인에게 다른 항목에 대한 방향성을 의논하던 중에 알게 되었으며, 다른 것보다 이것이 중요하다고 판단되어 먼저 고찰을 하고 있다. 현 상황 지금 상황은 다음과 같다. 사용자의 data를 저장하는 table에서는 사용자의 닉네임 data를 저장하고 있다. 사용자가 작성한 게시글의 data를 저장하는 table에서.. 2023. 1. 18.
[Dev] 23.01.11. 사용자 정보 수정 (기능은 구현했으나 미완) 마이 페이지의 프로필에 대한 페이지 구성이 끝났으니, 이어서 사용자 정보를 수정하는 작업을 기록하겠다. 사실 이 작업은 생각과는 많이 달라졌다. 처음에는 당연하게도 닉네임과 비밀번호를 한 번에 수정하는 방향이 좋다고 생각했다. 하지만 닉네임만을 변경하고 싶고, 비밀번호만을 변경하고 싶을 수 있다는 점을 생각하게 되었다. 하지만 두 항목을 한 form에 몰아놓는 방향으로 구성하려니 괜히 더 복잡해지는 느낌이었다. 그래서 이 둘을 분리하게 되었다. 작업 프로필 정보 수정 UserController.java // 마이 페이지에서 닉네임 변경 @PostMapping("/user/profile/nickname") public ResponseEntity updateNickname(@Valid UserDto user.. 2023. 1. 11.
[Dev] 23.01.05. 마이 페이지 구성 사용자 정보를 수정하는 기능에 앞서 마이 페이지를 구성했다. 12월 29일의 게시글을 기준으로 일주일 정도 시간이 지났는데, 연말이고 연초이기 때문인 것은 아니고 그저 조금 게을렀고 작업했던 내용을 되돌렸기 때문이다. 그래서 생각보다 작업 내용은 간단하다. 작업 my-page.html My Page 내 게시글 글쓰기 글 삭제 프로필 회원 탈퇴 내 글 모아보기 로그인 시에 navigation bar에서 볼 수 있는 마이 페이지 버튼을 통해 이동할 수 있는 마이 페이지에 대한 markup 이다. 이전에 댓글 관련 작업을 할 때에 댓글 작성 시 화면 전환 없이 화면을 동적으로 구성하려고 했으나 포기했던 적이 있다. 이번에는 그것을 가능하게 할 수 있는 방법을 찾아내어 사용해보았다. 보여지는 코드의 tag 마지.. 2023. 1. 5.