기술 면접 기출 (4) 썸네일형 리스트형 Call By Value vs Call By Reference Call By Value인자로 받은 값을 복사하여 처리하여 방식이다. Call By Value에 의해 넘어온 값을 변화시켜도 원래의 값이 보존된다. 값을 복사하여 넘기기 때문에 메모리 사용량이 늘어난다. 특히, 대용량 데이터를 인자로 넘길 경우 메모리 사용이 비효율적이다.Call By Reference인자로 받은 값의 주소를 참조하여 직접 값에 영향을 주는 방식이다. 값을 복사하지 않고 직접 참조하기 때문에 속도가 빠르다. 원래의 값에 영향을 주는 리스크가 존재한다. 절차 지향 vs 객체 지향 절차 지향 프로그래밍프로그램을 단계로 나누어 순차적으로 실행하는 것을 중요시하는 프로그래밍 패러다임이다. 가장 대표적인 언어로 C언어가 있다. 프로그램 흐름이 위에서 아래로 자연스럽게 진행되며, 이전 단계의 출력을 받아 다음 단계를 수행한다. 컴퓨터의 처리구조와 유사해 실행속도가 빠르지만, 코드 순서가 변경되면 동일한 결과를 보장할 수 없다.객체 지향 프로그래밍실제 세계의 사물들을 객체로 모델링하여 프로그램을 설계하고 개발을 진행하는 프로그래밍 패러다임이다. 가장 대표적인 언어로 Java가 있다. 절차 지향 언어보다 실행속도가 느리고 복잡하다. 객체와 클래스의 개념을 통해 코드의 재사용성을 높일 수 있다. 코드가 독립적이고 모듈화되어 있어 유지보수가 용이하다. 새로운 기능 추가 등 확장성이 높다. 대규모.. 블로킹 vs 논블로킹 , 동기 vs 비동기 Blocking과 Non-Blocking의 차이에 대해 설명하시오.Blocking은 A함수가 B함수를 호출하면, A함수가 B함수에 제어권을 넘겨주는 방식이다. 1. A가 B를 호출하면, B에게 제어권을 넘긴다.2. 제어권을 넘겨받은 B는 실행되고, A는 실행을 잠시 멈춘다.3. B는 실행이 끝나면, 자신을 호출한 A에게 제어권을 돌려준다.4. A가 다시 실행된다. Non-Blocking은 A함수가 B함수를 호출해도 제어권을 그대로 자신이 가지고 있는 방식이다. 1. A가 B를 호출하면, B는 실행되지만 A가 제어권을 그대로 가지고 있는다.2. A는 계속 제어권을 가지고 있기 때문에, B를 호출한 이후에도 자신의 코드를 계속 실행한다.동기와 비동기 방식의 차이에 대해 설명하시오.Synchronization.. OOP에 대해 설명하시오. OOP(Object Oriented Programming)는 현실 세계를 프로그래밍으로 옮겨와 현실 세계의 사물들을 객체로 보고, 그 객체로부터 개발하고자하는 특징과 기능을 뽑아와 프로그래밍하는 기법이다. OOP로 코드를 작성하면, 재사용성과 변형 가능성을 높일 수 있다.Clean Code로 유명한 로버트 마틴은 좋은 객체 지향 설계의 5가지 원칙을 정리했다. 1. SRP(Single Responsibility Principle): 단일 책임 원칙=> 클래스는 단 하나의 목적을 가져야 하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다. 2. OCP(Open-Closed Principle): 개방 폐쇠 원칙=> 클래스는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다. 3. LSP(Liskov Su.. 이전 1 다음