cs/ODOQ 31

[ODOQ] WAS, 웹 서버

[One Day One Question]WAS와 웹 서버에 대해서 설명해 주세요. 1. 기본 개념웹 서버HTTP 프로토콜을 사용해 클라이언트(브라우저)와 통신하는 서버입니다.주로 정적인 콘텐츠(HTML, CSS, JS, 이미지 파일 등)를 제공하는 데 사용됩니다.예: Apache HTTP Server, NginxWAS (Web Application Server)동적인 콘텐츠를 생성하고 실행할 수 있는 서버로, 웹 서버의 역할을 포함하면서 추가적으로 애플리케이션 로직을 처리합니다.클라이언트의 요청에 따라 데이터베이스와 상호작용하거나 비즈니스 로직을 수행합니다.예: Tomcat, JBoss, WebSphere, WebLogic 2. 기능웹 서버정적 파일을 클라이언트에게 전송.리버스 프록시 역할 수행 가능.클..

cs/ODOQ 2025.01.03

[ODOQ] 서버 사이드 렌더링(SSR)과 클라이언트 사이드 렌더링(CSR)

[One Day One Question]서버 사이드 렌더링(SSR)과 클라이언트 사이드 렌더링(CSR)에 대해서 설명해 주세요. 서버 사이드 렌더링(SSR)과 클라이언트 사이드 렌더링(CSR)은 웹 페이지를 렌더링하는 두 가지 주요 방식입니다.  서버 사이드 렌더링(SSR)작동 방식: 사용자가 웹 페이지를 요청하면, 서버에서 해당 페이지를 완전히 렌더링하여 HTML 형태로 클라이언트(브라우저)에 전달합니다.장점:빠른 초기 로딩 속도: 서버에서 미리 렌더링된 HTML을 전달하므로, 브라우저는 이를 바로 표시할 수 있어 초기 로딩이 빠릅니다.검색 엔진 최적화(SEO)에 유리: 검색 엔진이 완전한 HTML 콘텐츠를 쉽게 크롤링할 수 있어 SEO 측면에서 유리합니다.단점:서버 부하 증가: 모든 요청에 대해 서버..

cs/ODOQ 2025.01.01

[ODOQ] 리버스 프록시와 포워드 프록시

[One Day One Question]리버스 프록시와 포워드 프록시에 대해 설명해 주세요. 리버스 프록시(Reverse Proxy)와 포워드 프록시(Forward Proxy)는 네트워크에서 클라이언트와 서버 사이의 중개자 역할을 하는 프록시 서버의 두 가지 주요 유형입니다. (프록시란?) 1. 포워드 프록시 (Forward Proxy)포워드 프록시는 클라이언트를 대신해서 요청을 전달하는 프록시 서버입니다.작동 방식클라이언트는 직접 인터넷에 접속하지 않고, 포워드 프록시를 통해 요청을 보냅니다.프록시 서버는 요청을 수신하여 인터넷으로 전달하고, 서버로부터 받은 응답을 클라이언트에 반환합니다.주요 특징클라이언트 보호: 클라이언트의 IP 주소를 숨길 수 있습니다.사용 사례:방화벽/네트워크 정책 적용: 조직 ..

cs/ODOQ 2024.12.26

[ODOQ] HTTP에서 멱등성

[One Day One Question]HTTP에서 멱등성에 대해 설명해 주세요.HTTP 메서드에서 멱등성(Idempotency)은 동일한 요청을 여러 번 보냈을 때, 서버의 상태가 한 번 보낸 것과 동일하게 유지되는 성질을 의미합니다. 즉, 요청을 몇 번 보내든 서버의 상태는 변하지 않고 동일한 결과를 반환해야 한다는 특성을 나타냅니다.멱등성의 특징멱등성은 서버의 최종 상태가 동일한지에 초점이 맞춰져 있습니다.클라이언트가 동일한 요청을 여러 번 보내더라도, 서버가 그 요청을 한 번 처리한 것과 결과가 같아야 합니다.멱등성은 HTTP 메서드 설계 시 안정성과 예측 가능성을 보장하는 중요한 원칙입니다. 멱등성을 가지는 HTTP 메서드1. GET목적: 리소스 조회.특징: GET 요청을 여러 번 보내도 서버의..

cs/ODOQ 2024.12.20

[ODOQ] 데이터베이스 커넥션 풀(Connection Pool)이란?

[One Day One Question]데이터베이스 커넥션 풀(Connection Pool)에 대해 설명해 주세요.데이터베이스 커넥션 풀은 데이터베이스와의 연결을 효율적으로 관리하기 위한 기술입니다. 기본적으로, 데이터베이스에 연결하는 과정은 시간이 많이 소요되고 리소스를 소모하는 작업입니다. 커넥션 풀은 이러한 연결을 미리 생성해 두고, 필요할 때마다 재사용함으로써 성능을 최적화합니다. 예를 들어, 웹 애플리케이션에서 여러 사용자가 동시에 데이터베이스에 접근할 때, 매번 새로운 연결을 생성하는 대신, 커넥션 풀에서 미리 만들어진 연결을 가져와 사용합니다. 이렇게 하면 연결을 생성하고 종료하는 데 드는 오버헤드를 줄일 수 있어, 애플리케이션의 응답 속도가 빨라집니다.또한, 커넥션 풀은 동시에 열 수 있는..

cs/ODOQ 2024.12.19

[ODOQ] 운영체제(OS)란?

[One Day One Question]운영체제(OS)에 대해 설명해 주세요.운영체제 (Operating System, OS)는 컴퓨터 시스템의 하드웨어와 소프트웨어 자원을 관리하고, 사용자와 컴퓨터 간의 상호작용을 가능하게 하는 시스템 소프트웨어입니다. 운영체제는 하드웨어와 응용 프로그램 사이의 중간 역할을 하며, 시스템의 효율적이고 안정적인 사용을 위해 다양한 기능을 제공합니다. 운영체제의 주요 역할하드웨어 자원 관리CPU 관리: 여러 프로세스가 CPU를 효율적으로 사용할 수 있도록 스케줄링하고 우선순위를 관리합니다.메모리 관리: 주기억장치(RAM)를 프로세스 간에 적절하게 할당하고 해제합니다.디스크 및 파일 관리: 데이터 저장 장치(디스크)의 파일을 읽고 쓰는 작업을 효율적으로 처리합니다.입출력 장..

cs/ODOQ 2024.12.18

[ODOQ] 동기(Synchronous), 비동기(Asynchronous)

[One Day One Question]동기와 비동기에 대해 설명해 주세요.1. 동기(Synchronous)정의: 작업이 순차적으로 실행되며, 이전 작업이 완료될 때까지 다음 작업이 시작되지 않습니다. 즉, 순서대로 하나씩 작업을 처리합니다.특징:하나의 작업이 끝날 때까지 기다려야 다음 작업이 시작됩니다.실행 흐름이 예측 가능하고 직관적이지만, 시간이 오래 걸리는 작업이 있으면 전체 프로세스가 지연될 수 있습니다. 2. 비동기(Asynchronous)정의: 작업이 독립적으로 실행되며, 작업 완료를 기다리지 않고 다음 작업을 바로 시작합니다. 다른 작업과 동시에 진행될 수 있습니다.특징:하나의 작업이 끝나지 않아도 다른 작업을 시작할 수 있어 효율적입니다.동시에 여러 작업을 처리할 수 있지만, 작업 완료 ..

cs/ODOQ 2024.12.17

[ODOQ] JPA ID 생성 전략

[One Day One Question]JPA ID 생성 전략에 대해 설명해 주세요.JPA에서 ID 생성 전략은 직접 할당 방식과 자동 생성 방식 두 가지로 나뉩니다. 각각의 방식은 기본 키를 어떻게 관리하고 생성할지 결정하며, 데이터베이스 설계 및 애플리케이션 요구사항에 따라 선택됩니다. 1. 직접 할당 방식 (Manual Assignment)설명: 개발자가 직접 기본 키 값을 설정하여 관리하는 방식입니다. JPA는 엔티티를 저장하기 전에 기본 키 필드에 값이 설정되어 있어야 하며, 그렇지 않으면 오류가 발생합니다.특징:개발자가 값을 명시적으로 설정.외부 시스템(예: REST API, 시퀀스 생성기 등)에서 기본 키를 생성할 수 있습니다.ID 생성 방식이 데이터베이스에 의존적이지 않음.복합 키를 사용하..

cs/ODOQ 2024.12.06

[ODOQ] 동일성과 동등성

[One Day One Question]동일성과 동등성에 대해 설명해 주세요.1. 동일성 (Identity)정의: 동일성은 두 객체가 같은 메모리 주소를 참조하고 있는지를 확인합니다.비교 방법: == 연산자를 사용합니다.사용 예:동일성은 객체가 같은 인스턴스인지 확인하는 데 사용됩니다.public class IdentityExample { public static void main(String[] args) { String str1 = new String("Hello"); // 새로운 String 객체 생성 String str2 = new String("Hello"); // 또 다른 String 객체 생성 String str3 = str1; // str3은 st..

cs/ODOQ 2024.12.06

[ODOQ] 로그와 메트릭

[One Day One Question]로그와 메트릭에 대해 설명해 주세요.로그(Log)와 메트릭(Metric)은 소프트웨어 시스템의 상태를 모니터링하고 성능을 분석하는 데 사용되는 중요한 데이터 유형입니다. 이 두 가지는 서로 보완적인 역할을 하며, 시스템 문제를 식별하고 해결하는 데 유용합니다. 로그 (Log)1. 정의로그는 시스템, 애플리케이션, 또는 서비스에서 발생한 이벤트의 기록입니다.주로 텍스트 형식으로 저장되며, 시간순으로 정렬됩니다.2. 특징구조적/비구조적 데이터: 로그는 메시지, 코드 스택, 이벤트 세부정보 등 다양한 형식으로 작성됩니다.컨텍스트 제공: 특정 이벤트가 왜 발생했는지와 그에 대한 자세한 설명을 제공합니다.시간 기반: 각 로그는 일반적으로 타임스탬프가 포함되어, 이벤트 발생 ..

cs/ODOQ 2024.12.03