HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🚀
Random Bit Flip
/
1️⃣
[1기 백둥이 예시3] 3주차 RBF 액션
1️⃣

[1기 백둥이 예시3] 3주차 RBF 액션

주차
SpringBoot Part1
회고일
Mar 24, 2022 14:00
참여자
Spencer Park
멘토
Spencer Park
Property
tag
[팀 - 아만드 3주차 액션 피드백 내용 공유]
스프링 강의 및 과제를 하면서 느꼈던 내용에 대해 크게 5부분으로 구성했습니다.
1. 알게 된 내용 (용어)    
  • Spring, Spring Boot, Spring Framework 구분
  • IoC / IoC 컨테이너 / DDD / DI
  • 결합도와 런타임 의존성 / 클래스 의존성
  • Domain, Entity, VO, DTO 구분
  • Aggregate, Repository, Service
  • ApplicationContext, Bean 관계
  • EnvironmentCapable
  • Bean Scope
 
2. 강의 예제 코드 설명
  • OrderContext : 주문에 대한 전반적인 도메인 객체에 대한 생성 책임, 여러 생성에 대해 책임
    • 일종에 IoC 컨네이너
    • 객체들의 의존 관계 설정이 이루어짐, 객체들에 대해 생성과 파괴를 모두 확인        
    • 객체화가 시키면서 생성에 대한 필요한 의존 관계를 맺어줌
  • OrderService : 자신이 직접 어떤 레파지토리를 사용할지 선택하지 않고 VoucherService 또한 직접 생성하지 않음.
    • 이 Instance를 만드는 제어권을 OrderContext에게 넘김 (IoC)
  • Voucher : 할인 정책을 담고 있는 도메인 인터페이스
 
3. 과제에 대한 해결 방법
  • 콘솔 사용하기
  • 필요사항 정리하기 (create / list/ exit)
  • 설계에 대한 그림 그려보기 (간단한 클래스 다이어그램 or 수기)
  • 코딩 및 리뷰
 
4. 어려웠던 내용 및 공부해야 할 내용
  • 토비의 스프링
  • AOP와 WebApplicationContext
  • BeanFactory와 ApplicationContext의 차이점
    • 동성 : 프로젝트 설계, 객체를 나누는데 어려움
    • 동건
      • 버퍼 처리를 할때 IO Exception에 대한 내용 설명이 추가 필요
      • 객체가 어디까지 역할과 책임을 갖는지 고민 필요
      • 메서드는 메세지를 전달해주는 역할을 해야 함. 그렇기 때문에 데이터 위주의 설계 또는 구현 보다는 객체를 전달하고 받는 과정을 생각해야 함.
      • 왜 객체를 나누어서 사용하고, 왜 이런 객체가 필요한지에 대해 고민하면서 코드를 작성하는 습관을 갖는 것이 중요!
    • 수현 : 개념 상 어려웠던 것보다는 과제하면서 설계하는게... 메인 로직 설계가 어려움.
    • 지나 : DDD 계층별로 나누어서 클래스 별 역할을 나누는 것 → 객체로 구분하는 것 어려움.
    • 수빈 : 스프링 구현, 설계 어려움
    • 상순 : 설계 어려움     
    • →공통점은 스프링 프로젝트 설계 어려움, 객체 분리에 대해 어려움
      →객체가 갖는 책임을 생각하면서 설계 필요, 잘 짜여진 소스 코드를 보고 참고 필요
5. 프로젝트 설계하기
  • 먼저 요구사항을 세분화하여 작성
  • 세분화한 요구사항에 대해 역할과 책임을 생각하며 클래스를 분리
  • 분리된 클래스를 작성하면서, 해당 기능이 왜 해당 클래스에서 사용되어야 하는지 납득할 수 있는 이유를 생각하며 작성 필요
본인이 왜 이런 코드를 작성했는지 고민하는 시간 투자 필요!