if (study)/잡다구리

Git hook으로 단위 테스트에 통과하지 못한 코드가 실수로 커밋되는 일을 방지해보자. .git/hooks/에 들어가면 hook을 실행할 수 있는 여러 이벤트에 대한 스크립트들이 만들어져 있다. 그 중에서 pre-commit.sample이라는 파일을 열어서 아래와 같이 수정한다. #!/bin/sh set -e ######## RUN UNIT TEST HOOK START ######## git stash -q --keep-index ./gradlew test RESULT=$? git stash pop -q exit $RESULT ######## RUN UNIT TEST HOOK END ######## 파일명을 pre-commit으로 바꿔서 저장한다. (확장자명인 .sample을 지워야 한다) 적용 끝~ ..


space냐 tab이냐, 괄호를 오른쪽에 붙이냐 줄바꿈을 해서 붙이냐 같은 주제로 개발자들은 심심찮게 토론을 벌이곤 한다. if (condition) { } if (condition) { } 이런 코드를 보면... 뭔가 엄청 거슬리지 않나? 나는 키워드 사이 공백 일관되지 않으면 무진장 신경쓰인다. for (int i=0; i< 10; i++) { int value1=10; int value2 = 20; } 보통 이런 정답이 없는 것(=취향)들은 모두가 공통으로 지켜야 하는 가이드라인, coding convention으로 정의해둔다. coding convention은 프로그래밍 언어에 자체적으로 만들어져 있기도 하고, 협업하는 팀에서 직접 정하기도 한다. 어떤 컨벤션이 대세인지 이렇게 분석한 사이트도 존..


AssertJ는 테스트의 가독성과 유지보수성을 높이는 목적으로 등장한 Java 라이브러리다. 풍부한 테스트용 api를 제공하며, assertThat을 사용하면 읽기 좋은 테스트 코드를 작성할 수 있다. JUnit Assertion 사용 방법 assertXXX(기대하는 값, 실제 값) assertEquals(expected, actual) 사용 예시 import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test internal class ExpressionParserTest { @Test fun parse() { assertEquals(listOf("-3.5", "+", "2.2"), ExpressionParser..


이 글은 압축해제 시리즈의 일환으로 작성되었습니다. 이 글의 소재는 얼마전 영화 써니의 급식실 장면을 보다가 번뜩 떠올랐다. 그래서 스크린샷을 하나 넣었는데 문제가 되면 지우겠다. 글을 시작하며 오늘도 플레이스토어에서는 수많은 앱들이 별점 테러를 당하고 있다. 내용을 읽어보면 '앱을 왜 이따구로 만들었냐'는 요지의 리뷰들이 달려있다. 여기서 '이따구'에 내재된 원인으로는 사용자가 삽질하게 되는 앱 디자인 납득할 수 없는 서비스 정책 앱이 느리고 버벅임 치명적인 버그가 있음 등등... 여러 가지가 있는데 1, 2, 4는 그 사례가 워낙 가지각색이라 제끼고 3번에 대해 얘기해보려 한다. 사실 개발자들이 고의로 그렇게 만든 건 아닌데, 많은 앱들이 욕을 먹고 있고, 앞으로도 먹을 예정이다. 오늘은 앱 개발을 ..