분류 전체보기(209)
-
Object 클래스
◎ java.lang 패키지-> 자바가 기본으로 제공하는 라이브러리-> 아래는 java.lang 패키지의 대표적인 클래스들이다.- Object : 모든 자바 객체의 부모 클래스- String : 문자열- Integer, Long, Double : 래퍼타입, 기본형 데이터 타입을 객체로 만든 것- Class : 클래스 메타 정보- System : 시스템과 관련된 기본 기능들을 제공-> java.lang 패키지는 모든 자바 애플리케이션에 import된다. 따라서 import 구문을 사용하지 않아도 된다. ◎ Object 클래스-> 자바에서 모든 클래스의 최상위 부모 클래스package object;// 부모가 따로 명시되어 있지 않은 경우 자동으로 Object 클래스를 상속받는다.public class Pa..
2024.10.29 -
HTTP 메시지 컨버터와 요청 메플링 핸들러 어댑터 구조
-> HTTP 메시지 컨버터의 위치와 동작 구조를 보려면 스프링 MVC 구조에서 RequestMappingHandlerAdpater를 보면 된다. ◎ RequestMappingHandlerAdapter 동작 방식-> 컨트롤러는 HttpServletRequest, @RequestParam 등 다양한 파라미터를 사용할 수 있다.-> ArgumentResolver는 이렇게 컨트롤러가 다양한 파라미터를 유연하게 처리할 수 있도록 한다.-> 애너테이션 기반 컨트롤러를 처리하는 RequestMappingHandlerAdapter는 ArgumentResolver를 호출하여 컨트롤러(핸들러)가 필요로 하는 파라미터의 값(객체)를 생성한다.-> 파라미터의 값이 모두 생성되어 준비되면 컨트롤러를 호출하면서 값을 넘긴다. ..
2024.08.25 -
HTTP 메시지 컨버터
◎ HTTP 메시지 컨버터-> 뷰 템플릿으로 HTML을 생성하여 응답하지 않고, HTTP API와 같이 JSON과 같은 데이터를 HTTP 메시지 바디에 직접 읽거나 쓰는 경우 HTTP 메시지 컨버터를 통해 JSON과 객체를 변환하여 데이터를 주고 받는다.-> 아래는 @ResponeBody의 동작 과정이다.-> 웹 브라우저에서 요청을 하면 내장된 톰켓 서버를 거쳐 controller에 요청이 간다.-> 해당 컨트롤러에 @ResponseBody가 적용되어 있어 HTTP 바디에 문자 내용을 직접 반환한다.-> @ResponseBody가 있기 때문에 viewResolver를 호출하지 않고, HttpMessageConverter를 호출한다.-> HttpMessageConverter는 JsonConverter와 S..
2024.08.25 -
멀티 스레드
◎ 요청흐름 -> 클라이언트에서 서버로 요청을 보내면 tcp/ip 연결을 하고, 서블릿을 호출하여 응답을 보낸다. 이 서블릿을 호출하는 것이 스레드(Thread)다. ◎ 스레드 -> 프로세스 내 실행되는 소스코드의 흐름 -> 프로세스 내에 스레드는 하나만 존재할 수 있고, 여러 개가 존재할 수 있다. 동시 처리가 필요하면 스레드를 여러 개 생성한다. -> 스레드는 한 번에 하나의 코드 라인만 수행한다. ◎ 단일 스레드 -> 스레드를 하나만 사용하는 방식이다. -> 요청이 들어오기 전 초기 상태다. 스레드는 하나만 존재한다. -> 다음은 요청과 응답 과정이다. -> 요청이 들어오면 스레드를 할당하여 이 스레드가 서블릿을 호출하여 응답을 보낸다. -> 응답을 모두 마치면 다시 초기 상태로(스레드 휴식 상태)..
2024.03.17 -
서블릿
◎ 서블릿 -> 자바를 사용하여 웹페이지를 동적으로 생성하는 서버 프로그램 -> 다음은 클라이언트에서 POST 요청으로 서버에 데이터를 저장하는 요청을 보내는 상황이다. -> 이 상황에서 애플리케이션 서버가 해야할 일은 다음과 같다. - 서버 TCP/IP 연결 대기, 소켓 연결 - HTTP 요청 메시지 파싱하여 읽기 - POST 방식, URL 파악 - Content-Type 확인 - HTTP 메시지 바디 내용 파싱 - 저장 프로세스 실행 - 비즈니스 로직 실행 -> 데이터베이스에 저장 요청 - HTTP 응답 메시지 생성 - TCP/IP에 응답 전달 및 소켓 종료 -> 서블릿은 위의 서버가 해야할 일 중 비즈니스 로직 실행을 제외한 나머지 작업을 지원한다. -> 위 코드에서 @WebServlet애너테이션에..
2024.03.14 -
다형성2
◎ 다형성 활용 -> 이전에 정리했던 다형성을 활용하고 다형성의 효과를 알아본다. -> Animal 클래스는 다른 동물 클래스들의 최상위 클래스다. 하위 클래스들은 sound()메서드를 오버라이딩 하여 각 동물 종류에 맞는 울음 소리를 출력한다. public class Animal { public void sound(){ System.out.println("동물 울음 소리"); } } public class Cat extends Animal { @Override public void sound() { System.out.println("야옹"); } } public class Cow extends Animal { @Override public void sound() { System.out.println(..
2024.02.11