728x90

전체 글 544

DB 동시성 제어하는 방법 알아보기

DB 시스템에서 동시성을 제어하는 방법에 대해서 알아보자 !!!   대표적인 동시성 제어 방식은 MVCC(Multi Version Concurrency Control)Lock-Based Concurrency Control이 있다.  1. MVCCMVCC는 데이터의 여러 버전을 유지하여 트랜잭션이 동시에 데이터를 읽고 쓸 수 있도록 하는 방식이다.각 트랜잭션은 자신만의 일관된 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항에 영향을 받지 않는다. 데이터의 각 버전을 유지하여 읽기 작업이 쓰기 작업과 독립적으로 이루어질 수 있다.트랜잭션은 시작 시점의 스냅샷을 기반으로 데이터를 읽어, 다른 트랜잭션의 변경 사항을 보지 못한다. 읽기 작업 시 잠금을 사용하지 안항 높은 동시성을 제공한다.읽기 작업..

개발/ETC 2025.01.06

스레드, 프로세스, 코어 알아보기

스레드, 프로세스, 코어를 알아보자 !!!   1. 개념 - 스레드란?일반적으로 "프로세스 내에서 실행되는 하나의 흐름"을 의미.컴퓨터 프로그램에서 스레드는 프로그램 내에서 동시에 실행되는 여러 작업을 처리하는 단위.스레드는 멀티태스킹을 지원하며, 하나의 프로세스 내에서 여러 작업을 동시에 처리하는 데 사용.프로세스는 하나 이상의 스레드를 포함할 수 있다.  - 프로세스란?운영 체제에서 실행 중인 프로그램을 의미.프로세스는 실행 중인 프로그램에 의해 사용하는 메모리 공간과 시스템 자원들을 포함하는 실행 단위.프로세스는 프로그램 코드뿐만 아니라 그 코드가 실행되는 동안 필요한 데이터, 자원, 상태 정보 등을 포함.  - 코어란?컴퓨터의 중앙 처리 장치(CPU) 내부에서 실제로 명령을 처리하고 실행하는 물리..

개발/ETC 2025.01.03

단위 테스트, 통합 테스트 차이

단위 테스트, 통합 테스트 차이를 알아보자 !  1. 개념단위 테스트는 소프트웨어의 가장 작은 단위, 즉 개별 메서드나 함수의 기능을 검증하는 테스트.특정 기능이 올바르게 동작하는지 확인하기 위함이며 독립적이고 빠르게 실행. 통합 테스트는 개별 모듈들이 결합되어 전체 시스템이 올바르게 동작하는지 검증하는 테스트.모듈 간의 상호작용이 올바르게 동작하는지 확인하기 위함이며 실제 데이터베이스, 네트워크 등의 외부 시스템과의 통합을 테스트 한다.     2. 슬라이스 테스트슬라이스 테스트는 특정 레이어(ex. controller, service, repository)에 대한 테스트.애플리케이션의 특정 슬라이스가 올바르게 동작하는지 확인하기 위해 작성.스프링의 특정 컴포넌트만 로드하여 테스트하므로 상대적으로 빠르..

개발/ETC 2025.01.02

[Spring] 동기, 비동기 차이

동기와 비동기 차이에 대해서 알아보자 !    1. 개념동기와 비동기는 호출하는 함수의 작업 완료를 기다리는지 여부의 차이가 있다.  함수 A가 동기로 함수 B를 호출하면 A는 B의 작업이 완료될 때까지 기다려야 한다.  따라서 작업이 순차적으로 진행된다.  반면, 함수 A가 비동기로 함수 B를 호출하면 A는 B의 작업 완료를 신경 쓰지 않고 따로 동작한다.  따라서 작업이 순차적으로 진행되지 않는다.    2. 블록킹과 동기의 차이동기 호출에서는 호출된 함수가 작업을 완료할 때까지 호출한 함수가 기다린다.즉, 작업이 순차적으로 진행되는 것을 의미한다.  반면, 블로킹은 함수가 호출된 후, 호출한 함수의 결과를 기다리기 위해 실행을 멈추는 상태를 의미한다.즉, 제어권이 반환되지 않고 대기하는 상황이다. ..

TCP 3-way handshake 알아보기

TCP 3-way Handshake에 대해서 알아보자 !!! TCP 3-way handshake는 TCP/IP 네트워크에서 안정적이고 연결 지향적인 통신을 설정하기 위해 사용되는 절차다.이 절차는 클라이언트와 서버 간에 신뢰할 수 있는 연결을 설정하기 위해 세 개의 메시지(세그먼트)를 교환하는 과정을 포함한다. 1.우선 클라이언트는 서버에 연결을 요청하는 SYN 세그먼트를 보낸다.이 세그먼트에는 초기 순서 번호(Sequence Number)와 윈도우 크기(Window Size) 정보가 포함되어 있다.      2.이후 서버는 클라이언트의 요청을 수락하고, SYN과 ACK 플래그가 설정된 세그먼트를 클라이언트에 보낸다. 이 세그먼트는 서버의 초기 순서 번호와 클라이언트의 초기 순서 번호에 대한 응답(ACK..

개발/ETC 2024.12.29

[Spring] Annotation 알아보기

스프링에서 제공하는 어노테이션에 대해서 알아보자 !!!  1. 개념@Component, @Service, @Controller, @Repository는 각각의 클래스를 특정 역할을 수행하는 Spring Bean으로 등록할 때 사용된다.각 애너테이션은 클래스가 어떤 역할을 하는지를 명시적으로 나타내며, Spring의 @ComponentScan 기능을 통해 자동으로 Bean으로 등록된다.@Service, @Controller, @Repository 어노테이션은 내부적으로 @Component 어노테이션을 사용하고 있다.    2. 광고   3. 종류@Component 가장 일반적인 형태의 어노테이션으로, 특정 역할에 종속되지 않는 일반적인 Spring Bean을 나타낸다. 공통 기능을 제공하는 유틸리티 클래스..

공유 락, 배타 락 차이

공유 락 배타 락을 알아보자!!  1. 개념유 락과 배타 락은 비관적 락(Pessimistic Lock)의 데이터 일관성과 무결성을 위해 사용하는 락 유형이다. - 공유 락공유 락은 읽기 락(Read Lock)이라고 부르며, 공유 락이 걸린 데이터는 읽기(SELECT)연산만 가능하며, 쓰기(UPDATE, DELETE)는 불가능하다.공유 락이 걸린 데이터에 대해서 다른 트랜잭션에서도 공유 락을 획득할 수 있지만, 배타 락은 획득할 수 없다.즉, 공유 락을 사용하면 트랜잭션 내에서 조회한 데이터가 변경되지 않는다는 것을 보장한다. SELECT * FROM table_name WHERE id = 1 FOR SHARE;  - 배타 락배타 락은 쓰기 락(Write Lock)이라고 부르며, 배타 락을 획득한 트랜잭..

개발/ETC 2024.12.24

[Java] 동일성과 동등성 알아보기

동일성과 동등성을 알아보자 !    1. 개념동일성과 동등성은 객체를 비교할 때 중요한 개념이다. 자바에서는 이 두 개념을 equals() 메서드와 == 연산자를 통해 구분할 수 있다.    2. equals()와 ==의 차이equals()는 객체의 내용을 비교하는 반면, ==는 객체의 참조(레퍼런스)를 비교한다. 따라서 두 객체의 내용이 같더라도 서로 다른 객체라면 equals()는 true를 반환할 수 있지만, ==는 false를 반환한다.    3. 광고  4. 동등성이란?동등성은 논리적으로 객체의 내용이 같은지를 비교하는 개념. 자바에서는 equals() 메서드를 사용하여 객체의 동등성을 비교한다. Apple 클래스를 예시로 보면, Object.equals 메서드를 오버라이딩하여 객체의 실제 데이..

[Economy] 미국 기준 금리 인하 발표(2)

12/19 미국 금리가 인하되었다 ! 이번에도 0.25%가 인하되었다.  1. 금리발표일시간실제예측이전2024.12.1904:004.5%4.5%4.75%    2. 광고    3. 영향미국 금리가 4.75%에서 4.5%로 인하된 경우, 이는 여러 경제적 영향을 미칠 수 있습니다. 주요 영향은 다음과 같습니다:1. 대출과 차입 비용 감소 금리가 낮아지면 대출을 받는 비용이 줄어듭니다. 이는 기업들이 자금을 더 저렴하게 빌릴 수 있게 되어 투자 증가를 촉진할 수 있습니다. 개인 차입자들도 주택담보대출이나 자동차 대출 등의 금리가 낮아져 소비 지출이 늘어날 가능성이 있습니다. 모기지 금리나 대출 금리가 감소하면 주택 시장과 자동차 시장 등에서 거래가 증가할 수 있습니다. 2. 소비 증가 금리 인하는 소비자들이..

경제/Economy 2024.12.19

[Java] equals와 hashCode 알아보기

equals와 hashCode에 대해서 알아보자    1. equalsequals() 메서드는 두 객체의 값이 같은지 비교하기 위해 사용하는 Java의 객체 메서드.기본적으로, Object 클래스에 정의되어 있으며, 모든 Java 클래스는 Object 클래스를 상속받기 때문에 모든 객체에서 사용 가능.   - 기본 구현public boolean equals(Object obj) { return (this == obj);}   - equals() vs == 비교비교 방식참조(주소) 비교값 비교 (보통 오버라이드 필요)기본 구현변경 불가능오버라이드 가능기본 용도객체의 주소(메모리 위치) 비교객체의 값 비교사용 예시str1 == str2str1.equals(str2)   - equals() 오버라이드 (..

728x90