Math.nextUp과 Math.nextDown에 대해서 알아보자 double 또는 float의 부동 소수점 값을 알고 싶을 때 java.math 패키지의 nextUp와 nextDown을 사용하면 된다. Math.nextUp이란? Math.nextUp의 대한 내용을 다음과 같습니다. Returns the floating-point value adjacent to d in the direction of positive infinity. This method is semantically equivalent to nextAfter(d, Double.POSITIVE_INFINITY); however, a nextUp implementation may run faster than its equivalent nex..

IntellJ에서 여러 줄을 동시에 선택하는 방법을 알아봅니다. IntellJ에는 multi-cursor에 단축키가 등록되어 있지 않습니다. multi-cursor를 등록하는 방법은 다음과 같습니다. Settings(cmd + ,)으로 이동합니다. Keymap -> Editor Actions -> Clone Caret Below으로 이동합니다. Clone Caret Below(멀티커서)에 원하는 단축키(ctrl + cmd + ↓)를 설정합니다. 변경이나 입력을 하기위한 곳에 단축키를 누면 커서가 멀티로 클릭이 됩니다. Cmmand Paper

[ 문제 ] TypeScript에서 Jest를 통해서 테스트를 작성하려고 했습니다. 테스트코드가 정상적으로 작동하는 것을 기대했는데 Test suite failed to run 에러가 발생했습니다. [ 예시 ] function add (n1: number, n2: number) { return n1 + n2 } const number1 = 5; const number2 = 2.8; test('add',() => { expect(add(number1, number2)).toBe(7.8); }) add 함수에 결과 값이 7.8이 나오도록 테스트 코드를 작성했습니다. 문제가 없지 않은 이상 통과가 되어야 합니다. 하지만 아래와 같은 에러가 발생합니다. [ 답변 ] 공식문서에는 Babel를 통해서 TypeScr..
ArrayList와 Arrays의 차이점에 대한 정리해보겠습니다. 1. Arrays와 ArrayList Arrays는 Object의 객체입니다. Arrays은 다음과 같이 정의되어 있습니다. 이 클래스에는 배열을 조작하기 위한 다양한 메서드(예: 정렬 및 검색)가 포함되어 있습니다. 이 클래스에는 배열을 목록으로 볼 수 있도록 하는 정적 팩토리도 포함되어 있습니다. ArrayList는 List 인터페이스의 크기 조정 가능한 배열 구현체 입니다. ArrayList 은 다음과 같습니다. 인터페이스 의인터페이스의 크기 조정 가능한 배열 구현 List. 모든 선택적 목록 작업을 구현하고 를 포함한 모든 요소를 허용합니다 null. 인터페이스 구현 외에도 List이 클래스는 목록을 저장하기 위해 내부적으로 사용되..
문제 POST/ http://localhost:8087/signin 요청을 했습니다. AccesToken과 RefreshToken이 응답받는 것을 기대했는데 InvalidDataAccessApiUsageException 문제가 발생했습니다. 예시 Postman에서 POST/ http://localhost:8087/signin 입력하고 Body에 다음과 같이 요청을 보냅니다. { "email": "test@email.com", "password": "bikemap1234567@@" } 요청의 응답에러는 500 Internal Server Error가 발생합니다. 에러 메세지는 다음과 같습니다. org.springframework.dao.InvalidDataAccessApiUsageException: Arg..
문제 SpringJPA 설정을 마치고 Docker의 Mariadb와 연결하려고 했습니다. 서버와 데이터베이스가 정상적으로 연결이 되었을 것을 기대했는데 다음과 같은 에러가 발생합니다. java.sql.SQLNonTransientConnectionException: Socket fail to connect to host:address=(host=localhost)(port=3307)(type=primary). Connection refused 예시 application.yml 파일에는 url: ${url:jdbc:mariadb://localhost:3307/bikemap} 데이터베이스 경로 지정되어 있습니다. 터미널에서 docker start [컨테이너 명] 명령어를 입력합니다. ServerApplicat..
문제 SigninControllerTest 클래스에서 SigninService를 Mocking을 하려고 했습니다. Mocking을 하고 Service가 정상적으로 호출이 되는 것을 기대했는데 kotlin.UninitializedPropertyAccessException: lateinit property signinService has not been initialized 문제가 발생했습니다. 예시 @MockkBean private lateinit var signinService: SigninService // mocking init { beforeEach { every { signinService.signin(signinData.email, signinData.password) } returns Auth..

Introduce API 문서 도구는 다 비슷하지만 좋은 API 문서 도구는 저마다 이유가 다릅니다. 좋은 API 문서 도구로는 Swagger와 ReDoc이 있습니다. Swagger는 OpenAPI 대표적인 문서화 도구입니다. API와 관련 모든 리소스 및 작업을 효과적으로 매핑이 가능하고 RESTful 인터페이스를 쉽게 개발할 수 있습니다. Redoc은 Swagger와 동일한 OpenAPI 문서화 도구 중 하나 입니다. Swagger보다 좀 더 깔끔한 UI를 제공합니다. redoc-cli를 통해서 html 파일을 만들 수 있습니다. 두 가지 API 문서 도구의 장점은 개발자가 API를 구현하면서 문서화에 코드를 추가하지 않아도 자동으로 생성 해줍니다. 개발자는 비즈니스 로직에 더욱 집중할 수 있고 시간..

1. Introduce 커밋 메시지를 남길 때마다 “어떻게 하면 의미 있는 커밋 메시지를 남길까?”에 대해서 고민합니다. 최근 많은 분이 AngularJS Git Commit Message Conventions을 따릅니다. 그렇지만 저는 이 컨벤션을 지키면서 Type에 대해서 고민하게 되었습니다. 예를 들어서 새로운 기능을 추가할 때 feat: 기능 추가로 메시지를 남깁니다. 버그 수정 시 fix : 버그수정으로 남깁니다. 자잘한 기능 추가나 버그 수정 시 chroe: 변경 등 이렇게 남깁니다. 보기에는 명확하고 의도가 분명하지만 애매한 경우가 생길 시 type을 무엇으로 써야 할지 헷갈리는 경우도 생깁니다. 매번 수없이 고민해서 다른 방법이 없을까 하다가 다른 방식의 커밋 메시지를 남기는 방법을 찾았습..