전체 글 83

[CS 지식] 동기 - 비동기

* 동기(Synchronous) vs 비동기(Asynchronous)동기(Synchronous)하나의 작업이 끝나야 다음 작업이 실행됨 (순차적 실행)요청을 보내면 응답이 올 때까지 대기단순하지만, 응답 시간이 길면 전체적인 성능 저하 가능비동기(Asynchronous)요청을 보내고 응답을 기다리지 않고 다음 작업을 수행응답이 오면 별도로 처리멀티스레딩을 활용하여 여러 작업을 병렬로 처리 가능 * 동기 코드 예제(Java)public class SyncTest { public static void main(String[] args) { System.out.println("1"); printA(); System.out.println("2"); Syst..

[DB] 트랜잭션

* 트랜잭션(Transaction)이란?트랜잭션은 데이터베이스에서 논리적인 작업의 단위를 의미한다. 여러 작업이 하나의 단일 작업처럼 수행되도록 보장하여 데이터의 일관성과 무결성을 유지하는 역할을 한다. * 트랜잭션의 4가지 특성(ACID)원자성 (Atomicity)모든 작업이 완전히 수행되거나 전혀 수행되지 않아야 함중간에 오류가 발생하면 모든 작업이 롤백(Rollback)예: 송금 시, 돈을 보내는 작업과 받는 작업이 모두 성공하거나 둘 다 취소됨일관성 (Consistency)트랜잭션 전후로 데이터베이스의 상태가 일관되어야 함예: 은행 계좌에서 출금 후에도 총 잔액은 변하지 않음격리성 (Isolation)동시에 수행되는 트랜잭션이 서로 영향을 미치지 않도록 보장예: 두 사용자가 동시에 같은 상품을 구..

Computer Science/DB 2025.02.07

[아키텍처] Publish-Subscribe 패턴

* Publish-Subscribe (Pub-Sub) 패턴이란?Publish-Subscribe(이하 Pub-Sub) 패턴은 발행자(Publisher)와 구독자(Subscriber) 간의 메시지 전달을 위한 비동기 통신 모델이다. 직접적인 연결 없이 중앙 브로커(Message Broker)를 통해 메시지를 주고받는다.  * Pub-Sub의 핵심 요소Publisher(발행자)메시지를 생성하고 특정 토픽(Topic)으로 발행한다.구독자의 존재 여부를 신경 쓰지 않는다.Subscriber(구독자)특정 토픽(Topic)을 구독하고, 해당 토픽의 메시지를 전달받는다.발행자가 누구인지 알 필요가 없다.Message Broker(중앙 브로커)발행자가 보낸 메시지를 구독자에게 전달하는 중개 역할을 한다.대표적인 브로커:..

[Linux] 사용자 분류와 계정 명령어

* 사용자 분류루트 계정 : 모든 권한을 가진 특별한 사용자(UID 값이 0)시스템 계정 : 리눅스 설치 시 기본으로 생성되는 계정사용자 계정 : 실제 리눅스 사용자를 위한 계정(관리자에게 권한을 부여받아 사용)→ 리눅스에서는 사용자를 root(관리자)와 일반 사용자로 구분.각각 계정은 흔히 사용하는 ID가 아니라 번호로 부여하는 UID로 관리 * 리눅스 계정과 관련된 명령어들현재 호스트에 로그인 되어 있는 모든 사용자 출력$ users모든 사용자 정보 자세히 출력(터미널 종류, 로그인 시각 등 기본적으로 출력)$ who [options]계정 전체 확인$ cat /etc/passwdroot 암호 설정$ sudo passwd rootroot 로그인# 현재 계정에서 root 권한을 이용하여 명령어를 실행할 ..

[Spring] 의존성 주입

의존성 주입에는 대표적으로 2가지가 있는데, 수정자 주입과 생성자 주입이다. 이 2가지 의존성 주입에 대해 알아보고자 한다.1. 수정자 주입 (Setter Injection)방법: 객체가 생성된 후에 setter 메서드를 통해 의존성을 주입한다.장점:유연성이 높아서, 의존성이 필요하지 않을 때도 객체를 생성할 수 있다.의존성이 선택적(optional)인 경우에 적합하다.단점:의존성이 주입되지 않아도 객체가 생성되기 때문에, 객체의 필수 의존성이 누락될 위험이 있다.주입 여부를 확인하는 로직을 추가로 작성해야 할 수 있다.2. 생성자 주입 (Constructor Injection)방법: 객체가 생성될 때, 생성자를 통해 필요한 의존성을 모두 주입한다.장점:의존성이 객체 생성 시에 반드시 주입되어야 하므로,..

Java/Spring 2024.10.16