오늘 배운 것
Web Server
- HTTP를 기반으로 동작하는 서버
- 정적 리소스(HTML, CSS, JS, 이미지 등)를 제공
- 대표적인 예: Apache, NGINX
WAS(Web Application Server)
- HTTP 기반으로 동작하며 웹 서버의 기능을 포함
- 동적(HTML, HTTP API(REST API), Servlet, JSP, Spring)으로 동작
- 대표적인 예: Tomcat, Jetty
- Multi Thread를 지원
Servlet
- HTTP 프로토콜 기반 요청 및 응답을 처리하는데 사용
- JAVA에서 HttpServlet 클래스를 상속받아 구현됨
Servlet이 없는 서버라면 우리는 엄청나게 많은 일을 해야함
( 서버와 TCP/IP 연결, 소켓 연결, HTTP 요청 메세지 Parsing 후 READ, POST method 식별 및 URL 분석, Content-Type 확인, HTTP Body Contents Parsing, 저장 프로세스 실행, 비지니스 로직 실행 → DB에 저장 요청, HTTP 응답 메세지 생성, TCP/IP 응답 전달, 소켓 연결 종료)
하지만 Servlet이 있어서 우리는 요청, 응답에 대한 것만 처리하면 됨
서블릿 컨테이너
- Servlet을 지원하는 WAS를 서블릿 컨테이너 라고 함(ex. Tomcat)
SSR(Server Side Rendering)
- 서버에서 동적으로 HTML을 만들어서 브라우저에 전달
CSR(Client Side Rendering)
- 웹 브라우저에서 자바스크립트를 사용해 동적으로 HTML을 생성해서 적용
프로그래머스
- 정수 제곱근 판별
- 문제설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.- n은 1이상, 50000000000000 이하인 양의 정수입니다.
n return 121 144 3 -1
121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다. - 입출력 예#2
3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.
public static long solution(long n) {
long answer = 0;
double num = Math.sqrt(n);
if(num % 1 == 0){ // 숫자(num)를 1로 나눴을때 나머지가 0이라면 정수
return (long)((num+1) * (num+1));
}
return -1;
}
문제를 풀다가 Math.sqrt()가 무조건 double형으로만 반환한다는 것을 알게되었다
'TIL' 카테고리의 다른 글
2023-11-21 TIL (0) | 2023.11.21 |
---|---|
2023-11-16 TIL (1) | 2023.11.16 |
2023-11-14 TIL (1) | 2023.11.14 |
2023-11-13 TIL(Optional) (5) | 2023.11.13 |
2023-10-27(프로그래머스) (1) | 2023.10.27 |
댓글