운영체제 기술면접에 대해 공부하다 보면 세마포어와 뮤텍스의 차이를 물어보는 질문이 자주 나옵니다. 이 차이를 알기 전!!!!!!! 세마포어와 뮤텍스를 알기 위해서는 먼저 Deadlock 즉, 교착상태에 대해 먼저 알아야 합니다. ❓ Deadlock(교착상태)란? 운영체제에서 데드락(교착상태)란, 시스템 자원에 대한 요구가 뒤엉킨 상태입니다. 즉, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황을 일컫습니다. 🔎 Deadlock의 발생조건 Deadlock에 걸리는 요건으로는 4가지가 있습니다. 첫 번째, 상호 배제 조건 (Mutual exclusion condition) 프로세스는 한 번에 하나의 자원만 사용할 수 있습니다. 사용 중인 자원을 다른 프로세..
전통적인 for문보다는 for-each 문을 사용하라 🔎 for-each문이 전통적인 for문보다 무엇이 좋을까? 다음은 전통적인 for문으로 컬렉션을 순회하는 코드다. 순차적으로 발전하는 코드를 보여주면서 for-each문의 간결함을 볼 수 있을 것이다. 1. 전통적인 for문으로 컬렉션과 배열을 순회한다. // 컬렉션 순회 for (Iterator i = c.iterator() ; i.hasNext(); ){ Element e = i.next(); ... // e로 무언가를 한다. } // 배열 순회 for (int i=0 ; i 반복자와 인덱스 변수를 사용하지 않으니 코드가 깔끔해지고 오류가 날 일도 없다. 4 -> 하나의 관용구로 컬렉션과 배열을 모두 처리할 수 있어서 어떤 컨테이너를 다루는지는 ..
지역변수의 유효 범위를 최소로 줄이면 코드 가독성과 유지보수성이 높아지고 오류 가능성은 낮아진다. 🔍 지역변수의 범위를 줄이는 방법? - 4가지! '미리 선언하지 말고, 가장 처음 쓰일 때 선언 하기' - 사용하려면 멀었는데, 미리 선언부터 해두었다면? 코드가 어수선해져 가독성이 떨어진다. 변수를 실제로 사용하는 시점엔 타입과 초깃값이 기억나지 않을 수도 있다. 다 쓴 뒤에도 여전히 살아있게 되기 쉽다. (지역변수의 범위는 선언된 지점부터 그 지점을 포함한 블록이 끝날 때까지이므로) '거의 모든 지역변수는 선언과 동시에 초기화해야 한다.' 초기화에 필요한 정보가 충분하지 않다면 충분해질 때까지 선언을 미뤄야 한다. - 예외상황으로 try-catch문이 있다. 변수를 초기화하는 표현식에서 검사 예외를 던질..
- Total
- Today
- Yesterday
- BFS
- 완탐
- 아이템60
- dfs
- 운영체제
- cicd
- 완전탐색
- Java
- OS
- DevOps
- docker-compose
- BOJ
- Container
- Retrofit2
- EffectiveJava
- 백준
- subset
- 순열
- 조합
- bruteforce
- docker
- dp
- 그래프탐색
- springboot
- 아이템61
- IMAGE
- 아이템59
- 알고리즘
- 이펙티브자바
- 토큰기반인증
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
| 31 |