본문 바로가기
IT개발/Java

[Java]내가 생각하는 중요한 자바 용어 정리2

by Thompson 2024. 10. 29.
728x90

 

소프트웨어

 

소프트웨어는 컴퓨터 시스템에서 특정 작업을 수행하기 위해 작성된 프로그램, 데이터, 프로시저의 집합입니다. 운영체제(OS), 애플리케이션 소프트웨어, 데이터베이스 관리 시스템(DBMS) 등 다양한 유형이 있습니다. 소프트웨어는 사용자 요구에 따라 하드웨어를 제어하고, 프로세스를 자동화하여 작업을 효율적으로 수행합니다.

 

코딩

 

코딩은 프로그래밍 언어를 사용하여 컴퓨터가 실행할 명령어와 논리를 작성하는 과정입니다. 코딩은 다양한 언어(C, Python, Java 등)로 이루어지며, 논리적 사고와 문제 해결 능력을 요구합니다.

 

하드웨어

 

하드웨어는 컴퓨터 시스템을 구성하는 모든 물리적 장치와 부품을 의미합니다. CPU, 메모리, 하드 드라이브, 마더보드, 키보드, 모니터 등과 같은 요소들이 이에 해당됩니다. 하드웨어는 소프트웨어와 상호작용하여 정보를 처리합니다.

 

프레임워크

 

프레임워크란? 아키텍쳐를 포함한, 애플리케이션의 전체 골격을 구성하는 반제품 성격의 코드로, "오픈 소스"에는 영역별로 다양한 프레임워크들이 존재하며, 자바는 이들을 사용하여 애플리케이션을 구성, 즉, 전체 골격을 구성하는 코드 집합입니다.

 

메이븐 Dependency(빌드 자동화 동구)

 

메이븐 프로젝트는 프레임워크를 구성하는 오픈소스의 라이브러리들을 편리하게 자신의 프로젝트로 가져올 수 있습니다. ("pom.xml"파일에서 수행할 작업을 설정 및 "고정폴더"를 사용하여 프로젝트를 구성)

 

컨테이너(스프링 컨테이너, IOC컨테이너)

 

컨테이너란? 객체를 담아 이를 처리하는 객체 상자입니다. 객체 생성과 객체들 사이의 관계설정, 관련객체의 동작, 의존성 주입 등을 수행하며, 그러므로 자연스럽게 컨테이너를 사용하는 애플리케이션은 클래스 코드와 객체 코드를 분리하여 사용합니다. 즉 컨테이너 변경만으로도 애플리케이션 동작을 변경하는게 가능합니다.  그러므로 애플리케이션의 수행흐름의 주도권을 컨테이너가 수행합니다.

(컨테이너의 주된 목적 : 의존주입, 제어의 역전)

 

컨테이너 사용 목적

 

객체형 프로그램에서의 애플리케이션 진행은 클래스로부터 객체가 생성되어 생성된 객체가 다른 객체와 응영관계에서 상호작용을 하여 각 객체들이 동작하는 것인데, 컨테이너를 사용하지 않으면, 순수 자바 언어로만 클래스로부터 new연산자를 사용해서 객체 생성 및 관계설정, 객체동작가지 이를 수행해야하는 번거로움이 있습니다. 하지만 컨테이너를 사용하는 스프링 애플리케이션은 해당 객체와 관련된 모든일을 위임시켜 동작하기에 컨테이너를 사용합니다.

 

제어의 역전

 

사용객체와 대상객체의 관계를 설정하는 과정에서 컨테이너에 의해 대상객체가 사용객체를 결정하는 행위입니다.

 

의존성 주입(명시적 주입)

 

사용객체가 대상객체의 참조값을 가지기 위해서는 생성자 혹은 세터 메서드를 준비하면, 컨테이너가 사용객체와 대상객체를 생성시, 이들 메서드들 중 하나를 호출하여 의존관계를 성립시킵니다.

 

의존성 주입(자동 주입)

 

사용 객체 클래스 필드 혹은 세터메서드 중에 @AutoWired 어노테이션을 사용하여 자바 설정 파일의 빈 객체를 자동 의존 주입하는 방식.