본문 바로가기

분류 전체보기108

[MySQL] 같은 구조의 Temp Table 생성 [MySQL] 같은 구조의 Temp Table 생성 목적 (A) DB에서 (B) DB로 가공하여 긁어와야 함 처음 생각 한 방법 1. (B) temp 테이블을 미리 생성한다. 2. (B) temp로 (A) DB 테이블 데이터를 저장 3. (B) temp -> (B) 원하는 테이블로 저장 로직에는 처음 시작할 때 temp 삭제하는 구간도 있으나 생략했다. 이렇게 진행하니 똑같은 테이블 두 개를 동시에 유지보수 해야 하는 단점이 생겼다. TEMPORARY TABLE TEMPORARY TABLE 이란? 간단히 말하면 임시테이블이다. 특징은 다음과 같다. 세션 또는 트랜잭션 범위 : 대부분의 데이터베이스 시스템에서 임시 테이블은 생성한 데이터베이스 세션 또는 트랜잭션 동안에만 존재한다. 세션이나 트랜잭션이 종료.. 2024. 2. 1.
스프링 테스트 코드 @RestControllerAdvice를 거치게 하는 방법 스프링 테스트 코드 @RestControllerAdvice를 거치게 하는 방법 스프링에서 컨트롤러 테스트 코드 작성 시 @RestControllerAdvice를 거치지 않아서 Exception 처리가 통과 안 한 경우가 있었다. @RestControllerAdvice를 거치도록 하는 방법은 두 가지를 찾았다. @MockBean을 사용해서 서비스를 등록할 때, @Mock을 사용해서 서비스를 등록할 때를 나눠서 살펴보자. 1. @MockBean을 사용한 경우 첫 번째 방법은 서비스를 @MockBean으로 등록하는 방법이다. @WebMvcTest(TestController.class) class TestControllerTest { @Autowired MockMvc mockMvc; @MockBean Sampl.. 2024. 1. 25.
자바 Atomic 패키지 자바 Atomic 패키지 'java.util.concurrent.atomic' 패키지는 멀티스레드 환경에서 안전하게 변수를 조작할 수 있도록 하는 클래스를 제공한다. Atomic 패키지를 정리하게 된 계기는 다음과 같다. 멀티 스레드를 사용하게 됨 각 멀티 스레드 수행 간 조건에 의해 static count를 증가시켜야 함 지역변수로 카운트 증가를 하려고 하니 스레드 세이프 하지 않아서 결과값이 기대처럼 안 나왔다. 이거 저거 알아보다가 Atomic 패키지가 있는 것을 알아냈다. 바로 예시를 들어가보자 package org.example.atomic; import java.util.concurrent.atomic.AtomicInteger; public class AtomicTest { static Int.. 2024. 1. 24.
운영체제에서의 입출력(I/O) 관리 운영체제에서의 입출력(I/O) 관리란? 운영체제의 입출력 관리는 컴퓨터 시스템에서 외부 환경과의 상호작용을 담당하는 부분이다. 디스크, 네트워크, 터미널 등과 같은 다양한 입출력 장치와의 효율적인 통신을 관리하고, 프로세스가 입출력 작업을 수행할 때 시스템 자원을 효과적으로 활용하는 역할을 한다. 주요 내용들을 알아보자. 1. 디바이스 드라이버 (Device Drivers) 운영체제는 각종 하드웨어 디바이스와 통신하기 위한 디바이스 드라이버를 제공한다. 특정 하드웨어와 통신하여 데이터를 주고받을 수 있게 해주는 소프트웨어이다. 2. 버퍼링 (Buffering) 운영체제는 입출력 작업의 성능을 향상시키기 위해 버퍼링을 사용한다. 버퍼는 데이터를 일시적으로 저장하는 메모리 영역으로, 입출력 속도 차이나 효율.. 2024. 1. 22.
프로세스 간 통신 프로세스 간 통신 프로세스 간 의사소통하는 것을 IPC (Interprocess Communication)라고 한다. 컴퓨터 시스템에서 실행 중인 두 개 이상의 프로세스 간에 정보를 교환하고 상호 작용하는 메커니즘을 의미한다. 다수의 프로세스가 동시에 실행되는 다중 프로세스 환경에서 프로세스 간 통신은 중요한 개념이며, 이를 통해 프로세스들은 서로 협력하여 작업을 수행하거나 데이터를 공유할 수 있다. 프로세스 간 통신의 주요 목적은 다음과 같다. 1. 데이터 전송 프로세스들은 데이터를 주고받아야 할 때 통신을 사용한다. 이를 통해 프로세스 간에 정보를 교환하고 업무를 협력적으로 수행할 수 있다. 2. 동기화 프로세스들 간에 작업을 진행을 조절하기 위해 동기화 메커니즘이 필요하다. 하나의 프로세스가 다른 .. 2024. 1. 19.
JVM (Java Virtual Machine) JVM (Java Virtual Machine) JVM이란? Java Virtual Machine의 줄임말이다. 자바를 실행하기 위한 가상 기계(컴퓨터)라고 할 수 있다. JVM은 자바 바이트코드를 해석하고 실행하는 역할을 수행한다. 특징 플랫폼 독립성 JVM은 플랫폼 독립적인 특성을 가지고 있다. 자바 프로그램은 소스 코드를 자바 컴파일러를 통해 바이트 코드로 변환하고, JVM은 이 바이트코드를 특정 플랫폼에서 실행할 수 있게 해 준다. 동일한 자바 프로그램을 여러 운영체제나 아키텍처에서 실행할 수 있다. 자동 메모리 관리 JVM은 가비지 컬렉션(Garbage Collection)을 통해 자동으로 메모리를 관리한다. 바이트코드 실행 자바 소스 코드는 자바 컴파일러에 의해 자바 바이트 코드로 변환된다. .. 2024. 1. 18.