본문 바로가기

우당탕당 개발일지36

[Network] 교착상태(Deadlock : 데드락)란? ✅ 교착 상태란? 두 개 이상의 프로세스가 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며, 서로의 작업을 끝나기만을 기다리다 둘 다 영원히 끝나지 않는 상황 즉, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황 예를 들어, 위와 같이 자동차(프로세스)들이 현재 위치한 길(자원)을 점유함과 동시에 다른 차가 사용하는 길을 사용하려고 대기하고 있지만 다른 길을 사용할 수 없으며 현재의 길에서도 벗어나지 못하는 상태를 말함. 📌 교착상태의 발생 조건 4가지 아래의 4가지 조건이 모두 만족 될 경우 발생할 가능성이 있으며, 하나라도 만족하지 않으면 교착상태가 발생하지 않는다. 상호 배제 ( Mutual Exclusion ) 한 번에.. 2023. 4. 6.
[Java] JVM 개념 및 동작 원리 JVM 이란? Java Virtual Machine 의 약자 자바 가상 머신 (가상 컴퓨터, 실제 컴퓨터는 아닌 소프트웨어로 만들어진 컴퓨터) 자바와 운영체제 사이에서 중개자 역할을 수행 자바 바이트 코드를 실행하기 위한 기계 가비지 컬렉터(Garbage Colletor : GC)를 사용한 메모리 관리를 자동으로 수행 레지스터 기반이 아닌 스택 기반으로 동작 한번 작성하면, 어디서든 실행! (Write once, run anywhere) - Sun Microsystems windows용으로 작성 된 애플리케이션은 windows 운영체제에서만 사용가능 만약, Macintosh 운영체제에서 사용 되려면 windows용으로 작성 된 애플리케이션을 macintosh용으로 애플리케이션을 수정해야만 한다. ( 해당.. 2023. 3. 31.
Gradle(그래이들) 개념 및 특징 Gradle(그래이들)이란? 유연성과 성능에 중점을 둔 오픈 소스 빌드 자동화 도구 Groovy Script 를 이용한 Build 자동화 시스템 같은 빌드 도구인 Ant, Maven의 장점을 모아 2012년에 출시 Android OS의 빌드 도구로 채택 간결함 / 빠른 속도 / 유연성 / 확장성 / 다양하고 많은 문서화 등의 장점이 있음 📌 빌드 관리 도구 ( = Gradle / Maven / Ant ) 프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해주는 도구 빌드 되기전 미리 소스 코드를 컴파일, 테스트, 정적분석 등을 하여 실행가능한 앱인지 확인 및 빌드 실행을 해줌 프로젝트의 정보 관리, 테스트 빌드, 배포 등의 작업을 해줌 배포작업 ⇒ 배포가 되는 위치로.. 2023. 3. 29.
Prometheus(프로메테우스) + Grafana(그라파나)로 모니터링하기 Prometheus(프로메테우스) 란? 오픈 소스 기반의 모니터링 시스템이다. 대상 시스템으로 부터 각종 모니터링 지표를 수집하여 저장하고 검색할 수 있는 시스템이다. 구조가 간단하여 운영이 쉽고, 강력한 쿼리 기능을 가지고 있다. 또, 그라파나를 통한 시각화를 지원한다. 무엇보다 넓은 오픈 소스 생태계를 기반으로 해서 많은 시스템을 모니터링할 수 있는 다양한 플로그인을 가지고 있다. 특히, 이런 간편함 때문에 쿠버네티스의 메인 모니터링 시스템으로 많이 사용되면서 요즘 특히 더 주목을 받고 있다. ✅ SoundCloud사에서 만든 오픈 소스 기반 모니터링 솔루션 ✅ go언어로 만들어짐 - 하드웨어 레벨 / 애플리케이션 모니터링 가능 - 마이크로서비스 - multiple language 지원(java, g.. 2023. 3. 26.