본문 바로가기
반응형

Server, DevOps/CS,기술면접대비4

[기술면접준비] 프로그래밍, 전산 기본 질문(+답 정리) 프로그래밍 전산 기본 객체지향이 무엇인가요? 절차지향과의 차이점은 뭐죠? 개념: 절차지향은 위에서부터 순차적으로 실행되는 반면, 객체지향은 이런 코드들의 목록으로 프로그래밍을 보는 것에서 벗어나 하나하나 독립된 객체들을 만들어주고, 이 객체들이 서로 데이터를 주고 받고 처리하도록 만들어주는 프로그래밍 방식입니다. 차이점: 절차지향은 코드의 수정이 필요할 때 일일이 찾아서 수정해야하지만 객체지향은 수정해야할 부분이 클래스 내부에 멤버 변수나 메서드로 있기 때문에 해당 부분만 수정하면 된다는 차이가 있습니다. 그에 따른 장점으로는 코드 재사용이 유리하고 유지보수가 쉽습니다. 단점으로는 설계시에 많은 시간과 노력이 필요합니다. 추상화란? 객체들간의 공통적인 기능을 간추려내는 것. 클래스란? 추상화를 거쳐 집단.. 2021. 12. 12.
쉽게 설명하는 뮤텍스(Mutex)와 세마포어(Semaphore)! 뮤텍스와 세마포어를 알아보기 이전에는 교착 상태에 대한 이해가 선행되어야 한다. (교착상태를 모르는 사람은 아래의 교착상태 글을 먼저 읽어보길 추천합니다!) https://suzyalrahala.tistory.com/59 교착상태란 무엇인가? (+필요 조건 및 해결 방법은?) 교착상태(Dead Lock)란? 두 개 이상의 작업이 서로 상대의 작업만이 끝나고 있기 때문에 결과적으로 아무것도 완료하지 못하는 상태 위의 사진같은 경우는 한 사람이 나서서 정리를 하지 않는 이상 suzyalrahala.tistory.com Semaphore란 무엇일까? 세마포어는 동기화를 위해 만들어진 소프트웨어이다. 프로세스들이 모두 꽉 차있으면 막고 대기표를 주고, 진행중이던 프로세스가 끝나면 대기하던 프로세스를 실행시켜준다.. 2021. 12. 11.
교착상태란 무엇인가? (+필요 조건 및 해결 방법은?) 교착상태(Dead Lock)란? 두 개 이상의 작업이 서로 상대의 작업만이 끝나고 있기 때문에 결과적으로 아무것도 완료하지 못하는 상태 위의 사진같은 경우는 한 사람이 나서서 정리를 하지 않는 이상 교착이 해결될 수 가 없다ㅠ 그렇다면 실제 시스템에서의 교착상태에는 어떤 것이 있을까? 대표적으로는 DB에서의 상호 거래 패턴이 많은데 예를 들자면 이러하다. 이름 캐쉬 A 5,000 B 10,000 한 게임에 마음 따뜻한 A와 B유저, 2명이 있다. A유저가 B유저에게 2000원을 주려고 한다. 그러면 A의 캐쉬에서 2000원이 빠지고, 그 돈은 B의 캐쉬로 들어가게 될 것이다. 또 B유저는 5000원을 A유저에게 주려고 한다. 그러면 B의 캐쉬에서 5000원이 빠지고, 그 돈은 A의 캐쉬로 들어가게 될 것.. 2021. 11. 28.
프로세스와 스레드의 차이? (+완벽 개념정리, 멀티프로세스<멀티 스레드?) 프로세스와 스레드는 비전공자가 바로 이해하기에 어려운 주제라고 생각한다. 그래서 비전공자의 입장에서 하나씩 풀어보려한다. 일단 프로세스와 스레드의 개념부터 알아보자. 프로세스란? 운영체제로부터 자원을 할당받는 작업의 단위이다 쉽게 말하자면 코드의 집합으로 이루어진 프로그램이 실행되는 것이 프로세스이다. 예를 들어 나는 컴퓨터를 키면 일단 카카오를 키고, 구글과 유투브, 이클립스를 키는데 이는 각각의 프로세스를 실행시키는 것이다. 그럼 스레드란? 할당 받은 자원을 이용하는 실행 단위이며, 프로세스 내에 여러 개가 생길 수 있다. 이것 또한 풀어서 말하자면, 위에 프로세스의 예를 들었던 이클립스를 보자. 이클립스에서 테스트를 돌리면 스레드 하나가 만들어지고, 또 테스트를 돌리면서 코드를 수정한다면 코드를 수.. 2021. 11. 9.
반응형