포스트

2022-03-13-TIL

Today I Learned

빌더 패턴 사용 장단점

빌더 패턴은 생성자 파라미터가 많을 때 Member.builder().name("kim").age(20).build()처럼 이름 붙은 메서드로 값을 하나씩 지정해 객체를 만드는 방식이다. 파라미터 순서를 외울 필요가 없고 같은 타입의 인자를 뒤바꾸는 실수를 줄이며, 선택적 값이 많을 때 생성자를 여러 개 겹쳐 만들지 않아도 된다. Lombok의 @Builder를 쓰면 코드도 거의 늘지 않는다.

단점도 분명하다. 필수 값을 빠뜨려도 컴파일 오류가 나지 않아 불완전한 객체가 만들어질 수 있으므로, build()에서 검증하거나 필수 값은 빌더 생성 메서드의 인자로 받아야 한다. 파라미터가 두세 개뿐이라면 빌더는 오히려 코드만 늘리고, 엔티티 전체 필드에 @Builder를 붙이면 ID처럼 외부에서 정하면 안 되는 값까지 열리게 된다.

  • https://okky.kr/article/396206

SNS 종류

링크들은 소셜 미디어 플랫폼의 종류와 흐름을 다룬다. 지인 관계 중심의 네트워크(Facebook), 사진과 짧은 영상 중심(Instagram, TikTok), 텍스트 단문(Twitter), 직업 네트워크(LinkedIn), 커뮤니티와 음성 대화(Reddit, Discord, Clubhouse), 이메일 뉴스레터 기반 구독 플랫폼(Substack)처럼 콘텐츠 형식과 관계 맺는 방식에 따라 구분할 수 있다. 국내 기사들은 SNS가 지인과 소통하는 도구에서 콘텐츠를 유통하고 수익을 내는 플랫폼으로 바뀌어 왔다는 관점에서 정리한다. 서비스를 기획한다면 어떤 콘텐츠를 누구와 어떤 관계로 공유하는지가 플랫폼을 구분하는 기준이 된다.

  • https://www.makeuseof.com/social-media-platforms-2021/
  • https://www.forbes.com/sites/forbesagencycouncil/2021/02/19/five-upcoming-social-networks-to-keep-an-eye-on-in-2021/?sh=e52e34135577
  • https://blog.hubspot.com/marketing/new-social-media
  • https://www.dreamgrow.com/top-15-most-popular-social-networking-sites/
  • https://www.visualcapitalist.com/ranked-social-networks-worldwide-by-users/
  • https://privatenote.tistory.com/195
  • https://blog.naver.com/wnstjd878/220988984711
  • https://blog.naver.com/djaghk88/222018608093
  • https://hackeruniversity.tistory.com/74
  • https://www.sciencetimes.co.kr/news/sns%EC%9D%98-%EC%A7%84%ED%99%94-%EC%86%8C%ED%86%B5%EC%97%90%EC%84%9C-%ED%94%8C%EB%9E%AB%ED%8F%BC%EC%9C%BC%EB%A1%9C/
  • https://ko.wix.com/blog/post/social-media-content
  • https://magazine.cheil.com/49513
  • https://oneceo.co.kr/128
  • https://brunch.co.kr/@neaptide/36
  • https://www.the-pr.co.kr/news/articleView.html?idxno=45737
  • https://brunch.co.kr/@chaeng26/155
  • https://brunch.co.kr/@xang88/7
  • https://www.mk.co.kr/news/it/view/2021/07/717138/
  • https://www.edaily.co.kr/news/read?mediaCodeNo=257&newsId=01121766629012184
  • https://www.gqkorea.co.kr/2018/05/28/%EC%9D%B8%EC%8A%A4%ED%83%80%EA%B7%B8%EB%9E%A8-%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%B6%81-%EC%9D%B4%ED%9B%84%EC%9D%98-sns/
  • https://substack.com/
  • https://www.youtube.com/watch?v=WxMiCaWJQWU

공부할 것

Coursera는 대학과 기업의 강의를 온라인으로 제공하는 학습 플랫폼이다. 한국어 페이지에서도 컴퓨터 과학, 데이터베이스, 클라우드 같은 분야의 강의를 찾아볼 수 있다.

  • https://ko.coursera.org/

데이터베이스 설계(모델링)

데이터베이스 설계는 보통 요구사항에서 엔티티와 관계를 뽑는 개념적 모델링(ERD), 이를 테이블, 컬럼, 키로 옮기는 논리적 모델링, 특정 DBMS에 맞게 타입, 인덱스, 파티션을 정하는 물리적 모델링 순서로 진행한다. 링크된 best practice 글들이 공통으로 강조하는 점은 다음과 같다.

  • 정규화로 중복과 갱신 이상을 없애고, 조회 성능 때문에 반정규화가 필요하면 근거를 두고 한다.
  • 테이블과 컬럼 이름 규칙을 일관되게 정한다(단수/복수, 스네이크 케이스 등).
  • 모든 테이블에 기본 키를 두고, 외래 키와 NOT NULL, UNIQUE 같은 제약으로 무결성을 DB에서도 보장한다.
  • 컬럼 타입과 길이는 실제 데이터에 맞게 고르고, 자주 조회하는 조건에 맞춰 인덱스를 설계한다.
  • 설계 문서(ERD)와 스키마 변경 이력을 관리한다.

  • https://www.youtube.com/watch?v=F3Avo8AHmmY
  • https://www.youtube.com/watch?v=pKvRNOyW3DU
  • https://www.youtube.com/watch?v=I_rxqSJAj6U
  • https://www.youtube.com/watch?v=ztHopE5Wnpc
  • https://www.youtube.com/watch?v=Xci8qFEeoE8
  • https://hevodata.com/learn/schema-example/
  • https://searchsqlserver.techtarget.com/tip/SQL-Server-database-design-best-practices-and-tips-for-DBAs
  • https://www.fivetran.com/blog/10-database-schema-best-practices
  • https://its.unl.edu/bestpractices/database-design
  • https://medium.com/quick-code/10-best-database-design-practices-1f10f3441730
  • https://geekflare.com/database-design-best-practices/
  • https://www.conceptatech.com/blog/best-practices-how-to-design-a-database
  • https://www.lucidchart.com/blog/database-design-best-practices
  • https://otamot.com/24
이 글은 저작권자의 CC BY 4.0 라이선스를 따릅니다.

댓글

아직 댓글이 없습니다