분류 전체보기 31

[SpringBoot] 스프링 배치란?

Spring Batch란 일괄처리를 위한 오픈 소스 프레임워크입니다. SpringBatch는 로깅/추적, 트랜잭션 관리, 작업 처리 통계를 포함하여 대용량 레코드 처리에 필수적인 재사용 가능한 기능을 제공합니다. job 다시 시작, 건너뛰기, 리소스 관리 등이 가능합니다. 또한 최적화 및 분할 기술을 통해 대용량 및 고성능 배치 작업을 가능하게 하는 고급 기술 서비스 및 기능을 제공합니다. 단순할 수도 있고 복잡할 수도 잇습니다. 대용량 배치 작업은 확장성이 뛰어난 방식으로 프레임워크를 활용하여 상당한 양의 정보를 처리할 수 있습니다. Spring Batch 용어 Job Job은 배치처리 과정을 하나의 단위로 만들어 놓은 객체입니다. 또한 배치처리 과정에 있어 전체 계층 최상단에 위치하고 있습니다. Jo..

SpringBoot 2023.12.16

[Java] 동적 프록시에 대해

프록시는 기존 코드에 영향을 주지 않으면서 타깃의 기능을 확장하거나 접근 방법을 제어할 수 있는 유용한 방법입니다. 하지만 데코레이터 패턴을 활용해서 부가적인 기능을 하는 코드를 클래스마다 매번 정의해야하고 클래스도 매번 넣어야 했습니다. 여기서 오는 코드의 중복과 다수의 클래스가 생겨났습니다. 이러한 문제점들을 해결해주는게 바로 동적 프록시입니다. 자바에서는 동적프록시를 어떻게 사용하는지 알아보겠습니다. 자바에서 동적프록시를 사용하기 위한 클래스 Proxy InvocationHandler 서비스로직 인터페이스 서비스로직 구현체 부가기능 구현체(InvocationHandler를 구현한) 위 그림에서 보면 Proxy클래스를 기반으로 동적 프록시가 생성되고 필드에 클래스 로더와 서비스로직 인터페이스 부가기능..

JAVA 2023.11.28

[JAVA] GC란?

GC란? 프로그램이 동적으로 할당했던(heap 영역) 메모리 영역 중 필요 없게 된 영역을 여러 알고리즘을 통해 해제하는 것입니다. 장점 - 메모리 누수 방지 - 해제된 메모리에 접근 방지 - 해제한 메모리 또 해제 방지 단점 - GC 작업은 순수 오버헤드 - 개발자는 언제 GC가 메모리를 해제하는지 모릅니다. Reference Counting 객체의 접근할 수 있는 카운팅 넘버를 통해 현재 참조중인지 확인하는 알고리즘 문제점 : 힙 객체가 서로 참조하고 있으면 순환참조로 GC제거 대상에서 제외된다 Mark And Sweap root로 부터 연결되어 있다면 rechable 연결되어 있지 않다면 unreachable 단점 의도적으로 GC를 실행시켜야 한다. 어플리케이션 실행과 GC 실행이 병행됩니다. Ro..

JAVA 2023.11.09

[NetWork] 면접을 위한 CS 전공지식 HTTP1.0 , 1.1, 2.0 의 특징

HTTP(Hyper Text Transfer Protocol)는 7계층을 대표하는 프로토콜로 웹 서비스 통신에 사용됩니다. HTTP/1.0 HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었습니다. 이는 RTT 증가를 불러옵니다. RTT증가란? 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간(패킷 왕복 시간) RTT의 증가를 해결하기 위한 방법 매번 연결할 때마다 RTT가 증가하니 서버에 부담이 많이 가고 사용자 응답 시간이 길어졌습니다. 이를 해결하기 위해 아래의 기술을 사용했습니다. - 스플리팅 - 코드 압축 - 이미지 Base64 인코딩 이미지 스플리팅이란 많은 이미지를 다운로드받게 되면 과부하가 걸리기 때문에 많은 이미지가 합쳐 있는 하나의 이미지를 다운..

Network 2023.11.03

[NetWork] 면접을 위한 CS 전공지식 IP 프로토콜이란?

IP(Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 정보를 주고받는데 사용하는 정보의 규약이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당합니다. IP 주소 체계 IPv4와 IPv6로 나뉩니다. IPv4는 32비트를 8비트 단위로 점을 찍어 표기하며, 123.45.67.89 같은 방식으로 IP를 나타내고 IPv6는 64비트를 16비트 단위로 점을 찍어 나타냅니다. 1001:db::ff00:42:8329 클래스 기반 할당 방식 IP 주소 체계는 A, B, C, D, E 다섯 개의 클래스로 구분하는 클래스 기반 할당 방식이며 네트워크 주소와 호스트 주소의 크기로 클래스를 나눕니다. A 클래스 0.0.0.0 ~ 127.255.255.2..

Network 2023.11.02