본문 바로가기

Plo Spring

(9)
Spring CORS - Origin - - [Protocol (http , https)] - [Hosthome (localhost , naver.com , google.com)] - [port (80 ,8080 , 8000)] Origin이란 Protoco , host , port를 합친 것을 말합니다. ex : http://localhost:8080 - SOP (Single Origin Policy) - 브라우저가 동일 출처 정책을 준수해 다른 origin의 리소스 접근을 막는 것을 말한다. - CrossOrigin Resource Sharing - 서로 다른 origin끼리 리소스 요청을 받을 수 있게해주는 기능을 정의해둔 표준 SOP (Single Origin Policy)를 우회하기 위한 표준 기술이다.
Spring SQL , ORM - StructuredQueryLanguage - 관계형 데이터베이스 관리 시스템 RDBMS의 데이터 처리 및 관리를 위해 설계된 프로그래밍 언어이다. RDBMS에서의 자료의 검색 , 관리 , 스키마 생성 및 수정 데이터베이스의 접근 관리를 위해 고안되었으며 MySQL , MarianaDB 등 RDBMS들이 표준 언어로 채택하고 있다. - Object Relational Mapping - 객체와 RDBMS의 데이터를 매핑시켜주는 기술이다. 객체지향 프로그래밍 언어 내에서 객체 = DB테이블 가능하게 해주는 역할을하며 RDBMS를 조작하기 위한 SQL을 작성하는 것이 아닌 코드로 DB를 조작이 가능하게 한다. RDBMS를 객체지향적으로 관리하기 때문에 개발자가 비즈니스 로직에 집중할 수 있게 해준다. 단 ..
Spring Bean -Bean- Spring Container는 객체의 관리, 의존관계의 결정 및 설정 등의 역할을 맡게된다. 스프링에서는 Application을 구성하는 Bean을 관리하기 위하여 Spring Container내부에 BeanFactory를 만들어 관리한다. BeanFactory는 Bean 등록 , 생성 , 관리 , 조회 등의 역할을하며 .getBean() 메서드를 통해 Bean을 인스턴스화할 수 있다.
Spring IOC(제어의 역전) , DI (의존성 주입) - Inversion Of Control- 프로그램의 흐름 (객체의 생성 , 생명주기)을 개발자가 직접 제어하는 것이 아닌 외부에서 제어 및 관리해주는 것을 말한다. - IOC Container - 스프링에서는 Application을 구성하는 Bean을 관리하기 위하여 IOC개념을 이용 Spring IOC Container가 객체를 관리함으로써 DI(의존성 주입) , AOP(관점 지향 프로그래밍)이 가능해지게 된다. Spring IOC Container가 주도권을 가져감으로써 Spring IOC Container가 객체의 관리, 의존관계의 결정 및 설정 등의 역할을 맡게된다. - DI (1)- 객체의 의존성을 개발자가 아닌 외부(IOC Container)에서 주입함으로써 객체간의 결합을 약하게 해주며 유..
Servlet & Dispatcher Servlet Servlet Java를 사용해 웹을 만들기 위한 기술 클라이언트의 요청을 받고 결과를 전송하는 자바 프로그램이다. 서블릿은 자바로 구현된 CGI라고 말한다. CommonGatewayInterface 공용 게이트웨이 인터페이스 웹 서버 상에서 사용자의 프로그램을 동작시키기 위한 조합 Servlet의 동작 사용자의 요청 (URL 입력) -> Http Request를 Servlet Container에 전송 ⬇️ Servlet Container는 사용자의 요청을 server로 전송할 HttpServletRequest server의 응답을 사용자에게 반환할 HttpServletResponse 두 객체를 생성한다. ⬇️ Servlet Container가 요청에 적합한 Servlet을 찾아 service() 메서드..
Rest API Put & Patch PUT PUT PATCH 원본 DATA {"name" : "plo", "age" : "25"} {"name" : "plo", "age" : "25"} {"name" : "plo", "age" : "25"} 동작 전 {"name" : "hyuk", "age" : "26"} {"name" : "hyuk"} {"name" : "hyuk"} 동작 후 {"name" : "hyuk", "age" : "26"} {"name" : "hyuk", "age" : null } {"name" : "hyuk", "age" : "25"} Put (UPDATE) 데이터 전체 수정 데이터 필드 내의 모든 필드를 전달해야한다. 일부만 전달할 경우에는 오류 발생 해당 데이터의 전체를 교체해야한다. Patch (UPDATE) 데이터의 일..
Spring Controller , Service , Repository , Domain , DTO = Spring Controller , Service , Repository , Domain , DTO = - Controller - Client의 요청을 받았을 때 그 요청에 대해 실제 업무를 수행하는 Service를 호출 클라이언트가 보낸 데이터가 있다면 Service를 호출할 때 전달하기 쉽게 데이터의 가공 모델의 업무 수행이 완료되면 그 결과를 바탕으로 화면을 구성하도록 View에 전달 Service : Controller의 요청을 받아 알맞은 정보를 가공 Controller에게 재전달한다. Repository를 상속받아 .findByID , .save()등의 함수 사용이 가능해진다. Repository : Entity에 의해 생성된 DB에 접근하는 메서드를 사용하기위한 interface이다. J..
Spring API @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } @GetMapping("hello-string") @ResponseBody public String helloString (@RequestParam(..