MVC 패턴은 소프트웨어 디자인 패턴 중 하나로, 소프트웨어를 세 가지 주요 컴포넌트로 나누어 구조화하는 방법을 제공합니다. 이렇게 나누어진 컴포넌트는 각각 Model, View, Controller라고 불립니다. MVC 패턴은 주로 UI(User Interface)를 개발하는 데 사용되며, 각 컴포넌트가 각자의 역할을 수행하면서 시스템을 보다 모듈화하고 확장 가능하게 만듭니다. Model (모델) 어플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터를 저장하고 조작하는 역할을 수행합니다. 데이터의 변경을 감지하고, 변경 시 View 및 Controller에 알림을 보냅니다. View (뷰) 사용자에게 정보를 표시하고 사용자의 입력을 받는 역할을 수행합니다. 모델의 데이터를 시각적으로 표현하거나, ..
인터페이스(Interface)와 추상 클래스(Abstract Class)는 모두 객체 지향 프로그래밍(OOP)에서 사용되는 개념으로, 클래스와 관련이 있습니다. 이들 간의 공통점과 차이점을 살펴보겠습니다. 공통점 추상성(Abstractness): 두 개념 모두 추상적인 개념으로, 직접적으로 객체를 생성할 수 없습니다. 인터페이스의 경우 모든 메서드가 추상 메서드이며, 추상 클래스는 추상 메서드를 가질 수 있습니다. 상속(Inheritance): 둘 다 다른 클래스에서 상속을 받아 사용됩니다. 클래스가 이미 어떤 클래스를 상속하고 있다면, 인터페이스를 구현하거나 추상 클래스를 확장할 수 있습니다. 차이점 구현(Implementation): 인터페이스: 모든 메서드가 추상 메서드이며, 구현을 제공하지 않습니..
"Overloading"과 "Overriding"은 객체지향 프로그래밍에서 사용되는 두 가지 다른 개념입니다. Overloading (오버로딩) Overloading은 같은 메서드 이름을 가진 여러 메서드들이 서로 다른 매개변수를 가지는 것을 말합니다. 메서드의 이름은 같지만, 매개변수의 개수, 타입, 또는 순서가 다를 수 있습니다. Overloading은 컴파일 시간에 결정되며, 컴파일러는 어떤 메서드를 호출할지 정적으로 결정합니다. public class Example { public void printMessage(String message) { System.out.println(message); } public void printMessage(int number) { System.out.print..
"Primary Key"와 "Unique Key"는 둘 다 관계형 데이터베이스에서 데이터의 유일성을 보장하는 데 사용되는 제약(Constraint)의 형태입니다. 그러나 두 키 간에는 몇 가지 중요한 차이가 있습니다. 기본 키 (Primary Key) 기본 키는 테이블에서 각 행을 고유하게 식별하는 데 사용됩니다. 기본 키는 NULL 값을 허용하지 않습니다. 즉, 각 행은 기본 키 열에 대해 NULL이 아닌 값을 가져야 합니다. 테이블당 하나의 기본 키만 가질 수 있습니다. 기본 키의 값은 반드시 고유하며, 중복된 값을 가질 수 없습니다. 기본 키로 설정된 열은 자동으로 인덱스가 생성되어 검색 속도를 향상시킵니다. 고유 키 (Unique Key) 고유 키도 기본 키와 마찬가지로 각 행을 고유하게 식별하는..
REST(Representational State Transfer)는 웹 서비스 아키텍처의 한 형식으로, 자원을 이름(자원의 표현)으로 구분하고 해당 자원의 상태(정보)를 주고 받는 모든 것을 나타냅니다. REST는 클라이언트와 서버 간의 통신을 위한 간단하고 확장 가능한 아키텍처 스타일을 제공하여 분산 시스템에서의 상호운용성을 촉진합니다. REST는 네트워크 상에서 상태를 전송하는 방법을 간결하게 정의하고 있으며, 이를 통해 서버와 클라이언트 간의 통신이 간단하고 효율적으로 이루어질 수 있습니다. 자원(Resource) 모든 자원은 고유한 식별자로 식별되는데, 이를 URI(Uniform Resource Identifier)로 표현합니다. 예를 들어, 웹의 자원은 URI를 통해 특정됩니다. 행위(Meth..
저장 위치 Cookie: 클라이언트 측에 저장되며, 브라우저가 데이터를 관리합니다. 사용자의 로컬 컴퓨터에 텍스트 파일 형태로 저장되어 있습니다. Session: 서버 측에 저장되며, 서버가 데이터를 관리합니다. 클라이언트는 세션 ID만을 가지고 있고, 이를 사용하여 서버에 저장된 데이터에 접근합니다. 보안 Cookie: 클라이언트에 저장되기 때문에 보안에 취약할 수 있습니다. 민감한 정보를 담고 있으면 안 되며, 쿠키를 안전하게 다루기 위해 암호화 등의 추가 보안 기법이 필요할 수 있습니다. Session: 서버에 저장되기 때문에 보안상의 이점이 있습니다. 클라이언트는 세션 ID만을 알고 있고, 실제 데이터는 서버에 저장되어 있기 때문에 비교적 안전합니다. 유효 기간 Cookie: 일정 기간 동안 클라..
AJAX는 "Asynchronous JavaScript and XML"의 약자로, 비동기적으로 웹 페이지와 서버 간에 데이터를 교환하는 기술입니다. 이 기술을 사용하면 페이지 전체를 새로고침하지 않고도 웹 페이지의 일부분을 업데이트할 수 있습니다. Asynchronous AJAX는 비동기적으로 동작합니다. 즉, 웹 페이지는 전체를 새로 고치지 않고도 서버로부터 데이터를 받아와서 동적으로 업데이트할 수 있습니다. JavaScript AJAX 요청과 응답을 처리하기 위해 JavaScript가 사용됩니다. 클라이언트 측에서 JavaScript를 사용하여 비동기적으로 서버와 통신하고, 동적으로 페이지를 업데이트할 수 있습니다. JSON 초기에는 XML이 주로 사용되었지만, 최근에는 JSON이 더 일반적으로 사용..
REST (Representational State Transfer)는 웹 기반 서비스를 구축하기 위한 아키텍처적인 스타일 중 하나입니다. REST는 네트워크 상에서 자원(자료 또는 서비스)을 표현하고, 해당 자원에 대한 행위를 HTTP 프로토콜을 통해 수행하는 방식으로 동작합니다. REST는 자원, 표현, 상태 전이, 그리고 연결성이라는 네 가지 주요 제약 조건을 갖추고 있습니다. GET - 조회 리소스를 읽기 위해 사용됩니다. 서버에서 클라이언트로 데이터를 가져올 때 사용됩니다. POST - 생성 리소스를 생성하기 위해 사용됩니다. 서버에 새로운 데이터를 제출할 때 사용됩니다. PUT - 수정 리소스를 업데이트하기 위해 사용됩니다. 클라이언트에서 서버로 데이터를 전송하여 리소스를 갱신합니다. DELE..
HTTP(하이퍼텍스트 전송 프로토콜)에서 사용하는 두 가지 주요 요청 방식은 GET과 POST입니다. 이 두 방식은 웹 브라우저가 서버에 정보를 전달하는 방법을 설명합니다. GET 방식 데이터 전송 방식: 데이터를 URL에 첨부해 전송합니다. 데이터 보안: URL에 데이터가 노출되므로, 보안에 취약합니다. 비밀번호와 같은 민감한 데이터 전송에는 부적합합니다. 캐싱: 같은 요청이 반복되면 브라우저에서 이전에 요청한 데이터를 캐싱하여 빠른 응답이 가능합니다. 데이터 길이 제한: URL의 길이 제한 때문에 전송할 수 있는 데이터의 양이 제한됩니다. 사용 예시: 검색어를 서버로 보낼 때, URL에 쿼리 문자열로 데이터를 첨부해 전송합니다. GET /search?q=query_string HTTP/1.1 Host..
HTTP (Hypertext Transfer Protocol) 응답은 웹 서버가 클라이언트의 HTTP 요청에 대한 결과를 전송하는 메시지입니다. HTTP 응답은 상태 코드, 헤더, 본문(body)으로 구성되어 있습니다. 가장 중요한 부분 중 하나는 상태 코드입니다. HTTP 응답 상태 코드는 세 자리 숫자로 표시되며, 각 코드는 특정 의미를 나타냅니다. 일반적인 HTTP 응답 상태 코드의 범주는 다음과 같습니다: 1xx (Informational) 요청을 받았고 프로세스를 계속하고 있는 상태를 나타냅니다. 100 Continue (계속) 101 Switching Protocols (프로토콜 전환). 2xx (Success) 요청이 성공적으로 처리되었음을 나타냅니다. 200 OK (성공) 201 Creat..
- Total
- Today
- Yesterday
- java
- 개발자면접질문
- 신입개발자면접
- java메일
- imap
- pop3
- 개발면접
- BtoC
- 성능최적화
- 개발기술면접
- PostgreSQL
- redis-cluster
- 레디스클러스터
- 신입개발자
- 레디스
- 신입개발자기술면접
- 정보처리
- 기술면접
- http
- database
- 개발면접질문
- 개발자면접
- 데이터베이스
- 웹서버
- smtp
- Message-ID
- db
- javamail
- OAuth2.0
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |