10.30(PSA)
2020. 10. 30. 20:19
프로그래밍/Spring
PSA 추상체로서 실제 구현체를 제어하는것을 의미 servlet jsp의 모든 방식 사용 가능 기존에는 response가 가지고 있는 출력스트림인 outputStream객체를 가져와서 서버 컴퓨터의 파일을 읽어 직접 쓰기 작업했음 그리고 Header작업을 통해 지금 내려보내는 파일은 2진파일이니 다운받을 준비하라고 브라우저에게 알려줄 용도로 Header세팅했었음 > application/octet-stream 이라는 타입을 통해 브라우저에게 2진파일이라는 것을 알려주고 다운로드할 준비하라고 설정했었음 이 방식을 그대로 스프링에서 사용가능 위와 같은 방식으로 하려면 handler메소드에서 response객체 요청하면 됨(HttpResponse) 스프링에서는 Resource라는 것만 달라짐 -> PSA로 스..
10.22(AOP의 이해, @Slf4j)
2020. 10. 22. 20:25
프로그래밍/Spring
logger찍기 위하여 private Logger log = LoggerFactory.getLogger(getClass());로 사용한던것을 클래스 레벨의 @Slf4j 로 대체 가능 IOC : 제어의 역전 DI : 의존주입 POJO : 가장 단순한 형태의 자바클래스를 가지고 프레임워크를 사용할 수 있음 PSA : 추상화 레이어를 통해 구체화된 라이브러리를 제어할 수 있음(slf4j-log4j) AOP : 관점지향 프로그래밍(OOP와 대비되는 개념이 아니라 OOP와 같이 사용하면 모듈화를 극대화로 끌어올려줌) 관점별로 분리하여 주업무와 보조업무를 완벽하게 분리하여 모듈형식으로 삽입하여 실행 AOP 공통되는 부분을 따로 빼내어 필요한 시점에 해당 코드를 추가하여 사용 무엇을 어디에 삽입해서 사용할 것인가 파..
10.20(Model, log4j, Handler Interceptor)
2020. 10. 20. 22:14
프로그래밍/Spring
Model? Model은 view단에 뭔가를 전달할 목적으로 사용하는 Map객체(MVC패턴의 M이 아님!) view단 처리하는 데이터의 임시저장소이며, Map객체(k,v) model에서 다루는건 보통 데이터와 viewName 1. ModelAndView(2.0) - 일반클래스 (1번을 많이 씀) - 속성추가 addObject(String, Object) - viewName setViewName(String) 2. ModelMap(2.0) - 일반 클래스 - 속성추가 addAttribute(String, Object) - viewName String리턴 3. Model(2.5) - 인터페이스 - 속성추가 addAttribute(String, Object) - viewName String리턴 뷰단처리를 위해..
10.12(스프링 특징 : IoC, DI, POJO, PSA, AOP)
2020. 10. 12. 20:37
프로그래밍/Spring
1. 제어 반전, IoC (Inversion of Control)를 지원함. (예시가 DI) * 컨트롤의 제어권이 개발자가 아니라 프레임워크에 있음 * 객체의 생성부터 모든 생명주기의 관리까지 객체의 제어권이 바뀐 것을 의미합니다. * 객체를 생성하고, 직접 호출하는 자바프로그램이 아니라, 만들어둔 자원을 프레임워크에서 호출해서 사용함. 2. 의존성 주입, DI (Dependency Injection) 를 지원함. @Autowired 등 * 이는 객체간의 의존관계를 관리하는 기술 * 어떤 객체가 필요로 하는 객체를 자기 자신이 직접 생성하는 것이 아니라, 외부에 있는 다른곳에서 자신이 필요로 하는 객체를 주입받는 것 3. POJO (Plain Old Java Object) 방식의 프레임워크 * 일반적인 ..