
박스 모델이란?HTML 박스 모델은 웹 페이지의 모든 요소를 사각형 박스로 취급하는 개념입니다.이 박스는 여러 개의 레이어로 구성되며, 각 레이어는 요소의 크기와 간격을 정의되거나 정의할 수 있습니다. 콘텐츠(Content): 텍스트나 이미지 등 실제 내용이 들어가는 부분이다.패딩(Padding): 콘텐츠와 테두리 사이의 여백이다. 패딩은 콘텐츠 주위에 투명한 공간을 추가한다.테두리(Border): 패딩과 마진 사이의 영역으로, 요소의 경계를 나타낸다. 테두리는 가시적일 수도 있고 투명할 수도 있다.마진(Margin): 요소와 다른 요소 사이의 외부 여백이다. 마진은 요소들 사이에 공간을 추가한다. 블록 요소(Block Elements)블록 요소는 항상 새로운 줄에서 시작하며, 가능한 전체 가로 너비..
JsonJavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식Javascript에서 객체를 만들 때 사용하는 표현식을 의미한다.JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용한다.JSON은 데이터 포맷일 뿐이며 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐이다. JSON 특징서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다.자바스크립트 객체 표기법과 아주 유사하다.자바스크립트를 이용하여 JSON 형식의 문서를 쉽게 자바스크립트 객체로 변환할 수 있는 이점이 있다.JSON 문서 형식은 자바스크..

웹 브라우저 뛰어난 이용자 경험(User eXperience, UX)을 제공하는 소프트웨어 중 하나입니다. 이용자는 브라우저를 이용하여 쉽게 정보를 검색하고, 동영상을 보고, 파일을 내려받지만 내부에서 어떠한 연산이 일어나는지는 전혀 알지 못합니다.브라우저를 통해 이용자가 주소창에 naver.com을 입력했을 때 웹 브라우저가 하게 되는 기본적인 동작을 나열한 것입니다. naver.com 홈페이지웹 브라우저의 주소창에 입력된 주소(naver.com)를 해석 (URL 분석)naver.com에 해당하는 주소 탐색 (DNS 요청)HTTP를 통해 naver.com 에 요청naver.com의 HTTP 응답 수신리소스 다운로드 및 웹 렌더링 (HTML, CSS, Javascript) URLURL은 Uniform R..
Web 인터넷을 기반으로 구현된 서비스 중 HTTP를 이용하여 정보를 공유하는 서비스여기서 정보를 제공하는 주체를 웹 서버 (Web Server), 정보를 받는 이용자를 웹 클라이언트 (Web Client) 라고 합니다.식당에서 음식을 서빙하는 사람 (Server)과 음식을 주문하는 고객 (Client)의 관계로 생각하시면 됩니다.여기서, HTTP란 웹상에서 서로 통신을 하기 위해 정해둔 일종의 규칙입니다. 이용자의 요청을 받는 부분을 프론트엔드 (Front-end), 요청을 처리하는 부분을 백엔드 (Back-end)라고 부릅니다. 호텔 프론트에 이런저런 서비스를 요청하면 뒤의 공간에서 고객 모르게 복잡한 일들이 벌어지는 것과 비슷합니다.프론트엔드는 이용자에게 직접 보여지는 부분으로, 웹 리소스 (Web..

성능 향상 기법PreparedStatement 사용의 장점연결 풀 (Connection Pool) 사용데이터 소스 (Data Source)의 개념연결 풀의 장점(Connection Pool)캐싱 전략 1. PreparedStatement 사용의 장점SQL 쿼리를 미리 컴파일하고, 동일한 쿼리를 반복해서 실행할 때 효율적으로 사용할 수 있는 인터페이스입니다. 이는 성능과 보안 측면에서 많은 장점을 제공합니다. 성능 향상:쿼리 컴파일: SQL 쿼리를 미리 컴파일하여, 쿼리를 여러 번 실행할 때 컴파일 시간을 절약할 수 있습니다.쿼리 계획 재사용: 동일한 쿼리를 반복적으로 실행할 때, 쿼리 계획을 재사용하여 실행 시간을 단축할 수 있습니다.보안 향상:SQL 인젝션 방지: 쿼리와 데이터가 분리되어 있어 SQL..

HTTP의 응답과 요청은 평문으로 전달됩니다. 만약 누군가 이를 가로챈다면 중요한 정보가 유출될 수 있습니다. HTTPS(HTTP over Secure socket layer)는 TLS(Transport Layer Security) 프로토콜을 도입하여 이런 문제점을 보완합니다. TLS는 서버와 클라이언트 사이에 오가는 모든 HTTP 메시지를 암호화합니다. 공격자가 중간에 메시지를 탈취하더라도 이를 해석하는 것은 불가능하며, 결과적으로 HTTP 통신이 도청과 변조로부터 보호됩니다. 웹 서버의 URL이 http://로 시작되면 HTTP, https://로 시작되면 HTTPS 프로토콜을 사용합니다. HTTP(HyperText Transfer Protocol)웹 서버와 클라이언트가 리소스를 교환하기 위해 사..

통신 프로토콜웹 서버에 있는 리소스를 클라이언트가 받아 보려면, 클라이언트는 웹에게 특정 리소스를 지정하여 제공해달라고 요청해야 합니다. 그러면 서버가 해당 요청을 이해하고, 대응되는 동작을 통해 클라이언트에게 리소스를 반환합니다. 여기서 클라이언트의 행위를 요청(Request), 서버의 행위를 응답(Response)이라고 합니다. 현재까지 제정된 표준 통신 프로토콜에는 네트워크 통신의 기초가 되는 TCP/IP, 웹 애플리케이션이 사용하는 HTTP, 파일을 주고받을 때 사용하는 FTP 등 매우 많은 종류가 있습니다. HTTP(Hyper Text Transfer Protocol)란 서버와 클라이언트의 데이터 교환을 요청(Request)과 응답(Response) 형식으로 정의한 프로토콜입니다. 팀 버너스 ..

웹 서버 정적 콘텐츠 제공자 클라이언트(웹 브라우저)로부터 HTTP 요청을 받아 정적인 HTML 파일, 이미지, CSS 파일 등을 제공하는 서버요청된 리소스를 클라이언트에게 그대로 반환합니다.일반적으로 특정 폴더(웹 루트 디렉토리)에 정적 콘텐츠를 저장합니다.클라이언트의 요청이 들어오면, 웹 서버는(컴퓨터) 이 폴더에서 요청된 파일을 찾아서 클라이언트에게 전달합니다.가장 유명한 웹 서버로는 아파치 HTTP 서버(Apache HTTP Server)와 Nginx가 있습니다.예시: 도서관에서 사서에게 특정 책을 요청하면, 사서는 책장에 있는 책을 찾아서 우리에게 그대로 전달합니다. 사서가 직접 책을 쓰거나 내용을 변경하지는 않습니다. 즉, 인터넷에 연결된 컴퓨터에서 누구나 접근할 수 있는 규칙을 정한 특정..

콘솔을 활용한 간단한 퀴즈 게임 만들어 보기 1. DB , 테이블 설계2. 기본 데이터 입력(정규화)3. 자바측 라이브러리 설정4. 자바측 기능 구현 및 테스트5. 리팩토링 DB, 테이블 설계-- 데이터베이스 생성 create database quizdb; use quizdb;create table quiz( id int auto_increment primary key, question varchar(500) not null, answer varchar(500) not null);-- 기본 샘플 데이터 입력 insert into quiz(question, answer ) values ('대한민국의 수도는?', '서울'), ('한반도의 남쪽에 위치한 나라는?', '대한민국'), ..

제2정규형 (2NF): 1NF를 만족하며, 모든 비기본 키 속성이 전체 기본 키에 대해 완전 함수적 종속을 가져야 합니다. 즉, 기본 키의 일부에만 종속된 속성이 없어야 합니다. 2NF를 만족하지 못하는 데이터 예제학생들이 수강하는 과목과 그 과목의 담당 교수에 대한 정보를 포함하는 테이블을 설계.여기서 pk는 {학생ID, 과목코드}의 복합 키입니다. 위 테이블에서 '과목명'과 '담당 교수'는 과목코드에 부분적으로 종속되어 있습니다. 즉, 학생ID와는 직접 적인 관련이 없습니다. 2NF 문제 해결2NF를 만족시키기 위해 부분 종속성을 제거해야 합니다. 이를 위해 위 테이블을 분해하여 부분적 종속성을 제거할 수 있습니다. 수강 정보 테이블: 학생ID, 과목코드과목 정보 테이블: 과목코드, 과목명, 담..