[React] Module not found: Error: Can't resolve 'web-vitals'
·
공부
아무런 코드 추가 없이 기본 react 설치 후 npm start를 하니 해당 오류 발생 패키지가 꼬여서 발생한 문제npm i web-vitals --save-dev 명령어를 통해 패키지를 없는 패키지를 다운받으니 문제 해결. 혹은 모듈을 전부 다시 받아도 해결된다고 합니다. https://stackoverflow.com/questions/65396568/react-js-npm-start-shows-failed-to-compile-web-vitals React JS npm start shows failed to compile web-vitalsI'm getting the error: failed to compile -/src/reportWebVitals.js Module not found: Can't r..
Unexpected method 'appcast' called on Cask adoptopenjdk 에러
·
공부
brew update-reset & brew update를 실행하니 오류 해결!
[Unity] Camera View와 Game View가 일치하지 않는 문제
·
공부/Unity
뭐라고 검색할 지도 몰라 카메라 뷰 게임뷰 다름, 메인 카메라 플레이어 등등... 많은 검색을 했고 대부분 사람의 경우 코드에서 Camera에 물리엔진을 적용시킨 것에서 원인을 찾았다. 나는 그게 아니었고... 바보 같은 행동을 저질렀다...!  1인칭 프로젝트를 진행 중이기에 Player 하위에 Camera가 들어있고 이게 Main Camera 역할을 하고 있는 상황이다. ⁉️⁉️⁉️⁉️ Player에도 Camera component가 들어있다. 이게 뭔!!!! 컴포넌트를 비활성화시켜주면 게임뷰와 카메라뷰가 일치하게 된다.
[디자인패턴] 컴포지트, 복합체 (Composite)패턴이란?
·
공부/소프트웨어공학
Composite 패턴은 Structural pattern이다.그룹 객체와 단일 객체 사이의 접근 방식을 통일하는 패턴이다! 문제상황택배 상자 속 무게를 통해 택배 비용을 계산하는 프로그램이 있다. 택배 안에는 바지, 양말, 금 등등 다양한 물건이 들어가는데 상자 안에 상자가 들어가는 것도 가능하다. private List trousers = new ArrayList();private List socks = new ArrayList();private List golds = new ArrayList();private List boxes = new ArrayList(); 일단 택배 안에 있는 물건을 ArrayList로 관리하는 가장 단순한 방법을 택해보자. 새로운 양말이 추가되면 socks에 add하고 박스..
[디자인패턴] 추상 팩토리(Abstract Factory) 패턴이란?
·
공부/소프트웨어공학
Abstract Factory 패턴은 Creational pattern이다. Factory Method Pattern, GOF Factory Method Pattern에 이어서 새로운 팩토리 패턴을 배워보자. Abstract Factory Pattern은 관련성이 있는 여러 종류의 객체들을 일관된 방식으로 생성할 때 유용하다. 어렵게 생각할 것 없다. 패턴 이름에서 알 수 있듯 이번 디자인 패턴에는 abstract class를 활용한 상속 관계가 등장한다. 추상 팩토리 패턴 이해를 위해 엘리베이터를 만들어보자!기본 구조우리가 만들 수 있는 엘리베이터는 LG사 엘리베이터와 현대사 엘리베이터 두 종류다. 엘리베이터는 반드시 내부 부품의 제조사와 엘리베이터 제조사가 같아야 한다. LG 엘리베이터는 LG mot..
[디자인패턴] 팩토리 메서드(Factory Method) 패턴이란? (+ GoF Factory Method Pattern)
·
공부/소프트웨어공학
Factory Method 패턴은 Creational pattern이다. 클래스를 선언할 때 new 구체적인클래스이름(); 처럼 내가 사용할 클래스를 구체적으로 명시하는 동시에 사용하는 경우가 있다. 사용할 클래스가 때때로 변경된다면 그때마다 new를 사용, 객체를 생성하게 된다. 이전에 배운 Strategy 패턴을 사용하여 전략을 변경하면 되는 것 아닌가요? 라고 물을 수 있지만 사용하는 방식이 다르다. 전략 변경만으로도 클래스가 정상 작동하면 좋겠지만 전략에 따라 요구사항이 달라지거나 동적으로 전략이 변경되어야 한다면 Strategy만으로는 클래스 생성을 감당할 수 없다. 전략을 지원하는 구체적인 클래스를 생성하고 기존 메서드도 변경되어야 한다. 👉 주어진 기능을 제공하는 클래스 생성 작업을 별도로..
[디자인패턴] 템플릿 메서드(Template Method) 패턴이란?
·
공부/소프트웨어공학
Template Method 패턴은Behavioral design pattern이다. 템플릿이라는 말은 평소에도 많이 사용하기에 익숙하다. 템플릿 메서드 패턴이라는 말을 들으면 대충 무슨 역할을 하는지 알 수 있을 텐데 느끼는 것 그대로다! 템플릿 메서드 패턴은 상위 클래스에서 전체적인 알고리즘을 구현하고 다른 부분은 하위 클래스에서 구현할 수 있도록 하는 디자인 패턴이다. 알고리즘 세부 동작을 하위 클래스에서 구현할 수 있어 유연성과 확장성이 높고 코드 중복을 줄이고 유지보수를 쉽게 할 수 있다. 현대사에서 나온 모터를 사용해 구동하는 엘리베이터가 있다고 하자. 모터가 확장될 것에 대비해 클래스를 상위 클래스와 하위 클래스로 분류하고 확장에 용이하도록 만든 모습이다. 자랑스럽지 않은가?! 기대에 맞춰 ..
[디자인패턴] 데코레이터(Decorator) 패턴이란?
·
공부/소프트웨어공학
Decorator 패턴은 Structural Patten이다. 말 그대로 프로그램을 꾸미면서 확장하는 형식이다. 도로를 그리는 프로그램이 있다. 기본프로그램에서 확장해 교통 상황, 차선, 교차로 등을 그릴 수 있도록 확장하려 한다. 이렇게 새로운 기능이 추가될 때마다 기존 코드를 활용하지 못하고 계속 extends를 통해 클래스를 추가하는 게 가장 단순하다. 이는 SOLID 원칙의 LSP를 위반한다. 기능을 재사용하기 위해 일반화 관계를 사용해서는 안된다. 일반화 관계를 사용하지 말고 연관 관계를 사용하는 방식으로 프로그램을 수정해보자.이때 Display가 자기 자신을 연관 관계로 맺는 이유가 헷갈렸는데 알고 보면 단순하다. RoadDisplay의 하위 개념으로 있는 클래스인 RoadDisplay, Ro..
[디자인패턴] 빌더(Builder) 패턴이란?
·
공부/소프트웨어공학
Builder 패턴은  Creational Design Pattern이다. 책 정보를 정리하는 프로그램을 만들고자 한다. 책의 정보에는 제목, isbn, 저자, 출판사, 출판연도 등이 담겨있다. 나는 필수 정보로 제목과 isbn이 들어가게 하고 싶다. 다른 정보는 있어도 좋고 없어도 좋다! 1. Telescoping Constructor Pattern(점층적 생성자 패턴)평소 알고 있는 정보로 프로그램을 작성한다면public class Book { private String title; private String isbn; private String author; private int pages; private String category; public Book(Strin..
[디자인패턴] 옵서버(Observer ) 패턴이란? 또는 Event-Listener
·
공부/소프트웨어공학
Observer 패턴은 Behavioral Design Pattern이다.개인적으로는 Observer 패턴보다 event-listener라는 이름이 더 직관적이라고 생각한다. 하지만 범용적인 용어를 사용하겠다. 휴대폰 가게 A와 손님이 있다고 가정해보자. 손님은 새로운 아이폰이 갖고 싶어 매일같이 가게에 방문에 아이폰이 출시되었는가 확인한다. 새로운 기기가 한 달 뒤에 나올지 일년 뒤에 나올지는 아무도 알 수 없다. 손님의 무의미한 방문은 계속된다.휴대폰 가게 B에서는 다른 방식을 택한다. 새로운 휴대폰이 나올 때마다 가게 인근에 사는 모든 사람들에게 이메일을 전송해 휴대폰이 출시되었음을 알린다. 일부 사람에게는 희소식이 될 수 있지만 이 소식에 관심없는 사람에게는 스팸 메일에 불과하다.문제점휴대폰 가게..