전체 글
-
개발자로서의 첫 1년을 회고해보자self 2021. 12. 26. 23:57
벌써 2021년의 끝자락에 와 있고, 나도 이제 정식 개발자로 일한 지 만 1년이 되었다. 더 힘차게 성장하는 2022년을 위해 올해를 짤막하게 회고해보려고 한다. 학교를 벗어나 회사에서 처음 일하면서 느낀 점들을 많이 적을 것 같다. 1년동안 어떻게 성장했는지 당당하게 작성하고 싶었는데, 조금은 스스로에게 박한 글이 되지 않을까 싶다. 회사 업무에 익숙해졌다 회사에서는 모든 것이 협업으로 이루어진다. 이런 변화된 환경 속에서 개발을 하게 된 것이 가장 큰 변화인 것 같다. 무언가 변경을 만들어야할 때 대략 다음의 과정을 따르게 된다. 비즈니스 요구사항을 리뷰하면서 무엇을 구현해야 하는지, 구현이 가능한지, 언제까지 가능한지를 판단한다. 일정이 합의되면 개발을 진행한다( 개발하기 전에는 필요하다면 설계 ..
-
유닛 테스트는 정확히 무엇을 가리키는가test 2021. 11. 28. 23:57
저번 포스팅에 이어서 Unit Testing Principles, Practices, and Patterns의 Chapter 2를 요약하려고 한다. 이번 챕터를 통해 '유닛 테스트란 무엇인가'에 대한 저자의 생각과, 앞으로 책에서 다룰 내용들에 앞서 필요한 배경 지식을 배울 수 있다. 유닛 테스트의 정의와 두 학파 유닛 테스트는 다음을 모두 만족하는 자동화한 테스트이다. 1. 작은 코드(unit)를 검증한다. 2. 빠르게 실행된다. 3. 격리되어(isolated) 실행된다. 이 중 3번에 대해서 학파별로 의견이 극명하게 나뉜다. "유닛 테스트의 정의에서 말하는 isolation의 의미는 무엇인가"에 대한 의견이 핵심이 되어, 유닛 테스트에 대한 철학과 방법이 갈리게 된다. Classical school이..
-
좋은 유닛 테스트를 찾아서test 2021. 11. 13. 20:06
좋은 유닛 테스트를 짜고 싶어! 나는 테스트 작성하는 것을 은근히 즐긴다. 파란불이 하나씩 들어오는 쾌감이 좋다. 게다가 좋은 테스트를 작성한 것 같은 착각(?)을 느낄 때는 뿌듯함이 몇 배로 느껴진다. 내가 의미있다고 생각하는 테스트는 비즈니스 로직을 잘 검사하고, 테스트를 읽는 이로 하여금 프로덕션 코드를 잘 설명해주는 테스트이다. 버그 이슈를 처리하면서 해당 버그를 만들어낸 조건을 테스트에 추가할 때도 묘한 희열을 느낀다. 안타깝게도 나는 버그를 만들었지만, 이 테스트가 존재하는 한 똑같은 버그가 생길 일은 없을테니까! 하지만 자괴감이 드는 테스트를 만드는 날도 자주 있다. 이런 테스트는 바로 테스트를 위한 테스트이다. 테스트를 안 만들면 안 될 것 같아서 억지로 만든 거다. 수많은 클래스들을 종합..
-
Spock 체험기test 2021. 10. 31. 20:00
이번 글에서는 내가 애용하는 테스트 프레임워크 Spock에 대한 간단한 소개와 함께, 최근에 겪었던(그리고 아직까지도 이해하지 못한) 문제를 소개하고자 한다. 테스트를 편리하게 해주는 Spock 난 평소에 테스트 코드를 짤 때 Spock framework를 즐겨서 사용하는 편이다. 테스트를 작성할 때 보다 보편적인 선택은 JUnit + Mockito인데, 틈틈이 Spock을 사용해본 결과 내가 생각하는 Spock의 상대적인 장점은 다음과 같다. 코드가 간결하고 직관적이다. 메소드 이름에 문자열을 사용할 수 있어서, 테스트 케이스의 내용이 이해가 잘 된다. JUnit에서는 메소드명을 최대한 구체적으로 적어서 테스트 내용을 설명하지만 공백을 사용할 수 없다 보니 아무래도 가독성이 떨어진다. 그런데 Spock..
-
git으로 협업하는 방법팁 2021. 10. 16. 23:05
git 관련 팁을 적었던 저번 글에 이어서 이번에는 "git으로 협업하기"에 대해서 다뤄보고자 한다. 내가 속한 조직에서는 git-flow 전략을 사용하고 있는데, 이 방법을 사용하면서 그동안 가지게 된 생각을 적어보려고 한다. git-flow 전략에 대해서는 우아한형제 블로그의 "우린 Git-flow를 사용하고 있어요"에 정말 자세하게 소개가 되어 있다. git-flow가 아직 익숙하지 않은 분들은 이 글을 꼭 읽어보셨으면 좋겠다. git command와 함께 A-Z를 너무 잘 설명하고 있어서 내가 일일이 반복할 필요는 없을 것 같다. git-flow가 아직 익숙하지 않은 분들은 이 글을 꼭 읽어보셨으면 좋겠다. 우리 조직에서도 위 글에서 설명하고 있는 방식을 거의 그대로 따르고 있어서, 그동안 실천했..
-
Git으로 실수했을 때 살아남기팁 2021. 10. 3. 21:14
git add, git commit, git push 밖에 모르던 시절 처음 회사에서 일하기 시작하면서 git으로 많은 삽질을 했었다. 코드 리뷰도 없고 다른 사람도 신경 쓸 필요가 없으면 마구잡이로 푸쉬하면 되지만, 회사에서는 git을 통한 협업이 이루어지기 때문에 나 때문에 회사 리포지토리가 망가지지 않도록 해야 한다. 이미 실무에 익숙해진 개발자들은 git에 대해서 어려움을 겪을 일이 드물지만, 초보 개발자에게는 꽤나 무서울 수 있는 것이 바로 git이다. 과거에 git으로 수많은 삽질을 한 결과 알게 된 방법들을 정리해두려고 한다. 1. 커밋을 수정하고 싶어! 1.1 커밋 메시지를 잘못 썼어! (`git commit --amend`로 커밋 메시지 고치기) 아주 간단한 상황이다. 이미 커밋을 해버렸..
-
OAuth란?network, security 2021. 9. 20. 00:04
OAuth가 왜 필요할까? 이전에 내 카드 사용 내역을 토스에서 확인하기 위해 사용하는 카드를 토스에 연동할 일이 있었다. 카드 사진을 찍으라고 해서 그건 별 생각 없이 찍었는데, 이어서 비밀번호 4자리까지 입력하라고 하는 것이 아닌가? 순간적으로 굉장히 찝찝했다. "이걸 알려주는 게 맞나..?" 토스가 카드 비밀번호까지 알게 된다면 사실상 내 카드에 대한 모든 정보를 알고 있는 셈이기 때문에 내 카드를 충분히 도용할 수 있을 것이다. 토스라는 서비스에 대한 신뢰가 있기 때문에 결국 비밀번호를 입력하고 카드 연동까지 완료하긴 했지만, 사용자로서 그렇게 기분 좋은 경험은 아니었다. 토스에게 내 카드 사용 내역을 알려주고는 싶지만, 그렇다고 해서 내 비밀번호까지 알려주고 싶은 건 아니다. 토스는 내가 허락한..
-
Intellij 폰트 색깔 바꾸기 (Intellij color scheme)팁 2021. 8. 25. 22:23
사소한 것이지만, 작은 꿀팁을 알게 되어서 적어놓는다. 바로 Intellij에서 syntax highlighting을 커스터마이징하는 것이다. 나는 Intellij에서 Darcula라는 기본 컬러 스킴을 사용하고 있다. 다른 스킴을 사용해보려고 했는데, 예쁘기는 하지만 색깔이 너무 다양해서 좀 정신없다는 생각이 들어서 결국에는 Darcula에 정착하게 되었다. 그런데 이 기본 스킴에서는 가끔 "글자들이 전부 하얘..."라는 생각이 들 때가 있다. 특히 복잡하게 짜여진 코드를 볼수록 색깔로 구분되지 않으니 뭐가 뭔지 헷갈릴 때가 있다. (물론 이런 코드를 안 만드는 것이 제일 좋겠지만, 모든 상황이 이상적일 수는 없는 것 같다.) 특히 추상 클래스를 상속한 클래스에서 이 문제가 가장 심각했다. 추상 클래스..