전체 글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. CORS란? 개념 정리 및 동작 방식 📌 SOP(Same Origin Policy) 정책 동일한 출처에서만 리소스를 공유할 수 있다. 👉 동일한 출처에 대한 정책 동일 출처 서버에 있는 리소스는 자유롭게 가져올 수 있지만, 다른 출처 서버에 있는 이미지나 유튜브 영상 같은 리소스들은 상호작용이 불가능하다. SOP는 2011년, RFC 6454에서 처음 등장한 보안 정책으로 말 그대로 "같은 출처에서만 리소스를 공유할 수 있다" 라는 규칙을 가진 정책이다. ✅ 동일 출처 정책이 필요한 이유? "CSRF 공격!" 만일 제약이 없다면, 해커가 CSRF(Cross-Site Request Forgery) 나 XSS(Cross-Site Scripting)등의 방법을 이용하여 우리가 만든 애플리케이션에서 해커가 심어놓은 코드가 실행되어 개인 정보들을 가.. 2023. 3. 24. [Infra] GitHub Actions + DockerHub + AWS EC2 로 프로젝트 CI/CD 구축 여러 프로젝트를 만들면서 배포를 할 때 '젠킨스 + Gitlab' 또는 'Gitlab'으로 CI/CD를 구축하여 배포하였다. 이건 프로젝트가 gitlab 저장소로 관리되어있어야 하는데 초반에 만들어둔 프로젝트는 github 저장소에 있다보니 기존 방법 대로 CI/CD를 하려면 gitlab으로 프로젝트를 옮기는 과정이 필요했다. gitlab 👉 github 미러링은 해봤는데 github 👉 gitlab 미러링은 처음... 방법은 비슷하겠거니하고 찾아봤는데 "pull mirroring"을 하면된다고한다.(참고로 깃랩에서 깃헙은 push mirroring) gitlab 미러링으로 들어가 pull로 변경하려고 보니 변경해야하는 Mirror direction이 비활성화되어 클릭이 안되는것... 찾아보니 githu.. 2023. 3. 14. 이전 1 2 3 4 ··· 6 다음