Spring 48

Spring / 객체 지향 설계와 스프링

스프링 프레임워크핵심 기술 : 스프링 DI 컨테이너, AOP, 이벤트, 기타웹 기술 : 스프링 MVC, 스프링 WebFlux데이터 접근 기술 : 트랜잭션, JDBC, ORM 지원, XML 지원기술 통합 : 캐시, 이메일, 원격접근, 스케줄링테스트 : 스프링 기반 테스트 지원언어 : 코틀린, 그루비 스프링 부트스프링을 편리하게 사용할 수 있도록 지원, 최근에는 기본으로 사용단독으로 실행할 수 있는 스프링 애플리케이션을 쉽게 생성Tomcat 같은 웹 서버를 내장해서 별도의 웹 서버를 설치하지 않아도 됨손쉬운 빌드 구성을 위한 starter 종속성 제공스프링과 3rd parth(외부) 라이브러리 자동 구성메트릭, 상태 확인, 외부 구성 같은 프로덕션 준비 기능 제공관례에 의한 간결한 설정 스프링의 진짜 핵심스..

Spring 2025.03.21

Spring / 스프링 DB 접근 기술

테이블 생성H2 데이터베이스에 접근해서 member 테이블 생성 순수 Jdbc개방-폐쇄 원칙(OCP, Open-Closed Principle)>> 확장에는 열려있고 수정 변경에는 닫혀있음 스프링의 DI를 사용하면>> 기존 코드를 전혀 손대지 않고 설정만으로 구현 클래스 변경 데이터를 DB에 저장하므로>> 스프링 서버를 다시 실행해도 데이터가 안전하게 저장됨 스프링 통합 테스트@SpringBootTest : 스프링 컨테이너와 테스트를 함께 실행@Transactional : 테스트 시작 전에 트랜잭션을 시작하고 테스트 완류 후 항상 롤백>> DB에 데이터가 남지 않아 다음 테스트에 영향을 주지 않음 스프링 JdbcTemplate스프링 JdbcTemplate와 MyBatis 같은 라이브러리>> JDBC API..

Spring 2025.03.19

Spring / 스프링 빈과 의존관계

컴포넌트 스캔과 자동 의존관계 설정생성자에 @Autowired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에 찾아 넣어줌>> 객체 의존관계를 외부에서 넣어주는 것 (의존성 주입)  컴포넌트 스캔 원리@Component 애노테이션이 있으면 스프링 빈으로 자동 등록@Controller 컨트롤러가 스프링 빈으로 자동 등록@Component를 포함하는 @Controller, @Service, @Repository 자동 등록 자바 코드로 직접 스프링 빈 등록 실무에서는 주로 정형화된 컨트롤러, 서비스, 리포지토리 같은 코드는 컴포넌트 스캔 사용정형화되지 않거나, 상황에 따라 구현 클래스를 변경해야 하면 설정을 통해 스프링 빈으로 등록   출처 : 김영한, 스프링 입문 - 코드로 배우는 스프링 부트,  웹 MV..

Spring 2025.03.17

Spring / 회원 관리 예제 - 백엔드 개발

비즈니스 요구사항 정리(가상의 시나리오)컨트롤러 : 웹 MVC의 컨트롤러 역할서비스 : 핵심 비즈니스 로직 구현리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장 관리도메인 : 비즈니스 도메인 객체(회원, 주문, 쿠폰 등) 데이터 저장소 선정 x>> 인터페이스로 구현 클래스 변경하게 설계데이터 저장소>> RDB, NoSQL 등 다양한 저장소 고민중 상황 가정 회원 리포지토리 테스트 케이스 작성자바의 main 메서드, 웹 애플리케이션의 컨트롤러를 통한 테스트>> 오래 걸리고 반복 실행이 여려우며 여러 테스트를 한번에 실행하기 어려움 자바는 JUnit 프레임워크로 테스트 실행 한번에 여러 테스트를 실행하면 메모리 DB에 직전 테스트의 결과가 남을 가능성>> 다음 테스트 실패 가능성  @AfterE..

Spring 2025.03.14

Spring / 스프링 웹 개발 기초

정적 컨텐츠기본적으로 Spring Boot는 static 폴더에서 static content 제공hello-static 관련 컨트롤러가 없어서 Spring Boot는 static 폴더에 있는 html 그대로 반환 MVC와 템플릿 엔진Model, View, Controller ?name=spring>> name을 spring으로 치환해서 출력 API@ResponseBody>> viewResolver 사용 x>> 대신 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY TAG x) @ResponseBody를 사용하고 객체를 반환하면 객체가 JSON으로 변환됨 HTTP의 BODY에 문자 내용을 직접 반환viewResolver 대신 HttpMessageConverter 동작기본 문자처리 : Strin..

Spring 2025.03.14