본문 바로가기

반응형

WINK-(Web & App)/Spring Boot 스터디

(143)
[2025 1학기 스프링부트 스터디] 류현준 #3&4주차 섹션 4. 회원 관리 예제-백엔드 개발 비즈니스 요구사항 정리데이터: 회원ID,이름기능: 회원 등록,조회아직 데이터 저장소가 선정되지 않음(가상의 시나리오)컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨DB: 실제 데이터들이 저장되는 곳아직 데이터 저장소가 선정되지 않아 인터페이스로 구현클래스를 변경할 수 있도록 설계데이터 저장소는 RDB,NoSQL 등 다양한 저장소 고민초기 개발 단계에서 구현체로 가벼운 메모리 기반 DB사용회원 도메인과 리포지토리 만들기 Member save(Member member): 회원 저장Op..
[2025 1학기 스프링부트 스터디] 정다은 #4주차 이번강의는🚀 섹션 5. 스프링빈과 의존관계🚀입니다! 1. 🛸 컴포넌트 스캔과 자동 의존관계 설정일단 MemberController 라는 이름의 컨트롤러 파일 하나를 생성해주었습니다. @controller -> 멤버 컨트롤러 객체를 생성해서 스프링에 넣어두고 스프링이 관리를 한다고 합니다.스프링 컨테이너에서 스프링빈이 관리된다 private final MemberService memberService = new MemberService();스프링이 관리를 하게되면 전부 스프링컨테이너에 등록하고 스프링컨테이너로부터 받아서 쓰도록 바꾸어야한다.new로 선언할 경우 -> 멤버 컨트롤러 말고 다른 컨트롤러에서 서비스를 가져다 쓸 수 있는 문제 발생 그래서! 이렇게 쓰는 것 보다는스프링 컨테이너에 등록을 ..
[2025 1학기 스프링부트 스터디] 이상래 #4주차 🔍 컴포넌트 스캔과 자동 의존관계 설정 이제 시험이 끝났으니 다시 공부해보겠습니다... 솔직히 뭐가 뭔지 하나도 모르겠어요 하하 열심히 알아볼게요Controller 를 통해서 외부 요청을 받고Service 에서 비지니스 로직을 만들고Repository에서 데이터를 저장하는게 일반적인 패턴이라고 합니다 @Autowired 위처럼 연결해 줄 때 쓴다 컨트롤러 생성자에서 - 멤버 컨트롤러가 생성이 될때 스프링 빈에 등록되어 있는 멤버 서비스 객체를 가져다 준다. (의존관계 설정) 서비스에서- 서비스를 생성할 때 repository를 가져다 준다 스프링 빈을 등록하는 2가지 방법 1. 컴포넌트 스캔과 자동 의존관계 설정 (위에서 한 방법) 컴포넌트 스캔 원리@Component 애노테이션이 있으면 스프링 빈으..
[2025 1학기 스프링부트 스터디] 고윤정 #4주차 섹션 5 - 스프링 빈과 의존관계4주차 스터디 시작합니당컴포넌트 스캔과 자동 의존관계 설정우선 MemberController를 만들어보자이렇게 해놓으면 멤버 컨트롤러 객체를 생성해서 스프링에 넣어두고 스프링이 관리를 하게된다그런데 스프링이 객체를 관리하게 되면, 직접 new로 생성할 수 없고 항상 스프링 컨테이너에서 꺼내서 써야한다이렇게 직접 new로 생성했을 경우엔스프링 컨테이너가 이 객체들을 관리하지 않기 때문에@Autowired도 안 되고,설정에서 구현체를 바꾸는 것도 안 되고,AOP나 트랜잭션 처리 같은 스프링 기능도 쓰지 못한다고 한다그래서 이렇게 쓰는 것보다는 스프링 컨테이너한테 등록을 하고 쓰면 된다고 하는데직접 확인해보자!이렇게 @Autowired를 만들어주면 스프링 컨테이너에서 관리하는 ..
[2025 1학기 스프링 부트 스터디] 남윤찬 #4주차 도메인 분석 설계, 엔티티 구현요구사항 분석구현해야 하는 기능의 목록은 이와 같다도메인 모델, 엔티티 설계요구 사항에 맞추어 위 그림처럼 엔티티와 테이블의 관계를 설계해준다. 자세한 내용은 그림을 봐도 알 수 있기 때문에 생략했다. 설계와 분석 과정에서 짚고 넘어갈 것들테이블에서 주문 테이블이 ORDER가 아니라 ORDERS인 이유는 SQL의 예약어에 ORDER BY가 있기 때문에 관례상 ORDERS를 많이 사용한다.일반적으로 실무에서는 다대다 매핑은 사용하지 않는다. 다대다는 관계테이블을 만들고 일대다, 다대일 관계로 만들어 사용하자.→ @ManyToMany를 사용하면 JPA가 자동으로 중간 테이블을 만들어주긴 하지만, 이 테이블에는 매핑에만 필요한 최소한의 정보만 있을 뿐, 추가적인 로직에 필요한 정..
[2025 1학기 스프링부트 스터디] 김민서 #4주차 스프링 빈을 등록하는 두 가지 방법을 살펴보자!컴포넌트 스캔과 자동 의존관계 설정회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있도록 하자@Autowired 를 하면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어줌 -> 객체 의존관계를 외부에서 넣어주는 것 DI(Dependency Injection), 의존성 주입 / 생성자가 1개만 있으면 생략 ㄱㄴ근데 오류 나요왜??memberService가 스프링 빈으로 등록되어 있지 않으니까.컴포넌트 스캔 원리를 알아보면@Component가 있으면 스프링 빈 자동 등록, @Component를 포함하는 @Controller, @Service, @Repository도 스프링 빈으로 자동 등록된다 그런데 현재 멤버 서비스는 그냥 순수한 자바 클래스니..
[2025 1학기 스프링 부트 스터디] 석준환 #4주차 -스프링 컨테이너에 빈은 저 형식으로 저장된다빈 이름과 빈 객체(return 되는 객체) -스프링 컨테이너에 4개의 bean이 생성 된다. 그리고 각각의 의존 관계를 주입한다(DI)즉 빈을 생성하고 의존 관계를 주입하는 2 단계로 나눠진다 -스프링 컨테이너를 생성하고 설정(구성) 정보를 참고해서 스프링 빈도 등록하고, 의존관계를 설정 package hello.core.beanfind;import hello.core.AppConfig;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.config.BeanDefinition;import org.spri..
[2025 1학기 스프링부트 스터디] 이종윤 #3주차 실습해보기비즈니스 요구사항- 데이터: 회원ID, 이름- 기능: 회원등록, 조회- 아직 데이터베이스가 선정되지 않음 계층구조계층설명, 예시클래스Controller사용자의 요청을 받고, 응답을 돌려줌 (API or HTML View 반환)UserController, ApiControllerService실제 비즈니스 로직 처리 (계산, 조건 등)UserService, OrderServiceRepositoryDB와 직접 통신 (CRUD)UserRepository, JpaRepositoryModel데이터 구조 (DTO, Entity 등)User, Post, Person 등Domain핵심 비즈니스 개념, 규칙, 엔티티, 도메인 모델User, Order, Post, Comment 클래스 의존관계클래스설명MemberS..

반응형