
우리가 웹 사이트를 사용할 때 보면, 중간에 컴퓨터를 종료했는데도 로그인이 여전히 된 상태로 이어지는 경우가 많이 있다. 이건 쿠키 때문인데, 이 쿠키 값만 알아내면 해킹은 매우 쉽다. 알아야 할 웹 보안 이슈 XSS 크로스 사이드 스크립팅(Cross-Site Scripting, XSS)은 웹 애플리케이션에서 발생하는 보안 취약점 중 하나. 이 취약점은 공격자가 웹 페이지에 악성 스크립트를 삽입하여 사용자의 브라우저에서 실행되도록 하는 것을 허용하는 상황에서 발생합니다. XSS는 주로 다음과 같은 세 가지 유형으로 나뉜다. 1) Stored XSS (저장형 XSS) 악성 스크립트가 웹 애플리케이션의 데이터베이스에 저장되고, 해당 데이터를 요청한 사용자에게 돌려주는 경우이다. 예를 들어, 공격자가 포럼 게..
온프레미스 환경 기업이나 조직이 자체적으로 운영하고 유지보수하는 IT 인프라와 소프트웨어 환경을 의미한다. 이 용어는 클라우드 컴퓨팅과 대조되며, 클라우드 서비스를 사용하는 것과는 다르게 조직이 자체적으로 데이터 센터나 서버를 보유하고 관리하는 환경을 나타낸다. 온프레미스 환경에서는 기업이나 조직이 자체적으로 하드웨어, 네트워킹, 데이터 스토리지, 소프트웨어 등을 구입하고 구축하여 운영한다. 이는 주로 기업의 보안 정책, 규정 준수, 데이터 소유권, 성능 요구사항 등을 고려할 때 선택되는 방식이다. 주요 특징은 다음과 같다. # 자체 운영 및 관리 온프레미스 환경에서는 조직이 자체적으로 하드웨어와 소프트웨어를 구입하고 유지보수를 담당합니다. 시스템 관리자와 IT 인프라 팀이 시스템을 운영하고 업그레이드한..

트랜잭션(Transaction) 트랜잭션은 데이터베이스에서 수행되는 논리적인 작업 단위를 말한다. 이는 한 번에 수행되어야 하는 일련의 연산들을 의미하며, 데이터베이스에서의 안정성과 일관성을 보장하기 위해 사용된다. 트랜잭션은 다음의 네 가지 기본 속성인 ACID 특성을 갖추고 있다. 원자성 (Atomicity) 트랜잭션의 모든 연산은 원자적인 단위로 간주되어, 전체 트랜잭션이 성공적으로 완료되거나 실패할 경우 모든 연산이 롤백되어야 한다. 즉, 트랜잭션은 성공적으로 완료되면 모든 변경 사항이 반영되고, 실패할 경우 모든 변경 사항이 취소되어 이전 상태로 돌아가야 한다. 일관성 (Consistency) 트랜잭션이 수행되기 전과 수행된 후에 데이터베이스는 일관된 상태를 유지해야 한다. 트랜잭션이 일관성 있..
Database의 다른 말은 사실 자료구조 이다. 대규모 테이블 약 10만건 이상에 해당 검색속도 증가가 가장 큰 목적 인덱스 검색속도는 B+Tree 구조가 가장 빠르다. 하지만 수정 등이 일어났을 때 가장 오버헤드가 크다. 일반적으로 우리가 데이터를 저장할 때는 DB에다가 쌓았다라는 것도 디스크에 File 형태로 2차 메모리에 들어간다. 선형 자료구조의 가장 worst case는 없는 것들 뒤졌을 때 발생한다. 인덱스를 설정해놓으면 없는 정보를 더 빠르게 알아낼 수가 있다. 물론 데이터베이스에서 Select를 하는 경우 조건을 따져서 데이터를 검색하고 메모리 로딩하는 과정은 선형으로 존재한다. 그런데 그 조건에 맞는 애들을 2차 메모리에 저장되어 있는 파일에서 추출할 때는 DB엔진에서 알아서 해준다.

APM(Application Performance Montoring) APM 솔루션의 기본 구성 요소 1) 트랜잭션 모니터링 애플리케이션의 각 트랜잭션을 모니터링하고 추적하여 성능 문제나 병목 현상을 식별한다. 트랜잭션 모니터링은 요청의 시작부터 끝까지의 모든 단계를 시간에 따라 기록하고, 각 단계에서의 지연이나 오류를 확인할 수 있다. 2) 성능 분석 APM은 애플리케이션 내부의 코드, 데이터베이스 쿼리, 외부 서비스와의 상호 작용 등에 대한 성능을 분석한다. 코드 레벨에서의 성능 분석을 통해 병목 현상이나 비효율적인 부분을 식별하여 최적화할 수 있습니다. 3) 로그 관리 APM은 애플리케이션에서 생성되는 로그를 수집하고 분석하여 장애나 오류의 원인을 파악한다. 로그 데이터는 애플리케이션의 동작 및 사..

먼저, GC의 종류 Serial GC 단일 스레드 환경 및 소규모 응용 프로그램을 위한 간단한 GC Minor GC에서 Copy & Scavenge 알고리즘 적용 Full GC에서 Mark & Compact 알고리즘 적용 Parallel GC JVM 기본 옵션(Java 8 기본) 멀티스레드 기반개수 지정 가능 으로 작동해 효율을 높임 Low-pause(응용 프로그램 중단 최소화) Throughput(Mark & Compact 알고리즘을 기반으로 신속성 최대화) Concurrent GC Low-pause 와 유사하며 응용 프로그램 실해 중 GC 실시 동작 중지 최소화 Incremental GC (Train GC) Concurrent GC와 유사하나 Minor GC 발생 시 Full GC GC를 일부 병행 ..
Heap 영역의 관리 관리는 크게 세 가지 구조적인 부분으로 나눌 수 있다. 새로운 객체 할당 객체가 생성될 때, 힙 영역에 메모리 공간을 할당한다. 객체의 크기에 따라 동적으로 메모리를 할당하며, 할당된 메모리는 객체의 데이터와 함께 초기화된다. 객체 사용 및 참조 생성된 객체는 프로그램의 다른 부분에서 참조됩니다. 이때, 힙 영역 내부에는 객체의 주소를 참조하는 레퍼런스 변수들이 존재합니다. 여러 레퍼런스 변수가 동일한 객체를 참조할 수 있으며, 객체의 필드나 배열 요소 등을 통해 객체 내부의 데이터에 접근할 수 있습니다. 가비지 컬렉션 (Garbage Collection) 힙 영역에서는 더 이상 참조되지 않는 객체들이 가비지 컬렉션에 의해 정리된다. 가비지 컬렉터는 주기적으로 실행되거나 힙 영역이 ..

이 부분이 잘 이해가 안 되어서 역할 구분에 대해 조금 더 찾아보았다. JVM Runtime data area 메소드 영역 (Method Area) 메소드 영역은 JVM의 런타임 데이터 영역 중 하나로, 클래스에 대한 정보를 저장한다. 클래스 로더에 의해 로드된 클래스의 바이트 코드, 정적 변수(static variable), 상수, 메소드 코드 등이 여기에 저장된다. 모든 스레드가 공유하는 영역으로, JVM이 시작될 때 생성되며 프로그램이 종료될 때까지 유지된다. Java 7 이전에는 Permanent Generation으로 알려져 있었지만, Java 8부터는 Metaspace로 대체됐다. 힙 영역 (Heap Area) 힙 영역은 동적으로 생성된 객체 인스턴스와 배열이 저장되는 영역이다. 프로그램 실행..