본문 바로가기

BackEnd

컨트롤러의 리턴타입 Controller의 리턴 타입 스프링 MVC의 구조가 기존의 상속과 인터페이스에서 어노테이션을 사용하는 방식으로변한 이후에 가장 큰 변화 중 하나는 리턴 타입이 자유로워 졌다는 점입니다.Controller의 메서드가 사용할 수 있는 리턴 타입은 주로 다음과 같습니다. • String: jsp를 이용하는 경우에는 jsp 파일의 경로와 파일이름을 나타내기 위해서 사용합니다.• void: 호출하는 URL과 동일한 이름의 jsp를 의미합니다.• VO, DTO 타입 : 주로 JSON 타입의 데이터를 만들어서 반환하는 용도로 사용합니다.• ResponseEntity 타입 : response 할 때 Http 헤더 정보와 내용을 가공하는 용도로 사용합니다.• Model, ModelAndView: Model로 데이터를..
Autowired 와 Resource 와 lnject 어노테이션정리 책 110쪽 관련 @Autowlred 애노테이션과 차이가 있다면,@Autowired 애노테이션은 타입을 기준으로 빈 객체를 선택하는 반면에 ©Resource 애노테이션은 이름을 기준으로 빈 객체를 선택한다는 점이다 @qualifer lnject , @named @component @Component 애노테이션은 용도 별로 의미를 부여하는 하위 타입을 갖고 있는데,다음은 그종류들이다. • o.s.stereotype.Component : 스프링 빈 임을 의미한다.• o.s.stereotype.Service : DDD(도메인 주도 설계)에서의 서비스를 의미한다.• o. s. stereotype. Repository : DDD(도메인 주도 설계)에서의 리파지터리를 의미한다.• o.s.stereotype.Cont..
스프링 컨테이너 계층 구조 스프링 컨테이너는 부모-자식 관계의 계층 구조를 가질 수 있다. 자식에 속하는 컨테이너의 빈은 부모 컨테이너에 속한 빈을 참조할 수 있다. 즉, 의존 객체로 사용할 수 있다. 반대로 부모 컨테이너에 속한 빈은 자식 컨테이너에 속한 빈을 참조할 수는 없다. 부모/자식 구조를 만들고 싶다면, 자식 컨테이너를 생성할 때 setParent() 메서드를 이 용해서 부모 컨테이너를 지정해주면 된다. 아래 코드는 부모/자식 관계를 설정하는 예를 보여주고 있다. 123456789GenericXmlApplicationContext parent = new GenericXmlApplicationContext("classpath:conf-parent.xml"); GenericXmlApplicationContext child ..
스프링 mvc의 기본 구조 0. 스프링 MVC란? 스프링 MVC는 웹 스프링 라이브러리로, 기존에 Servlet/JSP를 이용하는 개발에 비해서 간단하고, 빠른 개발이 가능한 웹 프레임워크이다. 스프링 프레임워크를 이용한다는 의미는 스프링 MVC 프 로젝트인경우가 대부분이다. 1. 스프링MVC의 기본 구조 스프링 MVC는 Spring Framework의 서브 프로젝트다. 스프링은 하나의 기능을 위해서만 만들어진 프레임워크가 아니라 ’코어'라고 할 수 있는 프레임워크에 여러 서브 프로젝트를 결합해서 다양한 상황에 대처할 수 있도록 개발되었 다. 서브 프로젝트라 별도의 설정이 존재할 수 있다. Spring Legacy Project로 생성한 예제 의 경우에도 servlet-context.xml과 root-context.xml로 설정 ..
추상화-abstract 추상화: abstract 복잡한 현실에서 관심사, 필요한 관점만 추출해서 간단하게 단순화 시킨것을 추상화라 한다. 즉, 해결해야할문제, 반영해야할 복잡한 현실을 소프트웨어적으로 단순화시켜서 만드는 행위를 추상화라고한다. 예를들어, 지하철 노선도가 디자인의 추상화라고 한다면 프로그램을 만든다는 것은 소프트웨어 의 추상화라고 할 수 있다 객체 지향 프로그래밍은 좀 더 현실을 잘 반영하기 위한 노력의 산물이다. 이것은 단순히 객체 지 향의 문법을 이용해서 객체를 만든다고 달성되는 것이 아니다. 고도의 추상화 능력이 필요하다. 좋은 설계는 문법을 배우는 것보다 훨씬 어려운 일이다.
객체지향에 대해 1. 절차 지향 프로그래밍 : procedural programming method를 다른 언어에서는 function, procedural이라고 한다. 자바에서는 절차 지향 프로그래밍을 method programming 으로 불리면서 메소드를 이용해서 프로그램을 정리정돈하는 기법을 말한다. 즉, 메소드를 이용해서 작은 부품을 만들고 이것을 결합해서 더 큰 프로그램을 만들어가는 테크닉이 procedural programming이다. 많은 컴퓨터언어가 이 패러다임을 따른다. c언어등. 그런데 여기서 더 나아가 객체지향 프로그래밍이 나왔다. 2. 객체지향 프로그래밍 : Object-Oriented Programming 2-1) 객체란? 서로 연관된 메소드와 변수를 모아서 그룹핑하고 이름을 붙여서 정리정돈하고 ..
DI의 장점 1. 요구사항이 변화하더라도 의존 객체만 한번 수정해 줄뿐, 주입하는 코드는 그대로 이기 때문에 효율적이다. 아래글을 참고하자 https://cg-developer.tistory.com/396 다시보고 2번 내용 수정이 필요하다 2. 테스트 코드 작성시 주입하는 코드의 수정없이 가짜 구현 객체 사용가능. 주입해주고자 하는 클래스가 아직 미완성단계일때, 오버라이딩을 통해 가짜 구현 객체를 사용 하여 테스트 해볼수 있다. 즉, 의존하는 클래스의 구현이 완성되어 있지 않더라도 테스트를 할 수 있다는 점이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 package org.zerock.sample; import org.springframework.stereotype.Service; import ..
의존성 주입방법 2가지 Hotel 클래스는 chineseChef 클래스가 필요한 상황이라고 가정하자. 즉 의존하고 있는 상황이다. 호텔에서는 중국요리사가 필요한것이다. 1 2 3 4 5 public interface Cook { public String cook(); } cs 1 2 3 4 5 6 7 8 9 10 11 12 13 package org.zerock.sample; import org.springframework.stereotype.Service; import lombok.Data; @Data @Service public class ChineseChef implements Cook { @Override public String cook(){ return "chinese cook"; } } Colored by Colo..