일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 배열
- 스프링 부트
- 자료구조
- 공유락
- 파스칼 케이스
- DTO
- jvm
- springDataJpa
- 테스트 코드
- 배타락
- 스터디
- Service 테스트
- 비즈니스 로직
- Entity
- 트랜잭션 락
- OOP
- Controller 테스트
- 디자인 패턴
- 자바
- 비링크
- Repository 테스트
- 스네이크 케이스
- Array
- 마이크로서비스 아키텍처
- do...while
- 원시 자료형
- Java
- 낙관락
- @Version
- @Query
- Today
- Total
목록컴퓨터 공학 (8)
menuhwang

Host 컴퓨터 + 네트워크 네트워크에 연결된 컴퓨터를 호스트라고 한다. Host 종류 네트워크 "이용 주체"로서 호스트: End-point 단말 Peer Server Client 네트워크 "자체"를 이루는 호스트: Switch 스위치 라우터(경로 선정) 보안 스위치 방화벽 IPS MAC 어드레스로 스위칭하면 L2 스위치 IP 어드레스로 스위칭하면 L3 스위치 -> 대표적인 것 라우터 Port 번호로 스위칭하면 L4 스위치 Network 대표적인 Network인 Internet 인터넷은 라우터와 DNS의 집합체로 이해할 수 있다. 참고 유튜브 - 널널한 개발자

"CPU도 당신처럼 '예측'하고 미리 움직인다." CPU CPU는 연산 장치다. 연산 성능을 높이는 방법: 클럭 수 증가, 코어 수 증가, IO 속도 차를 줄인다 CPU는 RAM 보다 속도가 매우 빠르다. 다시 말해 RAM이 CPU에 비해 매우 느리기 때문에 CPU가 온전한 성능을 내지 못 한다. 그래서 CPU와 RAM의 속도 차이를 극복, 완충해주기 위해 캐시 메모리라는 것이 존재한다. 캐시 메모리 제조사 마다 다르지만 L1, L2 캐시는 코어 마다 따로 사용하는 경우도 있고 함께 사용하는 경우도 있다. 보통 L3 캐시는 코어들이 함께 사용한다. L1, L2, L3 캐시들을 캐시 메모리라 한다. 예측 예를 들어 CPU가 아래와 같은 코드를 실행한다고 하자. class Main { public stat..

MAC 주소 NIC(Network Interface Card)의 식별자 유선 LAN 카드, 무선 LAN 카드 등 NIC 당 하나의 MAC 주소를 갖는다 NIC의 MAC 주소는 변경 가능하다! 하나의 컴퓨터에 여러 NIC을 장착할 수 있으므로 MAC 주소도 여러개 가질 수 있다. (ex: 노트북 유선, 무선) IP Host의 식별자 Host란? 인터넷에 연결될 컴퓨터 컴퓨터에 할당 될 수 있는 IP개수는? n개 NIC에 IP를 '바인딩'하게 되는데 NIC 하나에 여러 IP를 바인딩 할 수 있다. Port 어느 계층에서 활동하는 사람인지에 따라 (관점에 따라) 표현 방법이 달라진다. 개발자 (User layer) : 프로세스, 어플리케이션 식별자 네트워크 관리자 (Kernel layer): 서비스 번호 통신..

OSI 7 계층 OSI 7 계층은 개념적인, 추상적인 부분이다. OSI 7 계층부터 깊이 파고들면 금방 지치기 마련이다. TCP/IP TCP/IP, HTTP가 실제로 사용되는 실체, 구현체라고 볼 수 있다. 우리가 사용하는, 사용할 TCP/IP 부터 공부해 보며 OSI 7 계층을 서서히 이해해 보도록 하자. 네트워크 공부에 앞서 컴퓨터의 구조에 대해 먼저 파악하자. 컴퓨터는 크게 하드웨어와 소프트웨어로 나눌 수 있고 소프트웨어는 커널 영역과 유저모드 어플리케이션 계층으로 나눠진다. OSI 7 계층과 TCP/IP 계층 또한 이 구조를 바탕으로 이해할 수 있다. 네트워크 통신을 하는 프로세스를 컴퓨터 구조 레이어 위에 그린 그림이다. 앞으로 위 그림 2장을 바탕으로 진행되니 충분히 눈에 익혀두자. 소켓이란?..
인터럽트 (Interrupt) 프로그램을 실행하는 도중 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 중단하고 발생된 상황을 처리한 후 다시 실행중인 작업으로 복귀하는 것 종류 외부 인터럽트 내부 인터럽트 소프트웨어 인터럽트 외부 인터럽트 전원 이상 인터럽트: 파워, 전원 이상 기계 착오 인터럽트: CPU의 기능적인 오류 외부 신호 인터럽트: 타이머에 의한 인터럽트: 자원이 할당된 시간이 다 끝난 경우 키보드로 인터럽트 키를 누른 경우: 컨트롤 + 알트 + 딜리트 외부장치로부터 인터럽트 요청이 있는 경우 (I/O 인터럽트 x) 입출력 인터럽트 입출력 장치가 데이터 전송을 요구하거나 전송이 끝나 다음 동작이 수행되어야 할 경우 입출력 데이터에 이상이 있는 경우 내부 인터럽트 잘못된 명령이나 잘못된 ..

컴퓨터 컴퓨터는 크게 하드웨어와 소프트웨어로 나눌 수 있고, 소프트웨어는 커널과 Application으로 나뉜다. 컴퓨터의 모든 것이 여기서 시작한다고 볼 수 있다. OS는 하드웨어를 제어하기 위한 SW이며, 커널과 일부 service, daemon까지를 OS라고 한다. RedHat이나 Ubuntu, Android 등 같은 리눅스 커널 기반의 OS이다. 용어 인터럽트 (Interrupt) 인터럽트는 어떤 신호가 들어왔을 때 CPU를 잠깐 정지시키는 것을 말한다. IRQ: Interrupt Request 인터럽트 요청, 인터럽트 번호를 갖는다. 인터럽트가 발생되면 CPU가 하던일을 멈추고 인터럽트를 처리한다. 인터럽트에는 우선순위가 있고 우선순위에 따라 실행된다. 시스템콜 (System Call) 유저 프..

이번에는 동시성 제어 방법 중 하나인 낙관락과 비관락에 대해 알아보고 게시물 좋아요 기능에 낙관락을 적용해 보도록 하자. 예제 코드 : https://github.com/menuhwang/concurrency-issue 낙관락 비관락 낙관락 동시성 문제가 거의 발생하지 않는다고 낙관적으로 접근하는 방식. (동시성 문제 안나유~) - 애플리케이션 레벨에서 락을 거는 방법. - 데이터를 읽을 때는 락을 걸지 않는다. - 여러 사용자가 동시에 읽기 작업을 수행하더라도 락이 걸리지 않아 빠른 속도로 작업이 수행된다. - 데이터를 변경할 때는 이전에 읽은 데이터와 비교하여 충돌이 발생하는지 확인하고 충돌이 발생한 경우 롤백하거나, 다시 시도한다. 비관락 동시성 문제가 발생할 것이라고 비관적으로 접근하는 방식. -..

동시성 문제 해결을 위해 관련 내용을 공부하고 최종적으로 스프링과 Spring Data JPA 환경에서 적용한 과정을 정리하고자 한다. 동시성 문제란? 여러 스레드가 동시에 하나의 자원을 사용할 때 발생하는 문제를 말한다. 은행 계좌와 상품 재고를 대표적인 예로 들 수 있다. 출금 처리가 완료되기 전에 입금된다면? A가 10만원이 있는 계좌에서 2만 원을 출금하는 도중, 아직 출금 처리가 되지 않았을 때 B가 5만 원을 입금한다면 어떻게 될까? A, B 모두 계좌 잔고를 10만원으로 읽어온다. case 1 : 출금 처리가 먼저 처리된 경우 10만원에서 2만 원을 출금한 8만 원이라는 결과를 저장한다. 그 후 10만원에서 5만 원을 입금한 15만 원이라는 결과를 저장한다. 최종적으로 계좌 잔고는 15만원이..