본문 바로가기

분류 전체보기13

이펙티브 코틀린 (TDD, 클린코드 with Kotlin) 8기 - 3,4,5 주차 3주차 미션 회고 - 블랙잭리뷰 1리뷰 2리뷰 3리뷰 4가장 어려우면서도 재밌었던 미션이었다.도메인 용어(?)는 중요하다.블랙잭에는 플레이어의 상태를 나타내는 hit, stay, bust, blackjack 과 같은 개념이 있다.처음 구현할때는 일단 저 용어들을 몰랐고 굳이 저 용어를 사용하지 않더라도 비슷한 의미를 가진 용어를 쓰면 되겠지 라는 생각으로 구현했다. 하지만 리뷰어님이 해당 용어들을 사용하는것을 권장하셨고 이를 다음 작업에서 적용했다.별거 아닌것처럼 보이지만, 해당 도메인에 맞는 용어를 사용함으로써 처음 코드를 보는 사람으로 하여금 더 직관적으로 이해할 수 있게 된다는걸 느꼈다. 현업에서는 협업하는 부서와 함께 도메인 용어들을 미리 정의하고 개발을 진행한다면 훨씬 더 유용할것 같다. 테스.. 2025. 1. 10.
이펙티브 코틀린 (TDD, 클린코드 with Kotlin) 8기 - 2주차 2주차 미션 회고 - 로또리뷰 1리뷰 2리뷰 3리뷰 4객체지향 어려운걸?이번 미션을 진행하면서 가장 많이 받았던 피드백은 "A클래스에서 B클래스로 책임을 위임해보는건 어떨까요?" 였다.코드를 작성할때는 분명 잘 나눴다고 생각했는데, 리뷰어님의 피드백을 받고 다시보니 아쉬운 부분들이 눈에 보이기 시작했다.객체지향은 단순히 사이즈가 큰 클래스를 나누고 메서드를 쪼개는 행위가 아니다. "적절한 객체에게 적절한 책임을 부여" 할 수 있어야 한다. 연습을 위한 과제들이기 때문에 이 기간만큼은 조금 과하다고 느껴지더라도 최대한 원칙에 맞춰서 코드를 작성해보고자 한다. - 최상위 함수에서 모든 기능을 구현하고 하나씩 리팩토링을 통해 분리해볼것.- 너무 추상적이라고 느껴지면 정량적인 지표를 바탕으로 해볼것. e.g) .. 2024. 12. 2.
이펙티브 코틀린 (TDD, 클린코드 with Kotlin) 8기 - 1주차 어떻게 시작하게 됐는가?구직을 위해 채용공고를 보면서 느낀점은 자격요건에 Kotlin이 포함된 공고가 작년보다 눈에띄게 많아졌다는 사실이었다.그래서 새롭게 진행하는 사이드 프로젝트는 Kotlin을 써보기로 결정했다. 책을 통해 문법은 알 수 있었지만 보다 코틀린스러운 코드를 짤 수 있었으면 했고 이를 위해서는 경험자들의 리뷰가 있으면 더 좋겠다는 생각을 했다. 마침 NextStep에 이펙티브 코틀린 8기가 열렸길래 바로 신청을 했다. 여러 후기들을 보았을때 비용이 아깝지 않다는 이야기들이 많았고, 이를 통해 더 빠르게 성장할 수 있을것 같았다. 기간은 총 6주 과정이며 주 1회 3시간 가량의 온라인 강의가 진행된다. 이때 강의는 Jason이 해주신다.이외의 시간들은 매주 주어지는 미션 구현하고 실무자들의.. 2024. 11. 22.
여러 플랫폼에 대응할 수 있는 OAuth 코드로 개선하기 이전 글에서 SpringSecurity가 OAuth 로그인을 처리하는 과정을 디버깅을 통해 학습했습니다. 학습경험을 바탕으로 식도락 프로젝트의 기존 OAuth 로그인 코드를 개선한 과정에 대해 글을 써보려 합니다. 기존의 문제점 카카오 로그인에 의존적이며 확장에 닫혀있는 코드. 새로운 플랫폼을 지원하도록 확장하기 위해서는 요청을 보내는 클라이언트뿐만 아니라 비즈니스로직이 담긴 서비스 클래스까지 변경이 발생합니다. 또한 추가적으로 작성해야되는 클래스가 너무 많이 필요합니다. Properties 클래스의 주입. 기존의 서비스 코드에서는 카카오api 사용에 필요한 정보를 담은 KakaoProperties 클래스를 직접 주입받아서 사용하고 있었습니다. 즉, 새로운 플랫폼을 지원할때마다 주입받아야하는 클래스가 늘.. 2023. 6. 4.