πŸš€
Growth log
  • About me
  • I LEARNED
    • General
      • 개발자 κΏ€νŒ
      • κ·Έλ‘œμŠ€ν•΄ν‚Ή 기초
      • κ°œλ°œμžμ—κ²Œ 도메인 지식은 μ–Όλ§ˆλ‚˜ μ€‘μš”ν• κΉŒ?
      • DTO λ…ΌμŸμ— λŒ€ν•˜μ—¬
      • MSAλž€?
    • Seminar
      • ν…ŒμŠ€νŠΈ 컀버리지 100% - SLASH 21
      • TDDκ°€ μ‹€νŒ¨ν•˜λŠ” 이유 - by μ΄κ·œμ›λ‹˜
      • λŒ€κ·œλͺ¨ νŠΈλž˜ν”½ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯ νŠœλ‹ λ…Έν•˜μš° λ‹€ μ•Œλ € λ“œλ¦Ό|λΌμΈκ°œλ°œμ‹€λ‘
      • 결제 μ‹œμŠ€ν…œμ˜ SDK와 API λ””μžμΈ - SLASH 21
    • Web
      • SOP와 CORS
    • Spring & OOP
      • DTO vs VO
    • Ruby On Rails
      • Rails lib 디렉토리에 λŒ€ν•˜μ—¬
      • Rails의 concernsλž€?
      • Railsμ—μ„œμ˜ GC μž‘λ™μ›λ¦¬
      • Eager loading vs Lazy loading
      • Rails ν™˜κ²½ ꡬ성
      • ActionCable
      • πŸ“”Perfect ruby on rails
        • MVC νŒ¨ν„΄μΈ Rails
        • Ruby on Rails κΈ°λ³Έ - 컨트둀러
        • Ruby on Rails κΈ°λ³Έ - λ·°
        • Ruby on Rails κΈ°λ³Έ - λͺ¨λΈ
        • μŠ€μΊν΄λ”© κΈ°λŠ₯을 μ‚¬μš©ν•œ Rails 개발 기초
        • λ·° 개발
        • λͺ¨λΈ 개발
        • λͺ¨λΈ 개발 - 낙관적 λ™μ‹œ μ‹€ν–‰ μ œμ–΄
        • λͺ¨λΈ 개발 - μœ νš¨μ„± 검사 κ΅¬ν˜„
        • λͺ¨λΈ 개발 - Association
        • λͺ¨λΈ 개발 - 콜백
        • λͺ¨λΈ 개발 - λ§ˆμ΄κ·Έλ ˆμ΄μ…˜
        • λͺ¨λΈ 개발 - 데이터 μ΄ˆκΈ°ν™”
        • 컨트둀러 개발 - μš”μ²­ 정보 μΆ”μΆœ
        • 컨트둀러 개발 - 응닡
        • 컨트둀러 개발 - μƒνƒœ 관리
        • λΌμš°νŒ… - RESTful
        • λΌμš°νŒ… - RESTful μΈν„°νŽ˜μ΄μŠ€μ˜ μ‚¬μš©μž μ •μ˜ν™”
        • λΌμš°νŒ… - RESTful ν•˜μ§€ μ•Šμ€ 라우트 μ •μ˜
        • ν…ŒμŠ€νŠΈ
        • ν…ŒμŠ€νŠΈ - μ€€λΉ„
        • ν…ŒμŠ€νŠΈ - Unit ν…ŒμŠ€νŠΈ
        • ν…ŒμŠ€νŠΈ - Functional ν…ŒμŠ€νŠΈ
        • ν…ŒμŠ€νŠΈ - Integration ν…ŒμŠ€νŠΈ
        • ν΄λΌμ΄μ–ΈνŠΈ 개발 - Sprockets vs Webpacker
        • ν΄λΌμ΄μ–ΈνŠΈ 개발 - Sprockets
    • Node.js & Express
      • κΈ°λ³Έ κ°œλ…
      • npx
    • Programing Language
      • Java
        • JavaDoc에 λŒ€ν•΄
        • invocation에 λŒ€ν•΄μ„œ
        • μ–΄λ…Έν…Œμ΄μ…˜
        • μΆ”μƒν΄λž˜μŠ€ & μΈν„°νŽ˜μ΄μŠ€
        • Package
        • μ˜€λ²„λ‘œλ”© vs μ˜€λ²„λΌμ΄λ”©
      • Javascript
        • TCP School 훑어보기
          • νƒ€μž…
          • ν˜• λ³€ν™˜
          • λ³€μˆ˜
          • μ—°μ‚°μž
          • 반볡문
          • λ°°μ—΄(array)
          • ν•¨μˆ˜
          • ν•¨μˆ˜ - μŠ€μ½”ν”„μ™€ ν˜Έμ΄μŠ€νŒ…
          • ν•¨μˆ˜ - λ§€κ°œλ³€μˆ˜μ™€ 인수
          • ν•¨μˆ˜ - 미리 μ •μ˜λœ μ „μ—­ ν•¨μˆ˜
          • 객체
          • ν”„λ‘œν† νƒ€μž…
          • DOM
          • BOM - Window 객체
          • 이벀트(event)
      • Ruby
        • πŸ“”νΌνŽ™νŠΈ 루비
    • DB
      • Redis
        • Redis κ°œμš”
      • Index(인덱슀)?
      • DB Transaction & Lock
      • λ™μ‹œμ„± μ œμ–΄μ— κ΄€ν•˜μ—¬
      • Lock(잠금)μ΄λž€?
      • ActiveRecord lock vs with_lock
      • Table lock vs Row lock
      • WHERE 1=1 ꡬ문에 λŒ€ν•˜μ—¬
      • COUNT(*) vs COUNT(indexed column)
      • πŸ“•κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ μ‹€μ „μž…λ¬Έ
      • πŸ“”SQL 첫걸음
      • πŸ“”λͺ¨λ‘μ˜ SQL
    • Design Patterns
      • Observer pattern
      • Flyweight pattern
      • Singleton pattern
    • OOP
      • πŸ“”μ˜€λΈŒμ νŠΈ
        • 6μž₯ λ©”μ‹œμ§€μ™€ μΈν„°νŽ˜μ΄μŠ€
      • ν΄λž˜μŠ€κ°„ 관계 간단 정리
    • Regex
    • Collaboration
      • Git
      • Sourcetree
  • DAILY REVIEW
    • 2021
      • August
        • 2021-08-25(Wed)
        • 2021-08-23(Mon)
        • 2021-08-11(Wed)
        • 2021-08-04(Wed)
        • 2021-08-03(Tue)
        • 2021-08-02(Mon)
      • July
        • 2021-07-29(Thu)
        • 2021-07-26(Mon)
        • 2021-07-23(Fri)
        • 2021-07-22(Thu)
        • 2021-07-21(Wed)
        • 2021-07-20(Tue)
        • 2021-07-19(Mon)
        • 2021-07-15(Thu)
        • 2021-07-14(Wed)
        • 2021-07-13(Tue)
        • 2021-07-12(Mon)
      • June
        • 2021-06-05(Sat)
        • 2021-06-04(Fri)
        • 2021-06-03(Thu)
        • 2021-06-02(Wed)
        • 2021-06-01(Tue)
      • May
        • 2021-05-31(Mon)
        • 2021-05-29(Sat)
        • 2021-05-28(Fri)
        • 2021-05-27(Thu)
        • 2021-05-26(Wed)
        • 2021-05-25(Tue)
        • 2021-05-24(Mon)
        • 2021-05-22(Sat)
        • 2021-05-21(Fri)
        • 2021-05-20(Thu)
        • 2021-05-19(Wed)
        • 2021-05-18(Tue)
        • 2021-05-17(Mon)
        • 2021-05-15(Sat)
        • 2021-05-13(Thu)
        • 2021-05-12(Wed)
        • 2021-05-11(Tue)
        • 2021-05-10(Mon)
        • 2021-05-03(Mon)
      • April
        • 2021-04-30(Fri)
        • 2021-04-29(Thu)
        • 2021-04-28(Wed)
        • 2021-04-27(Tue)
        • 2021-04-26(Mon)
        • 2021-04-24(Sat)
        • 2021-04-23(Fri)
        • 2021-04-21(Wed)
        • 2021-04-20(Tue)
        • 2021-04-19(Mon)
        • 2021-04-18(Sun)
        • 2021-04-16(Fri)
        • 2021-04-15(Thu)
        • 2021-04-14(Wed)
        • 2021-04-12(Mon)
        • 2021-04-11(Sun)
        • 2021-04-09(Fri)
        • 2021-04-08(Thu)
        • 2021-04-06(Tue)
        • 2021-04-05(Mon)
        • 2021-04-04(Sun)
        • 2021-04-03(Sat)
        • 2021-04-02(Fri)
        • 2021-04-01(Thu)
      • March
        • 2021-03-29(Mon)
        • 2021-03-28(Sun)
        • 2021-03-26(Fri)
        • 2021-03-25(Thu)
        • 2021-03-24(Wed)
        • 2021-03-23(Tue)
        • 2021-03-22(Mon)
        • 2021-03-21(Sun)
        • 2021-03-20(Sat)
        • 2021-03-17(Wed)
        • 2021-03-16(Tue)
        • 2021-03-15(Mon)
        • 2021-03-12(Fri)
        • 2021-03-11(Thu)
        • 2021-03-10(Wed)
        • 2021-03-09(Tue)
        • 2021-03-08(Mon)
        • 2021-03-07(Sun)
        • 2021-03-05(Fri)
        • 2021-03-03(Wed)
        • 2021-03-02(Tue)
        • 2021-03-01(Mon)
      • Feb
        • 2021-02-26(Fri)
        • 2021-02-25(Thu)
        • 2021-02-24(Wed)
        • 2021-02-23(Tue)
        • 2021-02-22(Mon)
        • 2021-02-19(Fri)
        • 2021-02-18(Thu)
        • 2021-02-17(Wed)
        • 2021-02-16(Tue)
        • 2021-02-15(Mon)
        • 2021-02-14(Sun)
        • 2021-02-13(Sat)
        • 2021-02-12(Fri)
        • 2021-02-10(Wed)
        • 2021-02-09(Tue)
        • 2021-02-08(Mon)
        • 2021-02-07(Sun)
        • 2021-02-05(Fri)
        • 2021-02-03(Wed)
        • 2021-02-02(Tue)
        • 2021-02-01(Mon)
      • Jan
        • 2021-01-29(Fri)
        • 2021-01-28(Thu)
        • 2021-01-27(Wed)
        • 2021-01-26(Tue)
        • 2021-01-25(Mon)
        • 2021-01-23(Sat)
        • 2021-01-22(Fri)
        • 2021-01-20(Wed)
        • 2021-01-19(Tue)
        • 2021-01-18(Mon)
        • 2021-01-12(Tue)
        • 2020-01-11(Mon)
        • 2021-01-08(Fri)
        • 2021-01-07(Thu)
        • 2021-01-06(Wed)
        • 2021-01-05(Tue)
        • 2021-01-04(Mon)
        • 2021-01-01(Fri)
    • 2020
      • Dec
        • 2020-12-30(Thu)
        • 2020-12-25(Fri)
        • 2020-12-24(Thu)
        • 2020-12-23(Wed)
        • 2020-12-22(Tue)
        • 2020-12-21(Mon)
        • 2020-12-18 (Fri)
      • Nov
        • 2020-11-30(Mon)
        • 2020-11-28(Sat)
        • 2020-11-26(Thu)
        • 2020-11-25(Wed)
        • 2020-11-24(Tue)
        • 2020-11-23(Mon)
        • 2020-11-22(Sun)
        • 2020-11-20(Fri)
        • 2020-11-19(Thu)
        • 2020-11-18(Wed)
        • 2020-11-17(Tue)
        • 2020-11-14(Sat)
        • 2020-11-13(Fri)
        • 2020-11-12(Thu)
        • 2020-11-11(Wed)
        • 2020-11-09(Mon)
        • 2020-11-07(Sat)
        • 2020-11-05(Thu)
        • 2020-11-04(Wed)
        • 2020-11-03(Tue)
        • 2020-11-02(Mon)
    • Good article 아카이빙
Powered by GitBook
On this page
  • 상세 ν•™μŠ΅ λ‚΄μš©
  • 1μž₯ 객체지ν–₯ λ””μžμΈ
  • ν•™μŠ΅ λ‚΄μš©μ— λŒ€ν•œ 개인적인 총평
  • λ‹€μŒ ν•™μŠ΅ κ³„νš

Was this helpful?

  1. DAILY REVIEW
  2. 2021
  3. Feb

2021-02-07(Sun)

ν•­λͺ©

λ‚΄μš©

ν•™μŠ΅ λ‚ μ§œ

2021-02-07(일)

ν•™μŠ΅ μ‹œκ°„

11:00~24:00

ν•™μŠ΅ λ²”μœ„ 및 주제

객체지ν–₯

ν•™μŠ΅ λͺ©ν‘œ

λ£¨λΉ„λ‘œ 객체지ν–₯ μ½”λ“œλ₯Ό λ§Œλ“œλŠ” 감을 μ΅νžŒλ‹€.

λ™λ£Œ ν•™μŠ΅ 방법

-

상세 ν•™μŠ΅ λ‚΄μš©

ν˜‘μ—…μ΄λΌλ©΄ λ”λ”μš± ν…ŒμŠ€νŠΈμ— κΈ°λ°˜ν•œ μ½”λ“œκ΅¬ν˜„μ„ ν•΄μ•Όν•œλ‹€κ³  λ―ΏλŠ”λ°, 이번 ν”„λ‘œμ νŠΈμ—μ„œλŠ” ν…ŒμŠ€νŠΈ μ½”λ“œλ‹€μš΄ ν…ŒμŠ€νŠΈμ½”λ“œλ₯Ό λ§Œλ“€μ–΄λ‚΄μ§€ λͺ»ν•œ λŠλ‚Œμ΄λ‹€. 이런 고민을 μ €κ²©ν•˜λŠ” 책이 μžˆμ—ˆμœΌλ‹ˆ- λ°”λ‘œ 'λ£¨λΉ„λ‘œ λ°°μš°λŠ” 객체지ν–₯ λ””μžμΈ-지속가λŠ₯ν•œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§Œλ“œλŠ” 방법'μ΄λΌλŠ” 책이닀.

μ±… '객체지ν–₯의 사싀과 μ˜€ν•΄'을 읽으며 μ•Œκ²Œλœ 관념듀을 μ’€ 더 ν”„λ‘œμ νŠΈμ— 잘 μ μš©ν•  수 있기λ₯Ό 바라며 책을 νˆλ‹€. ν•˜λ‹¨μ€ μ±… 'λ£¨λΉ„λ‘œ λ°°μš°λŠ” 객체지ν–₯ λ””μžμΈ-지속가λŠ₯ν•œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§Œλ“œλŠ” 방법'을 ν•™μŠ΅ν•˜λ©° 적은 λ©”λͺ¨.

1μž₯ 객체지ν–₯ λ””μžμΈ

μ ˆμ°¨μ§€ν–₯ μ†Œν”„νŠΈμ›¨μ–΄λŠ” 이 세계λ₯Ό μ •ν•΄μ§„ μ ˆμ°¨λ“€μ˜ 묢음으둜 μƒκ°ν•œλ‹€. 반면 객체지ν–₯ μ†Œν”„νŠΈμ›¨μ–΄λŠ” 이 세계λ₯Ό 객체 μ‚¬μ΄μ˜ 자발적인 μƒν˜Έμ—°κ΄€μ˜ μ—°μ†μœΌλ‘œ νŒŒμ•…ν•œλ‹€. 이 κ΄€μ μ˜ 차이가 객체지ν–₯ λ””μžμΈμ΄ μœ μ—°ν•˜λ„λ‘ λ§Œλ“€μ–΄μ€€λ‹€.

객체 μ§€ν–₯ λ””μžμΈμ΄λž€

μ†Œν”„νŠΈμ›¨μ–΄ μœ μ§€λ³΄μˆ˜ 문제

  • μš”κ΅¬μ‚¬ν•­ 변경은 무쑰건 λ°œμƒν•œλ‹€.

  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ³€κ²½κ³Ό ν™•μž₯이 μš©μ΄ν•˜μ§€ μ•Šλ‹€λ©΄ 이런 μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±μ‹œν‚€κΈ° μ–΄λ ΅λ‹€.

μ–΄λ–€ κ²½μš°μ— μˆ˜μ •μ΄ μ–΄λ €μš΄κ°€?

  • 객체 κ°„μ˜ μƒν˜Έμž‘μš©μ€ 객체가 μ£Όκ³ λ°›λŠ” λ©”μ‹œμ§€ 속에 λ…Ήμ•„ μžˆλ‹€.

  • μ˜¬λ°”λ₯Έ κ°μ²΄μ—κ²Œ μ˜¬λ°”λ₯Έ λ©”μ‹œμ§€λ₯Ό 보내기 μœ„ν•΄μ„œλŠ” λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄λŠ” 객체가 λ©”μ‹œμ§€λ₯Ό μˆ˜μ‹ ν•˜λŠ” 객체에 λŒ€ν•œ 지식을 μ–΄λŠμ •λ„ κ°€μ§€κ³  μžˆμ–΄μ•Όν•œλ‹€.

  • 이런 지식은 μ˜μ‘΄μ„±μ΄ λ˜μ–΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μˆ˜μ •μ„ μ–΄λ ΅κ²Œ ν•œλ‹€. μ§€κΈˆμ€ μˆ˜μ •μ΄ 쉽더라도 μ–Έμ  κ°€λŠ” μˆ˜μ •μ΄ μ–΄λ €μ›Œμ§„λ‹€.

κ·Έλž˜μ„œ 객체 μ§€ν–₯ λ””μžμΈμ΄ 뭔데?

  • 객체지ν–₯ λ””μžμΈμ€ μ˜μ‘΄μ„±μ„ κ΄€λ¦¬ν•˜λŠ” 것이고, 객체가 λ³€ν™”λ₯Ό 받아듀일 수 μžˆλ„λ‘ μ˜μ‘΄μ„±μ„ μ •λ¦¬ν•˜λŠ” μ½”λ”© 기술의 λ¬ΆμŒμ΄λ‹€. 이 λͺ¨λ“  것은 λ³€ν™”μ˜ λΉ„μš©μ„ μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•œ λͺ©ν‘œλ₯Ό λ°˜μ˜ν•œ 것이닀.

  • 객체지ν–₯ λ””μžμΈμ€ νŠΉμˆ˜ν•œ μš”κ΅¬μ‚¬ν•­μ˜ λ³€ν™”λ₯Ό 미리 μ˜ˆμΈ‘ν•˜λŠ” 것이 μ•„λ‹ˆλ‹€. κ·Έμ € μ–Έμ  κ°€ λ¬΄μ–Έκ°€λŠ” λ³€ν•œλ‹€λŠ” 사싀을 받아듀이고, μ§€κΈˆμ€ 무엇이 변경될지 μ•Œ 수 μ—†λ‹€λŠ” 사싀을 λ°›μ•„λ“€μ΄λŠ” 것이닀. λ”°λΌμ„œ 미래λ₯Ό μ„£λΆˆλ¦¬ μΆ”μΈ‘ν•΄μ„œ κ΅¬ν˜„μ„ μ„ νƒν•˜μ§€ μ•ŠλŠ”λ‹€. κ·Έμ € 미래λ₯Ό λŒ€λΉ„ν•΄μ„œ κ°€λŠ₯ν•œ 선택지λ₯Ό μ—¬λŸ¬ κ°€μ§€ λ§Œλ“€μ–΄ 놓고 λ³€ν™”ν•˜κ³  움직일 수 μžˆλŠ” 곡간을 남겨 놓을 뿐이닀.

  • λ””μžμΈμ€ μ •ν•΄μ§„ 법칙을 λ”°λ₯΄λŠ” ν™œλ™μ€ μ•„λ‹ˆλ‹€. λŒ€μ‹  원칙과 νŒ¨ν„΄μ΄λΌλŠ” 도ꡬ에 따라 μš”κ΅¬μ‚¬ν•­μ„ κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ 선택을 λ°˜λ³΅ν•˜λ©° μ§€κΈˆμ˜ νŒλ‹¨μ˜ λŒ€κ°€λ₯Ό λ’€λ‘œ λ―Έλ£¨λŠ” ν™œλ™μ„ 끝없이 ν•˜λŠ” 것이닀.

    • 객체지ν–₯의 원칙듀: 유λͺ…ν•œ 건 SOLID 원칙과 λ°λ©”ν…Œλ₯΄μ˜ 원칙 등이 μžˆλ‹€.

    • 객체지ν–₯의 λ””μžμΈ νŒ¨ν„΄λ“€: GoF의 λ””μžμΈ νŒ¨ν„΄ λ“±λ“±

λ””μžμΈμ€ μ–Έμ œ μ‹€νŒ¨ν•˜λŠ”κ°€?

  • λ””μžμΈ μžμ²΄κ°€ λΆ€μ‘±ν•  λ•Œ

  • λ””μžμΈμ„ μ˜€μš©ν•  λ•Œ

  • λ””μžμΈ μž‘μ—…κ³Ό ν”„λ‘œκ·Έλž˜λ° μž‘μ—…μ΄ 동떨어져 μžˆμ„ λ•Œ

    • 이λ₯Ό 막기 μœ„ν•΄ μ• μžμΌν•˜κ²Œ λ””μžμΈκ³Ό κ΅¬ν˜„μ„ λ°˜λ³΅ν•  ν•„μš”κ°€ μžˆλ‹€. κ·Έλž˜μ•Ό λ””μžμΈμ΄ 'μ μ ˆν•œ 자기쑰절 λŠ₯λ ₯'을 κ°€μ§€κ²Œ λœλ‹€.

    • μ• μžμΌμ΄ 'μ»€λ‹€λž€ λ””μžμΈμ„ λ¨Όμ € κ΅¬μƒν•˜μ§€ 말라'κ³  ν•œλ‹€κ³  ν•΄μ„œ λ””μžμΈμ„ ν•˜μ§€ 말라고 ν•˜λŠ” 것은 μ•„λ‹ˆλ‹€. 였히렀 μ• μžμΌ μž‘μ—…λ°©μ‹μ€ λ³€ν™”λ₯Ό 보μž₯ν•˜λ―€λ‘œ, μ§„μ§œ 쒋은 λ””μžμΈμ„ 톡해 μ½”λ“œλ₯Ό λ°°μΉ˜ν•΄μ„œ μ‰½κ²Œ λ³€κ²½ν•  수 μžˆλ„λ‘ λ§Œλ“œλŠ” 것이 μ€‘μš”ν•˜λ‹€.

ν•™μŠ΅ λ‚΄μš©μ— λŒ€ν•œ 개인적인 총평

μ˜€λŠ˜μ€ ν”„λ‘œμ νŠΈ μ„ΈλΆ€λͺ¨λ“ˆ κ΅¬ν˜„μ—μ„œ λ²—μ–΄λ‚˜μ„œ 전체 ν”„λ‘œμ νŠΈ λ°©ν–₯을 μž‘λŠ”λ° 도움이 될 λ²•ν•œ ν•™μŠ΅μ„ μ§„ν–‰ν•˜κΈ°λ‘œ 마음 λ¨Ήμ—ˆλ‹€. Backbone의 collectionκ³Ό model μ‚¬μš©λ²•μ„ μ’€ νƒκ΅¬ν•΄λ³ΌκΉŒ 싢기도 ν–ˆλŠ”λ° 기껏 ν•™μŠ΅ν•œ 객체지ν–₯ κ°œλ…μ„ ν”„λ‘œμ νŠΈμ— 잘 λ…Ήμ—¬λ‚΄κ³  μžˆλŠ” 것 κ°™μ§€ μ•Šμ•„μ„œ 객체지ν–₯에 λŒ€ν•΄μ„œ νŒŒλ³΄μ•˜λ‹€. Appearance channel을 μ΄μš©μ„ μœ„ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ„±ν•˜λŠ”λ° μ°Έκ³ ν•΄μ•Όμ§€.

λ‹€μŒ ν•™μŠ΅ κ³„νš

  • Appearance view κ΅¬ν˜„μ™„λ£Œ

Previous2021-02-08(Mon)Next2021-02-05(Fri)

Last updated 4 years ago

Was this helpful?