DEV/Java

· DEV/Java
Spring의 코드 분리 단일 책임 원칙(Single Responsibility Principle, SRP)에 따라서 주어진 예제를 리팩토링 하면서 관심사 분리 즉 코드 분리를 해보자 코드 분리의 기준은 아래와 같다. 관심사 분리: 각 부분이 서로 다른 목적을 가진 코드로 분리 변하는 것과 변하지 않는 것의 분리: 이는 코드 내에서 변동성이 큰 부분과 그렇지 않은 부분을 분리하는 것을 의미합니다 일반적으로 자주 변경되는 로직은 분리하여 관리함으로써 코드의 유연성을 높이고, 유지보수를 용이하게 합니다. 반대로 변동성이 적은 부분은 안정적인 기능을 제공하는 코드로서 그 자체로 응집력을 갖도록 관리합니다. 공통 코드와 중복 코드의 분리: 코드 베이스 내에서 반복적으로 사용되는 부분(공통 코드)이나 같은 기능을..
· DEV/Java
Spring Response와 Request Servlet은 무엇인가 서블릿은 웹 브라우저(클라이언트)와 서버 간의 대화에서 중개인과 같습니다. 브라우저에서 요청을 수신하고 처리하고 응답을 다시 보내는 서버에서 실행되는 작은 프로그램입니다. 스프링 프레임워크의 맥락에서 우리는 종종 특별한 종류의 서블릿인 DispatcherServlet에 대해 이야기합니다. 점포의 점장이라고 생각하시면 됩니다. 고객(요청)이 매장에 들어오면 관리자(DispatcherServlet)가 고객을 올바른 부서(컨트롤러)로 안내합니다. 부서에서 고객이 필요로 하는 모든 것을 갖추면(요청 처리) 관리자는 고객이 이를 받도록 합니다(응답 보내기). 즉, DispatcherServlet은 모든 요청을 수신하고 처리를 위해 보낼 위치를 ..
· DEV/Java
Spring의 HTTP 처리 Spring 프레임워크에서 클라이언트, 서버, 컨트롤러 및 요청 매핑 간의 흐름을 이해하는 것을 목적으로 기술합니다 TIP 1 Spring 프레임워크에서 컨트롤러 내부의 메소드는 일반적으로 정적이 아닌 인스턴스 메소드입니다. 이는 Tomcat이 각 요청을 처리하기 위해 컨트롤러의 인스턴스를 생성하기 때문입니다. 이렇게 하면 각 요청이 별도의 컨트롤러 인스턴스에서 처리되므로 확장성과 스레드 안전성이 향상됩니다. TIP 2 WAR 파일(웹 응용 프로그램 리소스 또는 웹 응용 프로그램 ARchive)의 경우 Tomcat과 같은 모든 서블릿 컨테이너 또는 응용 프로그램 서버에 배포할 수 있는 응용 프로그램용 패키지입니다. 이 파일을 내보내고 원격으로 전송하여 AWS와 같은 서버에 직..
· DEV/Java
Aspect-oriented Programming (AOP) AOP(Aspect-Oriented Programming)는 교차 편집 문제를 분리하여 모듈성을 높이는 것을 목표로 하는 프로그래밍 패러다임입니다 교차 편집 문제는 로깅, 보안 및 트랜잭션 관리와 같은 다른 부분에 영향을 미치는 프로그램의 일부입니다 이러한 종류의 문제는 종종 코드를 분산시키거나 엉키게 하여 전통적인 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 달성하고자 하는 문제의 분리를 위반합니다. AOP는 OOP에 추가 차원을 추가하여 이러한 문제를 해결합니다. AOP에서 모듈성의 주요 단위는 aspect Aspect는 여러 클래스에 영향을 미치는 동작을 재사용 가능한 모듈로 캡슐화합니다. 결과적으로 ..
· DEV/Java
Spring Spring 프로젝트 template 생성해주는 웹 사이트 Spring Framework의 주요 기능 의존성 주입/제어 반전(IoC) Spring 프레임워크의 핵심 IoC Container를 통해 생성에서 소멸까지 Java 객체를 관리 Spring은 종속성 주입을 사용하여 구성 요소를 독립적으로 개발하고 테스트 Aspect-oriented programming (AOP) 이 기능은 aspect의 교차 편집 문제 모듈화 Spring AOP(Aspect Oriented Programming)는 대부분의 엔터프라이즈 애플리케이션에서 필요한 로깅, 보안, 트랜잭션 관리와 같은 기능을 구현하는 데 사용 Spring MVC 다른 프레임워크와의 통합 Spring은 Hibernate, JPA, Struts..
· DEV/Java
Java의 Hook Method Java의 후크 메서드는 기본 클래스에서 선언되지만 해당 동작을 사용자 지정하기 위해 하위 클래스에서 재정의되는 메서드입니다. 이러한 메서드는 미리 정의된 워크플로 또는 일련의 작업에 삽입할 수 있는 사용자 지정 코드의 자리 표시자 역할을 합니다 즉 기본 코드를 변경할 필요 없이 코드 설계의 유연성을 높이고 코드 재사용을 촉진할 수 있습니다 Java 컨텍스트에서 후크 메서드는 기본 클래스에서 알고리즘의 골격을 정의하는 방법을 제공합니다 또는, 하위 클래스가 후크 메서드를 재정의하여 알고리즘의 특정 단계를 사용자 지정할 수 있는 템플릿 메소드 디자인 패턴을 구현하는 데 일반적으로 사용됩니다. 이를 통해 일반 프레임워크 구성 요소를 재사용하고 애플리케이션별 논리를 실행할 수 ..
· DEV/Java
Java의 보조 스트림 실제 읽기/쓰기 스트림이 아닌 보조 기능을 제공하는 스트림 FilterInputStream 및 FilterOutputStream은 보조 스트림의 상위 클래스입니다. 다른 스트림(기본 스트림 또는 다른 보조 스트림)을 생성자의 매개변수로 사용 데코레이터 패턴(Decorator Pattern)으로 주로 구현한다 기능을 만들기 위해서는 상속을 주로 쓰지만 이 경우에는 코드가 지저분해지기 때문이다 상위 클래스 생성자 생성자 설명 protected FilterInputStream과(InputStream in) 생성자의 매개변수로 InputStream을 받습니다. public FilterOutputStream(OutputStream out) 생성자의 매개변수로 OutputStream을 받습니..
· DEV/Java
Java의 문자 단위 입출력 Reader Reader는 문자별 입력 스트림에 대한 최상위 추상 클래스입니다. 많은 추상 메서드가 선언되고 하위 스트림이 이를 상속하고 구현합니다. 주요 하위 클래스 클래스 설명 FileReader 파일에서 문자 단위로 읽는 스트림 클래스입니다. InputStreamReader 바이트 단위로 읽은 자료를 문자로 변환해주는 보조 스트림 클래스 입니다. BufferedReader 문자로 읽을 때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공하는 보조 스트림입니다. 주요 메서드 메서드 설명 int read() 파일로부터 한 문자를 읽습니다. 읽은 문자를 반환합니다. int read(char[] buf) 파일로부터 buf 배열에 문자를 읽습니다. int read(char[] ..
· DEV/Java
Java의 바이트 단위 입출력 InputStream 바이트 수준 입력 스트림에 대한 최상위 추상 클래스입니다 주요 하위 클래스에는 FileInputStream, ByteArrayInputStream, FilterInputStream이 포함됩니다. 이러한 클래스에는 파일 또는 바이트 배열 메모리에서 바이트 단위로 데이터를 읽고 기본 스트림에서 데이터를 읽을 때 추가 기능을 제공하는 메서드가 있습니다. InputStream은 읽으려는 파일이 없을 경우 Not Found 에러를 발생시킵니다 주요 하위 클래스 스트림 클래스 설명 FileInputStream 파일에서 바이트 단위로 자료를 읽습니다. ByteArrayInputStream byte 배열 메모리에서 바이트 단위로 자료를 읽습니다. FilterInput..
· DEV/Java
Java의 입출력 스트림 Java의 입/출력(I/O) 스트림은 파일, 키보드, 마우스, 네트워크 및 메모리와 같은 다양한 I/O 장치에서 데이터를 읽고 쓰는 일관된 방법을 제공합니다. 스트림은 일종의 추상적인 흐름이며, 관련 클래스가 많다 또한 예외처리를 많이 해야하기 때문에 배우는데 어려움이 있을 수 있다! 입출력 스트림 구분 대상 기준 : 입력 스트림 / 출력 스트림 자료의 종류 : 바이트 스트림 / 문자 스트림 기능 : 기반 스트림 / 보조 스트림 입력 스트림과 출력 스트림 입력 스트림 : 대상으로부터 자료를 읽어 들이는 스트림 출력 스트림 : 대상으로 자료를 출력하는 스트림 바이트 단위 스트림과 문자 단위 스트림 바이트 단위 스트림 : 동영상, 음악 파일, 실행 파일등의 자료를 읽고 쓸 때 사용 ..
berom
'DEV/Java' 카테고리의 글 목록 (5 Page)