Spring 8

[Spring] CORS란?

CORS란? CORS(Cross-Origin Resource Sharing)는 출처가 다른 자원들을 공유한다는 뜻으로, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념입니다. 직역하면, 교차되는 출처 자원들의 공유입니다. 다른 출처에 있는 자원을 요청한다고 하면, 이를 교차 출처 요청이라고 부릅니다. 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행합니다. - mdn 설..

Spring 2023.07.17

[Spring] 3 Layer Architecture (Spring)

Spring의 3 Layer Architecture 서버 개발자들은 서버에서의 처리과정이 대부분 비슷하다는 걸 깨닫고, 처리 과정을 크게 Controller, Service, Repository 3개로 분리했습니다. 1. Cotroller 클라이언트의 요청을 받는다 요청에 대한 로직 처리는 Service에게 전담한다. Request 데이터가 있다면 Service에게 전달한다. Service에서 처리 완료된 결과를 클라이언트에게 응답한다. 2. Service Controller에 의해 호출되어 실제 비즈니스 로직과 트랜잭션을 처리합니다. 3. Repository DB 관리 (연결, 해제, 자원 관리)를 한다. DB CRUD 작업을 처리한다. 전체 그림

Spring 2023.06.27

[Spring] 객체 지향 설계의 5가지 원칙 (SOLID)

SOLID • SRP: 단일 책임 원칙(single responsibility principle) • OCP: 개방-폐쇄 원칙 (Open/closed principle) • LSP: 리스코프 치환 원칙 (Liskov substitution principle) • ISP: 인터페이스 분리 원칙 (Interface segregation principle) • DIP: 의존관계 역전 원칙 (Dependency inversion principle) SRP 한 클래스는 하나의 책임만 가져야 한다. '책임' 이라는 의미는 하나의 '기능담당' 으로 보면 될듯 중요한 기준은 변경. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 즉, 하나의 클래스는 하나의 기능 담당하여 하나의 책임을 수행하는데 집중..

Spring 2023.06.18

[Spring] 스프링배우기전에 꼭 보기

어노테이션 스프링은 IOC 컨테이너 관리권을 가지고 있어 어노테이션을 사용하여 의존성을 주입을 한다 어노테이션(Annotation) 종류 @Component @RestController @Controller @Configuration @Service @Bean 등등 의존성 주입(DI : Dependency Injection) 생성자(Constructor)가 IoC 컨테이너에 접근하는 것, 생성자에 타입이 있을 경우 Ioc 컨테이너에서 타입을 찾아낸다. IoC(Inversion of Control) 제어의 역전, 객체의 제어권이 스프링에게 넘어가는 것을 의미한다. 어노테이션(Annotation) 컴파일시 JVM이 보는 주석으로 기본적으로 메타 데이터 역할을 한다. 메타 테이터(Meta-Data) 데이터를 ..

Spring 2023.06.15

[Spring] AOP

AOP 관점 지향 프로그래밍 AOP(Aspect-Oriented Programming)는 핵심 로직과 부가 기능을 분리하여 애플리케이션 전체에 걸쳐 사용되는 부가 기능을 모듈화하여 재사용할 수 있도록 지원하는 것 AOP는 핵심 비즈니스 로직과 부가 기능(Aspect)를 분리하는 등 OOP를 보완하는 역할이다. (객체지향적 가치를 지키게 도와준다) 때문에 핵심 비즈니스 로직에 더욱 집중 할 수 있고, 반복적인 코드들을 한 곳에서 유지하고 관리할 수 있다는 이점이 있다. - Spring AOP는 스프링 프레임워크에서 제공하는 기능 중 하나로 관점 지향 프로그래밍을 지원하는 기술입니다. Spring AOP는 로깅, 보안, 트랜잭션 관리 등과 같은 공통적인 관심사를 모듈화 하여 코드 중복을 줄이고 유지 보수성을..

Spring 2023.06.15

[Spring] IoC, DI, DIP

IOC란 " 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다. " 스프링 프레임 워크는 IOC기반이다. IOC는 Inversion of Control의 약자로 말 그대로 제어의 역전이다. 제어의 역전은 무엇일까 제어 객체 생명주기나 메서드의 호출을 직접 제어한다.(= 관리한다는 의미) ex) 직접 객체를 생성하여 코드를 '제어'한다. 역전 프로그램의 제어흐름을 직접 제어(관리)하는 것이 아니라 역전시켜 외부에서 관리하는 것. (= 제어를 역전시켰다) ex) 외부로부터 b를 인자로 받아 초기화한다. 클라이언트 구현 객체가 직접 다른 구현체를 지정,호출하는 것이 아니라 프레임워크가 대신 호출해줌으로써 제어의 흐름을 가져가는 것이다. (여기서 외부 라 함은 객체를 기..

Spring 2023.06.15

[Spring] Spring Framework란

Frame work란 스프링에 들어가기 앞서, 먼저 프레임워크가 무엇인지 알아야할 것 같다. 사전적 의미로는 "소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경" 이라고 정의가 되어있다. 간단하게 생각해서 어플리케이션(=소프트웨어)을 편리하고 효율적으로 제작하기 위해, 뼈대가 되는 클래스들과 인터페이스로 구성된 일종의 기본 설계 틀이라고 생각하면 된다. Spring Framework란 ? Spring Framework의 정의 스프링 프레임워크는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서 간단히 스프링(Spring)이라고도 한다. 동적인 웹 사이트를 개발하기 위한..

Spring 2023.06.15

[Spring] @RequestParam

@RequestParam 어노테이션은 HttpServletRequest 객체와 같은 역할을 한다. HttpServletRequest 는 getParameter() 메소드를 사용했다. 또 다른 방법으로는 @RequestParam으로 받아오는 방법도 있다. 메소드의 파라미터 값에 @RequestParam을 넣어주면 된다. @Controller public class HelloController { @GetMapping("hell-mvc") public String helloMvc(@RequestParam(value = "name") String name, Model model){ model.addAttribute("name", name); return "hello-template"; } } ex) /hell..

Spring 2023.06.12