[내일배움캠프 앱트랙] 캠프 7주차 - 1/4(목)

0
post-thumbnail

[내일배움캠프 앱트랙] 캠프 7주차 - 1/4(목)

📝TIL

Kotlin CodeKata

LeetCode

Clean Code

이펙티브 코틀린

안드로이드 앱 개발 숙련

OOP 세션

  • 디자인 패턴 -> 어느 상황에서 어느 패턴을 사용하면 좋은 지 판단할 수 있어야!
  • Singleton 패턴
    • 프로그램 내에서 인스턴스가 하나만 존재 & 어디에서든 인스턴스에 접근할 수 있도록 해주는 패턴
    • 장점: 사용하기 전까지 객체가 생성되지 X, 객체 생성 횟수를 줄일 수 O
    • 단점: 멀티 스레드 환경에서 사용 시, 동기화 보장 X
    • 사용 예: 로그 기록 객체(Log), 유저 매니저, 데이터 테이블 정보를 저장하는 클래스
  • Strategy 패턴
    • 알고리즘을 캡슐화하여 교체하여 사용할 수 있도록 한 구조
    • 장점:
      • 상속으로 해결할 수 없는 코드 중복에 유용
      • 객체의 실시간 알고리즘 변경에 유용, 신규 알고리즘 추가/수정에 용이
    • 단점: OOP 디자인 적인 관점에 맞지 않다
    • 사용 예: 상황에 따라 길찾기 알고리즘을 바꾸고 싶은 경우
  • Observer 패턴
    • 객체의 상태 변화를 관찰하는 관찰자를 등록 -> 객체 상태 변화가 있을 시 통지하는 패턴
      • 일대다(one-to-many) 의존성 정의: 하나의 객체를 관찰하는 관찰자가 여러 개 있을 수 있음
    • 사용 예: GUI, 채팅 프로그램
  • Decorator 패턴
    • 객체의 추가적인 요건을 동적으로 첨가하는 패턴
      • 기본 클래스의 서브 클래스를 구성하여 생성시 상속받은 클래스를 넘겨서 확장할 수 있도록 함
    • 사용 예: 자바 I/O, 키오스크 메뉴
  • Factory Method 패턴
  • Abstract Factory 패턴

📝코멘트

  • 작년 이맘 때쯤 읽다가 어려워서 중도 하차한 책 <이펙티브 코틀린>을 다시 읽어보기로 도전! (이번에는 꼭 완독할 수 있기를!!)
    목표: 일주일에 1 챕터씩 공부하기

  • 그리고, 개발자라면 무조건 읽어야한다는 책 <클린 코드>를 구매했다
    목표: 일주일에 3 챕터씩 공부하기

  • 같이 공부할 분들을 찾아 스터디를 운영해볼까 생각했지만, 내일배움캠프 스케쥴에 따라 개인적인 공부를 할 시간이 없을 때도 있을 것 같아 혼자 진행하기로 했다😇

profile
Be able to be vulnerable, in search of truth

0개의 댓글