πŸ˜€
Hyune's Wiki
  • Welcome
  • Article
    • Link
  • Mentor & Code Reviewer
    • μ§„ν–‰ν•˜κΈ°μ— μ•žμ„œ..
    • Code Review History
      • ν•œλ°© 쿼리 vs μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ 쑰립
      • DBμ—μ„œ TIMESTAMP와 DATETIME νƒ€μž…μ˜ 차이
      • ServiceλŠ” μ–΄λ–€ dtoλ₯Ό λ°˜ν™˜ν•΄μ•Ό ν• κΉŒ?
        • ν™•μž₯ 질문
  • Legacy
    • 싀무 κ²½ν—˜ & 팁
      • Kotlin
        • 파일 μ‘°μž‘ν•˜κΈ°
      • Infra
        • Lightsail
          • μΈμŠ€ν„΄μŠ€ ꡬ성 예제
        • 곡인 ip ν™•μΈν•˜κΈ°
      • Database
        • INSERT INTO SELECT SHARED LOCK(row LOCK)
      • API Document
        • OpenAPI (Swagger 3.0)
          • 정적 λ¬Έμ„œ 내보내기
      • Side Project
        • Codesquad
      • ETC
        • HTTP Request μΆ”μ ν•˜κΈ° with HAR File
    • Study
      • Language
        • Java
          • Copy
          • λ©”λͺ¨λ¦¬ 관리
          • Garbage Collection
          • 자료ꡬ쑰
          • Java 17
        • Kotlin
          • Coroutine
      • Framework & Library
        • Spring
          • Spring Security
          • @Component vs @Configuration
        • JPA
          • show-sql μ„€μ •μ˜ 단점
          • @GeneratedValue strategy
          • Entity의 field type
        • Logback
          • κΈ°λ³Έ μ„€μ •
        • Monitoring
          • VisualVM
            • μ„€μΉ˜
            • λ¬Έμžμ—΄ μƒμ„±μœΌλ‘œ ν…ŒμŠ€νŠΈ
          • nGrinder
      • Database
        • MySQL
          • SQL λ¬Έ μˆ˜ν–‰ 절차
          • νŠΈλžœμž­μ…˜κ³Ό 잠금
          • 인덱슀
      • Infra
        • AWS
          • S3
            • μš©μ–΄
            • Amazon SDK 1.x with Spring
          • DynamoDB
            • Get vs Query vs Scan
        • Docker & Kubernetes
      • Computer Science
        • OS
          • Process vs Thread
          • Process
        • Web
          • HTTP
            • HTTP vs HTTPS
            • HTTP ꡬ성
            • HTTP κ·Έμ™Έ
          • REST API
            • GET λ©”μ„œλ“œμ— payloadλ₯Ό μ‚¬μš©ν•΄λ„ λ˜λŠ”κ°€?
            • νŠΉμ • λͺ©μ μ˜ APIλŠ” μ–΄λ–»κ²Œ λ§Œλ“€μ–΄μ•Ό ν• κΉŒ?
          • TCP / UDP
          • μΈν„°λ„·μ˜ μž‘λ™ 원리
          • OAuth 2.0
        • Design Pattern
          • Builder Pattern
        • MSA
        • DDD
      • Test
        • Test Doule
      • Book & Online Class
        • ν•œ λ²ˆμ— λλ‚΄λŠ” Spring μ™„.μ „.판 초격차 νŒ¨ν‚€μ§€ Online
          • AOP, Aspect Oriented Programming
          • Data Binding
          • IoC(Inversion of Control), DI(Dependency Injection)
          • Null Safety
          • Spring Resource
          • Spring Boot 버전별 λ³€ν™”
          • SpEL, Spring Expression Language
          • Validation
        • μ΄νŽ™ν‹°λΈŒ μžλ°” 3판
          • 2μž₯ 객체 생성과 파괴
            • μ•„μ΄ν…œ 1. μƒμ„±μž λŒ€μ‹  정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œλ₯Ό κ³ λ €ν•˜λΌ
            • μ•„μ΄ν…œ 2. μƒμ„±μžμ— λ§€κ°œλ³€μˆ˜κ°€ λ§Žλ‹€λ©΄ λΉŒλ”λ₯Ό κ³ λ €ν•˜λΌ
            • μ•„μ΄ν…œ 3. private μƒμ„±μžλ‚˜ μ—΄κ±° νƒ€μž…μœΌλ‘œ μ‹±κΈ€ν„΄μž„μ„ λ³΄μ¦ν•˜λΌ
            • μ•„μ΄ν…œ 4. μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λΌ
            • μ•„μ΄ν…œ 5. μžμ›μ„ 직접 λͺ…μ‹œν•˜μ§€ 말고 의쑴 객체 μ£Όμž…μ„ μ‚¬μš©ν•˜λΌ
            • μ•„μ΄ν…œ 7. λ‹€ μ“΄ 객체 μ°Έμ‘°λ₯Ό ν•΄μ œν•˜λΌ
          • 3μž₯ λͺ¨λ“  객체의 곡톡 λ©”μ„œλ“œ
            • μ•„μ΄ν…œ 11. equalsλ₯Ό μž¬μ •μ˜ν•˜λ €κ±°λ“  hashCode도 μž¬μ •μ˜ν•˜λΌ
            • μ•„μ΄ν…œ 12. toString을 항상 μž¬μ •μ˜ν•˜λΌ
            • μ•„μ΄ν…œ 14. Comparable을 κ΅¬ν˜„ν• μ§€ κ³ λ €ν•˜λΌ
          • 4μž₯ ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€
      • Webinar
        • μš”μ¦˜ νž™ν•œ μŠ€νƒ€νŠΈμ—…μ˜ DBDB DEEPν•œ 이야기
Powered by GitBook
On this page
  • μΆ”μ²œν•˜λŠ” μ‚¬μš©λ²•
  • 단점
  • 기타

Was this helpful?

Edit on GitHub
  1. Legacy
  2. Study
  3. Computer Science
  4. Design Pattern

Builder Pattern

μΆ”μ²œν•˜λŠ” μ‚¬μš©λ²•

  • 정적 νŒ©ν† λ¦¬ λ©”μ„œλ“œμ™€ ν…ŒμŠ€νŠΈ μ½”λ“œμ—μ„œλ§Œ ν•œμ •μ μΈ μ‚¬μš©μ„ ꢌμž₯ν•©λ‹ˆλ‹€.

단점

  • nullsafe ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

    • 예λ₯Ό λ“€λ©΄ λ³€μˆ˜κ°€ μΆ”κ°€λ˜μ–΄λ„ 컴파일 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

기타

  • 컴파일 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 단점은 정적 νŒ©ν† λ¦¬ λ©”μ„œλ“œμ™€ ν…ŒμŠ€νŠΈ μ½”λ“œμ—μ„œλ„ κ°™μ§€ μ•Šμ€κ°€?

    • κ·Έλ ‡μ§€λ§Œ μ‚¬μš©λ˜λŠ” 곳을 ν•œμ •ν•¨μœΌλ‘œμ„œ 영ν–₯ λ²”μœ„λ₯Ό 쀄일 수 μžˆκΈ°μ—, 생산성과 νƒ€ν˜‘ν•©λ‹ˆλ‹€.

    • κ·Έ μ™Έ λŒ€ν‘œμ μΈ μ‚¬μš© λ°©λ²•μœΌλ‘œλŠ”

      • μ‚¬μš©ν•˜λŠ” 곳을 νŒ©ν† λ¦¬λ‘œ ν•œμ •ν•˜κ±°λ‚˜,

      • 도메인 κ°μ²΄λŠ” μƒμ„±μž, dtoλŠ” λΉŒλ” 생성을 ν•˜λŠ” λ“±μ˜ νŒ€ μ»¨λ²€μ…˜μ΄ μ‘΄μž¬ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

    • κ·Έ 외에도 μ—¬λŸ¬κ°€μ§€ μ‚¬μš© 방법이 νŒ€ μ»¨λ²€μ…˜μœΌλ‘œ μ‘΄μž¬ν•˜μ§€λ§Œ, 보톡 μ œν•œλœ μ‚¬μš©μ„ ꢌμž₯ν•©λ‹ˆλ‹€.

  • λΉŒλ” νŒ¨ν„΄μ΄ 생산성에 영ν–₯을 λ―ΈμΉ  μ •λ„λ‘œ ν•„λ“œκ°€ λ§Žλ‹€λ©΄, 그것뢀터 μ˜μ‹¬ν•΄μ•Ό ν•©λ‹ˆλ‹€.

    • λ°˜λŒ€λ‘œ ν•„λ“œκ°€ μΆ©λΆ„νžˆ 적닀면 μƒμ„±μžλ‘œλ„ μΆ©λΆ„ν•  κ²ƒμž…λ‹ˆλ‹€.

    • lombok을 μ‚¬μš©ν•œλ‹€λ©΄ μƒμ„±μž μ–΄λ…Έν…Œμ΄μ…˜μ— staticName을 ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • μ½”ν‹€λ¦°μ—μ„œλŠ” ν”„λ‘œνΌν‹° κ°œλ…κ³Ό λ””ν΄νŠΈ μƒμ„±μž λ“±μ˜ κ°œλ…μœΌλ‘œ μ’€ 더 μŠ€λ§ˆνŠΈν•œ 방법을 μ§€μ›ν•©λ‹ˆλ‹€.

PreviousDesign PatternNextMSA

Last updated 3 years ago

Was this helpful?