본문 바로가기

전체 글12

테스트 하기 어려운 코드! 어떻게 해야하지?(랜덤에 대한 테스트) 프리코스 2주차 미션부터는 각 기능에 대한 테스트 코드를 작성해야 했다. 이에 따라 JUnit5와 AssertJ를 학습하고, TDD를 적용해보려 노력했다. 사실 이 라이브러리를 학습하고, 테스트 코드를 작성하는 것만해도 그리 쉬운일이 아니었다. 그래도 다른 분들의 야구게임 코드를 리뷰하면서 잘 작성하신 테스트 코드를 많이 보았기 때문에, 테스트 코드를 작성하는 방법 자체는 빠르게 학습할 수 있었다. (목객체 만들어서 테스트 코드도 작성하시던데 이건 아직 어떻게 하는건지 잘 모르겠다 ㅠㅠ) 하지만 정말정말 어려웠던 부분은 테스트 라이브러리 자체가 아니라, 랜덤에 대한 테스트였다. 자동차가 움직일지 결정하기 위해서는 랜덤으로 숫자를 선택해야 하는데, 이 랜덤 숫자에 대한 단위 테스트가 어려웠기 때문이다. 여.. 2023. 11. 2.
값 객체(VO), 뭔지 알고 쓰자! 그리고 쓰는 이유는?? 값 객체(Value Object, VO)에 대해서는 객체지향 생활 체조 원칙 3번인 "모든 원시값과 문자열을 포장(wrap)한다." 내용에서 처음 알게 되었다. 처음에는 객체지향 생활 체조 원칙을 지키기 위해 정확한 개념과, 왜 쓰는지 모른채 원시값을 값 객체로 포장하려고 했었다. 하지만 그러다보니 엔티티와 값객체의 차이도 뭔지 몰랐고, 여러모로 공부가 필요하다고 느껴 추가적으로 공부했다. 먼저 도메인 주도 설계 철저 입문 책에서는 값 객체를 다음과 같이 설명한다. 값 객체는 시스템 특유의 값에 대한 표현이며, 값의 한 종류다. -17p- 값 객체가 아닌 원시 타입으로 처리했을때(feat. 우테코 프리코스 1주차) 예를들어 숫자 야구 게임에서 사용하는 숫자를 단순히 int 변수로 처리한다고 해보자. 그런.. 2023. 10. 29.
객체지향의 사실과 오해 리뷰 객체지향의 사실과 오해(조영호) 를 읽은지는 좀 되었지만, 계속해서 책 리뷰를 미루다가 이제서야 쓴다 ^_^ 읽게 된 계기 사실 이 책은 예전 객체지향 프로그래밍 스터디에 참여했을때 함께 읽으면 좋을 것 같다고 스터디장이 추천해 주신 책이었다. 하지만 첫 주차에만 스터디가 진행되고 그 이후에는 사람들이 많이 나가서 스터디는 바로 종료가 되었다 ㅋㅎ.. 그렇게 이 책의 존재를 잊다가 우아한테크코스에 들어가고 싶어 준비하던 중에 많은 사람들이 이 책을 추천해주어서 읽게 되었다. 사실 다들 내용이 반복이 많고 앨리스 예제가 있어서 읽는건 금방 읽을거라 했지만,,, 나는 책을 읽는데 생각보다 많은 시간을 소요했다. 뭔가 내용을 읽었지만 내용 중 반정도 밖에 머리에 들어온 느낌이라 여러번 반복하면서 읽었기 떄문이.. 2023. 9. 27.
테스트 코드 그게 뭔데? 중요한거야?(feat. TDD) 1학기에 소프트웨어 공학 수업을 들으며 테스트 코드를 짜는게 중요하다는 말은 많이 들어보았다. 하지만 실제로 개발을 하면서 테스트 코드를 짜본적이 한번도 없다. 이 글을 통해 테스트 코드 작성의 중요성을 이해하고, 작성에 대한 동기를 얻어보자!! 먼저는 장점에 대해 조금더 자세하게 살펴보기 전에 아주 살짝 TDD(Test-Driven Development)가 무엇인지 알아보자. TDD가 뭔지 처음 들어본다면 이것이 무엇인지 알아 본 뒤에 이 글을 읽어보는 걸 추천한다! 이 글의 내용이 결국 TDD의 장점에 대한 내용이기 때문이다. TDD는 테스팅과 코드 개발을 혼합시키는(interleaved) 개발 접근법이다. 즉 개발을 하면서 테스팅이 동시에 일어나는 접근법을 말한다. 이때 중요한 점은 테스트 코드가 .. 2023. 8. 24.