전체 글

개발 관련 새롭게 알게 된 지식이나 좋은 정보들을 메모하는 공간입니다.
· etc
AJP(Apache JServ Protocol)란?AJP는 웹 서버(Apache)와 애플리케이션 서버(Tomcat) 간의 통신을 최적화하기 위한 바이너리 프로토콜이다.보통 Apache HTTP Server가 정적 파일을 처리하고, Tomcat이 동적인 요청(JSP, Servlet 등)을 처리하는 구조에서 사용된다.  특징빠른 데이터 전송HTTP는 텍스트 기반이지만, AJP는 바이너리 기반이라 데이터 전송 속도가 더 빠르다.요청과 응답 크기를 줄여 네트워크 부하를 줄일 수 있다.리버스 프록시 역할클라이언트는 Apache HTTP 서버로 요청을 보내고, Apache는 AJP를 통해 Tomcat에 전달한다.Tomcat이 응답을 생성한 후 Apache가 이를 다시 클라이언트에 반환한다.Persistent Con..
· BE/Java
Reflection(리플렉션)클래스의 실체가 아닌 반사된 모습을 이용한 기능.Class 를 이용리플렉션 기능을 지원하지 않는 언어 : C, C++. Pascal사용되는 기술 : JPA, Jackson, Mockito, Junit ...장점 외부, 사용자 정의 클래스들을 사용할 수 있게 함접근제어자에 관계없이 접근이 가능하도록 함단점컴파일 시점이 아닌, 런타임 시점에 클래스를 분석JVM을 최적화할 수 없어 성능저하마찬가지로, 컴파일 에러 확인 불가코드 가독성 저하내부가 노출되어 추상화 파괴  Class실행중인 자바 어플리케이션의 클래스와 인터페이스의 정보를 가진 클래스클래스와 인터페이스의 정보를 가지고 있기 때문에, Class는 클래스의 내용을 모두 확인 가능(ex, 어노테이션, 생성자, 필드, 메서드, ..
· BE/Spring
환경) 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..
· BE/Java
MapStruct는 객체끼리 매핑을 해주는 유용한 기능이다. 간단하게 아래의 예로 사용법을 알아보자.준비사항MapStruct는 Getter, Setter or builder 를 사용하기 때문에 lombok이 있으면 더욱 편리하게 사용할 수 있다.dependency 설정 시, Lombok 뒤에 MapStruct를 넣어줘야 정상적으로 실행 가능하다.매핑에 진행하기 앞서, 반드시 매핑을 진행하는 두 객체는 아래와 같은 설정을 해야 한다. 반환 타입의 객체: Builder or Setter 필요 (반환 타입의 객체에 데이터를 설정해야 하기 때문)파라미터 타입의 객체: Getter 필요(파라미터 객체의 데이터를 읽어야 하기 때문)  Category.java (Entity)import jakarta.persiste..