본문 바로가기

Code Analysis/daangn-market-used-trading

[#14] 거래 게시판 기능 구현

https://github.com/f-lab-edu/daangn-market-used-trading/pull/19/commits

 

[#14] 거래 게시판 기능 구현 by ssibongee · Pull Request #19 · f-lab-edu/daangn-market-used-trading

This repository has been archived by the owner. It is now read-only. Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull re

github.com

 

 

 

번외 ) DTO는 toEntity 메서드나 of 메서드 필요하면 생성.. 이름은 컨벤션.

형식 : Entity toEntity(DTO)

이거나

DTO of(Entity)

 

 

 

번외2) @Builder를 클래스에 붙이면 전체 필드에 값을 넣고 .build() 해야하고 

특정 필드만 있는 생성자에 @Builder 붙이면 그 필드만 넣고 .build() 할 수 있음.

 

 

=====

[#14] 카테고리의 변경 가능성을 고려하여 데이터베이스에서 관리하도록 엔티티 클래스로 변경

엔티티 기본생성자를 public이나 protected 로 놓는 이유.

 

먼저 protected로 기본 생성자를 생성한 이유는 '기본생성자 + setter를 이용한 무분별한 엔티티의 값 변경을 막기 위해서'입니다.  그리고 생성자를 private 으로 생성하지 않는 이유는 결과적으로는 프록시 객체 생성을 위해서기도 한데, 좀 더 자세하게 말씀을 드리면 프록시 객체가 타깃 객체를 상속해서 만들기 때문입니다. JPA에 기본생성자가 필요한 이유랑 기본생성자의 scope를 private으로 설정하지 않는 이유에 대해서 조금 더 자세하게 설명해놓은 링크를 첨부합니다. :)

https://velog.io/@yyy96/JPA-%EA%B8%B0%EB%B3%B8%EC%83%9D%EC%84%B1%EC%9E%90

JPA 는 매핑한 엔티티를 조회 할 때 Eager, Lazy 중 하나를 사용한다. 이때 지연로딩(LAZY)을 사용할 경우 임시로 hibernate가 생성한 proxy 객체를 생성하고 가리키게 된다.

 

 

 

=====

 

https://github.com/f-lab-edu/daangn-market-used-trading/pull/19/commits/9d98bc7523a70618b548b07bb13a28c0f259dfd7

Category 캐싱에 대한 아이디어.

 

 

https://github.com/f-lab-edu/daangn-market-used-trading/pull/19/commits/661f7df71f68388b478741e3e66d382a507018a4

 

[#14] 거래 게시판 기능 구현 by ssibongee · Pull Request #19 · f-lab-edu/daangn-market-used-trading

This repository has been archived by the owner. It is now read-only. Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull re

github.com

 

 

=====

 

한줄씩 읽어보며 흐름만 파악함.

이제 파라미터의 member 가 Address, Location 없으면 createNewPost 메서드 실행 안됨.

 

 

=====

 

Jackson의 ObjectMapper

 

 

=====

 

deleted 변수에 대한 변수명, 테이블칼럼명

 

 

 

=====

 

 

 

 클라이언트가 콘텐츠에 접근할 권리를 가지고 있지 않다는 의미의 403 Forbidden 상태코드 정의

 

 

=====

 

 

Authentication vs Authorization

 

한 단어로 표현하니 확실히 더 쉽게 이해가 됩니다. 웹앱의 관점에서 볼 때 Authentication(인증)은 로그인 자격 증명을 확인하여 로그인 한 사용자를 인식하는 것이며, Authorization(권한 부여)는 액세스 제어로 사용자가 읽기, 수정, 삭제를 허용하는지 여부를 확인하는 것입니다. 권한 부여는 사용자의 신원이 성공적으로 인증 된 후에 발생합니다.  그럼 인증과 권한 부여, 이 둘에 대해 좀 더 자세히 살펴보겠습니다.

 

  •  인증(Authentication)과 인가(Authorization)에 대한 개념의 차이와 의미에 대해 명확하게 인지하기
  • 인증이란 서버에서 클라이언트가 누구인지를 확인하는 것을 의미한다.
    • 예를들어 클라이언트가 누구인지 확인하는 절차와 회원가입, 로그인 등이 이에 해당한다.
  • 인가란 클라이언트가 처리하고자하는 작업에 대해 클라이언트가 해당 권한을 가지고 있는지를 의미한다.
    • 예를들어 게시글 수정과 삭제 같은 작업을 시도할 때 클라이언트가 해당 게시물에 대한 권한을 가지고 있는지 확인하는 것이 이에 해당한다.
Recent Posts
Popular Posts
Recent Comments