일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 국비지원
- mysql
- 국비지원취업
- UXUIPrimary
- UXUI기초정복
- 백엔드 부트캠프
- 객체지향
- 환급챌린지
- 내일배움캠프
- 백엔드개발자
- 티스토리챌린지
- 백엔드
- Java
- 백준
- 디자인강의
- 오픈패스
- KDT
- Be
- 디자인챌린지
- 내일배움카드
- 부트캠프
- baekjoon
- UXUI챌린지
- 패스트캠퍼스
- 오블완
- 국비지원교육
- 디자인교육
- Spring
- OPENPATH
- 오픈챌린지
- Today
- Total
목록기타/기술면접 (10)
군만두의 IT 공부 일지
1. 뮤텍스(Mutex)와 세마포어(Semaphore)의 차이에 대해 설명해주세요. 뮤텍스와 세마포어 모두 동시성 제어를 위해 사용되지만 기본적인 차이가 있습니다. 뮤텍스는 단일 스레드가 리소스에 대한 접근을 독점적으로 제어할 수 있도록 하는 반면, 세마포어는 리소스에 대한 접근을 여러 스레드가 동시에 할 수 있도록 제한된 수의 키(토큰)를 통해 제어합니다. 즉, 뮤텍스는 '잠금(lock)'을 획득한 단 하나의 스레드만이 리소스를 사용할 수 있고, 세마포어는 설정된 숫자만큼의 스레드가 동시에 리소스를 사용할 수 있습니다. Q. 세마포어를 사용할 때 주의해야 할 점은 무엇인가요? 세마포어 사용시 가장 주의해야 할 점은 세마포어의 키를 정확히 관리하지 못하면 데드락이 발생할 수 있다는 것입니다..
1. 운영 체제(Operating System)에 대해 설명해주세요.운영 체제는 하드웨어 자원을 관리하고, 다양한 응용 프로그램과 사용자 간의 인터페이스 역할을 수행하는 시스템 소프트웨어입니다. 프로그램의 실행을 관리하고, 파일 시스템을 통해 데이터를 저장 및 접근하도록 하며, 입력 장치로부터 입력을 받고 출력 장치를 통해 결과를 전달합니다.Q. 현대 운영 체제에서 보안 기능은 어떻게 구현되나요?현대 운영 체제에서는 사용자 인증, 접근 제어 목록(ACL), 암호화, 샌드박싱과 같은 다양한 보안 기능을 제공합니다. 또한, 정기적인 보안 패치와 업데이트를 통해 시스템을 보호합니다.2. 커널(Kernel)이 무엇인지 설명해주세요.커널은 운영 체제의 핵심 부분으로, 하드웨어와 소프트웨어 리소스 관리, 메모리 관..
1. 연결 리스트에서 값을 찾는데 시간 복잡도가 얼마나 걸리는가? 더 개선된 구조가 있는지? 단점은?연결 리스트에서 값을 찾는 시간 복잡도는 O(n)입니다. 이는 리스트를 처음부터 순회해야 하기 때문입니다.개선된 구조로는 해시 테이블을 사용할 수 있으며, 평균적으로 O(1)의 시간 복잡도로 값을 찾을 수 있습니다.그러나 해시 테이블은 메모리 사용량이 많고 해시 충돌 문제가 발생할 수 있다는 단점이 있습니다. 또한, 이중 연결 리스트나 트리를 사용하여 검색 성능을 개선할 수 있지만, 이 경우 구현의 복잡성이 증가합니다.O(n)의 시간 복잡도가 걸립니다. 뒤쪽 원소도 빠르게 검색할 수 있는 Doubly Linked List 구조도 있으며, 이는 저장 공간이 더 필요하다는 단점이 있습니다. 그 외에 Circu..
1. IDE와 소스코드 편집기의 차이점은 무엇인가요?소스코드 편집기는 코드를 작성하고 편집하는 기본적인 텍스트 도구입니다. 반면 IDE(통합 개발 환경)는 코드 작성뿐만 아니라 디버깅, 컴파일, 테스트, 배포 등 개발과 관련된 모든 과정을 지원하는 도구로, 자동 완성, 버전 관리, 디버거와 같은 다양한 기능을 제공합니다.예를 들면, Visual Studio Code는 소스코드 편집기이지만, 플러그인 설치를 통해 IDE와 유사하게 사용할 수 있습니다. 반면, IntelliJ IDEA는 고급 기능을 제공하는 IDE입니다.A1. 통합개발환경인 IDE가 더 포괄적인 개념이라고 할 수 있습니다. IDE가 소스코드 편집기를 포함합니다. IDE는 개발에 필요한 여러 가지 기능, 빌드를 자동으로 진행하거나 디버깅하는..
1. HTTP METHOD에 대해 설명해 보세요.HTTP 메서드는 클라이언트가 서버에게 요청하는 작업의 종류를 나타냅니다.GET은 데이터를 요청할 때, POST는 데이터를 서버에 전송할 때 사용됩니다. PUT은 데이터를 업데이트할 때, DELETE는 데이터를 삭제할 때 사용됩니다. PATCH는 부분 업데이트에 사용됩니다.HTTP 메서드는 REST API 설계 시 엔드포인트의 목적을 명확하게 구분하는 데 중요한 역할을 합니다. 예를 들어, 사용자의 정보를 가져오는 요청은 GET 메서드를, 새로운 사용자 정보를 등록하는 요청은 POST 메서드를 사용합니다.*HTTP 메서드에 대한 자세한 내용은 https://inpa.tistory.com/entry/WEB-🌐-HTTP-메서드-종류-통신-과정-💯-총정리 참..
1. CI/CD란? 적용해 본 적이 있나요?CI/CD는 Continuous Integration(지속적 통합)과 Continuous Deployment/Continuous Delivery(지속적 배포/지속적 전달)의 약어입니다. CI는 개발자가 변경한 코드를 지속적으로 통합하고 빌드 및 테스트 과정을 자동화하여 코드의 품질을 보장하는 프로세스입니다. CD는 CI 이후 자동으로 배포 환경에 반영하는 것을 의미합니다. CI/CD를 통해 개발자는 더 빠르게 변경사항을 적용하고, 오류를 조기에 발견할 수 있습니다.Jenkins, GitLab CI, GitHub Actions와 같은 도구를 사용해 CI/CD 파이프라인을 구축해본 경험이 있습니다. 이를 통해 코드의 자동 빌드, 테스트, 그리고 배포까지의 전체 프로..
1. 마이크로 서비스와 모놀리틱 서비스의 차이에 대해 설명해 보세요.모놀리틱 서비스는 모든 기능이 하나의 코드베이스로 구성된 단일 아키텍처입니다. 이는 개발과 배포가 비교적 간단하지만, 애플리케이션 규모가 커질수록 유지보수와 확장이 어려워질 수 있습니다.반면 마이크로 서비스는 각 기능을 독립적인 서비스로 나누어 개발하고 배포하는 방식으로, 독립적인 배포와 확장성에 유리합니다. 각 서비스는 서로 다른 기술 스택을 사용할 수 있으며, 장애 발생 시 다른 서비스에 영향을 덜 주는 장점이 있습니다. 하지만 마이크로 서비스는 서비스 간의 통신과 데이터 일관성 유지, 배포 관리의 복잡성이 증가할 수 있습니다.마이크로 서비스는 개별 서비스 단위로 개발하는 방식이고, 모놀리틱 서비스는 하나의 통합된 패키지로 개발하는 ..
1. RDB와 NoSQL의 차이에 대해 설명해 보세요.RDB(Relational Database)는 테이블 간의 관계를 바탕으로 데이터를 저장하며, SQL을 사용하여 데이터를 조회합니다. 대표적인 RDB는 MySQL, PostgreSQL입니다.NoSQL은 비정형 데이터를 저장하기에 적합하며, 스키마가 없거나 유연한 구조를 가집니다. 대표적인 NoSQL 데이터베이스는 MongoDB입니다.RDB는 데이터 무결성 보장이 강점이고, NoSQL은 확장성과 대용량 데이터 처리에 유리합니다. RDB는 트랜잭션 처리에 강점을 가지며, NoSQL은 읽기와 쓰기 성능을 높이기 위해 설계되었습니다.RDBMS는 정해진 스키마가 존재하고, NoSQL는 정해진 스키마가 없다는 것이 가장 큰 차이입니다. NoSQL은 정해진 스키마..