일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nestjs
- 프로그래머스
- K8S
- DDD
- JPA스터디
- Kafka
- 알고리즘공부
- nestjs공부
- 스프링
- 카프카
- 자바공부
- 기술공부
- 기술면접공부
- 코테준비
- 스프링 공부
- nestjs스터디
- JPA공부
- 코테공부
- Flutter
- JPA예제
- 스프링공부
- 자료구조공부
- 플러터 개발
- JPA 공부
- 플러터 공부
- Axon framework
- JPA
- 스프링부트
- 스프링부트공부
- querydsl
- Today
- Total
목록분류 전체보기 (715)
DevBoi
하나의 객체마다 하나의 모니터를 결합할 수 있다. 모니터가 결합된 객체는 동시에 두개 이상의 스레드에 의해 접근 할 수 없도록 막는 잠금 기능을 제공한다. 객체에 모니터를 결합하면 하나의 스레드가 그 데이터를 사용하는 동안, 다른 스레드 들이 그 데이터를 사용할 수 없다. 자바에서는 동기화 메소드가 선언된 객체와 동기화 블럭에 의해 동기화 되는 모든 객체에 고유한 모니터가 결합이 되어 동기화 작업을 수행한다. 모니터의 구성 -스레드 단위로 모니터락을 획득하거나 반환한다. -동기화 코드를 수행할 때는 동기화 대상 인스턴스와 결합된 모니터락을 획득한 후에 진입이 가능하며, 동기화 코드를 벗어날 때에는 모니터 락을 반환하게 된다. -동기화 대상 인스턴스 별로 이와 결합된 Monitor가 존재하며, 현재 락을 ..
문맥교환 , Context Switching 이란 멀티 프로세스 환경에서 CPU가 어떤 하나의 프로세스를 실행할때 운영체제의 스케줄링에 따라 인터럽트 요청이 발생해서 다음 프로세스가 실행 되어야 할 때 각 프로세스 들은 메모리를 공유하지 않기 떄문에 기존 프로세스의 상태를 저장하고 다음 프로세스의 상태를 교체하는 작업을 문맥교환이라고 한다. OS에서 Context는 CPU가 프로세스를 실행하기 위한 프로세스 정보들을 말한다. 이 Context는 프로세스의 PCB에 저장된다. 문맥 교환이 발생하면, CPU는 해당 프로세스의 PCB 정보를 받아와서 이전 작업을 수행한다. PCB에 저장되는 내용들 -process상태 : CPU를 할당해도되는지 여부를 결정하기 위해 필요함 -PC값 : 다음에수행할 명령어의위치를..
멀티쓰레드란? 멀티쓰레드란, 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화 하여 수행능력을 향상 시키는 것을 멀티쓰레딩이라고 한다. 하나의 프로그램에서 동시에 여러개의 일을 수행할 수 있도록 해주는 것이다. 멀티쓰레드를 사용하는 이유는? -프로세스를 이용하여 동시에 처리하던 일을 쓰레드로 구현할 경우 메모리 공간과 시스템 자원소모가 줄어들게 된다. -쓰레드 간의 통신이 필요한 경우 별도 자원을 이용하는 것이 아니라 전역 변수공간, 동적으로 할당된 공간인 힙영역을 이용하여 데이터를 주고 받을 수 있다. -쓰레드의 문맥교환은 프로세스 문맥교환과는 달리 캐시 메모리를 비울 필요가 없기 때문에 더 빠르다 -시스템의 처리량이 향상 되고 자원소모가 줄어들어 자연..
Rest란 웹의 기존 기술과 Http 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다 구체적으로는 HTTP URI를 통해 어떤 자원인지 명시하고, HTTP method(Get,post,put,patch,delete)를 통해 자원을 처리하도록 설계된 것이다. 6가지 원칙 - 인터페이스 일관성 URI로 지정된 자원에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 것을 말한다. HTTP표준 프로토콜에 따르는 모든 플랫폼에서 사용이가능하다. -무상태 세션 정보나 쿠키를 별도로 저장하고 관리하지 않기 떄문에, API서버는 들어오는 요청만 단순 수행한다. 이전 요청이 다음 요청의 처리에 연관 되면 안된다. -캐시처리 가능 웹 표준 HTTP프로토콜을 그대로 사용해서, 웹..
쓰레드 데드락이란? 멀티 쓰레드 프로그래밍에서 동기화를 통해 락을 획득하여 동일한 자원을 여러곳 에서 함부로 사용하지 못하도록 하였다. 하지만 두개의 쓰레드에서 서로가 가지고있는 락이 해제되기를 기다리는 상태가 생길수 있고 이걸 교착상태, 즉 데드락이라고 한다. 서로 다른 두개의 쓰레드가 상대방의 작업이 끝나기를 기다리는 상태이다. 데드락 발생조건 (모두 충족 시) - 상호 배제 : 한 자원에 대해 여러 쓰레드 동시 접근 불가 - 점유와 대기 : 자원을 가지고 있는 상태에서 다른 쓰레드가 사용하고있는 자원을 반납하길 기다림 - 비선점 : 다른 쓰레드의 자원을 실행 중간에 강제로 가져올 수 없음 - 환경 대기 : 각 쓰레드가 순환적으로 다음 쓰레드가 요구하는 자원을 가지고있는 것 해당 데드락은 프로세스,쓰..
JUnit이란 자바 프로그래밍 언어용 유닛 테스트 프레임워크이다. Junit4 - Java 5이상 , All in one Junit5 - Java 8이상, Junit Platform,Junit Jupiter, JUnit Vintage JUnit5의 구성요소 -Junit Platform JVM에서 동작하는 테스트 프레임워크이다. 테스트를 발견하고 계획을 생성하고 결과를 보고하는 Test Engine인터페이스를 정의한다. -Junit Jupiter Junit5 TestEngine의 실제 구현체입니다. Junit5기반의 테스트를 실행시키기 위한 TestEngine을 Platform에 제공한다. -Junit VIntage TestEngine에서 Junit3및 Junit4기반 테스트를 실행하기 위한 기능을 제공한..
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net
https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net
대용량 또는 사용자의 잦은 요청이있는 컨텐츠를 Cache 서버에 분산 배치하여, 컨텐츠의 전송 중 발생하는 트래픽 집중과 병목현상 및 데이터 손실을 해결하기 위해 등장한 컨텐츠 전송 기술이다. 작동원리 -웹 브라우저가 실행되는 PC나 모바일 기기의 사용자 에이전트가 특정 주소에 접근하여 HTML,이미지,CSS,JS파일 등 렌더링하는데 필요한 컨텐츠를 서버로부터 요청합니다. DNS는 컨텐츠에 대한 각 요청이 발생하면, End User와 가장 가까운 위치에 최적으로 배치된 CDN서버에 End User가 매핑되고 해당 서버는 요청된 파일의 캐싱된 버전을 응답한다. 서버가 파일을 찾는데 실패하는 경우, CDN 플랫폼의 다른 서버에서 컨텐츠를 찾은 다음 End User에게 응답합니다. 향후 요청에 응답할 수 있도..
기존 날짜 APi의 문제점 날짜를 의미하는 Date라는 클래스는 이름과 달리 특정 시점을 날짜가 아닌 밀리초단위로 표현한다. 1) 불볍 객체가 아니다. 불변 객체의장점인 스레드 안정성, 여러객체에서 안전한 공유가 아니라, 가변 클래스이다. 그래서 setter메서드가 존재하여, 객체 공유시에 부작용이 생길 수 있다. 2) 0부터 시작하는 월 지정 인덱스 Date클래스는 1월을 0으로 표현한다. 이는 실수를 유발하게 된다. Date.getDay()메서드로 요일을 가져오면, 0부터 시작하고 Calendar를 통해 가져오면 일요일이 1로 시작한다. 둘 사이에도 일관성이 없다. 3) 확장성 문제 Date는 JVM의 기본 시간대인 (CET)를 사용한다. 또한 Date클래스가 자체적으로 시간대 정보를 알고 있지도 않..