반응형 분류 전체보기52 Thread 1. Thread 정의 CPU의 코어를 최대한 사용해서 많은 업무를 동시에 처리할 수 있게 도와 주는 것이다 특징 생성 관정에서 조금의 시간이 소요가 된다. 쓰래드 생성에 필요한 메모리 공간이 필요(stack 영역) thread 개수 제한을 두지 않기 때문에 너무 많은 thread를 생성하면 메모리 고갈과 같은 이슈가 발생할 수 있습니다 Thread 생성 방식(Task 등록) Runnable/Callable interface를 상속받은 객체를 실행하는 방식 관리의 편의 성을 더해주기위해서 Java 5부터 Thread pool을 사용 합니다 현재 대부분 Thread Pool과 ForkJoinPool을 응용하고 있습니다. thread 객체를 생성해서 task queue에 등록 후 하나씩 thread 와 매칭.. 2022. 1. 1. Logging apache slf4j 보안 이슈가 발생하면서 문제를 해결전 공부해보고 싶어서 글을 작성하게 되었습니다. 예제코드 Logging 정의 서비스 동작 상태, 장애 정보를 제공하기 위해서 실행 이력을 남기는 행위를 의미 방식 linux의 Syslog Logging lib 를사용(slf4j, logback ...etc) slf4j(Simple Logging Facade For Java) 정의 Java Application에서 사용하는 Logging 기법 특징 단독 사용 불가(하나의 Interface 라고 생각하기) log 추상화 라이브러리 구성 요소 API(slf4j) Binding Bridge slf4j 구성 요소 Bridge 정의 레거시 logging을 사용하는 프로젝트를 위해 다른 Binding과 연동해주.. 2021. 12. 17. RDB Semi Join을 이용한 성능 최적화 Table 구조 CREATE TABLE `food` ( `food_id` bigint NOT NULL AUTO_INCREMENT, `create_date` datetime(6) DEFAULT NULL, `last_modified_date` datetime(6) DEFAULT NULL, `food_status` varchar(255) NOT NULL, `food_title` varchar(255) NOT NULL, `number_of_likes` bigint NOT NULL, `price` int NOT NULL, `review_msg` varchar(255) DEFAULT NULL, `writer_nickname` varchar(50) DEFAULT NULL, `category_id` bigint DEF.. 2021. 12. 12. RDB Index 성능 이슈발생 원인 대부분 성능 이슈는 index 선언과 잘못된 query문으로 인해 slow 이슈가 발생하게됩니다. 부수적으로 replication과 리눅스 connection개수와 같은 여러 방식으로 성능 이슈를 해결하는 경우도있지만 애플리케이션에서 index와 slow 쿼리를 빠르게 찾는게 중요합니다. 간단한 용어 정리 카디널리티: 겹치지 않는 row의 수 선택도 카디널리티를 전체 조회된 데이터 개수로 나눈것 : 카디널리티/전체row수 1에 근접할 수록 좋습니다. 분포도: 특정 컬럼에 대해서 전체 건수 대비 특정 값이 차지하는 비율(만약 Y/N이고 100개중 50/50비율이면 50%입니다) Index 정의 Database의 데이터를 빠르게 찾기 위해서 사용하는 테이터 구조 MySQL innoDB에서.. 2021. 12. 9. 이전 1 ··· 3 4 5 6 7 8 9 ··· 13 다음 반응형