본문 바로가기

Programming137

티스토리 블로그에서 마크다운 수학 수식 적용하기 (수식 예시) 마크다운(Markdown) 형식으로 텍스트 문서에 수학식을 표기하려면, 일반적으로 MathJax나 LaTeX 같은 수학 표기법을 지원하는 도구가 필요하다. 티스토리의 경우 스킨편집>html편집 부분에서 수식을 적용할 수 있는 스크립트를 붙여넣으면 수식을 사용할 수 있다.붙여넣을 스크립트는 본 글의 맨 하단에 첨부하였다.마크다운 수식 적용시다음과 같은 달러 기호로 수식을 적용할 수 있다.$수식$ 과 $$수식$$$ 사용시(한 개)이렇게 글자$사이에$ 수식이 들어간다.$$ 사용시(두 개)이렇게 중앙에 수식이 나타난다.$$수식$$사용할 수 있는 수식들그리스 문자α: \alphaβ: \betaγ: \gammaδ: \deltaε: \epsilon, ε: \varepsilonζ: \zetaη: \etaθ: \thet.. 2024. 5. 2.
Hikari Connection Pool 기본 작동 원리 배경 업무를 하며 ForkJoinPool을 이용해 병렬 처리를 하는 작업 중에 DB IO가 발생하는 작업이 있어 커넥션 풀 사이즈 관리가 필요했다. 성능 최적화와 함께 안정적인 설계를 고민하며 Hikari Connection Pool의 기본 작동 원리부터 다시 살펴보았다. 본 글은 이를 정리한 글이다. HikariCp의 기초가 되는 내용인 컴포넌트와 프로세스에 대해서만 다루고, Thread와 Pool Size, 기타 테스트 들에 대해서는 다음 글에서 추가로 확인할 수 있다. 백엔드 응답 속도 500ms, 돌고 돌아 90% 개선한 썰 목차 사전 이해를 위한 구조 설명 문제 상황 1차 개선: 캐시 도입 2차 개선: mesh 방식으로의 전환 추가 개선 포인트: ForkJoinPool을 이용한 병렬 처리 & C.. 2024. 4. 11.
Java 병렬 처리 ForkJoinPool 기본 작동 원리 배경 업무를 하면서 ForkJoinPool을 이용한 병렬 처리를 사용해볼 일이 생겼다. 엄밀히 말하면 Stream API의 parrallelStream()이었다. 본 글은 그에 앞서 간단히 ForkJoinPool의 작동 원리를 공부하면서 정리한 글이다. 작동 원리를 알아보자 ForkJoinPool은 자바 7에서 도입된 프레임워크로, 작업을 작은 단위로 분할하고, 이를 여러 스레드에 할당하여 병렬로 처리한다. 핵심 로직은 '분할 정복 알고리즘'에 기반한다. 먼저 핵심 개념 및 컴포넌트를 살펴보면 다음과 같다. 핵심 컴포넌트 📌 ForkJoinPool ForkJoinTask를 실행하는데 사용되는 스레드 풀로, 알고리즘 작업의 균형을 동적으로 조정하는 역할을 한다. 📌 ForkJoinTask 작업의 기본 단위.. 2024. 4. 11.
간단한 코드 한 줄로 NPE (Null Pointer Exception) 방지하는 방법 요약 자바 코드에서 자주 발생하는 NPE를 간단한 습관 변경으로 예방하는 방법을 소개합니다. NPE 방지해야 하는 이유 ? 개발을 하다 보면, NullPointerException (이하 NPE)을 만나는 일은 빈번한데요. NPE는 자바에서 가장 흔하게 발생하는 런타임 예외 중 하나로, 개발자가 정의한 커스텀 예외가 아니라는 점에서 예상치 못한 예외로 분류됩니다. 어떤 변수가 null 상태인데, 마치 유효한 객체인 것처럼 접근하려 할 때 NPE가 발생합니다. 개발 중이라면 그나마 괜찮겠지만 배포한 서버에서 불연듯 NPE가 뜨면 난감해집니다. 🥵 한 가지 예시 NPE를 방지하기 위한 가장 간단하고 효과적인 방법 중 하나는 객체 참조나 메서드 사용시에 주의를 기울이는 것입니다. 예를 들어 equals 메서드.. 2024. 2. 18.
스프링부트 junit 테스트 `No tests found for given includes:` 메시지 에러 메시지 스프링부트 프로젝트 테스트 실패시 다음과 No tests found for given includes: 문제 Execution failed for task ':test'. > No tests found for given includes: [kr.co.....PagingHelperTest](--tests filter) * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. 해결 build.gradle에 test{} 부분을 확인해보자. useJUnitPlatform.. 2023. 12. 17.