부트캠프 - 온보딩

★ Spring MVC

1. 원격 프로그램의 실행

   (1) 한 컴퓨터에서 다른 컴퓨터의 프로그램을 실행하려면

      ① 서버쪽에서 프로그램을 바깥에서 돌릴 수 있도록 등록해 놓아야함

      ② URL과 프로그램을 연결해 놓아야함

   (2) 위 두가지를 했을 경우, 브라우저로 원격 프로그램을 실행할 수 있다

   (3) class 앞에 @Controller는 서버에 프로그램을 등록해 놓는 것이고, 메서드 앞에 @RequestMapping("...)는 URL과 프로그램을 연결해 놓는 것이다

   (4) 그런데 메서드가 인스턴스 메서드인데 호출할 수 있는 이유가 뭘까? 인스턴스 메서드를 호출하려면 누군가 객체를 생성한다는 뜻임

   (5) 메서드가 private이어도 되는 이유는 뭘까? Reflection API를 사용하기 때문임. 이는 클래스 정보를 얻고 다룰 수 있는 강력한 기능인데, 클래스 설계도를 가져와서 인스턴스를 만들고 private메서드를 실행할 수 있기 때문임

 

2. AWS에 배포하기

   (1) AWS 인스턴스에 톰캣의 webapps 폴더에 war파일 넣기

   (2) 그 후 톰캣 실행

 

3. HTTP 요청과 응답

   (1) http://.../che/hello로 요청하면 tomcat이 요청 정보를 HttpServletRequest 객체로 만들어줌

   (2) 이는 마치 main메서드의 String[] args로 전달되는 것과 비슷함

 

4. 클라이언트와 서버

   (1) Controller의 메서드에 매개변수를 쓰면 스프링이 HttpServletRequest 객체를 만들어서 넣어줌

   (2) 우리는 그 객체를 활용하면 됨

   (3) 어떤 서비스를 제공하는지에 따라 서버의 종류가 나뉨(ex. EmailServer, FileServer, WebServer)

   (4) 만약 1대의 PC에서 여러개 서버가 돌아가려면? PC의 IP주소만으로 어떤 서버에 요청할지 구분할 수 없음

   (5) 따라서, 포트번호도 필요함

   (6) 한 포트에는 한 서버만 있을 수 있는데, 이 상태를 서버가 포트를 리스닝 한다고 함

   (7) Web Server란 웹을 서비스하는 것

   (8) Web Application Service란 웹 어플리케이션(웹 프로그램)을 서비스 하는 것임

   (9) 이전에는 프로그램을 모두 클라이언트에 설치해야 했음

      ① 그래서 update 문제가 발생 : 프로그램이 update됐을 경우, 모든 PC의 프로그램이 update돼야함. 그러나 서버는 서버만 하면 됨

      ② 클라이언트의 저장 공간이 부족 문제 발생. 그러나 서버는 서버에서만 이용하면 됨

   (10) 톰캣의 내부 구조

      ① 요청이 포트를 통해 서버로 전달됨

      ② ThreadPool에서 하나의 Thread가 일처리를 시작

      ③ Connector에서 요청을 분류해서 요청 객체를 만듬

      ④ Host -> Context -> Servlet을 거친 후 클라이언트에 응답함


코테준비

1. 백준 5430 - AC

: 앞과 뒤에서 번갈아 빼야하므로 deque을 이용함. 빈 문자열을 split하면 빈 문자열 하나가 나오는 것 주의

 

2. 백준 3190 - 뱀

: 덱을 이용했지만 큐를 이용해도 될 것 같다. 빡빡한 구현 문제였다. 제한시간 안에 풀지 못한 점...!!


오늘 하루도 고생 많았다... 힘든 하루였다..!!

'TIL(Today I Learned)' 카테고리의 다른 글

2023.07.19  (0) 2023.07.19
2023.07.18  (0) 2023.07.18
2023.07.14  (0) 2023.07.14
2023.07.13  (0) 2023.07.13
2023.07.12  (0) 2023.07.12

+ Recent posts