반응형
으ㅇ아아ㅏ아아ㅏ 공부할께 많다아ㅏ
오늘의 공부 내용
내 답변은 혼자 계속 다듬어 가면서 고치고 고치고 고치다가 정리된 답변입니다... 처음부터 절때 저렇게 정리하지 않았습니다...!
- 서블릿은 웹 서버예요? WAS예요?
- 서블릿(Servlet)을 실행하려면 서블릿 컨테이너같은 WAS가 필요하지만 웹서버나 WAS가 아닙니다. 자바 기반 웹 어플리케니션의 구현 기술이고 동적인 콘텐츠를 생성하기 위해 사용됩니다.
- 웹 서버와 와스를 구분하는 이유에 대해 설명해 주시겠어요?
- 웹 서버와 WAS는 역할과 책임이 다릅니다. 웹 서버는 주로 정적인 콘텐츠를 클라이언트에 제공하고 WAS는 동적인 콘텐츠를 생성하는 차이가 있습니다.
- 로드 밸런싱을 위해 웹 서버를 사용하는 경우, 어떤 설정이 필요한가요?
- Nginx, HTTP Server등 웹서버를 사용해 로드밸런싱을 설정하려면 라운드로빈과같은 로드 밸런싱에 대한 알고리즘을 선택하고 Nginx 에서 업스트림, 프록시 패스 등의 설정이 필요합니다.
- 웹 서버와 애플리케이션 서버 간의 통신 방법에는 어떤 것들이 있나요?
- HTTP/HTTPS, WebSocket, 메시지 브로커 등이 있습니다.
- 웹 서버와 웹 애플리케이션 서버를 분리하는 경우의 장단점은 무엇인가요?
- 정적 콘텐츠는 웹 서버에서 처리하고 동적 콘텐츠는 WAS 에서 처리하면서 성능에 대한 최적화가 가능하다는 부분이 있고 웹 서버에서 로드 밸런싱을 구성하여 여러 WAS로 트래픽을 분산 할 수 있다는 장점이 있습니다. 단점으로는 초기설정이 복잡하다는 단점이 있습니다.
- BOM (byte order mark)란 무엇이고 필요한 이유와 동작 원리?
- 텍스트파일의 바이트 순서를 식별하는데 사용되는 유니코드 문자이고 파일의 인코딩 방식을 자동으로 감지할 수 있도록 도와줍니다. BOM은 텍스트 파일의 가장 첫 바이트에 삽입되고 해당 값은 인코딩 방식과 바이트 순서에 따라 다릅니다. 여러 시스템 간 파일을 주고받을 때, 인코딩 호환성을 보장하기 위해 BOM을 사용할 수 있습니다.
- JSP가 무엇이고 동작 원리는 무인가?
- JSP는 Java를 기반으로 한 웹 기술이고 HTML에 Java코드를 삽입해서 동적인 웹 페이지를 생성하는 데 사용 됩니다. 클라이언트가 JSP 파일을 요청하면 JSP 파일을 Servlet으로 변환하고 컴파일 합니다. 그 결과로 HTML이 생성됩니다.
- JSP 페이지가 로드될 때 초기화 과정에서 고려해야 할 사항은 무엇인가요?
- JSP는 첫 요청시 서블릿으로 변환되고 컴파일되므로 초기 로드 속도가 느릴 수 있습니다.
- JSP를 사용한 웹 애플리케이션 개발 시 주의해야 할 점은 무엇인가요?
- HTML과 Java 코드를 같이 사용하기 때문에 코드가 복잡해져 유지보수가 힘듭니다. 그리고 초기 요청시 JSP파일이 Servlet으로 변환되고 컴파일 되므로 오버헤드가 발생할 수 있습니다.
- JSP 파일이 서블릿으로 변환되는 과정에서 사용되는 클래스나 메커니즘은 무엇인가?
- JSP 파일이 업로드되면 JSP 컴파일러를 통해 자바 소스 코드로 변환되면서 HttpServlet의서브 클래스가 됩니다. 변환된 자바 소스 파일이 Java 컴파일러를 통해 .class 바이트 코드로 컴파일되고 JVM에 로드되어 실행이 됩니다.
- HTTP에서 GET과 POST의 차이점을 설명해 주세요.
- GET의 목적은 서버에서 데이터를 요청하고 조회를 하는 것이고 캐싱이 가능하고 2kb ~ 8 kb사이로 데이터 크기에 제한이 있습니다. POST은 서버에 데이터를 전송하여 리소스를 생성하거나 처리를 요청하는 목적이 있고 캐싱이 불가합니다. 그리고 데이터 크기 제한이 없습니다.
- POST 메소드가 멱등성을 보장하지 않는 이유는 무엇인가요?
- POST는 리소스를 생성하거나 데이터 상태를 변경하는 작업을 수행하는게 목적입니다. 같은 요청을 여러 번 보내면 리소스가 중복 생성되거나 상태가 바뀌게 되므로 멱등성을 보장하지 않습니다.
- 캐시의 개념과 중요성에 대해 설명해 주세요.
- 캐시는 자주 사용되는 데이터나 어떠한 결과를 임시적으로 저장해서 추후 요청이 있을때 더 빠르게 접근할 수 있도록 하는 저장소 입니다. 캐시를 이용함으로써 성능 개선과 데이터베이스에 대한 요청을 줄여 네트워크 트래픽을 감소 시키는 중요성을 갖고 있습니다.
- 캐시를 활용하여 API 응답 속도를 개선하는 전략에는 어떤 것들이 있나요?
- Redis같은 메모리 기반 캐시를 활용하거나 애플리케이션단에서 캐시를 사용해 데이터베이스 조회를 줄일 수 있습니다.
- war 파일이 배포될 때 JVM은 어떻게 해당 어플리케이션을 실행하나요?
- WEB-INF 폴더에 필요한 코드와 설정파일들이 있고 해당 파일이 톰캣 서버의 webapps 디렉터리에 배포됩니다. war 파일 압축을 해제하고 web.xml 파일이 로드되고 클래스 로딩 후 JVM에서 실행합니다.
- 스프링 부트 애플리케이션에서 JAR와 WAR 배포 방식의 차이점은 무엇인가요?
- 스프링 부트 애플리케이션에서 JAR은 내장 톰캣 서버가 포함되어 있어서 단일 애플리케이션을 독립적으로 실행하는 데 적합합니다. 반면, WAR은 외부 톰캣 같은 서블릿 컨테이너에 배포해야 하므로 독립 실행이 불가능합니다.
- 쿠키와 세션의 차이점은 무엇인가요?
- 쿠키는 브라우저에 저장하기 때문에 데이터 크기가 일반적으로 4KB정도로 제한적이고 클라이언트에서 조작이 가능하여 보안이 상대적으로 취약하고 사용자 정보를 저장하는데 사용합니다. 세션은 서버에 저장을 하고 서버 메모리에 의존을 하기때문에 데이터 크기가 제한이 없습니다. 그리고 보통은 사용자 상태관리에 대한 정보를 저장합니다.
- 쿠키의 유효시간을 지정하지 않으면 어떤일이 생기나요?
- 쿠키의 유효 시간을 지정하지 않으면 세션 쿠키가 됩니다. 세션쿠키는 브라우저 종료시 자동으로 삭제 됩니다.
- 세션을 관리하는 다양한 방법과 그 장단점을 설명하시오.
- 메모리 기반에서는 설정이 간단하지만 서버 재시작 시 데이터 소실이되고 다중 서버 환경에서 세션 공유가 어렵다는 단점이 있고, 데이터베이스 기반은 세션데이터의 영속성을 제공하고 다중 서버 환경에서 세션 공유가 가능하지만 데이터베이스 부하가 증가하는 단점이 있습니다. JWT를 활용한 관리는 stateless 방식으로 확장성이 좋지만 토큰 노출시 보안에 위험이 있습니다.
반응형
'Study > Study Alone' 카테고리의 다른 글
[나혼자공부] 6주차 복습-1 (0) | 2025.01.08 |
---|---|
[나혼자공부] 5주차 복습-2 (0) | 2025.01.04 |
[나혼자공부] 4주차 복습-2 (0) | 2024.12.26 |
[나혼자공부] 4주차 복습-1 (2) | 2024.12.25 |
[나혼자공부] 3주차 복습-2 (1) | 2024.12.20 |
댓글