본문 바로가기

전체 글

(60)
JSP 동작 원리와 Servlet 오늘은 JSP의 동작 원리에 대해 정리 하려고 합니다. JSP의 동작 원리를 알기 위해서는 Servlet에 대한 개념을 알아야 합니다 . Servlet이란? 서블릿이란 클라이언트의 요청을 처리하고 그 결과를 반환하는 서블릿 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 입니다. 간단하게 한줄로 설명하려고 했지만 한번에 이해가 되질 않습니다. 제가 그랬어요. 그래서 그림을 통해 이해해 보려고 합니다. (그림에 요청과 응답의 화살표가 반대로 되어있네요... 브라우저에서 서블릿 컨테이너로 요청, 서블릿 컨테이너에서 브라우저로 응답으로 보셔야 합니다!) 1. 먼저 개발자가 서블릿을 담당하는 자바 파일을 생성합니다. 2. 해당 서블릿 파일이 컴파일 되면 서블릿 클래스 파일이 생성되고 해당 파일이 서블릿 컨테..
유니코드의 개념과 사용 목적 유니코드란? 유니코드는 전 세계의 모든 문자를 다루도록 설계한 전산 처리 방식입니다. 즉, 전 세계의 숫자와 글자를 키와 값 처럼 1:1로 매핑된 형태의 코드를 의미합니다. 현재의 유니코드는 지구상에서 통용되는 대부분의 문자들을 담고 있으며 심지어 악보 기호, 이모지 태그 같은 것들도 포함 되어있습니다. 표기 방법 유니코드 문자의 경우 해당 글자의 코드를 표기 할 때 U + (16 진수의 숫자) 로 쓴다. 예를 들면 한글 '가' 는 유니코드에서 16진수로 AC00 라는 코드 넘버를 가지는데 이것을 U + AC00 라고 적는 방식이다. 유니 코드 블럭 유니 코드는 너무 많아서 ASCII 코드 표처럼 한 눈에 들어오는 테이블을 만들기 어렵다. 그래서 블록으로 테이블을 나누어 놓았습니다. 우리가 사용하는 한글..
MIME 의 개념과 사용 목적 MIME이란? MIME은 Multipurpose Internet Mail Extensions의 약자로 간단히 말해 파일 변환을 의미합니다. Internet Mail Extensions라는 이름이 붙은 이유는 원래 MIME은 이메일과 함꼐 동봉할 파일을 텍스트 문자로 변환해서 이메일 시스템을 통해 전달하기 위해 개발 했기 때문입니다. 그렇지만 현재는 웹을 통해서 여러가지 파일 전달을 하는데 쓰이고 있습니다. MIME을 사용하는 이유 웹에서 파일의 확장자는 별 의미가 없습니다. 그 파일의 확장자에 맞는 프로그램 실행이 중요한 문제죠 그러므로 각 문서와 함께 올바른 MIME 타입을 전송하도록, 서버가 MIME 타임을 정확히 설정하는 것이 중요합니다. 브라우저들은 리소스를 내려 받았을 때 해야할 기본 동작이 무..
WEB 서버와 WAS의 차이 이번글은 WEB 서버와 WAS에 대한 개념적 이해와 차이점에 대해 정리해 보려고 합니다. WEB 서버 WEB 서버는 클라이언트와 직접적으로 통신하는 역할을 담당한다. 여기서 클라이언트는 웹 브라우저등을 말하는데 우리가 자주 사용하는 크롬, 사파리, 엣지 등을 말하는 것이다. 예를 들어 크롬을 통해 네이버에 접속하는 간단한 상황을 생각해 보자 크롬을 통해 네이버에 접속하게 되면 미리 WEB 서버에 저장된 HTML, CSS, JS, IMG 파일들이 서버의 요청에 응답을 보내고 네이버에 접속한 누구든지 동일하게 결과값을 보여주게 됩니다. 여기서 말하는 html, css, js, .png, .jpg 는 '정적 컨텐츠' 라고 부르는데, 이는 별다른 데이터의 처리 없이 항상 똑같이 전달되는 웹 페이지의 구성 요소들..
자바에서 정확한 실수의 표현과 부동 소수점 자바를 공부하다가 정말 이상한 점을 발견했다. 아래의 코드의 출력 결과는 굉장히 충격적이었다. System.out.println(2.0 - 1.1); 나는 자신있게 '0.9' 를 외쳤지만 내 기대와 다른 결과가 도출 됬다. 0.899999999999999 뭐지... 내가 배웠던 수학이 잘못 되었는지에 대해 회의감이 발생하지만 알고나면 내 수학공부 과정이 틀리지 않았음을 알 수 있었다. 오늘의 주제는 자바에서 2.0 - 1.1 의 계산 결과가 0.9가 나오지 않았던 이유에 대해 정리해보려고 합니다. 컴퓨터의 언어 (기계어) 컴퓨터는 내부적으로 0 과 1의 스트림만 이해 할 수 있습니다. 즉, 내가 컴퓨터 한테 '1+1 계산해줘'라고 해봤자 못알아 먹는다는 겁니다. '1+1 계산해줘' 를 2진수 체계로 변환..
Collection이란? 자바에서는 배열을 사용해서 데이터 타입이 같은 데이터들을 하나의 변수로 묶어 관리합니다. 배열의 장점은 많은 양의 데이터를 한 번에 관리할 수 있고 반복문과 결합해 단순 반복적인 효율적으로 처리할 수 있다는 것입니다 하지만 배열에는 단점 또한 존재 합니다 1. 배열을 선언하면 배열의 크기를 초기에 설정하고 이후에 변경이 불가능하다. 2. 데이터를 검색하는 과정에서 시간이 많이 걸린다. 3. 같은 기본형 데이터 타입의 자료형만 저장할 수 있다. 배열의 문제점을 해결하기 위해 나온 개념이 Collection입니다. 1. Collection 이란? Collection은 간단히 말해 객체들의 집합이자 자료구조를 의미합니다. 객체들을 한 곳에 저장하고 관리하는데 목적을 두고 있습니다. ArrayList array..
추상 (Abstract) 클래스 와 인터페이스 (Interface)의 사용 목적과 차이점 이번 글에서는 자바에서 사용하는 추상 클래스 (Abstract Class) 와 인터페이스 (Interface) 의 차이점과 두 가지의 사용 목적에 대해 정리를 해보겠습니다. 먼저 추상 클래스의 개념에 대한 정리를 하겠습니다. 1. 추상 클래스 (Abstract Class) 추상클래스는 실체 클래스의 공통적인 부분을 추출해서 선언한 클래스를 의미하며 실체성이 없고 구체적이지 않기 때문에 객체를 생성할 수 없다. 때문에 실체클래스와의 상속 관계를 통해 사용할 수 있다. 추상화에서 추상화는 클래스간의 공통점을 찾아내서 공통의 부모를 설계하는 작업을 의미합니다. 비유하자면 추상클래스는 미완성 설계도라고 할 수 있다. 자바에서 사용 방법은 다음과 같습니다. [접근 제한자] abstract class [클래스명] ..
Base64 Encoding 이란? Base64 Encoding에 정리하기 전에 인코딩 (Encoding) 에 대한 개념에 대한 이해가 있어야 합니다. 0. 인코딩 (Encoding) 이란? 'encode' 의 사전적 의미는 '부호화하다, 표현하다' 라는 의미입니다. 그럼 뭘 표현하고 부호화 한다는 걸까요? 부호화의 대상은 사람이 인지 할 수 있는 형태의 데이터, 이를 테면 문자나 동영상등 입니다. 즉, 인코딩이란 사람이 인지 할 수 있는 형태의 데이터, 이를 테면 문자나 동영상등을 약속된 규칙에 의해 컴퓨터가 사용하는 0과 1로 변환하는 과정 입니다. 그럼 Base64 의미에 대해 궁굼하지 않으신가요? 'Base64' 를 글자 그대로 번역하면 '64진법' 이란 뜻입니다. Base64 테이블은 위의 이미지와 같습니다. 즉 base64 En..

반응형