본문 바로가기

📝 회고/✅ 22년 회고42

[일일 회고] 22.02.24 - 랜덤 테스트 / 스프링 시작 / 김영한님의 Q&A 📍오늘 한 일 호눅스 클래스 (랜덤 테스트 방법 / gradle / OOP(상속, 조립(컴포지션)) 로또 게임 Step3 80% (Step3 소스코드) 김영한 님의 스프링 입문 강의 (세션 0 ~ 2) 김영한님 + 인프런 Q&A 세션 ✅ 배운 점, 생각 ✅ 랜덤 테스트 방법 테스트 코드 작성 중에 랜덤 기능에 대해 테스트하는 경우가 있었다. 먼저 랜덤 기능을 테스트하기 어려운 경우는 설계가 잘못된 신호일 수 있다. 예를 들어 한 클래스에 랜덤 기능이 있을 때, 해당 클래스에 Random() 객체가 멤버 변수로 있다면 강한 Coupling 상태이다. 이를 위해서 Random을 주입받아 사용하면 된다. 테스트하는 방법으로 Random 객체를 주입할 때 Mock 객체를 만들어 사용자 지정 랜덤 값을 전달해주면.. 2022. 2. 24.
[일일 회고] 22.02.23 - 여전히 Java 연습중 📍오늘 한 일 로또 게임 Step2 구현과 PR (Step2 소스코드, Step2 PR) 로또 게임 Step3 1/3 구현 글 작성 (IntelliJ + Gradle + Junit5 환경에서 테스트 실행 시 @DisplayName 이 테스트 결과에 나오지 않는 경우, 해결 방법 🛠) 티스토리 스킨 추가 (highlight.js + 폰트 적용) ✅ 생각과 코드 리뷰 ✅ enum 사용 로또 당첨 순위(Rank) 표현하기 위해 enum을 사용했다. 이유는 다음과 같다. 1. Rank(순위) 관련 데이터를 한 번에 묶기 위해서 하나의 데이터, 순위만 가지고 있는 것이 아닌 당첨 금액도 함께 가지고 있고 싶었다. 2. 순위 결정 로직이 enum 안에 Rank.of(당첨 개수, 보너스 당첨 번호 여부)로 넘겨주면 .. 2022. 2. 24.
[일일 회고] 22.02.21~22 페어 프로그래밍(아이엠 그라운드 자기소개하기도 좋지만 그라운드 룰(Ground Rule)!) & 일급 컬렉션 🤝 🥇 이번 주 과제는 다음과 같다. 과제 : 로또 게임 프로젝트 단계 : 3단계 +a 방법 : 2인 페어 프로그래밍(팀원 : 땃쥐, 쿠킴) 진행(21,22일) : Step1(소스코드, PR)와 Step2 절반 📝 배운 것 ✅ '아이엠 그라운드 자기소개하기'도 좋지만 '그라운드 룰(Ground Rule)'도! 페어 프로그래밍 첫날, 팀원을 만나 간단한 자기소개를 했다. 간단히 기술적인 세팅(Github 저장소 설정, JetBrain의 Code With me...)을 하고 곧바로 프로젝트에 시작했다. 페어프로그래밍 역할(내비게이터, 드라이버) 교대를 15~20분 마다 번갈아가며 코딩했고 집중하다 보니 3시간 연속 안 쉬고 코딩도 했다. 시계는 어느덧 오후 11시 15분... 오늘은 여기까지 하기로 했다. 상당히 .. 2022. 2. 22.
[주간 회고] 22.02. 3주차 ✅ 🥘 일기 형태로 작성되었습니다. 월, 화요일 사다리 게임을 구현을 하며 Git 브랜치 관리와 rebase, merge에 조금 익숙해졌다. 자세한 회고 : 22.02.14~15 - 좋은 코드와 Git 수, 목요일 코드 리뷰에 대한 적용과 계층형 테스트 코드를 연습해보았다. 테스트 코드는이종립님의 글 을 참고하여 테스트 코드 작성을 Given-When-Then과 비슷한 Describe-Context-It 으로 테스트를 자세히 설명했다. 또한 private 메서드 테스트는 해야할까?에 대해 궁금하여 페이스북 javawocky 박성철님의 글을 보고 요약 정리했다. 글 작성 : private 메서드도 테스트를 해야 할까? (private 메서드 테스트 하고 싶을 때...) ✅ 👃 자세한 회고 : 22.02.16~17.. 2022. 2. 20.
[일일 회고] 22.02.16~17 - DCI 패턴의 테스트 코드 적용하기!, 개발에 정답은 없다. 그래서 ~? 14일에 이어 어제 오늘도 사다리 게임 Step 3, Step 4를 구현했다. 프로젝트를 하며 피드백, 기술 적용, 생각을 정리한다. ✅ 역할과 책임을 분명히 하기 MVC 패턴으로 프로젝트 구조를 잡았다. 문제는 InputView에서 메시지 출력을 위해 OutputView의 메서드를 InputView에서 사용했다. 두 사이의 결합도가 높아졌다. InputView에서 OutputView를 사용해도 문제없지만, 사용자 입력을 받는 것은 InputView의 책임이니 InputView에서만 모든 일이 끝나도 문제없어 보인다. 정답은 없겠지만 설계 시 역할과 책임을 분명히 해야겠다는 경험을 쌓았다. ✅ 처음부터 완벽한 설계란 불가능하다. 미래 지향적으로 코딩하지 말자(YAGNI) 모든 상황에 맞진 않겠지만 현재 .. 2022. 2. 17.