본문 바로가기

전체 글103

[디자인패턴 - 팩토리패턴] 팩토리패턴이란? 예제를 통해 이해하기 (Factory Pattern) for Head First Design Patterns (헤드퍼스트 디자인 패턴 참조) # 팩토리패턴## 팩토리 패턴의 종류팩토리패턴의 종류는 크게 아래 2가지가 있다.1. 팩토리 메서드 패턴2. 추상 팩토리 패턴번외 심플 팩토리 이제 하나씩 알아보자!## 팩토리 메서드 패턴- 팩토리 메서드는 심플팩토리에서 팩토리 자체를 추상화를 시키고 각각의 구체적인 팩토리 클래스가 특정 타입의 객체 생성을 담당하는 패턴- 새로운 타입의 객체를 추가하려면 새로운 팩토리 클래스만 추가 하면 되기 때문에 OCP를 준수한다. 1. 추상클래스로 팩토리와 로봇을 만들어준다.abstract class 로봇 { abstract fun 설명(): String}abstract class 로봇팩토리(){ abstract fun 로봇제작() : 로봇 } 2. 구체적인 로봇 클래스를 정의 해준다.class 뛰는로봇.. 2024. 4. 30.
[Android] 안드로이드 위젯 알아보기 1편 이번 포스팅은 안드로이드 위젯에 대해 정리해보겠다.# 위젯이란?위젯은 홈 화면 맞춤설정의 필수적인 측면입니다. 사용자의 홈 화면에서 바로 액세스 할 수 있는 앱의 가장 중요한 데이터와 기능을 '한눈에' 보여주는 뷰라고 생각하면 됩니다. 사용자는 홈 화면 패널 간에 위젯을 이동할 수 있으며 지원되는 경우 위젯의 크기를 조절하여 위젯의 정보 양을 원하는 대로 조정할 수 있습니다. 위에는 공식문서에서 설명하는 위젯의 정의이다.간단히 정리를 해보면 "사용자의 홈 화면에서 바로 액세스할 수 있는 앱의 가장 중요한 데이터와 기능을 '한눈에' 보여주는 뷰"라고 보면 될 것이다.# 위젯 유형## 정보 위젯 - 일반적으로 중요한 정보 요소를 표시하고 시간 경과에 따른 정보 변경을 추적하는 위젯이다.- 정보 위젯을 탭 하.. 2024. 4. 29.
[책 리뷰] 그림으로 배우는 스프링 6 입문 - 한빛미디어 / 토키 코헤이 # 한 줄 소개 이 책은 복잡한 개념을 시각적으로 단순화하여 스프링 학습의 문턱을 낮추는 독특한 안내서다. # 추천하는 대상 - 스프링 프레임워크에 첫발을 디디려는 초심자: 복잡해 보이는 스프링의 세계를 그림과 함께 친절하게 탐험할 수 있다. - 스프링의 깊이를 더하고 싶은 경험 개발자: 새로운 스프링 6의 기능과 최적 활용법에 대한 통찰력을 얻을 수 있다. - 기술 트렌드에 민감한 기술 리더: 최신 스프링 프레임워크를 통해 팀과 프로젝트의 기술 스택을 현대화하는 데 도움을 받을 수 있다. # 책을 읽고 얻을 수 있는 것 - 직관적인 학습: 복잡한 스프링 개념을 그림으로 이해하여, 누구나 쉽게 스프링의 기본을 마스터할 수 있다. - 실전 적용 능력: 실제 예제를 통한 학습으로 스프링을 이용한 애플리케이션.. 2024. 4. 6.
[Android] 네트워크 보안 구성 SSL 핀셋(pinset) 검증 SHA-265 키 구하기 - 공개키 핀닝 (android network-security-config pin-set key setting) SSL Pinning을 해야하는 이유 with android Glide javax.net.ssl.SSLHandshakeException: Pin.. 이번 공부노트는 안드로이드 SSL Pinning 할 때 여러 가지 방식이 있지만 Network Security Configuration 방식에서 pin-set SHA-265 Key를 구하는 방법을 포스팅해 보겠다. 나도 회사에서 받은 프로젝트에 Network Security Configuration로 SSL Pinning이 되어있어서 키 값을 구해야 하는 상황이었다. 구글링을 해보면 전부 Gradle를 통해서 다른 SHA-265 Key 즉 D9:8F:58~~~~ 이런 식으로 되어있는 키 값 구하는 법 밖에 안 나와서 나처럼 pin-set SHA-265 key를 구하고 싶은 사람을 위해 포스팅을 하기로 결정했다. 본 포스팅은 SHA-265 key 값을 구하는 게 주목적이기 때문에 SSL Pinning을 해.. 2024. 3. 20.
[디자인패턴 - 데코레이터패턴] 데코레이터패턴이란? 예제를 통해 이해하기 (Decorator Pattern) for Head First Design Patterns (헤드퍼스트 디자인 패턴 참조) # 데코레이터 패턴 ## 정의 데코레이터 패턴은 기존 코드를 수정하지 않고도 기능을 동적으로 추가하거나 변경할 수 있게 해주는 디자인 패턴이다. 이 패턴은 구조 패턴의 한 종류로, 기본적인 객체에 추가적인 기능을 부여하기 위해 '감싸는' 형태로 적용된다. 이를 통해 기존 클래스를 수정하지 않고도 새로운 기능을 추가할 수 있다. ### 장점 기존 코드를 수정하지 않고도 기능을 추가하거나 변경할 수 있다. 단일 책임 원칙을 준수한다. 각 데코레이터는 자신의 기능만을 추가하므로 기능이 분리되어 코드의 유지보수가 쉽다. ## 예제 시나리오 어느 한 사람이 카페에 가서 아이스티의 샷 추가를 하는 상황이다. ### 구현 순서 1. 음료를 나타내는 Beverage 인터페이스 생성 (음료 설명, 가격 반환 메서드 포함.. 2024. 3. 10.
[디자인패턴 - 옵저버패턴] 옵저버패턴이란? 예제를 통해 이해하기 (Observer Pattern) for Head First Design Patterns (헤드퍼스트 디자인 패턴 참조) # 옵저버 패턴 먼저 책에서 나온 옵저버 패턴의 정의를 살펴보자! 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의한다 한줄로 정리 하자면 일련의 객체 사이에서 일대다 관계를 정의 한다라고 보면 된다. 책에서는 기상 정보를 예를 들었다 나는 주식 가격 변동 모니터링 서비스으로 예를들겠다. 시장에서 주식의 가격이 변하면 이 정보를 받아서 각각의 투자자에게 알려주는 시스템이라고 치겠다. 우선 옵저버 패턴은 일대다라고 했으니 주식이 일에 해당하고 그 주식 투자자가 다에 해당한다고 보면 된다. 주식 가격 변동 모니터링 서비스를 옵저버 패턴으로 구현하면 주식 가격이 변하면 거기에 의존하는 모든 투자자들한테 알림이 간다. 위와 같은 시나리.. 2024. 2. 15.