본문 바로가기

전체 글112

Failed to get device handle and/or partition ID [ 문제상황 ] Vagrant로 VirtualBox 작업을 하던중 Failed to get device handle and/or partition ID에러가 나오면서 되지 않았다. VirtualBox에서 직접 실행해도 동일한 에러를 만났다.. Failed to get device handle and/or partition ID VERR_NEM_VM_CREATE_FAILED [ 시도1 ] 대부분 Windows 기능 중 "Hyhper-V", "Windows 샌드박스" 를 끄라고 한다. 하지만 되지 않고... [ 시도2 ] bcdedit | findstr hyper 현재 hyper-V 설정을 보면 hypervisorlaunchtype 이 Auto 로 설정되어 있다. 이 경우 부팅시 자동으로 hyper-V가 실.. 2022. 5. 16.
Vagrant 가 뭐지? Vagrant 시작하기 Vagrant는 한마디로 이야기 하면, “간소화된, VM 관리 서비스이다”. 이미 Virtual Machine 환경은 보편화 되서 사용되고 있고, VMWare나 Oracle의 Virtual Box등을 이용하면 PC에서도 손쉽게 VM 환경을 구축할 수 있다. 그러나 문제점은, Virtual Box와 같은 Hypervisor가 있다고 해도, VM을 생성하는 것 자체가 번거로운 작업이라는 것이다. Hypervisor에서 논리적인 가상 하드웨어 머신을 생성하고 가상머신에 OS를 설치하고, 일일이 설정을 해줘야 한다. 이런 반복적인 작업을 조금더 손쉽게 자동화 할 수 없을까? 하는 아이디어에서 시작한 것이 Vagrant이다. 먼저 이해를 돕기 위해서 예제를 실행해보자. Vagrant는 VM.. 2022. 5. 15.
Decorator pattern (데코레이터 패턴) 데코레이터 패턴(Decorator pattern) 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다. 기존 코드를 수정하지 않고도 데코레이터 패턴을 통해 행동을 확장시킬 수 있다. 구성과 위임을 통해 실행중에 새로운 행동을 추가할 수 있다. Component 실질적인 인스턴스를 컨트롤하는 역할. ConcreteComponent와 Decorator가 구현할 인터페이스. ConcreteComponent Component의 실질적인 인스턴스의 부분으로 책임의 주체. Decorator를 받을 객체. Decorator Decorator를 할 객체의 추상클래스/인터페이스. 즉, 기능 추가를 할 객체는 이 객체를 상속/구.. 2022. 5. 3.
Bridge Pattern(브릿지 패턴) 브리지 패턴(Bridge pattern) 구현(implementation)부에서 추상(abstraction)레이어를 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴이다. 기능과 구현에 대해서 두 개를 별도의 클래스로 구현한다. 두 개의 다른 계층(하나는 추상, 하나는 구현인 서로 다른 계층의 커플링을 약화시키며 협력은 가능하도록 하는 패턴) Abstraction 기능 계층의 최상위 클래스이며 추상 인터페이스를 정의한다. Implementor에 대한 레퍼런스를 유지한다. 구현 부분에 해당하는 클래스를 인터페에스를 가지고 해당 인스턴스를 통해 구현 부분의 메서드를 호출한다. RefinedAbstraction Abstraction에 의해 정의한 인터페이스를 확장한다.(extends) 기능 계층에서 새로운 .. 2022. 5. 1.
Adapter Pattern (어댑터 패턴) 어댑터 패턴(Adapter pattern) 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다. Client The Client sees only the Target interface.(클라이언트는 Target의 인터페이스만 본다. Target 인터페이스를 사용한다.) Target The Adapter implements the Target interface.(Adapter는 Target 인터페이스를 구현한다. Client가 직접적으로 사용하려고 하는 인터페이스를 정의한다. Adaptee가 지원하길 바라는 인터페이스를 의미.) Adapter Adapter is composed with the .. 2022. 5. 1.
Builder Pattern (빌더 패턴) 빌더패턴 빌더 패턴이란 복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴이다. 코드를 보면서 알아보자. YG형이 아래와 같이 블랙핑크를 만들었다. 생성자를 이용하고 있다. public class YG { public static void main(String[] args) { Idol blankpink = new Idol("Blackpink", LocalDate.of(2016, 8, 8), "hiphop", "YG", Arrays.asList( new Member("jisu", 27), new Member("jenny", 26), new Member("roje", 25), new Member("lisa", 25))); System.out... 2022. 4. 28.
팩토리 패턴(Factory Pattern) 아래는 우리 이수만 형이 BTS와 BlackPink를 만드는 코드입니다. 수만이 형이 Idol 클래스를 이용하고 있군요. public class LeeSooMan { public static void main(String[] args) throws Exception { Idol bts = new Idol("RM", "M"); System.out.println(bts); Idol blackpink = new Idol("제니", "W"); System.out.println(blackpink); } } 구현되어 있는 Idol 클래스 입니다. public class Idol { private String name; private String groupName; public Idol(String name, Str.. 2022. 4. 26.
싱글톤 패턴(Singleton Pattern) 싱글톤(Singleton) 패턴 인스턴스를 오직 한 개만 제공하는 클래스 - 시스템 런타임, 환경 세팅에 대한 정보 등, 인스턴스가 여러 개 일 때 문제가 생길 수 있는 경우가 있다. 인스턴스를 오직 한 개만 만들어 제공하는 클래스가 필요할 때 사용한다. # Try1 - 단순구현 instance에 static 키워드를 사용하여 생성자를 사용하지 않아도 접근할 수 있게 했다. 생성자를 private 하게 만들어 외부에서 새로운 인스턴스를 만들지 못하게 했다. [-] 만약에 Runtime.instance가 없는 경우, 재생성하지 못한다. [-] Runtime이 lazy initialization 되게 구현하면 성능적으로 더 좋을 것 같다. public class App { public static void .. 2022. 4. 24.
iOS app lacks App ID Prefix. UniversalLinks is not enabled for the app. 1. 문제상황 스토어에는 아직 업로드하지 않은 앱에 firebase 다이나믹 링크 적용을 시도하고 있었다. 설치되어 있는 경우 다이나믹 링크를 브라우저나 기타 메모장에 입력하거나 QR코드로 만들어 카메라로 인식하면 앱이 실행되야한다. 안드로이드 앱은 잘 열렸지만, 애플 앱은 다이나믹 링크가 되지 않았다. 아래 캡처는 해결하여 사라졌지만 "iOS app 'com.j.' lacks App ID Prefix. UniversalLinks is not enabled for the app." 다음과 같은 에러가 있었다. 2. 원인파악 firebase 프로젝트 설정은 아래와 같이 잘 되어 있었다. App Store ID, 팀 ID도 잘 작성되었으며, 번들 ID도 에러와 같은 'com.j' 가 아니라 'com.jabc.. 2022. 4. 9.
Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present 1. 문제상황 구글스토어에 업로드하고 잘 사용하던 어플이 어느 순간 스마트폰에서 자동으로 삭제 되었다. 그리고 설치하려고 해도 설치가 안 되었다. 2. 원인찾기 adb: failed to install C:\Users\superpower\Develop\rms\android/app/build/outputs/apk/debug/app-debug.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl928833812.tmp/base.apk (at Binary XML file line #78): com.zoontek.rnbootsplash.RNBootSplashActivity:.. 2022. 4. 9.