분류 전체보기
-
데드락(DeadLock)운영체제 2023. 8. 15. 19:41
두 스레드가 서로 상대방이 쥐고 있는 자물쇠가 풀리기만을 기다리면서 아무것도 할 수 없는 상황이 벌어 질 때가 있습니다. 이런 상황을 교착상태 즉 데드락(DeadLock)이라고 합니다. 데드락이란 스레드들이 서로 필요한 자원에 대한 락을 가지고 있는 경우에 발생합니다. 이러한 경우에 두 스레드 모두 실행 될 수 없는 상태가 되기 때문에 데드락이라는 이름이 붙여졌다고 합니다. 예를 들면 데드락은 흔히 두 프로세스가 다음 단계로 넘어가기 위해서 두개의 락을 획득해야 하는데 서로 반대되는 순서로 락을 획득해야 하는 경우에 발생 합니다. 예시 (A와 B라는 락이 존재) 1번 프로세스가 A를 획득 2번 프로세스가 1번 보다 먼저 B를 획득 1번 프로세스는 2번 프로세스가 보유하고있는 B를 획득하기 위해 대기 2번..
-
모니터와 세마포어운영체제 2023. 8. 15. 13:04
스레드와 공유 자원 사이의 상호작용을 할 제어할때 스레드 동기화 메커니즘을 사용하게 됩니다. 스레드 동기화는 모니터(Monitor)와 세마포어(Semaphore)로 구성됩니다. 먼저 모니터는 상호 배제 자물쇠로 보호되는 집단을 뜻합니다. 스레드는 자물쇠를 획득하기 전까지는 모니터에 속하는 루틴을 실행 할 수 없습니다. 즉 한 모니터 안에서는 하나의 스레드씩 실행되게 됩니다. 다른 스레드드들은 실행 중인 스레드에서 그 자물쇠를 반납할 때 까지 대기해야합니다. 모니터에 속한 스레드가 특정 이벤트까지 기다리기 위해 스스로 멈추면 대기 중이던 다른 스레드가 모니터로 진입할 수 있습니다. 세마포어는 공유자원을 보호하기위한 자물쇠만 있는 것이라고 생각하면 됩니다. 스레드에서 공유 자원을 사용하려면 자물쇠를 획득해야..
-
KUIT 1기를 마치며..대외 활동 2023. 8. 13. 16:03
드디어..!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!건국대학교 동아리 KUIT의 1기 활동이 프로젝트 데모데이를 마지막으로 성공적으로 마무리되었습니다!!!!!!!!!이번 1기 동안 저희는 Android 파트에 참여했습니다!1학기 동안 주간 세미나를 주최해주신 파트장님과 부파트장님, 그리고 주말마다 진행한 스터디를 통해 안드로이드 개발에 대한 많은 지식과 경험을 얻을 수 있었습니다.특히, 매 주 토요일에 열린 실시간 화상 강의를 통해 파트장님과 부파트장님께서 진행한 세미나는 큰 도움이 되었습니다. 세미나여기서 세미나는 네이버 웹툰 클론 코딩 수업을 통해 진행 되었습니다. 주간 세미나에서 얻은 지식을 바탕으로 매주 스터디 그룹끼리 함께 워크북을 활용하여 지식을 공유하고, 서로가 어려워하는 ..
-
AWS 계정 생성과 리전 선택백엔드 : 서버공부/Django 2023. 8. 9. 13:30
장고 카테고리지만 AWS클라우드를 기반으로한 장고 웹 애플리케이션을 개발해 보는게 목표임으로 초반은 AWS에대한 기본적인 준비 및 개념설명이 주를 이룰 것 같다. AWS계정 생성AWS를 사용하기 위해서는 AWS의 계정이 있어야한다. https://aws.amazon.com/ko/ 를 접속해서 계정을 생성해보도록 하자.해당 홈페이지에서는 계정 생성 뿐만 아니라, 자습서와 AWS 프리 티어에 대한 설명 및 링크를 제공하고 있다. '무료로 시작, 무료 계정 생성'을 클릭하여 가입을 진행한다.AWS 계정을 생성하면 12개월 동안 무료로 이용할 수 있으며, 12개월이 지나면 이용하는 서비스에 따라 사용한만큼 요금이 발생한다. 계정 생성시 유형을 선택해야하는데 회사나,학원 또는 학교에서 사용할 용도면 '프로페셔널'..
-
AWS기반의 Django 웹 애플리케이션백엔드 : 서버공부/Django 2023. 8. 8. 21:39
지금까지 장고에대한 기본적인 내용을 공부했으므로 이제는 AWS클라우드를 기반으로한 장고 웹 애플리케이션을 개발하는 공부를 해보려고합니다. 공부는 AWS 클라우드 기반의 Django 웹 애플리케이션이라는 책을 기반으로 할 예정입니다. AWS기본 개념 기존에 서버를 확장하는데에는 신규서버를 구매하고, 해당 서버를 IDC(Internet Data Center)에 입주시켜야하기 때문에 많은 비용과 시간이 필요하다는 문제가 있었다. 이 문제를 해결한 것이 클라우드 컴퓨팅이다. 클라우드 컴퓨팅은 미리 제공사에서 대량의 서버를 보유하고, 해당 서버를 각 기업이나 개인에게 제공하여 요금을 부과하는 형태로 구성되어있다. 그렇기 때문에 고객은 간단한 과정을 거쳐 서비스를 이용할 수 있고, 지출을 최소화 할 수 있다. 지금..
-
fetchListData() 일반적인 디자인 패턴Android_Kotlin/Android_공부 2023. 8. 8. 15:32
아래 코드 예시는 리스트 초기화까지 포함하여 데이터를 가져오는 함수의 디자인 패턴을 보여주고 있습니다.import retrofit2.Call import retrofit2.Callback import retrofit2.Response class YourViewModel { // Retrofit 서비스 인스턴스... private val apiService = RetrofitUtil.getRetrofit() // 리스트 데이터를 가져오는 함수 fun fetchListData() { // API 요청 초기화 ... val call: Call = apiService.getListData() // 데이터를 담을 리스트 초기화 ... val dataList = mutableListOf() // 비동기적으로 요청 ..
-
장고 앞으로 공부할 것들백엔드 : 서버공부/Django 2023. 8. 7. 19:35
앞에서 공부한 내용은 기본적인 내용입니다. 현실의 복잡한 문제들을 해결하려면 더 많은 것을 공부해야합니다. DataBase.Model 아래와 같은 코드를 작성해서 저희는 정보를 메모리에 보관했습니다. topics = [ {'id':1, 'title':'routing','body':'Routing is ..'}, {'id':2, 'title':'view','body':'View is ..'}, {'id':3, 'title':'Model','body':'Model is ..'} ] 정보를 위와같이 메모리에 보관하게 되면 앱이 재실행 될때마다 정보가 리셋됩니다. 하지만 실무에서는 영구적으로 정보를 저장할 필요가 있습니다. 이를 위해서 'DataBase'를 이용합니다. DataBase를 이용하면 영구적으로 데이..
-
다중화와 역다중화(multiplexing & demultiplexing)백엔드 : 서버공부/NetWork 2023. 8. 5. 12:48
다중화 역다중화 서비스는 네트워크 계층에서 제공하는 호스트간의 전달 서비스(host2 host delivery service)를 트랜스포트 계층의 프로세스 간 전달 서비스(Process2 Process delivery service)로 확장해주는 서비스이다 다중화는 데이터를 세그먼트로 분할하여 전송 계층에서 네트워크 계층으로 전달하고, 역다중화는 수신된 세그먼트를 추출하여 해당 애플리케이션으로 전달하는 과정입니다. 이러한 과정은 전송 계층에서 수행됩니다. 종단시스템 사이의 소켓 전달 개요 --- **수신 호스트의 트랜스포트 계층**은 **네트워크 계층으로부터 세그먼트를 수신**합니다. 이것은 송신 호스트에서 보낸 세그먼트가 네트워크를 통해 수신 호스트로 전달되었다는 것을 의미합니다. **송신 호스트의 트..