🌿SPRING/🍀공부 [SPRING] 21

[SPRING] spring framwork의 이해

The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. * 출처 : 스프링 공식 홈페이지 Enterprise applications 개발 편의성 제공 Enterprise applications? 기업용 애플리케이션?? 고객 대상 웹 서비스 ex) 구글, 네이버, 쿠팡 등 스프링은 결국 기업용 애플리케이션의 요구사항 해결에 초점을 맞춘 프레임워크 기업용 애플리케이션 특성 신뢰성이 중요 (ex. 병원에서 수술 시 환자 기록이 바뀐다면?) 서버의 안정성 유지 중요 (ex...

[SPRING] 의존성 주입 DI , IoC 컨테이너

강한 결합의 문제점 Controller 5 개가 각각 Service1 을 생성하여 사용 중 (각각 객체를 생성하여 사용중) Repository1 생성자 변경에 의해.. ⇒ 모든 Contoller 와 모든 Service 의 코드 변경이 필요 강한 결합 해결방법 = 느슨한 결합으로 만들어주기 각 객체에 대한 객체 생성은 딱 1번만!! 생성된 객체를 모든 곳에서 재사용!!! => 제어의 역전 (IoC : Inversion of Control) : 프로그램의 제어 흐름이 바뀜 일반적: 사용자가 자신이 필요한 객체를 생성해서 사용 IoC (제어의 역전) 용도에 맞게 필요한 객체를 그냥 가져다 사용 "DI (Dependency Injection)" 혹은 한국말로 "의존성 주입"이라고 부릅니다. 사용할 객체가 어떻게..

[SPRING] Controller, Service, Repository

어떤 것이든 개념을 알기 전에 왜? 부터 생각하는 것이 나중에 더 좋다는 걸 알았다. ❓Survlet 으로도 구현이 가능한데 왜 Controller를 쓸까? => 컨트롤러의 장점 : API 마다 파일을 만들 필요가 없음. => 보통 하나의 controller 안에 모든 api를 넣지는 않고 유사한 성격의 api를 하나의 controller로 관리. (함수 명도 마음대로 설정 가능 (클래스내 중복함수명은 불가)) ❓All in one Controller의 문제점? => 한 개의 클래스에 너무 많은 양의 코드가 존재 => 이해하기 어려움 - 현업에서는 코드 추가 또는 변경 요청이 계속 생김. 1. Controller의 역할 클라이언트의 요청을 받음 요청에 대한 처리는 서비스에게 전담 클라이언트에게 응답 2...

[SPRING] MVC 패턴

Model - View - Controller 3가지 역할로 프로젝트 구성요소를 구분한 패턴 Model 어플리케이션이 무엇을 할 것인지 정의하는 부분즉 DB와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룸 View 사용자에게 시각적으로 보여주는 부분 (UI) Controller Model이 데이터를 어떻게 처리할지 알려주는 역할. 사용자에 의해 클라이언트가 보낸 데이터가 있으면 모델을 호출하기전에 적절히 가공을 하고 모델을 호출. 그런다음 모델이 업무 수행을 완료하면 그 결과를 가지고 View에게 전달하는 역할. => 사용자가 URL을 호출하면 Controller에서 요청들을 받고 그 안에서 로직이나 데이터가 필요하면 Model에서 호출해서 모델에 구성된 로직이나 DB에 접근해서 데이..

[SPRING] JPA / ORM

JPA JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준 JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다. JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 Mapping 해준다. JPA는 내부적으로 JDBC API를 활용하는데, 개발자가 직접 JDBC API를 활용하면 패러다임 불일치, SQL 의존성 등으로 인해 효율성이 떨어진다. 이 때, JPA를 활용한다면 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해 준다는 점에서 생산성을 크게 높인다. ORM ORM(Object-Relational Mapping)은 객체와 관계형 DB를 매핑한다는 뜻 ORM 프레임워크를 사용하..