AJP(Apache JServ Protocol)란?AJP는 웹 서버(Apache)와 애플리케이션 서버(Tomcat) 간의 통신을 최적화하기 위한 바이너리 프로토콜이다.보통 Apache HTTP Server가 정적 파일을 처리하고, Tomcat이 동적인 요청(JSP, Servlet 등)을 처리하는 구조에서 사용된다. 특징빠른 데이터 전송HTTP는 텍스트 기반이지만, AJP는 바이너리 기반이라 데이터 전송 속도가 더 빠르다.요청과 응답 크기를 줄여 네트워크 부하를 줄일 수 있다.리버스 프록시 역할클라이언트는 Apache HTTP 서버로 요청을 보내고, Apache는 AJP를 통해 Tomcat에 전달한다.Tomcat이 응답을 생성한 후 Apache가 이를 다시 클라이언트에 반환한다.Persistent Con..
분류 전체보기

Reflection(리플렉션)클래스의 실체가 아닌 반사된 모습을 이용한 기능.Class 를 이용리플렉션 기능을 지원하지 않는 언어 : C, C++. Pascal사용되는 기술 : JPA, Jackson, Mockito, Junit ...장점 외부, 사용자 정의 클래스들을 사용할 수 있게 함접근제어자에 관계없이 접근이 가능하도록 함단점컴파일 시점이 아닌, 런타임 시점에 클래스를 분석JVM을 최적화할 수 없어 성능저하마찬가지로, 컴파일 에러 확인 불가코드 가독성 저하내부가 노출되어 추상화 파괴 Class실행중인 자바 어플리케이션의 클래스와 인터페이스의 정보를 가진 클래스클래스와 인터페이스의 정보를 가지고 있기 때문에, Class는 클래스의 내용을 모두 확인 가능(ex, 어노테이션, 생성자, 필드, 메서드, ..
환경) H2 DB 1. INSERT(UPDATE)update(query, ...) 를 사용하는 경우 추가된 행의 갯수를 반환받을 수 있다.@Overridepublic int insert(ReviewDto dto) { int result = jdbcTemplate.update( "INSERT INTO REVIEWS (SEQ, USER_SEQ, PRODUCT_SEQ, CONTENT, CREATE_AT) VALUES (null, ?, ?, ?, null)", dto.getUserSeq(), dto.getProductId(), dto.getContent() ); return result;} 2. SELECT쿼리를 통해 얻은 데이터 결과값을 dto, vo..
MapStruct는 객체끼리 매핑을 해주는 유용한 기능이다. 간단하게 아래의 예로 사용법을 알아보자.준비사항MapStruct는 Getter, Setter or builder 를 사용하기 때문에 lombok이 있으면 더욱 편리하게 사용할 수 있다.dependency 설정 시, Lombok 뒤에 MapStruct를 넣어줘야 정상적으로 실행 가능하다.매핑에 진행하기 앞서, 반드시 매핑을 진행하는 두 객체는 아래와 같은 설정을 해야 한다. 반환 타입의 객체: Builder or Setter 필요 (반환 타입의 객체에 데이터를 설정해야 하기 때문)파라미터 타입의 객체: Getter 필요(파라미터 객체의 데이터를 읽어야 하기 때문) Category.java (Entity)import jakarta.persiste..
- 알고리즘 분류 : 구현- 사용 언어 : JAVA- 문제 요점 - 바이러스의 번호가 낮은 순서부터 퍼트리면 된다. - 필자는 우선순위 큐와 큐를 이용해서 풀었다. - 소스에 보면 결국엔 큐를 이용해서 푸는데 그 이유로는, 우선순위 큐로도 가능하지만 우선순위큐에 넣게되면 넣을 때마다 정렬을 하기 때문에 큐에다가 넣은 것. 소스 설명은 주석을 참고해주세요.import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.PriorityQueue;import java.util.Queue;import java.util...

이 포스팅에서 작성하는 내용은 더 자바, 애플리케이션을 테스트하는 다양한 방법 에서 발췌하였습니다.https://inf.run/CpvH 더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., - 강의 소개 | 인프런...www.inflearn.comJMeter?성능, 부하 테스트를 지원하는 자바 오픈 소스 애플리케이션다양한 형태의 애플리케이션도 지원한다.HTTPS/HTTPSMTP, POP3, IMAPFTPJDBCSOAP, REST...GUI 프로그램이 아닌 CLI 환경에서도 테스트가 가능하다.즉, JMeter가 서버에 많은 요청을 보냈을 때, 서버..

스트림 스트림은 어떤 소스로부터 어떤 스트림을 얻고, 하나 이상의 중간 작업을 수행한 후, 마지막으로 하나의 최종 작업을 수행한다. 중간 작업 : filter, map, flatMap, peel, distinct, sorted, limit, substream 최종 종료 작업 : forEach, toArray, reduce, collect, min, max, count, anyMatch, allMatch, noneMatch, findFirst, findArray 를 포함한다. Java8 부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 처리해주는 반복자이다. Reduction 대량의 데이터를 가공해 축소하는 것 데이터의 합계, 평균값, 카운팅, 최댓값, 최소값 필터링, 매핑, ..

Java 8의 특징 Interface에 default 메서드, static 메서드 사용 가능 자바 8 이전까지 Interface의 abstract 메서드는 반드시 클래스에서 구현했어야 함. 인터페이스에 absrtact 메서드를 추가했다면, 그 인터페이스를 사용한 모든 클래스에서 그 메서드를 구현했어야 함 (바이너리 호환성 이슈) 자바 8이후로 default, static 메서드 사용이 가능 람다식 사용 가능, 람다를 이용해서 스트림API 사용 가능(람다는 Java8 기능 중 큰 변화) Time, Date 관련한 API 추가 함수형 프로그래밍(Functional Programming) 계산을 수학적 함수의 평가로 취급하고, 변경 불가능한 값을 이용 함수형 프로그래밍은 순수 함수들로만 작성된다. 순수함수 :..