CS
-
우선 결론부터 말하자면 아닐 확률이 크다.스레드가 많으면?스레드가 많으면 운영체제는 컨텍스트 스위칭을 자주 수행해야 하고 CPU의 자원이 이러한 스레드 관리에 소모된다. 이로 인해 다른 작업의 수행 효율이 떨어질 수 있으며, 많은 스레드가 동시에 실행될 경우 메모리, 캐시, 락 등의 자원을 경쟁하게 되어 성능 저하나 데드 락이 발생할 가능성이 높아진다. 또한 스레드가 많아지면 동기화와 상태 관리가 복잡해져 버그 발생 가능성도 커진다. 서블릿이 뭐에요?스프링 MVC에 대해 공부하던 중 서블릿에 대한 나름대로의 정리가 필요할 것 같았다. 그래서 먼저 위키에 서블릿이 뭔지 찾아봤다.뭐 그렇다는데, 영한님의 강의에서는 이렇게 서블릿을 설명해dockerel.tistory.com스프링의 경우 요청이 들어오면 스레드..
[매일메일] 스레드, 프로세스, 코어의 수는 많을 수록 좋을까?우선 결론부터 말하자면 아닐 확률이 크다.스레드가 많으면?스레드가 많으면 운영체제는 컨텍스트 스위칭을 자주 수행해야 하고 CPU의 자원이 이러한 스레드 관리에 소모된다. 이로 인해 다른 작업의 수행 효율이 떨어질 수 있으며, 많은 스레드가 동시에 실행될 경우 메모리, 캐시, 락 등의 자원을 경쟁하게 되어 성능 저하나 데드 락이 발생할 가능성이 높아진다. 또한 스레드가 많아지면 동기화와 상태 관리가 복잡해져 버그 발생 가능성도 커진다. 서블릿이 뭐에요?스프링 MVC에 대해 공부하던 중 서블릿에 대한 나름대로의 정리가 필요할 것 같았다. 그래서 먼저 위키에 서블릿이 뭔지 찾아봤다.뭐 그렇다는데, 영한님의 강의에서는 이렇게 서블릿을 설명해dockerel.tistory.com스프링의 경우 요청이 들어오면 스레드..
2025.01.28 -
공유 락(Shared Lock, Read Lock)과 배타 락(Exclusive Lock, Write Lock)은 비관적 락의 데이터 일관성과 무결성을 위해 사용한다.공유 락 vs 배타 락 공유 락은 Read Lock으로도 불리며, 공유 락이 걸린 데이터는 읽기 연산(SELECT)만 가능하며 그 외에 쓰기 연산(UPDATE, DELETE)은 불가능하다. 이때 다른 트랜잭션에서도 공유락이 걸린 데이터에 대해 또 다른 공유 락은 획득할 수 있지만 배타 락은 획득할 수 없다. 즉 공유락을 사용함으로써 트랜잭션 내에서 조회한 데이터가 변경되지 않았음을 보장받을 수 있다. 배타 락은 Write Lock으로도 불린다. 즉 배타 락을 획득한 트랜잭션은 읽기 그리고 쓰기 연산이 모두 가능하다. 하지만 다른 트랜잭..
[매일메일] 공유 락 vs 배타 락공유 락(Shared Lock, Read Lock)과 배타 락(Exclusive Lock, Write Lock)은 비관적 락의 데이터 일관성과 무결성을 위해 사용한다.공유 락 vs 배타 락 공유 락은 Read Lock으로도 불리며, 공유 락이 걸린 데이터는 읽기 연산(SELECT)만 가능하며 그 외에 쓰기 연산(UPDATE, DELETE)은 불가능하다. 이때 다른 트랜잭션에서도 공유락이 걸린 데이터에 대해 또 다른 공유 락은 획득할 수 있지만 배타 락은 획득할 수 없다. 즉 공유락을 사용함으로써 트랜잭션 내에서 조회한 데이터가 변경되지 않았음을 보장받을 수 있다. 배타 락은 Write Lock으로도 불린다. 즉 배타 락을 획득한 트랜잭션은 읽기 그리고 쓰기 연산이 모두 가능하다. 하지만 다른 트랜잭..
2025.01.24 -
동기와 비동기동기(Synchronous)동기 방식은 일련의 실행 과정이 순차적으로 진행되는 것을 말한다. 즉 한 작업이 마무리되기 전까지 다른 작업이 기다려야 한다는 의미이다. 이러한 동기 방식은 호출한 함수 혹은 작업이 반환될 때까지 실행 흐름이 차단되는 특징이 있다.비동기(Asynchronous)비동기 방식은 작업들이 독립적으로 실행되는 것을 의미한다. 그래서 작업의 완료 여부에 상관없이 다른 작업을 실행할 수 있다. 비동기 방식은 I/O 처리나 네트워크 요청과 같이 시간이 오래 걸리는 작업에 적용하는 방식으로, 콜백, 프로미스, async/await 등으로 구현 가능하다. 그럼 (논)블로킹과 (비)동기는 어떤 차이가 있을까?(논)블로킹과 (비)동기사실 블로킹과 동기는 기다리는 거고, 논블로킹과 비동..
[매일메일] 동기와 비동기의 차이?동기와 비동기동기(Synchronous)동기 방식은 일련의 실행 과정이 순차적으로 진행되는 것을 말한다. 즉 한 작업이 마무리되기 전까지 다른 작업이 기다려야 한다는 의미이다. 이러한 동기 방식은 호출한 함수 혹은 작업이 반환될 때까지 실행 흐름이 차단되는 특징이 있다.비동기(Asynchronous)비동기 방식은 작업들이 독립적으로 실행되는 것을 의미한다. 그래서 작업의 완료 여부에 상관없이 다른 작업을 실행할 수 있다. 비동기 방식은 I/O 처리나 네트워크 요청과 같이 시간이 오래 걸리는 작업에 적용하는 방식으로, 콜백, 프로미스, async/await 등으로 구현 가능하다. 그럼 (논)블로킹과 (비)동기는 어떤 차이가 있을까?(논)블로킹과 (비)동기사실 블로킹과 동기는 기다리는 거고, 논블로킹과 비동..
2025.01.23 -
TCP 3-way handshake란 TCP에서 처음에 연결을 수립할 때 사용되는 절차로 클라이언트와 서버 간에 총 3번의 메시지(세그먼트)를 교환하는 과정을 포함한다.클라이언트가 서버에 연결을 요청하기 위해 SYN 플래그를 보낸다. 여기에는 Sequence Number가 포함되어 있다. 클라이언트가 SYN_SENT 상태로 변하고 서버는 LISTEN 상태에서 클라이언트가 보낸 SYN을 받는다. 이에 대한 응답으로 Sequence Number에 1을 더한 값으로 ACK 플래그를 전송하고 서버는 SYN_RECEIVED 상태로 변한다. 다시 클라이언트는 서버가 보낸 ACK과 SYN을 받게 되고 서버가 보낸 SYN 값에 1을 더한 값을 ACK에 담아 보냄으로써 클라이언트와 서버 간에 연결이 성립하게 된다. 연결..
[매일메일] TCP 3-way handshake란?TCP 3-way handshake란 TCP에서 처음에 연결을 수립할 때 사용되는 절차로 클라이언트와 서버 간에 총 3번의 메시지(세그먼트)를 교환하는 과정을 포함한다.클라이언트가 서버에 연결을 요청하기 위해 SYN 플래그를 보낸다. 여기에는 Sequence Number가 포함되어 있다. 클라이언트가 SYN_SENT 상태로 변하고 서버는 LISTEN 상태에서 클라이언트가 보낸 SYN을 받는다. 이에 대한 응답으로 Sequence Number에 1을 더한 값으로 ACK 플래그를 전송하고 서버는 SYN_RECEIVED 상태로 변한다. 다시 클라이언트는 서버가 보낸 ACK과 SYN을 받게 되고 서버가 보낸 SYN 값에 1을 더한 값을 ACK에 담아 보냄으로써 클라이언트와 서버 간에 연결이 성립하게 된다. 연결..
2025.01.22 -
동기와 비동기동기(Synchronous)동기 방식은 일련의 실행 과정이 순차적으로 진행되는 것을 말한다. 즉 한 작업이 마무리되기 전까지 다른 작업이 기다려야 한다는 의미이다. 이러한 동기 방식은 호출한 함수 혹은 작업이 반환될 때까지 실행 흐름이 차단되는 특징이 있다.비동기(Asynchronous)비동기 방식은 작업들이 독립적으로 실행되는 것을 의미한다. 그래서 작업의 완료 여부에 상관없이 다른 작업을 실행할 수 있다. 비동기 방식은 I/O 처리나 네트워크 요청과 같이 시간이 오래 걸리는 작업에 적용하는 방식으로, 콜백, 프로미스, async/await 등으로 구현 가능하다. 그렇다면 동기 방식으로 외부 서비스를 호출 및 처리하는 서비스에서 외부 서비스 장애가 발생하면 어떻게 해결할 수 있을까? 우선 ..
[매일메일] 동기 방식으로 외부 서비스 호출 시 외부 서비스 장애가 발생하면 해결 방법?동기와 비동기동기(Synchronous)동기 방식은 일련의 실행 과정이 순차적으로 진행되는 것을 말한다. 즉 한 작업이 마무리되기 전까지 다른 작업이 기다려야 한다는 의미이다. 이러한 동기 방식은 호출한 함수 혹은 작업이 반환될 때까지 실행 흐름이 차단되는 특징이 있다.비동기(Asynchronous)비동기 방식은 작업들이 독립적으로 실행되는 것을 의미한다. 그래서 작업의 완료 여부에 상관없이 다른 작업을 실행할 수 있다. 비동기 방식은 I/O 처리나 네트워크 요청과 같이 시간이 오래 걸리는 작업에 적용하는 방식으로, 콜백, 프로미스, async/await 등으로 구현 가능하다. 그렇다면 동기 방식으로 외부 서비스를 호출 및 처리하는 서비스에서 외부 서비스 장애가 발생하면 어떻게 해결할 수 있을까? 우선 ..
2025.01.21 -
코딩애플 정규화 영상 3번, 학교 강의 1번, 복습 1번 했지만 아직 애매한 정규화...데이터 정규화 우선 데이터 정규화에 대해 설명하기 전에 관계형 DB를 사용하는 이유부터 생각해보자. 첫 번째는 데이터 저장을 위해서이고 두 번째는 데이터의 중복을 줄이기 위해서이다. 개요 그러면 관계형 스키마를 위한 가이드라인부터 한번 알아보자. 이것만 지키면 최고의 스키마?? 1. Making sure the semantics of the attributes 즉, 엔티티를 섞지 말라는 말이다. 오직 foreign key로만 다른 엔티티를 가리켜야 한다. 2. Reduce the redundant information in tuples redundancy(중복)이 생기면 update 이상이 생길 수 있다. 이때 upd..
데이터 정규화코딩애플 정규화 영상 3번, 학교 강의 1번, 복습 1번 했지만 아직 애매한 정규화...데이터 정규화 우선 데이터 정규화에 대해 설명하기 전에 관계형 DB를 사용하는 이유부터 생각해보자. 첫 번째는 데이터 저장을 위해서이고 두 번째는 데이터의 중복을 줄이기 위해서이다. 개요 그러면 관계형 스키마를 위한 가이드라인부터 한번 알아보자. 이것만 지키면 최고의 스키마?? 1. Making sure the semantics of the attributes 즉, 엔티티를 섞지 말라는 말이다. 오직 foreign key로만 다른 엔티티를 가리켜야 한다. 2. Reduce the redundant information in tuples redundancy(중복)이 생기면 update 이상이 생길 수 있다. 이때 upd..
2024.12.02