부트캠프에서 처음으로 java수업을 받고 있기에 기록하는 게 좋다고 생각했고, 수업이 있는 날이면 매일 글을 쓰려고 합니다. 쵀대한 몰랐거나 필요하다고 생각되는 내용 위주로 기록할 예정입니다. (제가 게을러서 이러한 시도를 성공한 적이 없기에 이번 부트캠프 목표 중 1가지입니다. 할 수 있도록 화이팅!!)
Thread는 프로세스 내에서 실행되는 작은 실행 단위입니다.
Java에서는 멀티스레딩(Multithreading) 을 사용하여 여러 작업을 동시에 실행할 수 있습니다.
Thread 사용 이유
- 멀티태스킹 가능(한 번에 여러 작업을 수행할 수 있음)
ex) 음악을 들으면서 문서 편집- 백그라운드 작업 처리 (파일 다운로드, 데이터베이스 처리 등)
ex) 채팅 앱에서 메시지를 주고받을 때 서버와 통신
class MyThread extends Thread {
private String name;
public MyThread(String name) {
this.name = name;
}
public void run() {
for (int i = 1; i <= 3; i++) {
System.out.println(name + " 실행 중: " + i);
try { Thread.sleep(500); } catch (InterruptedException e) {}
}
}
}
public class MultiThreadExample {
public static void main(String[] args) {
MyThread t1 = new MyThread("스레드 1");
MyThread t2 = new MyThread("스레드 2");
t1.start();
t2.start();
}
}
아래와 같은 결과가 출력됨
스레드 1 실행 중: 1
스레드 2 실행 중: 1
스레드 1 실행 중: 2
스레드 2 실행 중: 2
스레드 1 실행 중: 3
스레드 2 실행 중: 3
자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다 (위키피디아)
즉 서블릿은 클라이언트의 동적인 웹페이지 요청을 처리하기 위해 만들졌다.
HttpServlet
을 확장하여 GET, POST 요청을 쉽게 처리할 수 있음.클라이언트가 "HelloServlet"에 요청하면 "Hello, Servlet!"을 응답하는 서블릿 예제
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/HelloServlet") // 서블릿 URL 매핑
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<h1>Hello, Servlet!</h1>");
}
}
nest.js에서 사용되는 controller와 비슷한 역할을 하는 것과 java가 계속 진화해온 것들에 대한 역사를 알게 되어서 재미있다. (근데 수업 진도를 빠르게 나가서 얇고 넓게 배워서 모르고 넘어가는 부분이 있어서 새로운 개념을 배우는 것이 너무 힘들다....)
https://sgcomputer.tistory.com/226
https://sgcomputer.tistory.com/226
<이미지 출처>