TIL

2023-11-15 TIL

우성팔 2023. 11. 15.

오늘 배운 것

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
    입출력 예 설명입출력 예#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

댓글