전체 글290 2024.08.16(금) { 와일드카드 캡쳐, transient } 와일드카드 캡쳐와일드카드 캡처(Capture of Wildcards)는 제네릭 타입을 사용할 때 발생하는 문제를 해결하기 위한 기법입니다. 와일드카드는 ?를 사용하여 제네릭 타입의 유연성을 높이는 데 사용되지만, 때로는 와일드카드를 특정 타입으로 "캡처"하여 더 명확하게 사용할 필요가 있습니다. 특히 제네릭 메서드나 클래스에서 와일드카드를 사용하면서 타입 매개변수로 명확히 지정해야 하는 경우에 유용합니다. ? 놔두면 아무거나 다 될 수 있어서 혼란이 올 수 있지만 T로 하면 예를 들어 String로 하면 다 String로 고정되기 때문에 와일드카드 캡처 와일드카드 캡처 문제예를 들어, 다음과 같은 코드가 있을 때:public void addToList(List list, Object value) { .. 2024. 8. 16. List와 ArrayList 1. List 인터페이스정의: List는 Java의 컬렉션 프레임워크에 속하는 인터페이스입니다. List는 순서가 있는 요소의 컬렉션을 나타내며, 중복된 요소를 허용합니다. List 인터페이스는 컬렉션에서의 위치를 기반으로 요소에 접근하고 조작할 수 있는 다양한 메서드를 정의합니다.주요 특징:순서 유지: List는 요소들이 삽입된 순서를 유지합니다. 예를 들어, 리스트에 요소가 [A, B, C] 순서로 삽입되었다면, 이 순서는 유지됩니다.중복 허용: List는 동일한 요소가 여러 번 포함될 수 있습니다.인덱스 기반 접근: List 인터페이스는 인덱스를 사용하여 특정 위치의 요소를 빠르게 접근할 수 있는 메서드(get(int index))를 제공합니다.구현체: List 인터페이스를 구현하는 여러 클래스가 .. 2024. 8. 16. 뮤텍스(Mutex)와 세마포어(Semaphore) **뮤텍스(Mutex)**와 **세마포어(Semaphore)**는 모두 동시성 프로그래밍에서 **상호 배제(Mutual Exclusion)**를 구현하기 위해 사용되는 동기화 기법입니다. 이들은 멀티스레드 환경에서 공유 자원에 대한 접근을 제어하는 데 사용되며, 서로 다른 스레드가 자원을 동시에 수정하지 못하게 방지합니다. 이 두 개념은 비슷하지만, 동작 방식과 사용 목적에서 차이가 있습니다.1. 뮤텍스(Mutex, Mutual Exclusion)뮤텍스는 "Mutual Exclusion"의 줄임말로, 하나의 스레드만 자원에 접근할 수 있도록 보장하는 락입니다.주요 특징:단일 접근: 한 번에 오직 하나의 스레드만 락을 획득하고, 자원에 접근할 수 있습니다. 다른 스레드들은 락이 해제될 때까지 대기해야 합니.. 2024. 8. 16. 2024.08.15(목) { ( @component,@Bean,@Autowired ), 커밋, Thread Context } @Component와 @Bean의 차이점등록 방식:@Component: Spring의 컴포넌트 스캔에 의해 자동으로 빈이 등록됩니다. 즉, @Component 어노테이션이 붙은 클래스는 Spring이 자동으로 인스턴스를 생성하고, 이를 컨테이너에 등록합니다.@Bean: 개발자가 직접 빈을 등록하기 위해 사용하는 어노테이션입니다. @Bean은 주로 @Configuration클래스 내의 메서드에 사용되며, 해당 메서드가 반환하는 객체를 Spring 컨테이너에 빈으로 등록합니다.사용 위치:@Component: 클래스 레벨에서 사용됩니다.@Bean: 메서드 레벨에서 사용됩니다.유연성:@Component: 기본적으로 설정 없이 자동으로 빈을 등록하는데 유리합니다. 특정 패키지 내의 클래스를 자동으로 스캔하고 빈으.. 2024. 8. 15. 2024.08.14(수) { 스레드 동기화, Lock 과 Lock의 종류 스레드 동기화(Thread Synchronization)스레드 동기화는 멀티스레드 환경에서 여러 스레드가 공유 자원(예: 변수, 객체, 파일 등)에 동시에 접근할 때 발생할 수 있는 문제를 방지하기 위해 사용됩니다. 동기화를 통해 한 번에 하나의 스레드만 공유 자원에 접근할 수 있도록 제어할 수 있습니다. 이렇게 하지 않으면 데이터 불일치, 데이터 손상 등의 문제가 발생할 수 있습니다.락(Lock)의 개념**락(Lock)**은 스레드 동기화의 핵심 개념 중 하나로, 공유 자원에 대한 접근을 제어하는 메커니즘입니다. 락을 사용하면 한 스레드가 자원을 사용하는 동안 다른 스레드가 그 자원에 접근하지 못하도록 막을 수 있습니다.락의 동작 원리락 획득(Take a Lock): 스레드가 공유 자원에 접근하기 전에.. 2024. 8. 15. 데이터베이스 트랜잭션에서 ACID 데이터베이스 트랜잭션에서 ACID는 네 가지 중요한 속성을 나타내며, 이 속성들은 데이터베이스의 무결성과 안정성을 보장하는 데 핵심적인 역할을 합니다. 각각의 속성에 대한 설명과 함께 예시를 통해 설명하겠습니다.1. Atomicity (원자성)정의: 트랜잭션 내의 모든 작업이 전부 실행되거나, 전혀 실행되지 않은 것처럼 보장되어야 한다는 속성입니다. 트랜잭션이 수행되는 도중에 일부 작업만 실행되고 나머지가 실패하면, 트랜잭션 전체가 취소(롤백)되어야 합니다.예시: 은행에서 고객이 A 계좌에서 B 계좌로 100달러를 이체하는 경우를 생각해봅시다. 이 트랜잭션은 두 가지 작업으로 구성됩니다:A 계좌에서 100달러 인출.B 계좌에 100달러 입금.만약 첫 번째 작업(A 계좌에서 100달러 인출)은 성공했지만 .. 2024. 8. 14. 이전 1 ··· 26 27 28 29 30 31 32 ··· 49 다음