본문 바로가기

반응형

JAVA

(22)
Filter와 Interceptor Filter (필터)Filter는 서블릿 컨텍스트(톰캣 등) 영역에서 동작하며, 클라이언트 요청이 가장 먼저 지나가는 단계특징 및 역할:가장 원시적인 요청 데이터 처리:HTTP 요청 데이터를 가공하거나 수정할 수 있는 첫 번째 단계입니다.예: 요청의 헤더 추가, 특정 조건에 따라 요청 차단.JSON Body 재사용:요청의 바디 데이터를 미리 읽어두고, 이를 다른 컴포넌트에서도 재사용할 수 있게 처리.변환 역할:요청 데이터를 다른 형식으로 변환하거나, 보안 검사를 추가적으로 수행.종속성 없음:Spring의 Bean 관리 시스템에 영향을 받지 않고, 서블릿 스펙에 기반해 동작합니다.주요 활용 사례:요청 로깅CORS 처리데이터 인코딩 변환  Interceptor (인터셉터)Spring에서 관리되는 Bean으로..
해시(Hash) 란? 해시(Hash) 자료구조는 저장 및 검색에서 매우 효율적으로 활용되며, 그 정확한 구현 방식에 따라 다양한 용도와 성능 차이를 보인다.해시 함수는 데이터에 대한 특정 값을 추출해 활용하는 알고리즘으로, 암호화, 블록체인, 메시지 인증 코드 등에서도 광범위하게 사용된다  해시(Hash)입력 데이터를 고정된 길이의 데이터로 변환하여 출력하는 값이 해시 값(Hash value) 혹은 해시 코드라고 불린다. 해시 함수를 통해 데이터의 키 값을 변환하여 얻은 정수 값은 배열의 인덱스로 사용되며, 이를 통해 데이터를 저장하거나 검색할 수 있다.   1. 자료구조의 특징키(key)와 데이터(value)를 매핑: 해시는 키를 데이터에 연결하는 구조이다.해시 함수를 통해 키의 데이터에 맞는 배열의 주소(인덱스)를 계산한..
DAO, DTO, VO,Entity 차이 DAO(Data Access Object)데이터베이스(DB)에 접근하여 데이터를 삽입, 삭제, 조회, 수정하는 기능을 제공하는 객체입니다. 데이터베이스 접근 로직과 비즈니스 로직을 분리하기 위해 사용DAO의 경우 DB와 연결할 Connection 까지 설정되어 있는 경우가 많다. 현재 많이 쓰이는 Mybatis 등을 사용할 경우 커넥션풀까지 제공, DAO를 별도로 만드는 경우는 드물다. DTO(Data Transfer Object)DTO는 계층간(Controller, View, Business Layer)데이터 교환을 위한 자바 빈즈(Java Beans)를 의미한다.주로 서비스 레이어에서 데이터를 주고받을 때 사용 특징:로직을 가지지 않는 순수한 데이터 객체로, 오직 데이터를 담기 위한 목적을 가진다.G..
맥북 톰켓 설치 톰켓 사이트 Apache Tomcat® - Apache Tomcat 10 Software DownloadsWelcome to the Apache Tomcat® 10.x software download page. This page provides download links for obtaining the latest version of Tomcat 10.1.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versitomcat.apache.org 톰켓 사이트 들어가서 원하는 버전 선택 mac 사용자는 Core에 zip 이나 tar.gz 아무거나 설치  그럼 Dow..
외장방식과 내장방식 외장 방식 = "전통방식"- 톰켓 같은 WAS(웹 애플리케이션 서버) 설치했다. - WAS 에서 동작하도록 서블릿 스펙에 맞추어 코드 작성- WAR 형식으로 빌드해서 war 파일 만듬- 만들어진 war 파일을 WAS에 전달→ WAS 기반 위에서 개발하고 실행 해야함, IDE 같은 개발 환경에서도 WAS와 연동해서 실행하는 복잡한 추가 설정 필요  내장서버  =  "최근방식"- 스프링 부트가 내장 톰캣을 포함- 애플리케이션에 톰켓 같은 WAS 라이브러리가 내장 되어 있음- (JAVA를 빌드하면 JAR 파일이 된다.) JAR 실행하만 하면 WAS도 함께 실행= main() 메서드만 실행하면 된다.
스프링 부트란? (역사, 탄생) 스프링은 너무 많아서 무거운데 자꾸 새로운게 개발되니까 더 무거워지기 시작했다. 그래서 많은 개발자들이 스프링은 무겁고 불편하다고 생각하고 있었는데, 이 문제를 해결하기 위해 등장한 것이 바로 스프링 부트  1. 톰캣 구동하지 않아도 되는 내장서버로 손쉽게 배포 가능2. 수많은 라이브러리 자동 관리3. 복잡한 구성 쉽게 4. 서로 다른 환경에서 개발할 때는 외부에 설정 값을 조정하는게 필요한데 이걸 편리하게 해줌5. 수많은 지표를 관리해 준다. EJB  - > Spring스프링 처음 프로젝트 설정하는데 시간이 많이 걸림(스프링을 이해해야 제대로 설치 가능 ㅠㅠ)스프링 프레임워크는 개발자들에게 많은 선택지를 줘서 초보자들은 설정 배워야 하는게 많았다.-> 무거운 스프링 라이브러리가 많으니 스프링 빈도 많아..