목록전체 글 (231)
도찐개찐
파이썬 자료형 Boolean Numbers String Bytes Lists Tuples Sets Dictionaries 파이썬 자료형의 특징 파이썬은 우리가 흔히 경험하였던 C/C++이나 JAVA와 다른 특징을 가집니다. 바로 변수를 선언할 때, 자료형을 명시적으로 선언하지 않는다라는 특징인데요. (변수란, 자료형의 값을 저장하는 공간) 이런 특징을 가진 프로그래밍 언어를 '동적 타입 언어'라고 합니다. 정적타입 언어와 동적타입 언어의 차이인데요. 먼저 대표적인 정적타입 언어인 C++의 변수 선언부를 보시면, //C++ int num1 = 3; float num2 = 4.6f; double num3 = 3.23d; char ch = 's'; string str = "abc"; //컴파일 시 자료형 결정..
print문에 다양한 방법을 사용하여 특정 데이터를 문자열 속의 원하는 위치에 표현할 수 있습니다. 변환 문자 활용 %d, %s, %c를 활용하여 print문으로 데이터를 출력하는 방법입니다. %d : 숫자 데이터 %s : 문자열 데이터 %c : 문자 하나 데이터 print("올해는 %d년 입니다." % 2020) print("올해는 %d년, 내년은 %d년 입니다." % (2020, 2021)) print("나는 %s을 탑니다." % '지하철') print("나는 %s과 %s를 탑니다."%('지하철','버스')) print("Google은 %c로 시작합니다." % 'G') print("Google은 %c로 시작하고, %c로 끝납니다." % ('G','e')) %s만으로도 숫자 및 문자 하나 데이터를 표현..
웹 서버의 주된 기능은 웹 페이지를 클라이언트로 전달하는 것입니다. 주로 그림, CSS, 자바스크립트를 포함한 HTML 문서가 클라이언트로 전달됩니다. 하지만 이런 웹 서버의 경우 이미 존재하는 즉, 정적인 페이지를 제공하는 역할만 할 수 있습니다. 실시간으로 작성된 페이지를 제공하거나 서버 상에 데이터를 저장하는 것은 웹 서버가 할 수 없는 일입니다. 때문에 이런 역할을 해 주는 다른 도우미 애플리케이션이 필요합니다. 이런 도우미 애플리케이션을 사용하면 웹 서버는 도우미 애플리케이션에 요청을 전달하기만 합니다. 그러면 도우미 애플리케이션은 요청받은 작업을 수행하거나 정적인 페이지를 만들어서 웹서버로 전달합니다. 웹서버는 이를 다시 클라이언트로 전해줍니다. 자바에서는 이 역할을 해 주는 것이 서블릿입니다..
1. 웹서버란? - 웹페이지를 사용자에게 전송 서블릿 컨테이너를 알기 전에 웹서버에 대한 이해가 먼저 필요합니다. 웹서버는 데이터를 전송하기 위해 HTTP 프로토콜을 사용합니다. 일반적인 상황에서 사용자는 브라우저에 URL(e.g. www.programcreek.com/static.html) 을 입력하고 웹페이지를 얻게 됩니다. 웹서버가 하는 일은 웹페이지를 사용자에게 전송하는 것입니다. 변화하는 것은 HTTP 프로토콜에서 형식이 지정되는 요청과 반응 메세지입니다. 1. 서블릿 컨테이너란? - 서블릿 컨테이너는 서블릿들의 생성, 실행, 파괴를 담당 아래 그림 처럼, 사용자는 서버에 오직 정적인 웹페이지만 요청할 수 있습니다. 만약 사용자가 본인의 입력을 기초로한 웹 페이지를 보고 싶다면 이 방법은 충분하..
서블릿(Servlet) 이란? 서블릿은 자바로 만들어진 프로그램을 서버에서 실행하기 위해 만들어졌다. 특히 웹 서비스 개발에 특화되어 있으며 데이터베이스 연동, 외부 서비스 연동을 통해 정적인 웹에 동적인 정보 제공을 가능하게 한다. 서블릿 개발 및 동작 구조 서블릿은 순수 자바 코드로 작성되며 코드 자체만으로 보면 일반적인 자바클래스와 다르지 않다. 다만 서블릿 실행을 위해서는 웹 애플리케이션 형식으로 패키징 하는 과정이 필요하며 실행은 서블릿 컨테이너를 통해 이루어진다는 차이가 있다. 일반적인 서블릿의 개발 및 동작 구조는 다음과 같다. [그림: 서블릿 개발과 동작 과정] HttpServlet 클래스를 상속받는 서블릿 클래스를 작성 컴파일후 웹 애플리케이션으로 패키징 서블릿 컨테이너에 배포 클라이언트..
스트림(Stream)이란?? 스트림이란 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소라고 정의할 수 있다. 스트림은 자바 8 api에 새로 추가된 기능으로 이를 ㅇ용하면 선언형(데이터를 처리하는 임시 구현 코드 대신 질의로 표현할 수 있다)으로 컬렉션 데이터를 처리할 수 있다. 또한 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다. 특징 선언형 루프 및 if 조건문 없이 선언형 코드와 동작 파라미터화를 활용하면 변하는 요구사항에 쉽게 대응 가능하다. 조립 가능 특정 기능들에 대해 조합하여 파이프라인을 만들 수 있어 유연성이 좋아진다. 병렬화 손쉽게 병렬처리가 가능해져 성능이 좋아진다. 스트림과 컬렉션 자바 기존 컬렉션과 새로운 스트림 모두 연속된 요소 형식의 값을 ..
오류와 예외의 차이 예외를 알아보기 위해서는 우선 오류와 예외를 구분할 필요가 있습니다. 오류(Error) : 시스템이 종료되어야 할 수준의 상황과 같이 수습할 수 없는 심각한 문제를 의미합니다. 개발자 예측 불가로 방지 불가 예외(Exception) : 개발자가 구현한 로직에서 발생한 실수나 사용자의 영향에 의해 발생 오류와 달리 개발자가 미리 예측하여 방지할 수 있기에 상황에 맞는 예외처리(Exception Handle)를 해야함. java.lang.Throwable 자바 최상위 클래스 Object를 상속 오류(java.lang.Error)와 예외(java.lang.Exception)는 Throwable과의 상속관계를 맺음 오류나 예외에 대한 메시지를 담는 객체 예외 연결(chained excepti..
프로세스란 프로세스는 실행중인 프로그램을 의미한다 프로세스는 완전히 독립적인 수행단위이다 스레드란 스레드는 프로그램 내에서 실행되는 프로그램 제어 흐름(실행단위)을 말한다 한 프로그램에 여러개의 스레드가 존재할 수 있다. 스레드가 1개라면 단일스레드, 2개이상이라면 다중스레드 프로그램 코드를 한 줄씩 실행하는 것이 스레드의 역할이다 (=실행제어) 스레드란 곧 프로그램을 실행하는 주체이다 스레드를 보통 가벼운 프로세스(light-process)라고 표현한다 멀티스레드란 멀티스레드 =multi thread =다중스레드 멀티스레드는 여러개의 스레드를 이용하는 프로그램이다 다중 스레드에서 각각의 스레드는 하나의 독립적인 프로세스처럼 작업 수행 멀티 스레드로 구현된 프로그램을 실행하면 하나의 프로세서는 한번에 스..