[IOS] setValue:forUndefinedKey : this class is not key value coding-compliant for the key ...
·
공부
Xcode에서 시뮬레이터를 빌드하고 오류가 발생했다. 띄워준 화면의 오류 코드를 읽어보면 wrongTextUrl이라는 값과 관련한 오류 같다.  그래서 ViewController의 코드를 읽어봤는데,wrongTextUrl이라는 아웃렛이 존재하지 않는다.당연하다. 내가 변수명을 잘못 설정해서 삭제한 후 다시 만든 아웃렛이 textUrl이니까.아웃렛은 코드에서 삭제했다고 삭제되지 않는다. UITextField와 연결된 채 남아있기 때문에 위 오류가 발생한 것이다. UITextField를 우클릭하면 아래와 같은 옵션을 볼 수 있다. Referencing Outlets을 보면 겉으로는 없었지만 남아있는 wrongTextUrl을 확인할 수 있다. View Controller 좌측에 있는 x 를 눌러 완전히 삭제해..
[React] npm error code ENOENT
·
공부
npm start를 작성하니 나온 에러다.package.json이 있는 위치가 아니라 다른 곳에서 npm start를 실행했기 때문에 나온 에러다. package.json이 있는 곳으로 터미널 경로를 옮겨주고 npm start를 실행하면 정상 작동된다.
[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에서는 다른 방식을 택한다. 새로운 휴대폰이 나올 때마다 가게 인근에 사는 모든 사람들에게 이메일을 전송해 휴대폰이 출시되었음을 알린다. 일부 사람에게는 희소식이 될 수 있지만 이 소식에 관심없는 사람에게는 스팸 메일에 불과하다.문제점휴대폰 가게..
[디자인패턴] 커맨드(Command) 패턴이란?
·
공부/소프트웨어공학
Command 패턴은 Behavioral Design Pattern이다. 전등을 키는 버튼을 만든다고 해보자위와 같은 시스템에서 버튼을 눌렀을 때 Lamp가 아니라 Alarm이 켜지도록 하려면 어떻게 해야 하는가? 🤔또는 버튼이 한 번 눌리면 Lamp가 켜지고 두 번 눌리면 Lamp가 꺼지도록 하려면 어떻게 해야 하는가? 🤔➡️ 기존 코드의 Button(theLamp: Lamp)를 Button(theAlarm: Alarm)으로 변경해야 한다. OCP 위반 OCP를 만족하도록변화를 식별한다. 이번 경우에는 request다. 변화하는 것을 클래스로 분리한다. LampOnCommand, AlarmStartCommand변화하는 개념을 포용하는 개념을 추상 클래스나 인터페이스화한다. Command의 등장!2번..
[디자인패턴] 스트래티지(Strategy) 패턴이란?
·
공부/소프트웨어공학
쉽게 말해! 알고리즘의 변화를 캡슐화로 처리하자 Strategy 패턴은 Behavioral Pattern이다. 이처럼 Robot을 extends하는 두 개의 디테일한 로봇 태권브이와 아톰이 있다고 하자. 태권브이의 move는 걷기이며 attack은 미사일을 사용한다. 아톰의 move는 날기이며 attack은 펀치이다.public abstract class Robot { private String name; public abstract void move(); public abstract void attack(); public Robot(String name) { this.name = name; } public String getName() { return name; }}-pub..
[디자인패턴] 싱글톤(Singleton) 패턴이란?
·
공부/소프트웨어공학
싱글톤 패턴은 Creational Design Pattern이다.무엇인가?- 단 하나의 클래스 객체(instance)가 생기도록하는 패턴이다. 어디서나 접근 가능하다.​왜 사용하나?- 어디에서 접근 가능한 객체가 필요한 경우가 생기기 때문이다.최초로 객체를 생성하고 난 뒤에 추가로 객체를 생성할 필요가 없으니 메모리, 속도 면에서 이점이 있다. public static Logger getInstance() { if (instance == null) instance = new Logger(); return instance; }이렇게 ​instance가 null이라면 새로운 instance를 생성하고, instance가 이미 있다면 기존 instance를 사용하는 방식이다. 싱글 스레드에서는 아무 문..