본문 바로가기

실패하는 테스트부터 만들기 패턴 Mincho에게 버그에 대해 개선을 할 때 코드부터 고치지 말라고 종종 이야기한다. 대신 실패하는 테스트를 먼저 만들고 실패하는 것을 재현하고 이후 코드를 수정하여 성공하는 테스트로 만들라고 했다. 이런 패턴은 포프TV의 효율적인 테스트 코드 작성법에 나오는 것과 동일하다. 우연히 이동욱 님 블로그 기억보단 기록에 갔다가 Spring Batch에 PR을 올리셨던 것이 거절당한 것을 보게 되었다. Spring Batch Lead인 Mahmoud Ben Hassine가 comment를 남겼는데 이유는 명확했다. 실패하는 테스트가 없었기(There is no failing test in this PR) 때문이었다. 오픈소스 커뮤니티에서도 실패하는 테스트는 유효하다는 것을 느꼈다.
[Hibernate] Envers - 테스트 돌려보기 Envers의 코드 파악을 위해 테스트 코드를 먼저 파악해보기로 했다. 어떤 테스트를 먼저 돌려볼까 했는데.. AuditColumnNameTest 라는 테스트를 선택했다. - 패키지: org.hibernate.envers.test.integration.naming 데이터베이스 관련 테스트는 Fixture 설정하는 것이 복잡하고 공통적으로 필요하므로 추상클래스 상속받는 구조로 되어 있었다. 테스트 코드가 수행하는 작업은 @Audited 의 modifiedColumnName 기능이 잘 작동하는지에 대한 것이다. modified란 값이 변경되었는지 여부를 의미한다. 해당 컬럼의 데이터가 바뀌었는지를 나타내는 플래그(Flag) durgkfdlek. 테스트를 위한 Entity 클래스는 NamingTestEntit..
[보안] 패스키(passkey)와 FIDO와 구글, 깃헛, 마이크로소프트 설정 언제부터인가 1Password에서 자꾸 패스키를 설정할 수 있다는 메시지가 나왔다. 요즘 회사에서 개인정보 보호 관련 업무를 하다보니 어떤 개념인지 궁금해졌다. FIDO(Fast Identity Online) 연맹(ALLIANCE)이라는 단체가 있고 인증도 받는 것 같다. FIDO1은 모바일 기기와 앱 중심이고 FIDO2는 웹 표준 인증까지 확대되었다고 한다. 2022년 6월 1Password 도 이 FIDO 얼라이언스에 가입을 했다. 그래서인지 다른 FIDO 연맹의 사이트들에 대해 적극적으로 패스키 기능을 쓰라고 홍보하는 느낌을 받았다. 구글이나 깃헙, 마이크로소프트 등 주요 사이트에서 이용할 수 있다고 해서 내친김에 등록도 해보았다. 구글 https://myaccount.google.com/signi..
microsoft 국가 정렬 기준은? microsoft의 My Sign-Ins 에서는 로그인 방법을 여러가지로 선택하여 특정 매체로 로그인을 할 수 없을 경우 대체 인증을 받도록 할 수 있다. 가령 스마트폰을 분실해서 문자를 받을 수 없는 경우 전자 메일 등으로 인증을 수행할 수 있다. 로그인 방법(메서드) 추가에서 나라 선택하는 부분이 어려웠는데 아래와 같은 순서로 목록이 있었기 때문이다. 2023-10-16 기준 총 236개의 나라가 목록에 있다. 한 페이지에 볼 수 없기에 스크롤을 해야 한다. 대한민국은 113번째 있었다. 하지만 표시되는 정보만으로는 왜 북한 아래, 코소보 아래에 있는지 알 수 없었다. 여기에 대해서는 Rudy가 알려주었는데, 언어를 영어로 바꿔보면 알 수 있었다. 결론적으로 화면에 표시되지 않은 정보인 영어를 기준으..
이름 짓기(naming things)은 어렵다. 도입 Phil Karlton은 컴퓨터 과학에서 어려운 두 가지를 아래와 같이 이야기했다. (Martin Folwer/Jatinder Singh이 전함) There are only two hard things in Computer Science: cache invalidation and naming things. 컴퓨터 과학에서 어려운 것은 딱 두 가지다. 캐시 무효화, 그리고 이름 짓기 이름은 여러 문맥에 있다. 파일명, 클래스명, 지역 변수명, 데이터베이스 테이블, 컬럼명 등... 오늘의 사례 오늘은 테이블의 컬럼 이름을 짓는 것으로 논쟁을 했다. 슬랙에 오후 4시 48분에 글타래를 시작했다. 마지막 스레드는 오후 6시 9분이었다. 이름 짓기가 어려웠던 이유는 우리말로도 어려웠던 용어들이었기 때문이다...
Confluence 에서 페이지별 공간별 크기 구하기 파이선 스크립트: # This code sample uses the 'requests' 'json' 'csv' library: import requests import json import csv #INSERT "USER", "TOKEN", "BASE_URL" HERE USER="user@example.com" TOKEN="XXXXXXXXXXXXXXXXX" BASE_URL="https://example.atlassian.net" with open('per_page.csv', 'w') as pagecsvfile, open('per_space.csv', 'w') as spacecsvfile: perPageWriter = csv.writer(pagecsvfile, delimiter=',', quotechar=..
macOS 앱 간 언어 전환 끄기 기본으로 앱 전환시에 입력 언어가 바뀐다. 이게 장점일 수도 있지만 두 앱을 서로 왔다 갔다 할 때에는 자동으로 언어가 바뀌므로 불편할 수 있다. macOS Ventura 기준: 시스템 설정 > 키보드 > 텍스트 입력 > 입력 소스: 편집
Java 17 으로 업데이트할 이유가 하나 더 생겼다. Spring Framework 의 메이지 버전 업데이트인 5.x → 6.x 에서는 Java LTS인 11 에서 17로 기본 버전(baseline)이 올라갔다. 그 뿐만 아니라 Java EE 8 에서 Jakarta EE 9+ 로 바뀌면서 패키지 네임스페이스도 jakarta 를 써야하는 변화도 있다. 아직까지는 스프링 프레임워크와 스프링 부트의 과거 버전과의 혼용의 과도기라서 비즈니스 적인 개발을 우선적으로 처리하여 유예하고 있었다. 3일전 (2023-08-04)부터 sonarcloud 분석을 돌리면 아래와 같은 메시지가 밑에 나타났다. The version of Java (11.0.20) you have used to run this analysis is deprecated and we will stop ..