목록Spring (16)
블로그 이름 뭐하지
이전에 작성한 Bean 관련 링크(하단 참고) [Spring] IOC(제어의 역전)와 DI(의존성 주입)제어의 역전(Inversion of Control) 개발자가 직접 제어흐름을 제어하지 않고, 외부의 프레임워크나 라이브러리가 제어 흐름을 대신하게 되는 것이다.// 클래스 A에서 new 키워드로 클래스 B의 객체 생blognameless.tistory.com Bean 수동 등록//예시로 드는 passwordEncoder의 경우 아래와 같은 설정이 필요하다// 1) build.gradle 의존성 설정implementation 'org.springframework.boot:spring-boot-starter-security'// 또는implementation 'org.springframework.secur..

JDBC가 아닌 JPA를 사용하는 이유JDBC는 SQL 의존적이라 변경에 취약하기 때문이다.public class Memo { private Long id; private String username; private String contents;} 예를 들어 해당 객체 데이터를 DB에 저장하고 싶다면 JDBC에서는 아래와 같은 처리 과정을 거친다.//1. DB 테이블 생성create table memo ( id bigint not null auto_increment, contents varchar(500) not null, username varchar(255) not null, primary key (id));//2. application..

제어의 역전(Inversion of Control) 개발자가 직접 제어흐름을 제어하지 않고, 외부의 프레임워크나 라이브러리가 제어 흐름을 대신하게 되는 것이다.// 클래스 A에서 new 키워드로 클래스 B의 객체 생성public class A { b = new B();}// IOC : 코드에서 객체를 생성하지 않고// 어디선가 받아온 객체를 b에 할당한다.public class A{ private B b;} 쉽게 말하면 다른 객체를 직접 생성하거나 제어하지 않고, 외부에서 관리하는 객체를 가져와 사용한다는 뜻이다. //Controller@RestControllerpublic class WebSpringController { private final ChessService chessService; ..

이전에 MVC 패턴으로 작성한 코드는 Controller 클래스 하나로 모든 API를 처리하는 방식이었다.한 개의 클래스에 너무 많은 양의 코드가 존재하면 코드의 이해도 어렵고 변경도 어렵기 때문에서버의 처리과정을 크게 Controller, Service, Repository로 분리시킨다. 3 Layer Architecture의 역할Controller클라이언트의 요청을 받는다.요청에 대한 로직처리는 Service에게 전담하며, Request 데이터가 있으면 함께 전달한다.Service에서 처리가 완료된 결과는 클라이언트에게 응답한다.package com.sparta.memo.controller;import com.sparta.memo.dto.MemoRequestDto;import com.sparta.me..

어플리케이션 서버에서 DB로 접근하기 위해서는 여러 작업이 필요하다.1) DB에 연결하기 위해 커넥션을 연결한다.2) SQL을 작성 한 후 커넥션을 통해 SQL을 요청한다.3) 요청한 SQL에 대한 결과를 응답받는다. 하지만 이 경우, 기존에 사용하던 MySQL 서버에서 PostgreSQL 서버로 변경할 시DB 연결 로직들을 모두 수정해야하는 문제가 생긴다.이런 문제를 해결하기 위해 등장한 것이 JDBC이다.Java Database Connectivity의 약자로 DB에 접근할 수 있도록 자바에서 제공하는 API이다.JDBC에 연결하는 DB의 JDBC드라이버를 제공하면 연결로직을 변경할 필요 없이 DB변경이 가능하다.즉 드라이버만 교체하면 DB 변경이 가능하다. JDBC로 손쉽게 DB 연결이 가능해졌지만..

MVC 디자인 패턴Model-View-Controller의 약자로 소프트웨어 디자인 패턴 중 하나이다.소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리한다.코드의 재사용성과 유지보수성을 높이고 개발자들 간의 협업을 용이하게 한다. Model데이터와 비즈니스 로직을 담당한다.DB와 연동하여 데이터를 저장하고 불러오는 작업을 수행한다. View사용자 인터페이스를 담당한다.사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현한다. ControllerModel과 View 사이의 상호작용을 조정하고 제어한다.사용자의 입력을 Model에 전달하고, Model의 결과를 바탕으로 View를 업데이트한다. Spring MVCSevlet API를 기반으로 구축된 웹 프..