블로그

겸손한 북극곰

[워밍업-백엔드3기] Practical Test 1주차 회고

테스트 코드의 중요성을 느끼고, TDD 라는 개념은 알고 있지만내가 정말 테스트 코드를 효율적으로 작성할 수 있나? 라는 의문으로 학습을 시작했다. 🔢 테스트코드의 첫번째 학습Practical Testing: 실용적인 테스트 가이드1주차 새롭게 배운 내용TDD 를 활용하면 느리지만 안정적인 코드 클라이언트 관점에서 피드백을 줄 수 있다.Red > Green > Blue경계값 테스트중간값 보다는 경계값 테스트를 진행한다.@SpringBootTest 와 @DataJpaTest 의 차이트랜잭션 유무의 차이로, 사용하는 것에 대해 명확히 이해하고 선택해야 한다.예외 위치에 따라 목적과 사용이 다르다.하나의 동작에서 Service 에서 예외와 Entity 에서의 예외는 다른 역할을 수행한다.  🤔 워밍업 3주차 회고직접 레이어 단계별로 코드를 작성하며, TDD 를 실습할 수 있다.메서드를 추가함과 동시에 Red>Green>Blue 를 거쳐서 리팩토링을 한다.처음에는 이게 맞나? 싶지만, 빠르게 컴파일 오류를 잡아내어 기능과 역할에 집중하며 메서드를 설계할 수 있다."클린 코드에서는 많이 봐야겠다." 라고 느꼈다면,TDD 는 "많이 써봐야 겠다"라고 느낀다. 명확한 장점이 사용할 때마다 느껴진다. 워밍업 클럽의 75%가 넘었다.그냥 완강하는 것 뿐 아니라, 배운 내용을 나의 것으로 만드는 미션을 진행하여 습득량이 다르다고 느꼈다. 혼자 공부하는 것의 막막함을 느낀다면, 워밍업 클럽을 매우 강추   

백엔드TDDPracticalTest박우빈님강의워밍업클럽

겸손한 북극곰

[워밍업-백엔드3기] ReadableCode 2주차 회고

ReadableCode 를 완강했다.실습 과제로 마무리하며, 클린 코드는 많이 보고 연습하며 습득해야할 필요성을 느꼈다. 🔢 클린코드의 두번째 학습Readable Code: 읽기 좋은 코드를 작성하는 사고법 - 박우빈2주차 새롭게 배운 내용일급 컬렉션 단 하나의 컬렉션 필드를 가지며, 책임을 새로 가질 수 있는 객체이다.Enum상태와 행위를 함께 관리할 수 있는 추상화된 객체이다.Early Return 과 부정문 관리부정문은 두번의 사고를 거쳐야 한다.else if 는 이전 과정을 모두 기억해야 하는 장기 사고적인 부분이다.예외 관리예외는 비싸다. 예외는 개발자를 위한 정보이다.문맥을 활용하여 의도를 전달하자메서드의 순서, 패키지 또한 의도이다.Optional 을 조심해서 사용하자. 클린 코드 사고를 기반으로 결정하는 코드 센스 능력을 기르자   🤔 2주차 회고리팩토링 실습을 진행하며, 머리로 이해한 개념을 직접 적용하는 것의 어려움을 느꼈다.마치 악기를 배우듯이 꾸준히 내용을 확인하고 적용하며 습득해야하는 습관 과제 같았다. 미션 제출과 중간 라이브를 통해 다른 사람들의 리팩토링을 보는 시간을 가질 수 있었다.동일한 바탕으로 다양한 접근 방식을 확인할 수 있었다.코드에 정답은 없다. 클린 코드를 만들 수 있는 센스를 몸에 익히고 큰 그림을 보며 코드를 짜는 능력을 길러야겠다.'완벽한 코드는 없다. 그 당시의 최선일 뿐!'클린 코드 학습을 고민하는 분이 있다면 박우빈님 강의를 추천한다!   

백엔드클린코드ReadableCode박우빈님강의워밍업클럽

겸손한 북극곰

[워밍업-백엔드3기] ReadableCode 1주차 회고

클린 코드와 테스트 코드 작성 능력 향상을 위해 워밍업 클럽을 신청했다. 👋혼자하는 것보다는 빠르게 성장하지 않을까 하는 기대감을 가졌다.결과적으로 그냥 인프런을 수강할 때보다 두 배로 강의를 집중해서 빠르게 들을 수 있었다.개인적으로 TIL 을 메모하려 했고, 미션을 통해 복습을 하니 강의를 습득하는걸 체감할 수 있었다. 🔢 클린코드의 첫번째 학습Readable Code: 읽기 좋은 코드를 작성하는 사고법 - 박우빈1주차 새롭게 배운 내용추상 개념 잡기 추상 계층에 따라 어떻게 관리해야하는 지 이해하고, 클래스를 분리 할 수 있다.void 는 피한다.반환값은 테스트 코드에 도움이 된다.Early Return 과 부정문 관리부정문은 두번의 사고를 거쳐야 한다.else if 는 이전 과정을 모두 기억해야 하는 장기 사고적인 부분이다. 점진적 리팩토링다른 곳에서 참조되는 클래스를 한번에 바꾸는 것은 위험하다.의도한 예외와 예상하지 못한 예외try-catch 시, CustomException을 활용하여 예외의 경우를 나뉘어 관리한다.NPE 를 조심하자!외부에서 오는 값은 항상 의심하고 검증해야한다.Setter 는 물론이고 Getter 도 참아보자메서드를 활용해서 객체간 소통할 수 있다. getter 를 먼저 작성하지 말고 방법을 고민해본다.  클린코드를 실습과 함께 동시 진행하며, 빠르게 내용을 이해하고 습득할 수 있었다.실무 관점에서 클린코드의 목적과 어떠한 방향으로 코드를 작성해야하는지 팁을 계속 알려주셨다.  💾 클린코드 실습 미션 과 SOLID[Readable Code] 클린 코드 리팩토링 연습과 SOLID 원칙 정리클린코드 미션 제출 코드배울 때는 너무 잘 정리해주셔서 정답이 있는 듯 보이지만, 예제 코드를 직접 수정하니 주관적이고 판단하기 어려웠다.강의를 들으며 정리한 메모를 한 줄씩 읽어보고, 예제 코드를 딱 보았을 때 맘에 들지 않는 부분을 정리했다.배운 내용을 규칙처럼 적용하려 했고, 평소와 다르게 작성하려 노력했다. 저 짧은 예제 코드 하나 수정하는데 꽤 많은 시간이 들었다. 🥵제출하고 나서도 '이게 최선일까?' 라는 생각이 많이 들었고, 좋은 코드를 찾아 보라는 말이 이해가 되었다. 나의 언어로 SOLID 정리하기OCP : 개방 폐쇄 원칙 게임에 새로운 레벨이 추가된다고, 게임 로고가 바뀌지는 않는다.게임에 새로운 스테이지가 추가 된다고, 튜토리얼이 바뀌지는 않는다. 기존 코드의 변경 없이 새로운 요구사항을 반영할 수 있어야 한다.   SOLID 를 이해하려면 앞으로도 몇개월이 걸릴 거라 생각했는데, 직접 정리하면서 개념을 다시 잡아보기도 하고 생각을 정리할 수 있었다. 배운 내용을 내 언어로 정리하니 기억도 잘되었다! 🧠  🤔 1주차 회고세션이나 도서 등을 참고한 적은 많지만 내용을 직접 적용해본 경험은 없는 것 같았다.클린 코드 학습은 막연하다고 생각했는데, 실시간 예제와 함께 강의를 들으니 너무 이해가 잘되었다.매일 배운 내용을 나의 언어로 메모를 남겨 내 것으로 만들기 위해 노력하고 있다.1주만 들었을 뿐인데, 코테를 연습하면서도 클린코드를 고민하게 된다.클린 코드 학습을 고민하는 분이 있다면 박우빈님 강의를 추천한다!   

백엔드클린코드ReadableCode박우빈님강의워밍업클럽

채널톡 아이콘