3주차 WIL
이번 주차는 Spring에 관한 기초 교육주간이였다.
Spring 은 자바 플랫폼을 기반으로 한 오픈 소스 프레임워크이다.
주요 모듈로는 IoC(제어 반전 컨테이너), 관점 지향 프로그래밍 프레임워크, 데이터 액세스 프레임워크, 트랜잭션 관리 프레임워크, 모델-뷰-컨트롤러 패턴, 배치 프렘워크가 있다.
이번 주에는 Controller, Service, Repository 를 이용하여 게시판을 만들었다.
주요 기능으론 게시글 작성, 삭제, 상세보기, 시간순서로 정렬이 있다.
id(게시글 번호 등으로 사용), title(글 제목), username(작성자 이름, 직접 입력), contents(글 내용)으로 4가지를 DTO로 묶어 자료를 전달하는 방식을 사용하였다.
Controller 에서는 기능에 대한 요청을 확인하여 Service로 전달하고, 반환된 결과값을 저장하거나 보여줍니다.
Service는 Repository를 통해 오고가는 Data를 받아 결과값을 도출하는데 사용됩니다.
Repository는 DB에 연결되어 DB에서 Data를 주거나, 받거나, 수정하는 용도로 사용되었습니다.
DI (Dependency Injection) 란 의존성 주입이라는 개념입니다.
이는 Spring의 3가지 핵심 프로그래밍 모듈중 하나입니다.
DI는 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로,
인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 다이나믹하게 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해준다.
의존성이란 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다.
DI는 인터페이스를 통해 객체간의 결합도를 낮춰 유연성을 확보하는데 의미가 있다.
IoC(Inversion of Control) 제어권 역전이라고 하며, DI는 IoC의 일종입니다.
IoC가 관리하는 객체를 Bean 이라고 하는데, Spring에서는 Bean 의 의존성을 관리하고, 객체를 만들며, Bean으로 등록하고, 만들어진 Bean을 관리합니다.
DI 출처 : https://mangkyu.tistory.com/150
IoC, Bean 출처 : https://chanhuiseok.github.io/posts/spring-4/