//////
Search
📓

10/26 회고록

생성일
2022/10/26 11:08
태그

김기헌

Spring

: 자바 언어를 이용하여 엔터프라이즈급 개발을 편리하게 만들어주는 프레임워크(Framework)
→ 자바로 애플리케이션을 개발하는데 필요한 기능을 제공하고 쉽게 사용하도록 돕는 도구
스프링의 핵심가치: 애플리케이션 개발에 필요한 기반을 제공하여 개발자가 비즈니스 로직 구현에만 집중할 수 있게 하는 것

Spring의 특징

제어 역전(Inversion of Control, IoC)
보통 자바에서는 객체를 사용하기 위해 아래의 코드와 같이 객체를 선언하고 객체의 의존성을 생성한 후, 객체에서 제공하는 기능을 사용한다
→ 개발자가 작업을 직접 제어하는 구조
private Object object = new Object();
Java
복사
하지만 IoC를 적용한 환경에서는 객체를 직접 생성하지 않고 객체의 생명주기 관리를 스프링 컨테이너 혹은 IoC 컨테이너에 위임한다. 이처럼 객체의 관리를 컨테이너에 맡겨 제어권이 넘어간 것을 제어 역전이라고 부르며, 제어 역전을 통해 의존성 주입(DI), 관점 지향 프로그래밍(AOP)등이 가능해진다.
의존성 주입(Dependency Injection)
제어 역전의 방법 중 하나로 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식
생성자를 통한 DI
필드 객체 선언을 통한 DI
setter 메서드를 통한 DI
스프링에서는 @Autowired 어노테이션을 통해 DI할 수 있다. (스프링 4.3 이후 버전은 @Autowired 생략 가능)

이가현

임학준

스프링

엔터프라이즈급 개발
개발자가 비즈니스 로직 구현에만 집중할 수 있게끔 하는것

제어역전(IoC)

자바에서는 객체를 선언하고 의존성을 생성한후 객체에서 제공하는 기능을 사용한다
객체를 생성하고 사용하는것을 개발자가 직접 한다(new를 직접한다)
IoC를 적용한 스프링에서는 객체를 직접 생성하지 않고 컨테이너에게 맡긴다
객체의 관리의 제어권을 컨테이너에게 맡긴것(넘어간것)을 제어역전 이라고 부른다
제어역전을 통해 DI(의존성)주입, 관점 지향 프로그래밍(AOP)등이 가능해진다
스프링을 사용하면 객체의 제어권을 컨테이너로 넘기기때문에 개발자는 비즈니스 로직에 집중할수 있다’

의존성주입(DI)

제어역전의 방법중 하나로 사용할 객체를 직접 생성하지 않고 외부컨테이너가 생성한 객체를 주입받아 사용하는 방식
스프링의존성 주입(@AutoWired)
생성자 (공식문서 권장)
필드객체선언 ( jbdcTemplate(DataSource))
setter메서드 (잘 쓰지 않음)

pom.xml

메이븐의 기능을 사용하기 위해 작성하는 파일
메이븐 = 패키징 테스트 배포를 하는 빌드 도구
프로젝트사용파일(xml,jar,properties)들의 빌드 라이브러리간 호환성체크를 해준다
생명주기가 있어 패키지(jar)를 생성 하려면 테스트 과정을 거쳐야 한다

GET API

@RequestMapping를 사용한다
스프링 4.3이후로는 @GetMapping를 사용한다
크롬 확장 프로그램 Talend API TESTER로 동작테스트를 할수 있다
수업 코드
@RestController @RequestMapping("/api/v1/get-api") // 스프링이 이걸 찾는다 , HTTP의 모든요청을 받는다 public class HelloController { @RequestMapping(value = "/hello", method = RequestMethod.GET)//요청형식 GET만 받음 public String hello() { return "Hello World"; } @GetMapping(value = "/name") public String getName() { //매개변수가 없다 return "hakjun"; } @GetMapping(value = "/variable1/{variable}") public String getVariable1(@PathVariable String variable) { //매개변수가 있는경우 return variable; //이름이 일치해야한다 } @GetMapping(value = "/variable2/{variable}") public String getVariable2(@PathVariable("variable") String var) {//매개변수 타입맞추기 //@PathVariable(value = "variable")String var;//같은의미 return var; } }
Java
복사

조국현