HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🍗
[New] 조규현팀
/
🐾
DailyLog
/
🦉
2022.04.18
🦉

2022.04.18

Scrum Master
곽동운
createdAt
Apr 17, 2022 05:04 PM
type
Log
Constrouctor
📎
2022. 4. 18(월)
[세션] 해리 - 스프링부트 11:00 ~ 13:00
  • 헬요일...
notion image
notion image
 

🧨 오늘의 ISSUE

👀 ??

진형님 코드보면서 든 궁금 사항
  1. Model 클래스 안에서 Dto를 매개변수로 하는 메서드? → 생소함 😳
// FixedAmountVoucher 클래스의 메서드 public static Voucher createVoucher(CreateVoucherDto createVoucherDto) { return new FixedAmountVoucher(createVoucherDto.getId(), createVoucherDto.getValue(), createVoucherDto.getCreatedAt()); }
  1. 함수 네이밍 관련
    1. 비지니스 로직을 담당하는 Service단에서 생성 메서드 이름 : create vs insert? → 의문 궁금
// VoucherService 클래스의 메서드 public void insertVoucher(VoucherType voucherType, Long value) { CreateVoucherDto createVoucherDTO = new CreateVoucherDto(value); this.voucherRepository.insert(voucherType.create(createVoucherDTO)); }
 

📝 Optional 정리

    1.  orElse(new ...) 대신 orElseGet(() -> new ...)
      1. orElse(...)에서 ...는 Optional에 값이 있든 없든 무조건 실행된다. 따라서 ...가 새로운 객체를 생성하거나 새로운 연산을 수행하는 경우에는 orElse() 대신 orElseGet()을 써야한다.
        • 예제코드
        @Test @DisplayName("orElse vs orElseGet 차이는?") void orElseVsOrElseGet() { Person person = new Person("hello"); Optional<Person> opt = Optional.ofNullable(person); // 💩 값이 빈값이 아님에도 실행된다. opt.orElse(new Person("orElse executed")); // ✨ 값이 빈값이면 실행되지 않는다. opt.orElseGet(() -> new Person("orElseGet executed")); } class Person { public String name; public Person(String name) { logger.info("created Person : {}", name); // ⚡️ 실행 여부 체크를 위한 로그 this.name = name; } }
        ↓ orElseVsOrElseGet() 실행 결과
        ...created Person : hello ...created Person : orElse executed
        • 참고 링크
        Optional 클래스의 orElse와 orElseGet에 대한 정리
        이번 글에서는 Java 8 에서부터 지원하기 시작한 Optional 클래스의 orElse와 orElseGet 메소드에 대해서 정리를 해보려한다. 이 글에서는 Optional 클래스가 무엇인지에 대해서는 언급하지는 않고 다만 orElse와 orElseGet 메소드 이 두 개의 메소드에 대해서만 집중해서 보려고 한다. 먼저 이 2개의 메소드가 하는 역할은 Optional 클래스 객체가 가지고 있는 실제 값이 null 일경우 무슨 값으로 대체해서 return 해줘야 하는 지를 정의한다.
        Optional 클래스의 orElse와 orElseGet에 대한 정리
        https://zgundam.tistory.com/174
        Optional 클래스의 orElse와 orElseGet에 대한 정리
    1. 단지 값을 얻을 목적이라면 Optional 대신 null 비교
        • 면접용 한줄 멘트

      ✏️ 김병연 

      ☀️ 시작 스크럼

      • JDBC 2주차 과제 진행중.. 마무리 직전!?
        • 리팩토링 중...
        • 1주차 리뷰 받으면 바로 진행예정
      📝 TODO
      • 강의 수강, 2주차 과제 예정

      🌙  마무리 스크럼

      • 강의 듣기 완료 (마지막꺼 빼고)
        • 테스트 코드 작성 쪽에서 오류 → 수정중...
      📝 TODO
      • 테스트 코드 검토
      • AOP 복습 → 키워드 정리 및 공부

      🙋🏻 김형욱

      ☀️ 시작 스크럼

      • 이것이 코딩테스트다 동적 프로그래밍 챕터 읽기
      • 세션 듣기
      📝 TODO
      • 강의 듣기
      • 이펙티브자바 아이템17읽기
      • 객체지향 사실과 오해 책 스터디 진행하기
      • 과제 리뷰 반영하기

      🌙  마무리 스크럼

      • 강의 듣기 완료
      • 이펙티브 자바 책도 읽음.
      📝 TODO
      • 강의 마지막 서블릿 실습
      • 토끼책 스터디

      🍗 박진형

      ☀️ 시작 스크럼

      • [1주차 과제] 코드 리뷰 받은것 반영
      • 혜빈님 Help
        • LocalDateTime → 시간 나부랭이 불일치
          DB 저장시 toTimeStamp 시 나노초 삭제됨
          테스트 시 객체를 만들면 나노초가 있는데, DB에서 가져온건 나노초가 삭제되어 있어서 불일치 문제 발생
      📝 TODO
      • 강의 듣기
      • 백준 문제 풀기
      • 클린 코드 6-7장 읽기
      • 밤에 토끼책 모임 갖기
      • SpringBoot 2주차 jdbc 적용(빨리해야 될듯)

      🌙  마무리 스크럼

      • 강의 돌려보기 → 테스트 코드 작성
      • Dto 논제 수정
       
      📝 TODO
      • 강의 듣기
      • 백준 문제 풀기
      • 클린 코드 6-7장 읽기
      • 밤에 토끼책 모임 갖기
      • SpringBoot 2주차 jdbc 적용(빨리해야 될듯)

      🦉 곽동운

      ☀️ 시작 스크럼

      • 강의 듣기
      • Optional 한번 더 읽어 봤음
      📝 TODO
      • AOP, 트랜잭션 전파, 오늘 강의 복습

      🌙  마무리 스크럼

      • 강의 듣기.
        📝 TODO
        • AOP

        🐬 박혜빈

        ☀️ 시작 스크럼

        • JDBC Repository 작성
        • 이펙티브 자바 6 정리
        • 2주차 과제 함.
        📝 TODO
        • 강의 모르는 부분 정리 예정
        • 알고리즘 1문제 풀기 예정
        • 이펙티브 자바 스터디 7시
        • 2주차 과제 바우처 지갑 어떻게 할지 생각...

        🌙  마무리 스크럼

        • 강의 듣고 모르는 키워드 정리.
         
         
        📝 TODO
        • 강의 모르는 부분 정리 예정
        • 알고리즘 1문제 풀기 예정
        • 이펙티브 자바 스터디 7시
        • 2주차 과제 바우처 지갑 어떻게 할지 생각...