Study

IoC (Inversion of Control) 란 ? IoC(Inversion of Control) 란 제어의 역전이라는 뜻으로 프로그램의 제어 흐름 (객체 생성 , 객체 간 의존관계 주입, 실행 등)을 외부에서 관리하는 기술을 말한다. IoC를 사용하지 않는 경우에는 프로그래머가 클라이언트에 객체의 생성 부터 객체 간의 연결 및 실행하는 코드를 직접 작성해서 프로그램의 제어 흐름을 조종했다. 이러한 방식은 의존관계를 맺은 객체의 구현체가 변경 되면 클라이언트의 코드를 수정해야 하기 때문에 객체지향의 단일책임 원칙(SRP), 개방-폐쇄 원칙(OCP), 의존관계 역전(DIP)을 위반할 수 있다. 그래서 클라이언트 내부가 아닌, 외부에서 객체의 생성과 객체 간의 연결, 실행을 제어를 하도록 하는 IoC를 ..
DI 개념 DI(Dependency Injection)란 애플리케이션에서 객체 간의 의존 관계를 외부에서 주입하는 것을 말한다. 의존 관계란 ? 의존 관계란 특정 대상에 의존하여 관계를 맺고 있는 것으로, 의존 대상이 변경되면 의존하고 있는 대상이 영향이 가는 관계이다. 만약 A 클래스에서 B 클래스를 참조하여 사용하고 있다면, A클래스는 B클래스에 의존하고 있다고 한다. DI를 사용하면 객체 지향에서 강조하는역할과 책임을 분리하여,유연하고 변경에 용이한 애플리케이션을 만들 수 있다. DI 예시 아래 예시와 같이 Car 클래스와 Engine 인터페이스, Engine 인터페이스의 구현 클래스 두개가 있다고 가정해보자 Car 클래스는 Engine 인터페이스의 구현 클래스인 GasolineEngine 인스턴..
· Study/Java
개요 이번 게시글에서는 객체 지향 프로그래밍의 5가지 원칙인 SOLID에 대해 설명합니다. SOLID란 ? SOLID란, 클린 코드로 유명한 로버트 마틴이 정리한 좋은 객체 지향 설계을 하기 위한 원칙으로, 다음과 같이 5가지 원칙으로 이루어져 있다. SRP 단일 책임 원칙 (Single Responsibility Principle) OCP 개방-폐쇄 원칙 (Open/Closed Principle) LSP : 리스코프 치환 원칙 (Liskov Substitution Principle) ISP : 인터페이스 분리 원칙 (Interface Segregation Principle) DIP 의존관계 역전 원칙 (Dependency Inversion Principle) SRP 단일 책임 원칙 "하나의 클래스는 하..
· Study/Java
개요 이번 게시글에서는 객체 지향 프로그래밍(OOP)란 무엇이고 어떤 특징을 가지는지 설명합니다. 객체 지향 프로그래밍(OOP) 란? 객체 지향 프로그래밍이란 컴퓨터 프로그래밍의 패러다임 중 하나로, 현실 세계의 사물이나 개념을 각각 상태(속성)와 행위(기능)를 가지는 객체로 만들고 이 객체들의 상호작용을 통해 문제를 해결하는 프로그래밍 기법이다. 이 OOP는 프로그램의 장점으로는 레고 블럭 조립하듯 프로그래밍 하기 때문에 코드 재사용성과 유지보수성이 높다는 점이 있다. 대표적으로 많이 알려진 언어 Java를 포함하여 C++, Python, Kotlin 등이 객체지향 프로그래밍을 지원한다 OOP에는 다음과 같은 주요 개념과 특징이 있다. 개념 클래스 객체 주요 특징 추상화 상속 다형성 ⭐ 캡슐화 OOP ..
개요 이번 게시글에서는 Spring Bean 개념과 등록 방법에 대해 간단하게 정리합니다. Spring Bean이란 ? Spring Bean이란 Spring Container에서 관리하는 객체로 어플리케이션이 기동되는 시점에 Spring Container에 등록되어, 생성 및 관리되며 애플리케이션 종료 시 제거된다. Spring Bean은 컨테이너에 클래스 별로 인스턴스 1개씩만 존재하고, 클라이언트 요청이 올 때 마다 컨테이너에서 꺼내서 사용하게 된다. (싱글톤 패턴) Spring Bean 의 사용 이점 만약 클라이언트 코드에서 의존관계를 주입할 때 new() 로 직접 객체를 생성하게 되면, 의존 받은 객체의 코드가 변경되는 경우 클라이언트 코드에도 영향을 미치게 된다. (역할과 구현이 분리되지 않아서..
개요 이번 게시글에서는 Spring 서버가 웹브라우저에게 컨텐츠를 제공하는 방식에 대해 알아봅니다. 정적 컨텐츠 방식 정적인 HTML파일을 그대로 웹브라우저에 제공하는 방식으로 [resource/static] 폴더 하위의 HTML 파일을 보여준다. Spring 서버가 정적 컨텐츠를 제공하는 순서는 아래와 같다. 1. 웹브라우저 주소창에 서버 주소와 정적 html 파일명을 붙여서 입력한다. (localhost:8080/hello-static.html) 2. spring boot의 내장 톰캣 서버에서는 먼저 hello-static이라는 컨트롤러가 있는지 확인한다. 3. hello-static이라는 컨트롤러가 없다면, resources/static 폴더 하위에 hello-static.html 파일을 찾아서 웹..
jonghne
'Study' 카테고리의 글 목록 (5 Page)