본문 바로가기
반응형

Language9

컴파일 타임 의존성과 런타임 의존성 객체지향 프로그래밍에서는 객체간의 의존성이 빈번하게 발생한다. 의존이란 나(객체)의 변경이 나를 사용하는 다른 객체에 영향을 미치는 것을 말한다. 이러한 의존관계의 설정은 컴파일 타임에 결정되기도 하고 런타임에 결정되기도 한다. 컴파일 타임 의존성과 런타임 의존성은 말그대로 어느 시점에 의존성이 결정되느냐의 차이이다. 이 시점의 차이를 구분하기 어렵다면 일단은 아래와 같이 이해해보자. 컴파일 타임 의존성 : 컴파일러 관할 영역 -> 순수 프로그래밍 코드를 통해 의존관계 확인 가능 -> 의존성 변경시 코드 변경 필요 런타임 의존성 : 컴파일러 관할 영역 밖 -> xml, 어노테이션을 통해 의존관계 확인 가능 -> 의존성 변경시 코드 변경 필요X 컴파일 타임과 런타임 의존성의 구분 컴파일러는 자바 코드를 바.. 2024. 2. 11.
[진행중][자바, 코틀린] 제너릭이란? 그리고 공변성과 원시(primitive) 타입 비허용 제너릭이란? 클래스, 인터페이스, 함수에서 사용되는 필드, 매개변수, 반환타입을 미리 정의하지 않고 사용하는 시점에 특정 타입을 지정할 수 있도록 해주는 기법을 제너릭(Generic)이라고 한다. 제너릭을 통해 클래스나 메서드를 각각의 타입마다 재정의할 필요 없이 코드 중복 없이 여러 타입에 대하여 재사용할 수 있다. 자바나 코틀린에서는 컴파일 단계에서 안정적인 타입체크를 함으로써 여러타입에 대해 안정적으로 사용할 수 있게 지원하고 있다. *용어 정의 제너릭 타입 : 여러 타입을 받을 수 있는 요소, 즉 제너릭 개념이 적용된 타입을 제너릭 타입이라고 한다. 원시(raw) 타입 : 제너릭이 도입되기 이전 다양한 데이터 타입을 다루기 위해 Object타입으로 데이터를 형변환하여 사용하는 타입 제너릭 메서드(.. 2023. 12. 20.
객체지향 설계의 SOLID 원칙 SOLID 원칙이란? 객체지향 프로그래밍 설계의 다섯가지 기본 원칙 유지보수와 확장이 쉬운 프로그램을 만들기 위한 목적 SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open/Close Principle) : 개방/폐쇄 원칙 LSP(Liskov Substitute Principle) : 리스코프 치환 원칙 ISP(Interface Segregation Principle) : 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) : 의존성 역전 원칙 1. SRP(Single Responsibility Principle) : 단일 책임 원칙 모듈이나 클래스는 하나의 책임을 가져야 한다 어떤 변화에 의해 클래스를 변경해야하는 이유는.. 2023. 11. 15.
java.lang.OutOfMemoryError: Java heap space 오류 해결 안녕하세요. 실서버에서 스프링 프로젝트를 호스팅하여 운영하던 중에 java.lang.OutOfMemoryError 가 나타났습니다. 서버관리가 초보라 처음 보는 에러였기 때문에 여기저기 구글링을 하며 오류를 미연에 방지하고 다음에 또 비슷한 유형의 에러가 나오면 빨리 해결할수 있도록 자바 메모리에 대해 깊이있게 공부를 해보았습니다. 자바 메모리 구조가 궁금하신 분들은 밑의 링크를 참조하여주세요. 제가 이번 에러를 통해 여기저기 글을 참조하며 최신 자바 버전에 맞게 변경된 내용까지 포함한 내용입니다. 글을 읽어보고 오류 해결방법을 읽어보는게 도움이 될것입니다. developer111.tistory.com/33 [자바]JVM 구조 및 자바 메모리 구조 실서버에 톰캣7과 자바8으로 호스팅한 후 한달 정도 되니.. 2021. 1. 14.
반응형