Computer Science

    MVC 패턴

    오늘은 기술 면접 단골 질문인 MVC 패턴에 대해 포스팅하기로 했다. 기존에도 MVC 패턴에 대해 어렴풋이 알고는 있었지만, 이번 기회에 확실히 개념을 잡아두려 한다. MVC 패턴 모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보(데이터)를 나타내며, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한..

    정지 문제 (Halting problem)

    정지 문제란? 임의의 튜링 머신에 유한한 상태를 거쳤을 때, 이 튜링 머신이 정지 상태로 가는지 아닌지를 판별 할 수 있는 알고리즘이 존재할까? 결론부터 말하자면 이러한 알고리즘은 존재하지 않으며, 이는 귀류법으로 증명할 수 있다. 튜링 머신은 하나의 프로그램으로 생각할 수 있으므로, 이를 함수로 바꿔서 생각해보기로 했다. 귀류법을 사용하기 위해, 다음과 같은 가정을 해보자. 어떤 함수가 특정 입력값에 대해 무한 루프에 빠지는지 아닌지를 판별할 수 있는 함수 H가 존재한다. 이와 같은 가정에 모순이 생긴다면, 귀류법에 의해 이러한 함수는 존재하지 않는다는 것을 증명할 수 있다. 함수 H(F, I)를 정의하자. F는 판별 대상 함수, I는 입력값이고, 함수 F가 I를 입력받았을 때 정상적으로 종료된다면 t..

    튜링 머신

    유튜브 주니온 TV 아무거나 연구소의 영상을 보고 내용을 정리했다. www.youtube.com/watch?v=BOr1waCdv3U&feature=youtu.be 튜링 머신의 이해 다비트 힐베르트 - 20세기 가장 위대한 수학자로 손꼽히는 1인 - 힐베르트 문제 : 20세기에 풀어야 할 23개의 문제 제시 - 힐베르트의 꿈 : 정의와 공리를 입력하면 모든 수학적 명제를 도출해줄 수 있는 만능기계가 있으면 좋지 않을까? (공리(axiom) : 논리학이나 수학 등의 이론체계에서 가장 기초적인 근거가 되는 명제) 쿠르트 괴델 - 힐베르트의 꿈을 박살낸 수학자 - 불완전성 정리(Incompleteness Threorem) : 페아노 공리계를 포함한 모든 무모순적 공리계는 참인 일부 명제를 증명할 수 없다. ->..