반응형

기술면접 10

[신입개발자 기술면접] MVC 패턴

MVC 패턴은 소프트웨어 디자인 패턴 중 하나로, 소프트웨어를 세 가지 주요 컴포넌트로 나누어 구조화하는 방법을 제공합니다. 이렇게 나누어진 컴포넌트는 각각 Model, View, Controller라고 불립니다. MVC 패턴은 주로 UI(User Interface)를 개발하는 데 사용되며, 각 컴포넌트가 각자의 역할을 수행하면서 시스템을 보다 모듈화하고 확장 가능하게 만듭니다. Model (모델) 어플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터를 저장하고 조작하는 역할을 수행합니다. 데이터의 변경을 감지하고, 변경 시 View 및 Controller에 알림을 보냅니다. View (뷰) 사용자에게 정보를 표시하고 사용자의 입력을 받는 역할을 수행합니다. 모델의 데이터를 시각적으로 표현하거나, ..

[신입개발자 기술 면접] Primary Key 와 Unique Key의 차이점

"Primary Key"와 "Unique Key"는 둘 다 관계형 데이터베이스에서 데이터의 유일성을 보장하는 데 사용되는 제약(Constraint)의 형태입니다. 그러나 두 키 간에는 몇 가지 중요한 차이가 있습니다. 기본 키 (Primary Key) 기본 키는 테이블에서 각 행을 고유하게 식별하는 데 사용됩니다. 기본 키는 NULL 값을 허용하지 않습니다. 즉, 각 행은 기본 키 열에 대해 NULL이 아닌 값을 가져야 합니다. 테이블당 하나의 기본 키만 가질 수 있습니다. 기본 키의 값은 반드시 고유하며, 중복된 값을 가질 수 없습니다. 기본 키로 설정된 열은 자동으로 인덱스가 생성되어 검색 속도를 향상시킵니다. 고유 키 (Unique Key) 고유 키도 기본 키와 마찬가지로 각 행을 고유하게 식별하는..

[신입개발자 기술면접] REST 설명

REST(Representational State Transfer)는 웹 서비스 아키텍처의 한 형식으로, 자원을 이름(자원의 표현)으로 구분하고 해당 자원의 상태(정보)를 주고 받는 모든 것을 나타냅니다. REST는 클라이언트와 서버 간의 통신을 위한 간단하고 확장 가능한 아키텍처 스타일을 제공하여 분산 시스템에서의 상호운용성을 촉진합니다. REST는 네트워크 상에서 상태를 전송하는 방법을 간결하게 정의하고 있으며, 이를 통해 서버와 클라이언트 간의 통신이 간단하고 효율적으로 이루어질 수 있습니다. 자원(Resource) 모든 자원은 고유한 식별자로 식별되는데, 이를 URI(Uniform Resource Identifier)로 표현합니다. 예를 들어, 웹의 자원은 URI를 통해 특정됩니다. 행위(Meth..

[신입개발자 기술면접] Cookie와 Session의 공통점, 차이점

저장 위치 Cookie: 클라이언트 측에 저장되며, 브라우저가 데이터를 관리합니다. 사용자의 로컬 컴퓨터에 텍스트 파일 형태로 저장되어 있습니다. Session: 서버 측에 저장되며, 서버가 데이터를 관리합니다. 클라이언트는 세션 ID만을 가지고 있고, 이를 사용하여 서버에 저장된 데이터에 접근합니다. 보안 Cookie: 클라이언트에 저장되기 때문에 보안에 취약할 수 있습니다. 민감한 정보를 담고 있으면 안 되며, 쿠키를 안전하게 다루기 위해 암호화 등의 추가 보안 기법이 필요할 수 있습니다. Session: 서버에 저장되기 때문에 보안상의 이점이 있습니다. 클라이언트는 세션 ID만을 알고 있고, 실제 데이터는 서버에 저장되어 있기 때문에 비교적 안전합니다. 유효 기간 Cookie: 일정 기간 동안 클라..

[신입개발자 기술면접] AJAX

AJAX는 "Asynchronous JavaScript and XML"의 약자로, 비동기적으로 웹 페이지와 서버 간에 데이터를 교환하는 기술입니다. 이 기술을 사용하면 페이지 전체를 새로고침하지 않고도 웹 페이지의 일부분을 업데이트할 수 있습니다. Asynchronous AJAX는 비동기적으로 동작합니다. 즉, 웹 페이지는 전체를 새로 고치지 않고도 서버로부터 데이터를 받아와서 동적으로 업데이트할 수 있습니다. JavaScript AJAX 요청과 응답을 처리하기 위해 JavaScript가 사용됩니다. 클라이언트 측에서 JavaScript를 사용하여 비동기적으로 서버와 통신하고, 동적으로 페이지를 업데이트할 수 있습니다. JSON 초기에는 XML이 주로 사용되었지만, 최근에는 JSON이 더 일반적으로 사용..

[신입개발자 기술면접] REST Method 설명

REST (Representational State Transfer)는 웹 기반 서비스를 구축하기 위한 아키텍처적인 스타일 중 하나입니다. REST는 네트워크 상에서 자원(자료 또는 서비스)을 표현하고, 해당 자원에 대한 행위를 HTTP 프로토콜을 통해 수행하는 방식으로 동작합니다. REST는 자원, 표현, 상태 전이, 그리고 연결성이라는 네 가지 주요 제약 조건을 갖추고 있습니다. GET - 조회 리소스를 읽기 위해 사용됩니다. 서버에서 클라이언트로 데이터를 가져올 때 사용됩니다. POST - 생성 리소스를 생성하기 위해 사용됩니다. 서버에 새로운 데이터를 제출할 때 사용됩니다. PUT - 수정 리소스를 업데이트하기 위해 사용됩니다. 클라이언트에서 서버로 데이터를 전송하여 리소스를 갱신합니다. DELE..

[신입개발자 기술면접] HTTP / HTTPS 설명

HTTP (Hypertext Transfer Protocol)와 HTTPS (Hypertext Transfer Protocol Secure)는 웹에서 정보를 주고받기 위한 프로토콜로, 클라이언트와 서버 간의 통신을 담당합니다. 주로 웹 브라우저와 웹 서버 간의 통신에 사용되며, 웹페이지의 요청과 응답을 관리합니다. 1. HTTP (Hypertext Transfer Protocol) - 특징 - 기본적인 텍스트 기반 프로토콜로, 보안 기능이 없습니다. - 데이터가 평문으로 전송되기 때문에, 도청이나 변조의 위험이 있습니다. - 사용 - 주로 정보를 안전하게 전송할 필요가 없는 경우에 사용됩니다. - 예를 들면 뉴스 기사, 블로그 글 등의 정보를 요청하거나 전송할 때 사용될 수 있습니다. 2. HTTPS (..

[신입개발자 기술면접] Process 와 Thread 차이

"Process"와 "Thread"는 컴퓨터 프로그래밍과 운영체제에서 중요한 개념입니다. 두 용어의 주요 차이점은 다음과 같습니다: 정의: Process: 프로세스는 실행 중인 프로그램의 인스턴스를 의미합니다. 프로세스는 메모리에 로드되어 CPU의 실행을 위해 준비되어 있는 프로그램의 인스턴스를 나타냅니다. 각 프로세스는 독립적인 자원 집합(예: 메모리, CPU 시간, 파일 및 I/O 리소스 등)을 가지며, OS에 의해 관리됩니다. Thread: 스레드는 프로세스 내에서 실행되는 최소 단위의 실행 흐름입니다. 한 프로세스 내에서 여러 스레드가 실행될 수 있으며, 스레드들은 프로세스의 자원을 공유하게 됩니다. 자원 공유: Process: 프로세스는 독립적인 자원 집합을 가지므로, 프로세스 간에 직접적인 자..

[신입개발자 기술면접] 배열 (Array)과 연결 리스트 (Linked List)의 장단점

배열(Array)과 연결 리스트(Linked List)는 프로그래밍에서 주요 데이터 구조 중 두 가지입니다. 각각의 구조에는 장단점이 있습니다. 다음은 배열과 연결 리스트의 주요 장단점입니다: 배열 (Array) 장점: 빠른 접근: 인덱스를 사용하여 배열 내의 특정 요소에 빠르게 접근할 수 있습니다. O(1)의 시간 복잡도로 요소에 접근할 수 있습니다. 메모리 사용: 배열은 연속된 메모리 공간에 요소를 저장하므로, 캐시 효율성이 높을 수 있습니다. 간단한 구조: 배열은 간단하고 직관적인 구조를 가지고 있습니다. 단점: 크기 제한: 배열의 크기는 고정되어 있으므로, 크기를 동적으로 변경하기 어렵습니다. 메모리 할당 문제: 배열의 크기가 고정되어 있어, 초기에 큰 배열을 할당하더라도 실제로 사용되는 메모리가..

[신입개발자 기술면접] Stack과 Queue의 차이

Stack과 Queue는 데이터를 저장하고 관리하는 데 사용되는 자료 구조입니다. 주요 차이점은 데이터의 저장 및 접근 방식입니다. 다음은 Stack과 Queue의 주요 차이점입니다: 데이터의 저장 및 접근 방식: Stack: 후입선출(Last-In, First-Out, LIFO) 방식으로 데이터를 저장 및 접근합니다. 즉, 마지막에 추가된 데이터가 먼저 제거됩니다. Queue: 선입선출(First-In, First-Out, FIFO) 방식으로 데이터를 저장 및 접근합니다. 즉, 처음에 추가된 데이터가 먼저 제거됩니다. 동작: Stack: 주로 "push" (데이터 추가) 및 "pop" (데이터 제거) 연산이 주요합니다. Queue: 주로 "enqueue" (데이터 추가) 및 "dequeue" (데이터 ..

반응형