본문 바로가기

전체 글

(211)
Java_단방향 통신 Http 통신과 Socket 통신→ 단방향 통신 Http 통신 (connection less): Http 통신은 클라이언트의 요청이 있을 때만 서버가 응답하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식이다. 클라이언트가 요청을 보내는 경우에만 서버가 응답하는 단방향 통신으로 반대로 서버가 클라이언트에게 요청을 보낼 수 없다.→ 양방향 통신 Socket 통신 (connection pool): 서버와 클라이언트가 특정 포트번호를 통해 실시간으로 양방향 통신을 하는 방식이다. Http 통신과는 다르게 서버와 클라이언트가 특정 포트번호를 통해 연결되어 있어서 실시간으로 양방향 통신을 할 수 있다. ex) 실시간 채팅, 게임 등과 같이 즉각적으로 정보를 주고 받는 경우에 사용됨. 스트림 (InputStre..
Java_I/O 입출력 스트림 파일 생성하기 스트림 (Stream) : 스트림이란 데이터가 이동하는 통로이다. - 운영체제에 의해 생성되는 가상의 연결고리이다. - 큐(Queue)와 같은 선입선출(FIFO) 형태로 데이터가 전송 I/O Stream - 단방향 통신을 지원하는 기능 - 서로 통신을 위한 Input Stream / Output Stream 2개가 필요 바이트 입출력 스트림 : 1byte 단위 - 영상, 음성, 영문자의 binary 데이터 처리 InputStream 바이트 단위 입력 스트림 최상위 추상 클래스 FileInputStream : 파일에서 바이트 단위로 자료를 읽음. FIlterInputStream : 기반 스트림에서 자료를 읽을 때 추가 기능을 제공하는 보조 스트림 상위 클래스 OutputStream 바이트 단위 출력 스트림..
Spring Boot_인터셉터(Interceptor) 인터셉터 (Interceptor) 란 ? : Interceptor란 FIlter와 매우 유사한 형태로 존재하지만, 차이점은 Spring Context에 등록된다. 주로 인증 단계를 처리하거나, 로깅(Logging)을 하는데 사용한다. 이를 선/후 처리함으로써, business logic과 분리시킨다. → Interceptor를 구현하려면 HandlerInterceptor 인터페이스를 구현하는 클래스를 만들어야 한다. 1. preHandle() : 컨트롤러가 실행되기 전에 호출되는 메서드, 이 메서드는 요청을 가로채서 필요한 작업을 수행한 후 요청 처리가 계속되어야 하는지 여부를 결정한다. (true이면 요청 처리 O, false이면 요청 처리X) 2. postHandle() : 컨트롤러 실행 후 호출되지..
Spring Boot_필터(Filter) 필터(Filter) : Spring Boot에서 필터는 웹 애플리케이션 영역에서 관리된다. 필터는 요청 및 응답을 처리하기 전에 특정 작업을 수행할 수 있는 컴포넌트로, 클라이언트 요청이 실제 서블릿이나 컨트롤러에 도달하기 전에 실행된다. 마찬가지로 응답이 클라이언트로 돌아가기 전에 필터를 거친다. 필터는 웹 애플리케이션 영역에서 관리되지만, 스프링 컨테이너가 필터를 인식하고 관리할 수 있도록 구성되어 있다. 그러나 필터는 스프링 컨테이너의 앞에 위치하며, 서블릿 컨테이너 또는 임베디드 웹 서버와 같은 웹 컨테이너 내에서 실행된다. 이렇게 하여 필터는 컨트롤러나 서블릿에 도달하기 전에 요청을 가로챌 수 있다. 필터 사용 목적 1. 인증 및 인가 : 사용자의 자격 증명을 확인하고 요청된 리소스에 대한 액세..
Spring Boot_예외 처리 Spring Boot Exception : 스프링 부트 예외처리 기술 @RestControllerAdvice, @ControllerAdvice → @ExceptionHandler(value = 예외클래스이름.class) User.java HTML 삽입 미리보기할 수 없는 소스 CustomError.java HTML 삽입 미리보기할 수 없는 소스 ApiController.java HTML 삽입 미리보기할 수 없는 소스 GlobalControllerAdvice.java HTML 삽입 미리보기할 수 없는 소스 → 모든 예외 처리와 특정 예외 처리로 나누어 예외를 처리할 수 있다. 결과 화면 → @RestControllerAdvice는 @ResponseBody가 있어서 응답을 Json으로 내려준다.
Java_옵저버 패턴 옵저버 패턴 : '이벤트'를 감시하여 이벤트가 발생할 때마다 미리 정의해둔 동작을 수행하게 해주는 프로그래밍 패턴을 옵저버 패턴이라고 한다. ex) eventListener와 같이 키보드를 눌렀을 때, 버튼을 눌렀을 때 이벤트가 발생했다 할 수 있다. 옵저버 패턴을 구현하기 위해서는 1. 인터페이스가 필요하다. 2. 인터페이스를 포함관계로 선언한다. 3. 인터페이스를 구현한 클래스를 받을 setter 메서드를 만든다. 옵저버 패턴 예제 IButtonListener 인터페이스 HTML 삽입 미리보기할 수 없는 소스 Button.java HTML 삽입 미리보기할 수 없는 소스 MainTest.java HTML 삽입 미리보기할 수 없는 소스 콘솔 화면
Spring Boot_유효성 검사(Validation) 유효성 검사 (Validation) : 올바르지 않은 데이터를 걸러내고 보안을 유지하기 위해 유효성을 검사하기 위해 사용한다. ex) 자바에서는 null값에 대해서 접근하려고 할 때 NullPointException이 발생하기 때문에 이러한 부분을 방지하기 위해 미리 검증하는 과정을 Validation이라고 한다. POST 방식일 때와 GET방식일 때의 유효성 검사 사용방법은 약간 다르다. POST 방식일 땐 매개변수에 반드시 @Valid를 선언해주어야 하고, GET 방식일 땐 클래스에 반드시 @Validated를 선언해주어야 한다. Validation 어노테이션 @Size 문자 길이 측정 @NotNull null 불가 @NotEmpty null, "" 불가 @NotBlank null, "", " " 불..
Spring Boot_어노테이션 어노테이션 : 스프링 부트에서는 클래스와 메서드에 어노테이션을 추가하여 다양한 기능을 부여하도록 할 수 있다. Annotation 의미 @SpringBootApplication Spring boot application으로 설정 @Controller View(화면)를 제공하는 controller로 설정 @RestController REST API를 제공하는 controller로 설정 @RequestMapping URL 주소를 맵핑 @GetMapping Http GetMethod URL 주소 맵핑 @PostMapping Http PostMethod URL 주소 맵핑 @PutMapping Http PutMethod URL 주소 맵핑 @DeleteMapping Http DeleteMethod URL 주소 맵핑..