TIL
![[TIL] @Transactional](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fry5p1%2FbtsLLsCO1Y5%2FhJGANQ1pyaohZYXzMuP4vK%2Fimg.png)
[TIL] @Transactional
@Transactional 이란? @Transactional 은 선언적 트랜잭션 방식으로, Spring 에서 Transaction 처리를 위해 제공하는 어노테이션이다. Spring은 Transaction처리를 위해 Spring AOP를 사용한다. 이때, @Transaction 어노테이션이 붙은 메서드 호출 결과에 따라 Transaciton Commit, Rollback 동작이 일어난다. ( Rollback은 Unchecked Exception) @Transactional 어노테이션이 붙은 메서드가 호출되면 다음과 같은 동작이 일어난다.Transaction Manager 선별Datasource로부터 Connection 객체를 얻어오고 이를 ConnectionHolder에 넣고 트랜잭션 동기화 매니저를 통..
![[TIL] GC](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzQLKj%2FbtsLDb3ujPj%2FZY36tHyZXxKKjOu4rV4KmK%2Fimg.png)
[TIL] GC
GC (Garbage Collection)프로그램이 동적으로 할당했던 메모리 영역 중 필요 없기 된 영역을 알아서 해제해주는 기능동적으로 할당했던 메모리 → Heap필요 없게 된 영역 → 어떤 변수도 가리키지 않음장점메모리 누수 해결해제된 메모리 접근해제한 메모리 중복 해제단점GC 작업은 순수 오버헤드개발자가 언제 GC를 실행하는지 알기 어려움GC 알고리즘1. Reference CountingRoot Space 에서 Heap 영역에 선언된 객체들이 별도의 Count를 가지고 있음이때 Count는 해당 객체에 접근할 수 있는 방법의 개수를 뜻함reference count 가 0이라면 GC 대상이 됨순환 참조시 GC 대상에 포함되지 않는다는 단점이 있음 2. Mark And SweepRoot에서부터 그래프 ..
[TIL] HTTP 버전별 특징
HTTP란?인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다.클라이언트가 HTTP를 통해 요청(request)하면 서버가 요청을 처리해서 응답(response)한다. 이를 통해, 클라이언트와 서버의 역할이 분리되어 각자의 역할에 집중할 수 있게 된다. 특징Stateless - 무상태서버가 클라이언트의 상태를 보존하지 않는다.상태 유지가 필요한 경우, 세션과 쿠키를 이용한다.세션 : 서버에 인증하기 위한 클라이언트의 정보를 서버 단에서 저장 및 관리하는 방식쿠키 : 서버에 인증하기 위한 클라이언트의 정보를 클라이언트 단에 저장하는 값서버가 클라이언트의 상태를 관리하지 않기 때문에 서버 확장(scale-out)에 용이하다.Connectionless - 비연결성HTTP/1.0 ..
[TIL] SQL Injection
SQL Injection이란?악의적인 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 공격 방법 SQL Injection 종류1. Error based SQL InjectionSQL 쿼리에 고의적으로 오류를 발생시켜 출력되는 에러의 내용으로 필요한 정보를 찾아내는 공격 기법 잘못된 문법이나 자료형 불일치 등에 의해 웹 브라우저에 표시되는 데이터베이스 오류를 기반으로 수행되는 공격 기법이다. 공격자는 해당 오류를 바탕으로 데이터베이스명, 테이블, 컬럼 정보 등을 파악할 수 있다. 2. Union based SQL Injection공격자가 Union을 이용하여 원래의 요청에 추가 쿼리를 삽입하여 정보를 얻어내는 공격 기법 UNION 하려는 두 테이블의 컬럼 수와 데이터 타입이 같아야 하기..
![[TIL] AWS 인프라 및 서비스 개요](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnOJko%2FbtsLaFwPI3x%2FNYvdjzn7sM6S1Phu5hetdk%2Fimg.png)
[TIL] AWS 인프라 및 서비스 개요
AWS 클라우드의 활용방식정교하고 확장성 높은 애플리케이션 구현엔터프라이즈 급 애플리케이션 만드는 데 사용API 요청 오차 없이 처리수천건 → 수만건 API 요청 급격한 증가에도 처리 가능 다양한 산업군의 IT 인프라, 리소스 니즈에 대응글로벌 산업과 관련된 수많은 보안 표준 준수 가능 기업용 IT 서비스, 백업 및 스토리지, 빅데이터 분석“데이터 백업” : 데이터를 안전하게 보존하기 위한 기본 방법AWS는 99.999999999%의 신뢰성을 지닌 S3라는 스토리지이자 백업 리소스 제공 글로벌 고객에게 웹 서비스, 모바일 앱 서비스 제공AWS는 글로벌 인프라를 바탕으로, 거의 즉각적으로 글로벌 레벨에 확장가능한 리소스 제공본사 혹은 지사등 내부 직원용이라면 IAM이라는 신분확인 및 권한부여 체계가 적합다..
[TIL] DB 트랜잭션
트랜잭션이란?데이터베이스의 상태를 변환시키는 하나의 논리적 작업 단위 트랜잭션의 예로는 계좌 간의 자금 이체 상황을 들 수 있다.예시) 사용자 A가 사용자 B에게 10만 원을 송금한다.* DB 작업- 1. 사용자 A의 계좌에서 10만 원을 차감한다 : UPDATE 문을 사용해 사용자 A의 잔고를 변경- 2. 사용자 B의 계좌에 10만 원을 추가한다 : UPDATE 문을 사용해 사용자 B의 잔고를 변경* 작업 단위 : 출금(UPDATE문) + 입금(UPDATE문)→ 이를 통틀어 하나의 트랜잭션이라고 한다.- 위 두 쿼리문 모두 성공적으로 완료되어야만 "하나의 작업(트랜잭션)"이 완료되는 것이다. `Commit`- 작업 단위에 속하는 쿼리 중 하나라도 실패하면 모든 쿼리문을 취소하고 이전 상태로 돌려놓아야한..
[TIL] 데이터베이스 JOIN
조인이란?하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것 관계형 데이터베이스에서 각 테이블은 관계를 갖게 된다. 이때, 서로 관계있는 데이터가 여러 테이블로 나뉘어 저장되었을 때, 각 테이블에 저장된 데이터를 효과적으로 검색하기 위해 조인을 사용한다. 조인을 작성하는 방식에 따라 성능이 좌우되기 때문에 어떤 질의를 수행할 것인지 명확하게 정희한 후, 비효율을 제거하여 최적의 SQL을 작성해야 한다. 조인의 종류로는 내부 조인(Inner Join), 왼쪽 조인(Left Outer Join), 오른쪽 조인(Right Outer Join), 합집합 조인(Full Outer Join)이 있다. 조인의 종류1. 내부 조인(Inner Join)교집합 => 기준 테이블과 조인 테이블..