프레임워크

✅ 3.1 빈을 수동으로 연결하는 2가지 방법 (@Bean 기반)🧩 방법 1: @Bean 메서드 안에서 직접 호출@Configurationpublic class ProjectConfig { @Bean public Parrot parrot() { var p = new Parrot(); p.setName("Kiki"); return p; } @Bean public Person person() { var p = new Person(); p.setParrot(parrot()); // 직접 메서드 호출로 DI return p; }}스프링 컨테이너가 알아서 싱글 인스턴스로 캐시함 (중복 아님)간단하지만 결합도가 높고 유연성이 떨어짐🧩 방법 2: @Bean 메서드 파라..
✅ 2.1 Spring Context란?컨텍스트(Context) = Spring이 관리하는 객체 저장소 (IoC 컨테이너)우리가 만든 클래스를 스프링이 인식하고 관리하게 하려면, 반드시 컨텍스트에 등록해야 한다.📌 정리: 스프링 컨텍스트에 객체를 등록한다 = 빈(bean)을 만든다 ✅ 2.2 빈 등록하는 3가지 방법네 클래스가 단순한 자바 객체가 아니라 스프링이 관리하는 “Bean” 객체가 되는 과정이다. 🥇 1. @Bean을 사용한 명시적 등록@Configurationpublic class ProjectConfig { @Bean public Parrot parrot1() { Parrot p = new Parrot(); p.setName("Kiki"); return p; }}@..
✅ 1.1 왜 프레임워크를 써야 하는가?애플리케이션의 핵심은 비즈니스 로직. 나머지는 반복되는 기술적 작업(보안, 로깅, 트랜잭션 등)이다.프레임워크는 이 "반복적이고 귀찮은 일"을 대신해주는 전략 무기다.🔧 비유: 가구를 만들 때, 설계도와 도구가 이미 준비되어 있는 ‘IKEA 가구 조립 키트’ 같은 것.Spring은 바로 그 키트. 네가 할 일은 필요한 부품을 골라 조립하는 것뿐. ✅ 1.2 스프링 생태계의 구성요소Spring은 단순 프레임워크가 아니다. 전체 전투 유닛을 갖춘 생태계다.Spring Core: 빈 컨테이너, DI, AOP, SpEL 등 핵심 기능Spring Data Access: JDBC, 트랜잭션, ORM 지원Spring MVC: 웹 애플리케이션 요청 처리Spring Boot: 설..
@RestControllerㅡ> @Controller + @ResponseBody의 조합 @ResponseBodyㅡ> 컨트롤러 메서드의 반환값을 HTTP 응답 Body에 그대로 넣어서 클라이언트에게 보내주는 역할ㅡ> 즉, 뷰(JSP, HTML)를 반환하지 않고, JSON 또는 문자열 등 "데이터 자체"를 반환예시📌 @Controller기본적으로 @Controller는 메서드에서 문자열을 반환하면,그걸 뷰 이름으로 간주하고 JSP 같은 뷰를 찾으려 해요.@Controllerpublic class PageController { @GetMapping("/home") public String home() { return "home"; // → /templates/home.html 같은 ..
REST APIㅡ> "웹에서 자원을 정의하고, 그 자원에 접근하거나 조작할 수 있는 방식"을 HTTP 프로토콜에 맞춰 규칙 있게 만든 인터페이스(자원에 관련된 HTTP 인터페이스)🔧 REST API 기본 개념✅ HTTP 메서드와 매핑되는 행위📦 예시: 회원가입❓REST API는 왜 쓰는가?웹서비스에서 프론트와 백엔드가 데이터를 주고받기 위한 통신 표준으로 거의 사실상 기본입니다.요즘은 React, Vue 같은 프론트엔드와 백엔드(Spring, Django 등)를 REST API로 연결합니다.
의존성(Dependency)한 객체(클래스)가 다른 객체(클래스)를 사용할 때 생기는 관계ㅡ> 의존성 = 내가 제대로 일하려면 꼭 필요한 도구/객체  "A가 B 없이는 제대로 동작할 수 없는 상태"즉, A가 B에 의존하고 있다고 말해요.🎯 UserService 예시로 설명@Servicepublic class UserService { private final UserRepository userRepository; private final BCryptPasswordEncoder passwordEncoder; @Autowired public UserService(UserRepository userRepository, BCryptPasswordEncoder passwordEncoder){..
스프링 프레임워크란 무엇인가?자바 기반 애플리케이션 개발을 쉽게 하기 위한 경량 프레임워크핵심 철학: 객체 관리 자동화 + 공통 기능 분리 + 웹 요청 처리스프링의 핵심 기능 3대장1. IoC & DIIoC (Inversion of Control) & DI (Dependency Injection)IoC 컨테이너가 객체(Bean)를 만들고 관리개발자는 의존성을 직접 생성하지 않고, 주입받기만 함관련 개념ApplicationContext: IoC 컨테이너@Component, @Service, @Repository: Bean 등록@Autowired, @Inject: 의존성 주입 객체를 컨테이너에 빈으로 등록하면@Autowired등의 DI 어노테이션 달린곳에 스프링이 주입하고 관리한다 (DI 어노테이션 생략 가..
Client → Controller → Service → Repository → DB ↑ ↓ 비즈니스 로직 CRUD Controller → 요청 처리Service → 핵심 로직Repository → DB 접근쉽게 비유📞 Controller = 고객 전화 받는 상담원🧠 Service = 문제 해결하는 전문가📂 Repository = 정보 저장소, 데이터 담당 직원 왜 이 구조를 쓰나?관심사 분리 (Separation of Concerns) → 유지보수 용이테스트 용이 → 각 계층 단위 테스트 가능재사용성 → 비즈니스 로직과 DB 로직 독립적유연한 확장성 → 다른 DB, 외부 API 연동 쉽게 대체 가능설명..
434
'프레임워크' 카테고리의 글 목록