운영체제 기술면접에 대해 공부하다 보면 세마포어와 뮤텍스의 차이를 물어보는 질문이 자주 나옵니다. 이 차이를 알기 전!!!!!!! 세마포어와 뮤텍스를 알기 위해서는 먼저 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문이 있다. 변수를 초기화하는 표현식에서 검사 예외를 던질..
📚 토큰 기반 인증 시스템? JWT는 서버 기반 인증과는 다르게 토큰을 이용한 토큰 기반 인증 시스템입니다. 토큰 기반 인증 시스템을 선택해야 하는 이유는 다음과 같습니다. 1. 무상태성! stateless서버는 상태를 유지하지 않고, 서버는 클라이언트 측에서 들어오는 요청만으로 작업을 처리합니다. 따라서 클라이언트와 서버의 연결고리가 없기 때문에 서버의 확장성이 높아집니다. 2. 무결성! 안전한 API를 만들기 위해 쿠키 같은 인증 시스템을 사용하지 않아도 됩니다. 3. 확장성! 토큰 기반 인증을 사용하는 다르 시스템에 접근이 가능합니다. 대표적인 예제로는 OAuth가 있으며, 페이스북/구글 같은 소셜 계정들을 이용하여 다른 웹 서비스에서도 로그인할 수 있습니다. 4. 보안성! 토큰 기반 인증 시스템을..
- Total
- Today
- Yesterday
- docker-compose
- bruteforce
- BFS
- EffectiveJava
- BOJ
- 알고리즘
- 백준
- 토큰기반인증
- 완탐
- OS
- IMAGE
- 완전탐색
- 정처기
- 아이템61
- 이펙티브자바
- Java
- 부분집합
- Retrofit2
- 운영체제
- springboot
- docker
- subset
- dp
- 그래프탐색
- dfs
- 순열
- Container
- 아이템60
- 조합
- 아이템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 |