본문 바로가기

백엔드287

[java] BigDecimal error : Non-terminating decimal expansion; no exact representable decimal result. java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result 아무리 BigDecimal이라고 해도 제한없는 숫자를 다룰 수는 없는 것이다. divide시 자리수와 결과셋을 지정해줘야 한다. bigDecimal.divide(bd, 2, BigDecimal.ROUND_CEILING); 2022. 5. 15.
Connection Factory Connection Factory Connection Factory란 Connection 을 얻어오는 부분을 따로 클래스로 만들어 사용하는 것이다. 데이터 베이스에 접속하기 위해서는 Connection 을 생성해야 한다. 자주 데이터베이스에 접속하다보면 접속하는 데이터베이스가 다르고, 접속하는 사람이 다르기 때문에 접속할 때마다 새로 코딩을 해주어야 한다. 이러한 불필요함을 줄이고자 Connection Factory 를 사용하는 것이다. 2022. 5. 13.
[window] WSL2 Ubuntu 구동 시 Error: 0x800701bc WSL 2 Windows 10 / Windows 11 에서 WSL 로 Ubuntu 실행 시, 0x800701bc 에러가 발생할 수 있는데, WSL2 Linux Kernel Update 를 설치해주면 해결된다. 다운로드 링크: https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 2022. 4. 28.
메시지 브로커 / 이벤트 브로커 이벤트 기반 MSA 를 공부하면서 알고 가야하는 개념이다. 메시지 브로커 publisher 가 생산한 메시지를 메시지 큐에 저장하고, 저장된 데이터를 consumer 가 가져갈 수 있도록 중간 다리 역할을 해주는 브로커이다. 대규모 엔터프라이즈 환경의 미들웨어로서의 기능을 한다. consumer 가 큐에서 데이터를 가져가게 되면 메시지 처리 후 바로 혹은 짧은 시간내에 데이터가 삭제된다. 필요할때마다 큐에 담아놓고 사용하기 때문에 주로 캐시로 많이 사용된다. 메시지 브로커에는 Redis, RabbitMQ 가 있다. 이벤트 브로커 메시지 브로커의 큐 기능을 가지고 있고 추가로 이벤트 별로 관리가 가능하다. 이벤트 브로커는 publisher가 생산한 이벤트를 이벤트 처리 후 바로 삭제하지 않는다. 이벤트 시.. 2022. 4. 26.
MSA 설계 시 참고 툴 MSA 설계할 때 사용하면 좋은 도구들을 정리해 보았다. 다이어그램 및 아키텍처 설계 도구 https://www.lucidchart.com/pages/ Intelligent Diagramming | Lucidchart Lucidchart is your solution for visual communication and cross-platform collaboration. www.lucidchart.com https://app.diagrams.net Flowchart Maker & Online Diagram Software Flowchart Maker and Online Diagram Software diagrams.net (formerly draw.io) is free online diagram soft.. 2022. 4. 21.
[php] 출력문 비교 - echo, print, print_r, var_dump 아래 예제로 먼저 확인해보겠다. 문자열 출력 output hello hello hello string(5) "hello" echo 는 print 와 같은 역할을 한다. 둘의 차이점은 ( ) 안에 넣어서 사용하느냐에 대한 차이이다. 배열 출력 output Array Array Array ( [0] => hello [1] => world [2] => !! ) array(3) { [0]=> string(5) "hello" [1]=> string(5) "world" [2]=> string(2) "!!" } print_r의 경우 다음과 같은 형태로 출력된다. 순수하게 몇번째 배얄에 어떠한 값이 있는지만 확인하는 함수이다. Array ( ['index번호'] => "값" .... ) var_dump 의 경우 다음과.. 2022. 4. 21.