본문 바로가기

반응형

분류 전체보기

(425)
데드락 회피 - 은행원 알고리즘 이전 포스트 : 데드락 회피에서는 데드락 회피의 개념, 안전 상태와 그렇지 않은 상태의 개념을 알아보았다. 그리고 데드락 회피를 구현하기 위한 자원 할당 그래프 알고리즘(Resource-Allocation Graph Algorithm)과 은행원 알고리즘(Banker's Algorithm)의 이론적인 측면들 또한 살펴 보았다. 오늘 포스트에서는 일정 금액이 있어야 사업을 마치고 상환을 할 수 있는 고객들에게 어떤 순서로 한정된 은행의 돈을 빌려 주고 돌려 받아야 모든 고객들의 요구를 만족 시킬 수 있는지 고민하는 은행원 알고리즘의 실제 예제를 만들어 봄으로써 은행원 알고리즘에 대한 이해도를 높이도록 한다. 잠깐! 시작하기 전에 본격적으로 시작하기 전에 은행원 알고리즘에 대해 잠깐 되짚어 보자. 은행원 알고..
감자 농사 #9주차 다시 일주일만에 감자밭을 찾았습니다. 요근래 비가 많이와서 많이 걱정했습니다만 아직 살아는 있었습니다. 감자 농사 초보는 비가 많이 와도 걱정, 안 와도 걱정 입니다. 곳곳에 감자 줄기들이 너무 무거워진 자기 몸을 이기지 못하고 쓰러져 있습니다. 문제가 될까 싶었지만 찾아 보니 줄기가 쓰러진 것은 큰 문제가 되지 않는다고 합니다. 다만...쓰러진 줄기를 일으켜 볼려다가 줄기 하나를 부러뜨려 버렸네요;; 그냥 놔둘걸... 사실 문제는 줄기가 아니라 무당 벌레입니다. 지난 주 밭에서 무당 벌레 한마리를 봤었는데 그냥 벌레 한마리가 있구나하고 아무생각 없이 넘어갔던게 큰 실책이었습니다. 요롷게 생긴 녀석이 '큰 28점박이 무당벌레'라고 이른 봄 부터 늦가을에 걸쳐 감자 잎의 뒷면에 서식하면서 잎맥과 표피만 남..
[Visual Studio] 2019 v16.10 릴리즈 비주얼 스튜디오 2019 v16.10과 v16.11 프리뷰 1 버전이 2021년 5월 25일 릴리즈 되었다고 발표했습니다. 이번 포스트에서는 2019 v16.10 GA(Generally Available) 버전에 어떤 기능들이 추가되었는지 소개하는 시간을 가져 보도록 하겠습니다. 비주얼 스튜디오 2019 다운로드 [여기] 비주얼 스튜디오 개발자 커뮤니티 [여기] 비주얼 스튜디오 최신 릴리스 버전으로 업데이트 방법 [여기] 비주얼 스튜디오 2019 버전 16.10 릴리스 정보 [여기] C++ 이제 C++20의 모든 기능들을 비주얼 스튜디오에서 사용 할 수 있습니다. /std:c++latest 스위치를 활성화 시키면 되며, 활성화 방법은 [여기]를 참조하세요. 아직 몇몇 기능들은 수정 될 가능성이 있어 /s..
티스토리 스킨 만들기 #6 - 잡다한 수정들 ol, ul 리스트 간격 조절 티스토리 기본 스킨인 Poster를 사용하면 또는 리스트 태그를 뎁스를 구분해서 사용하면 아래와 같이 리스트 간격이 벌어지는 현상이 발생한다(물론 다른 스킨에서도 발생 할 수도 있다). 원인은 css와 에디터의 환장의 콜라보 때문이다. 아래 코드 처럼 css 에서는 ul, ol 태그 아래에 50px의 마진을 주라고 되어 있고, 실제 계층형 리스트를 사용하면 태그 안에 또 다른 태그를 선언 해버려 내부에 있는 의 50px 마진이 먹혀 버린다. .entry-content ul, .entry-content ol { margin-bottom: 50px; } 리스트 상단 문구 가나다라마바사 가나다라마바사 가나다라마바사 이 밑이 간격이 엄청남 가나다라마바사 리스트 하단 문구 가나다라마..
브레인 스토밍 시 주의 해야 할 것 4가지 들어가며 몇년 전에 '브레인 스토밍'이라 키워드가 필자의 주변을 휩쓴적이 있었다. '제약 없는 의견 제시를 통한 획기적인 아이디어 도출'이라는 슬로건 아래 여기 저기서 브레인 스토밍 회의를 가지는 것을 종종 볼 수 있었다. 물론 이 브레인 스토밍이라는 것은 고정관념에 사로 잡힌 우리의 두뇌를 쏟아지는 아이디어로 후드려까, 생각하기 어려웠던 해결 방법을 찾아 줄 수 있는 강력한 도구가 맞다. 하지만 브레인 스토밍 회의에 종종 불려 가던 필자의 결론은...글쎄...였다. 말이 앞뒤가 안 맞다. 분명히 강력한 도구가 맞다라고 이야기하고는 부정적인 뉘앙스의 결론이라니! 그럼 무엇이 맘에 들지 않아 필자는 '글쎄...'라고 했을까? 이번 포스트에서는 브레인 스토밍 회의를 할 때 주의해야 할 것들에 대한 필자의 넋..
개발자로써 생산성을 키우기 위한 10가지 팁 아래는 10 Tips To Increase Your Productivity as a Software Engineer(by Nuha Khaled)를 번역한 글입니다. 첫날 부터 멘토를 정하고 나의 승진에 대해 이야기하는 것과 같은 저의 문화적 배경으로는 실천하기 부담스러운 부분도 있지만 대부분 내용에 공감이 가서 공유 해봅니다. 대부분의 소프트웨어 엔지니어들은 하루에 8시간씩 꼬박 꼬박 일을 하며 보냅니다. 하지만 이 시간을 보내는 방법들에는 모두 차이가 있습니다. 어떤 사람들은 1년 만에 승진을 준비하기도 하는 반면 어떤 사람들은 몇 년이 걸리기도 합니다. 대부분의 프로그래머들의 일하는 시간은 골치, 스트레스, 멍때리기, 지루함 속에서 헛되이 낭비 됩니다. 그런면에서 '계획하기'는 프로그래머들의 삶을 바..
[C++] 데드락 방지 락(deadlock free lock) - 순환 대기(Circular wait) 제거 들어가며 이전 글 데드락(Deadlock)에서 데드락이 발생하기 위해서는 상호 배제(Mutual Exclusion), 점유 대기(Hold and Wait), 비선점(Non-Preemption), 순환 대기(Circular Wait). 이 네가지 조건이 모두 충족되어야 한다고 이야기 했다. 예를 들어 두 유저간의 거래를 처리하는 서버가 있다고 가정하자. A가 B와의 거래를 요청 한다. 동시에 B가 A와의 거래를 요청한다. 서버는 스레드 1번에서 A->B의 거래를 위해 요청자인 A유저 객체의 lock을 설정한다. 동시에 스레드 2번에서 B->A의 거래를 위해 요청자인 B유저 객체의 lock을 설정한다. 스레드 1번은 A->B의 거래를 완료하기 위해 B유저 객체의 lock을 마저 설정 하려고 하지만 B유저 객..
데드락(Deadlock) 개념 정리 오늘 다뤄볼 내용은 이름만 들어도 프로그래머의 가슴을 답답하게 만드는 '데드락(Deadlock)'이다. 이 포스트를 통해서 우리는 데드락의 기본 개념, 데드락 발생 조건, 데드락 탐지, 데드락 방지, 데드락 회피, 데드락에서 벗어나는 법을 알아 볼 것이다. 데드락(Deadlock)이란? 멀티 프로그래밍 환경 또는 멀티 스레드 환경에서는 여러 프로세스 또는 스레드가 한정된 자원을 동시에 사용하기 위해 항상 경쟁 상태에 놓여 있다. 이 때, 어떠한 이유로든 프로세스가 필요한 자원을 획득하지 못하고 영원히 자원을 기다리는 상태로 남아 있는 것을 데드락이라고 한다. 어떻게 보면 자원을 획득하지 못하고 있다는 점에서 기아상태(starvation state)와 비슷하지만 이것은 영원히 헤어 나올 수 없는 상태라는 ..
감자 농사 #8주차 벌써 감자를 심은지 두달이 넘어갑니다. 이제 제법 줄기도 무성하게 자랐고 꽃도 살짝 살짝 피고 있습니다. 태어나서 감자 꽃은 처음 봅니다. 감자를 심고 지금 즈음..에..그러니까 3월 말에 감자를 심었으니 약 한달하고 보름 조금 넘는 시점? 5월 중순? 줄기가 충분히 자라고 꽃이 피기 시작할 무렵? 즈음이 되면 웃거름을 줘야 한답니다. 작물을 심기 전에 흙밑에 깔아 주는 거름을 밑거름, 작물이 자라고 있는 중에 주는 거름을 웃거름이라고 합니다. 거름 주는 것에도 따로 이름이 있는 줄은 저도 처음 알았습니다. 웃거름..그러니까 비료를 줄 때는 뿌리에 너무 가까이 주면 안됩니다. 작년 토마토 농사 지을 때 멋모르고 더 흡수 잘 되라고 비료를 뿌리 근처에 왕창 뿌려 줬더니 오히려 토마토가 말라 죽어 버렸습니다..
[VBA] Range와 Cell 완벽 가이드 이 포스트는 Excel Macro Mastery 사이트의 'The Complete Guide to Range and Cells in Excel VBA(by Paul Kelly)'의 내용을 다시 정리한 것입니다. 이번 포스트에서는 엑셀 VBA의 Range와 Cell에 대해 다룹니다. Range & Cell 사용법 요약 함수 파라메터 리턴 타입 예 결과 Range cell 주소 멀티 셀 Range("A1:A4") $A$1:$A$4 Cells 행(row) 번호, 열(column) 번호 단일 셀 Cells(1, 5) $E$1 Offset 행(row) 번호, 열(column) 번호 멀티 셀 Range("A1:A2").Offset(1, 2) $C$2:$C$3 Rows 행(row) 번호 또는 행(row) 범위 단일 ..

반응형