2023-02-01-TIL

Today I Learned

Package Structure

우선, 계층형 구조를 기반으로 시작할 지, 도메인을 중심으로 시작할 지를 정해야 한다.

  • https://velog.io/@jsb100800/Spring-boot-directory-package
  • https://medium.com/sahibinden-technology/package-by-layer-vs-package-by-feature-7e89cde2ae3a

DTO, DAO, VO, POJO

그냥 컨트롤러에서 사용하는 요청/응답 객체는 Response/Request라고 네이밍하고, 그 외의 계층간에 데이터 전송 시에는 DTO네이밍을 사용한다. VO는 사용하지 않고 enum이나 VO를 정의할 때는 그냥 객체이름만 사용한다. 엔티티도 마찬가지로 객체이름만 사용하여 정의한다.

  • https://blog.devgenius.io/dao-dto-po-so-bo-vo-wtf-6673c9dd5437
  • https://www.quora.com/What-is-DTO-DAO-and-VO-in-Java
  • https://adambien.blog/roller/abien/entry/value_object_vs_data_transfer
  • https://www.adam-bien.com/roller/abien/entry/how_evil_are_actually_data
  • https://www.baeldung.com/java-pojo-javabeans-dto-vo
  • https://stackoverflow.com/questions/1612334/difference-between-dto-vo-pojo-javabeans
  • https://maenco.tistory.com/entry/Java-DTO%EC%99%80-VO%EC%9D%98-%EC%B0%A8%EC%9D%B4
  • https://youngjinmo.github.io/2021/04/dto-vo-entity/

Entity Setter 사용금지

  • https://velog.io/@aidenshin/%EB%82%B4%EA%B0%80-%EC%83%9D%EA%B0%81%ED%95%98%EB%8A%94-JPA-%EC%97%94%ED%8B%B0%ED%8B%B0-%EC%9E%91%EC%84%B1-%EC%9B%90%EC%B9%99
  • https://multifrontgarden.tistory.com/293
  • https://jeongkyun-it.tistory.com/221
  • https://www.inflearn.com/questions/16235/%EC%83%9D%EC%84%B1-%EB%A9%94%EC%84%9C%EB%93%9C-setter-%EC%A7%88%EB%AC%B8

Google Pagination

  • https://stackoverflow.com/questions/19118532/pagination-in-sql-performance-issue
  • https://docs.gitlab.com/ee/development/database/pagination_performance_guidelines.html
  • https://developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading?hl=ko
  • https://developers.google.com/search/blog/2011/09/pagination-with-relnext-and-relprev

Pagination Design Best Practices

  • https://www.smashingmagazine.com/2007/11/pagination-gallery-examples-and-good-practices/
  • https://fireart.studio/blog/pagination-design-examples/
  • https://app.uxcel.com/courses/ui-components-best-practices/best-practices-005
  • https://medium.com/uxness/best-practices-for-designing-pagination-in-web-1c33140f31b

Pagination Performance

  • https://jojoldu.tistory.com/528
  • https://jojoldu.tistory.com/529
  • https://lhr0419.medium.com/mysql-pagination%EC%9D%98-%EC%84%B1%EB%8A%A5%EC%9D%84-%ED%96%A5%EC%83%81%EC%8B%9C%ED%82%A4%EC%9E%90-319cb3f09e03