본문 바로가기

전체 글

(359)
공변성, 반공변성, 무공변성에 대하여 출처: https://velog.io/@lsb156/covariance-contrav ariance 출처: https://www.youtube.com/watch?v=PtM44sO-A6g 공변성(=Covariant=함께 변한다), 반공변성(Contravariant=반대로 변한다), 무공변성(=Invariant=변하지 않는다). 여기서 변하고 변하지 않고의 기준은 어떤 관계(예를들면 부모 자식)가 있을때 다른 어떤 요소의(예를들면 저네릭이라는 요소)관계에 영향을 주는가의 문제임. 자바의 저네릭을 예로 들면 A가 B의 상위타입이라고 했을때 GenericType는 GenericType의 상위타입이 아님. 즉A가 B의 상위타입임에도 불구하고 저네릭이라는 다른 어떤 요소에서는 GenericType가 GenericT..
자바 Reflection(리플랙션)에 대해서 출처: https://hudi.blog/java-reflection/ Class객체를 얻어야 리플랙션 라이브러리를 사욯할 수 있다!!!
Subtyping VS Subclassing 출처: https://velog.io/@hylee/Java-%EC%83%81%EC%86%8D%EA%B3%BC-%EA%B5%AC%EC%B2%B4%ED%99%94-1.-%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B0%84-%EA%B4%80%EA%B3%84-%EA%B0%9D%EC%B2%B4-%EA%B0%84-%EA%B4%80%EA%B3%84 출처: https://incheol-jung.gitbook.io/docs/study/object/2020-03-10-object-chap13 Subclassing=한 클래스의 상태와 행위를 재사용하는 것(=상속하는 것, 즉 상태와 구현한 행위들을 통째로 재사용하는 것을 말함). Subtyping (=구체화 관계)= (인터페이스의) 외부모습만 재사용 한것(=인..
3. 장식(Decorator)패턴 장식패턴이 사용되는 경우(문제상황): 어떤 클래스의 전체 객체에 적용하는 것이 아니라 그 클래스의 특정 객체에게만 동적으로 기능(행위)을 적용하고 싶을 때(이 때문에 상속이 아닌 has-a를 통한 메서드의 재정의를 하는 것임) (물론 전략패턴도 이런 측면이 있다. 하지만 앞에서도 말했듯이 장식패턴은 어떤 본연의 기능이 있을때 그것을 없애지 않고 그 위에 추가를 해주는 것이지만 전략패턴은 통째로 바꾸는 것). 디자인 패턴도 역시 패턴이므로 OCP원칙을 저버리지 않는다. 즉 코드의 수정없이 기능을 확장한다. 디자인패턴의 형식: 상속과 포함(has-a)을 모두 활용한다(많은 경우 OCP는 DIP를 통해 이루어지고 DIP는 느슨한 has-a를 통해 이루어진다) (상속과 포함이 구체적으로 어떻게 활용되는지는 같은..
디자인 패턴(Design Pattern)이란? 출처: https://ko.wikipedia.org/wiki/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4 앞으로도 쭈욱 도움이 될 출처: https://readystory.tistory.com/114 출처: https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS6705039023 디자인패턴이란? 특정 문맥에서 공통적이고 반복적으로 발생하는 문제에 대해 재사용 가능한 해결책이다(따라서 나는 어떤 문제상황에 어떤 해결책이 쓰이는지 짝지어서 학습해야 한다). 디자인 패턴이란? 객체지향 설계원리들(SOLID)이 잘 적용..
[intellij] Cannot start compilation: the output path is not specified for module 오류 해결 출처: https://118k.tistory.com/856 intellij에서 프로그램 git에서 프로젝트를 내려 받거나 외부의 프로젝트를 가져오는 경우 프로젝트 설정이 되어 있지 않아서 이런 오류가 발생합니다. 이때 'OK'를 클릭하거나, File - Project Strecture를 클릭하면 다음의 설정이 나옵니다. 여기서 Project compiler output: 부분을 설정하여 주면 됩니다.
Error: JavaFX runtime components are missing, and are required to run this application 쉽게 말해 runtime에 관한 재설정이 필요하다는 것이다. Run-> Edit Configurations 로 들어가 --module-path C:\javafx-sdk-11.0.2\lib --add-modules=javafx.controls,javafx.fxml 아래는 해결에 도움을 받은 출처다. 출처: https://streamls.tistory.com/entry/JAVA-Intellij-JavaFX-%EC%84%A4%EC%B9%98Java-11-%EC%9D%B4%ED%9B%84-%EB%B2%84%EC%A0%84%EC%9A%A9 혹시 위 방법으로도 안된다면 Runtime Configuration이 아래의 그림과 전부 같은지도 확인해야한다. 사소한 설정 잘못 건드려서 안된적도 있음(정상적으로 굴러가는 프..
템플릿 엔진? thymeleaf템플릿 엔진이란? JSP와 servlet의 다른점? 출처: https://code-lab1.tistory.com/211 (꼭보기) https://javacpro.tistory.com/43 (꼭 보기) https://jin2rang.tistory.com/entry/Spring-Boot-thymeleaf-%ED%85%9C%ED%94%8C%EB%A6%BF-%EC%97%94%EC%A7%84 Thymeleaf 템플릿 엔진: 웹페이지를 동적으로 생성하는 서버사이드 프로그램. 템플릿엔진은 크게 클라이언트 사이드 템플릿 엔진과 서버 사이드 템플릿 엔진으로 구분됨. 내가 배운 React, Vue는 클라이언트 사이드 템플릿 엔진이고 Thmeleaf, JSP같은 경우가 서버 사이드 템플릿 엔진임. 서버사이드 템플릿 엔진의 경우 지정된 템플릿에 동적인 데이터를 결합하여 하나의..