
Thread, Process, Core의 수는 다다익선일까?
스레드, 프로세스, 코어의 수가 많을수록 시스템 성능이 향상된다고 생각할 수 있지만, 실제로 그렇지 않을 확률이 크다. Thread 쓰레드가 지나치게 많아지면 운영체제가 쓰레드 간 컨텍스트 스위칭을 자주 수행해야 하여 CPU 자원이 쓰레드 관리에 소모된다. 이로 인해 실제 작업 수행 효율이 떨어질 수 있으며, 많은 쓰레드가 동시에 실행될 경우 메모리...
스레드, 프로세스, 코어의 수가 많을수록 시스템 성능이 향상된다고 생각할 수 있지만, 실제로 그렇지 않을 확률이 크다. Thread 쓰레드가 지나치게 많아지면 운영체제가 쓰레드 간 컨텍스트 스위칭을 자주 수행해야 하여 CPU 자원이 쓰레드 관리에 소모된다. 이로 인해 실제 작업 수행 효율이 떨어질 수 있으며, 많은 쓰레드가 동시에 실행될 경우 메모리...
단위 테스트는 소프트웨어으 가장 작은 단위, 즉 개별 메서드나 함수의 기능을 검증하는 테스트다. 특정 기능이 올바르게 동작하는지 확인하기 위함이며 독립적이고 빠르게 실행된다. 반면 통합 테스트는 개별 모듈들이 결합되어 전체 시스템이 올바르게 동작하는지 검증하는 테스트다. 모듈 간의 상호작용이 올바르게 동작하는지 확인하기 위함이며 실제 데이터베이스, 네...
공유 락과 배타 락은 비관적 락(Pessimistic Lock)의 데이터 일관성과 무결성을 위해 사용하는 락 유형이다. 공유 락(Shared Lock) 공유 락은 읽기 락(Read Lock)이라고 부르며, 공유 락이 걸린 데이터는 읽기(SELECT)연산만 가능하며, 쓰기(UPDATE, DELETE)는 불가능하다. 공유 락이 걸린 데이터에 대해서 다른...
Memory Management - (3) 맨 왼쪽 테이블이 Logical memory, Logical Memory의 개수만큼 가운데 있는 페이지 테이블에 엔트리가 존재한다. 논리적인 메모리가 최종적으로 물리적인 페이지 어디에 적재되어 있는지에 대해서도 페이지 테이블에 저장해둔다. 주소 변환 정보 뿐만 아니라 valid-invali...
[Gold III] 욕심쟁이 판다 - 1937 문제 링크 성능 요약 메모리: 37428 KB, 시간: 456 ms 분류 깊이 우선 탐색, 다이나믹 프로그래밍, 그래프 이론, 그래프 탐색 제출 일자 2025년 1월 8일 14:42:05 문제 설명 n × n의 크기의 대나무 숲이 있다. 욕심쟁이 판다는 어떤 지역에서 대나무를 먹기 시작한다...
외부 서비스 장애로 인해 응답이 오래 걸린다고 했을 때 외부 API 응답으로 대기하는 자원들이 운영 서버 내부에 쌓이면서 성능에 악영향을 줄 수 있다. 이를 해결하기 위한 가장 기본적인 방법은 타임아웃을 설정하는 것이다. 크게 타임아웃에는 커넥션 타임아웃과 리드 타임아웃, HTTP 커넥션 풀 타임아웃을 설정해 볼 수 있다. 다음과 같은 특정 서비스 ...
[Gold V] 여러분의 다리가 되어 드리겠습니다! - 17352 문제 링크 성능 요약 메모리: 83392 KB, 시간: 548 ms 분류 자료 구조, 분리 집합, 그래프 이론, 그래프 탐색 제출 일자 2025년 1월 7일 20:22:41 문제 설명 선린월드에는 N개의 섬이 있다. 섬에는 1, 2, ..., N의 번호가 하나씩 붙어 있...
[Gold V] 탑 - 2493 문제 링크 성능 요약 메모리: 87888 KB, 시간: 816 ms 분류 자료 구조, 스택 제출 일자 2025년 1월 7일 17:20:49 문제 설명 KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평...
@Component, @Service, @Controller, @Repository는 각각의 클래스를 특정 역할을 수행하는 Spring Bean으로 등록할 때 사용된다. 각 어노테이션은 클래스가 어떤 역할을 하는지를 명시적으로 나타내며, Spring의 @ComponentScan 기능을 통해 자동으로 Bean으로 등록된다. @Service, @Cont...
동일성과 동등성은 객체를 비교할 때 중요한 개념이다. 자바에서는 이 두 개념을 equals() 메서드와 == 연산자를 통해 구분할 수 있다. equals 와 == 의 차이 equals()는 객체의 내용을 비교하는 반면, ==는 객체의 참조(레퍼런스)를 비교한다. 따라서 두 객체의 내용이 같더라도 서로 다른 객체라면 equals()는 true를 반환할...