면접예상질문 - 영속성 컨텍스트, 제네릭

이지섭·2023년 6월 9일
0

절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점은 무엇인가요?

  • 절차지향 프로그래밍은 코드의 순차적인 처리를 중요시 여기며 그 진행 순서대로 프로그래밍 하는 방법입니다.
    코드의 가독성이 좋으며 실행속도가 빠른 반면,
    각 코드 실행 순서가 긴밀하게 연결되어있어 유지보수가 힘든 측면이 있습니다.
  • 객체지향 프로그래밍은 모든 데이터를 객체(Object)로 취급하여, 객체가 처리 요청을 받았을 때 각 객체 내부의 기능을 사용하여 처리하는 기법입니다.
    추상화, 캡슐화, 상속성과 다형성 등 협업의 유리함과 코드 재사용의 장점을 가진 반면,
    그만큼 설계시 시간이 많이 걸리고 상대적으로 속도가 느린 단점이 있습니다.
  • 함수형 프로그래밍은 외부 영향을 받지 않고 항상 일정한 동작만을 하는 순수 함수들 만을 사용해 상태 제어보단 데이터의 빠른 처리에 초점을 둔 프로그래밍 기법입니다.
    코드의 가독성이 가장 좋으며 테스트에 유리한 반면,
    데이터 상태를 직접 조작할 수 없다는 단점이 있습니다. --> 무슨 말?

알고리즘에서 ‘시간복잡도‘와 ‘공간복잡도’란 무엇인가? 그리고 이것들은 왜 중요한가요?

  • 시간복잡도란 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미하며,
    입력 데이터의 증가폭에 따라 소요되는 시간을 빅-O 표기법으로 나타낸 것입니다.
  • 공간복잡도란 작성한 프로그램이 메모리를 얼만큼 차지하는지 분석하는 방법이며 시간복잡도와 마찬가지로 데이터의 증가폭에 따라 빅-O 표기법으로 나타냅니다.
  • 두 복잡도 모두 데이터의 증가폭에 따라 소요되는 시간과 사용되는 메모리 공간의 비례를 나타내기 때문에, 대용량 데이터 처리 시에 최대한 복잡도가 낮은 알고리즘 설계를 하는 것이 중요합니다.
    시간복잡도와 공간복잡도는 대체로 반비례하며,
    최근엔 컴퓨터 시스템이 발전하면서 공간복잡도에는 그다지 큰 영향을 받지 않게 되었기 때문에 시간복잡도를 더 중요시 여기는 경향이 있습니다.

예상 꼬리질문 키워드

  • 함수형 프로그래밍 단점 정리

메모

asdf

profile
Stop thinking. Just do it.

0개의 댓글

관련 채용 정보