LUNA's Archive

고정 헤더 영역

글 제목

메뉴 레이어

LUNA's Archive

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (77) N
    • C (2)
    • C++ (1)
    • Data Structure & Algorithm (9)
    • Computer Vision (0)
    • RDBMS (18) N
    • Spring Framework (4)
    • Network (8)
    • Spring Webflux (2)
    • Java (10) N
    • 대규모 설계 기초 (12)
    • Spring Data JDBC (5)
    • Spring Security (4)
    • JPA (0)
    • Spring Batch (0)
    • Infra (2)

검색 레이어

LUNA's Archive

검색 영역

컨텐츠 검색

분류 전체보기

  • 커넥션 풀

    2024.11.17 by Wanderer Kim

  • Concurrent Random Number

    2024.09.24 by Wanderer Kim

  • Bean Lifecycle

    2024.08.18 by Wanderer Kim

  • [자바 성능 튜닝] 성능 테스트 접근법

    2024.04.07 by Wanderer Kim

  • SOAP 통신

    2024.04.02 by Wanderer Kim

  • OLTP vs OLAP

    2024.03.03 by Wanderer Kim

  • ThreadLocal

    2024.02.28 by Wanderer Kim

  • [System Design Interview] 15장 구글 드라이브 설계

    2023.11.04 by Wanderer Kim

커넥션 풀

데이터베이스 커넥션 획득 과정의 문제점데이터베이스 커넥션을 획득할 때는 아래와 같은 복잡한 과정을 거친다.1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회한다.2. DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 이 과정에서 TCP/IP/ 연결을 위한 네트워크 동작이 발생한다.3. DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달한다.4. DB는 ID,PW를 통해 내부 인등을 완료하고, 내부에 DB 세션을 생성한다.5. DB는 커넥션 생성이 완료되었다는 응답을 보낸다.6. DB 드라이버는 커넥션 객체를 생성해서 클라이언트에 반환한다. 이렇게 커넥션을 새로 만드는 것은 과정도 복잡하고 시간도 많이 소모된다.DB는 물론이고 애플리케이션 서버에서도 TC..

Spring Data JDBC 2024. 11. 17. 19:01

Concurrent Random Number

특정한 랜덤 숫자 값을 구하는 방법 몇 가지를 알아본다java.util.Random 이용int high = 1000;int low = 100;Random random = new Random();for(int i=0; iRandom 클래스틑 특정 값을 기준으로 int, long, double, float 등의 값을 불특정하게 생성할 수 있으며 위의 예제는 하윗값과 상윗값 사이의 값을 생성하기 위해 응용한 것이다. java.math 이용int high = 1000;int low = 100;for(int i=0; iMath.random 메서드는 0.0부터 1.0 사이의 double 값을 무작위로 리턴한다. 그래서 특정한 하윗값과 상윗값 사이에서 새로운 번호를 받고자 한다면 그 값만큼 곱패주면 된다.이렇게 새로..

Java 2024. 9. 24. 18:41

Bean Lifecycle

스츠링에서는 IoC 컨테이너가 Bean 객체들을 책입지고 의존성을 관리한다.여기서 객체들을 관리한다는 것은 객체의 생성부터 소멸까지의 생명주기 관리를 개발자가 아닌 IoC 컨테이너가 대신 해준다는 의미이다. 스프링 빈 라이프 사이클스프링 Bean의 LifeCycle을 아래와 같다.스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메소드를 통해 초기화 시점을 알려주며, 스프링 컨테이너가 종료되기 직전에도 소멸 콜백 메소드를 통해 소멸 시점을 알려준다. 빈 생명주기 콜백 3가지 방법스프링은 3가지 방법으로 빈 생명주기 콜백을 관리한다. 인터페이스(InitializingBean, DisposableBean)설정 정보에 초기화 메소드, 종료 메소드 지정@PostConstruct, @PreDestroy ann..

Spring Framework 2024. 8. 18. 17:55

[자바 성능 튜닝] 성능 테스트 접근법

실제 애플리케이션을 테스트하자 마이크로벤치마크 마이크로벤치마크는 동기화 메서드 대비 비동기화 메서드를 호출하는 데 걸리는 시간, 스레드를 한 개 생성하거나 스레드 풀을 이용할 때의 오버헤드, 산술 알고리즘 한 개 대비 대체 구현체를 실행하는 데 걸리는 시간 등 매우 작은 단위의 성능을 측정하도록 걸계된 테스트다. 벤치마크는 반드시 직접적인 결과를 사용해야하만 한다 마이크로벤치마크에는 관련 없는 동작을 포함해서는 안 된다 마이크로벤치마크는 정확한 입력 값을 측정해야 한다 매크로벤치마크 애플리케이션 성능을 측정하기에 가장 좋은 것은 관련 외부 자원을 포함한 애플리케이션 자체다. 애플리케이션이 LDAP을 이용해서 사용자의 권한을 확인한다면 동일한 모드에서 테스트해야 한다. DLAP 호출을 무시하면 모듈 단위의..

Java 2024. 4. 7. 21:48

SOAP 통신

SOAP이란? SOAP의 풀네임은 "Simple Object Access Protocol"로, HTTP, HTTPS, STMP등을 사용하여 XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 통신 프로토콜입니다. 서로 다른 서비스들간의 연동을 목적으로 상호 이해 가능한 포맷의 메세지를 송수신함으로써 원격지에 있는 서비스 객체나 API를 자유롭게 사용하고자 하는 기업의 요구에서부터 탄생한 프로토콜입니다. 동작 방식 Web Service Broker : 서비스 등록 및 검색, 저장, 관리하는 주체 Web Service Provider : 웹 서비스를 구현하여 운영하고 제공하는 주체 Web Service Consumer : 웹 서비스를 요청하는 주체 UDDI(Universal Description, Disc..

Network 2024. 4. 2. 21:35

OLTP vs OLAP

OLTP vs OLAP OLTP(Online Transaction Processing)? OLTP란 온라인 트랜잭션 처리를 말하며, 네트워크 상의 온라인 사용자들의 database에 대한 일괄 트랜잭션 처리를 의미한다. 흔히 말하는 트랜잭션 처리를 OLTP라 부른다. 트랜잭션의 주 특징은 그루핑된 연산의 실패시 rollback이 지원된다는 점이다. 주로 대규모의 처리보다는 소규모의 정교한 데이터 구성이 필요한 데이터의 처리가 중점이 된다. OLAP(Online Analytical Processing)? OLAP란 databse 자체적으로 운용되는 시스템이라기 보다는 데이터 웨어하우스 등의 시스템과 연관되어 데이터를 분석하고 의미있는 정보로 치환하거나, 복잡한 모델링을 가능하게끔 하는 분석 방법을 말한다...

RDBMS 2024. 3. 3. 21:19

ThreadLocal

ThreadLocal은 쓰레드당 접근 가능한 데이터를 저장하도록 해주는 API이다 예를 들어 Integer 타입의 값을 저장하고 싶으면 아래와 같이 ThreadLocal을 선언하면 된다. ThreadLocal threadLocalValue = new ThreadLocal(); 값의 저장과 조회는 get(), set() 메서드를 통해서 수행할 수 있다. threadLocalValue.set(1); // 1을 저장 Integer result = threadLocalValue.get(); // 해당 쓰레드에 저장되어 있는 값을 조회 -> 1 ThreadLocal.withInitial() 메소드를 이용하면 ThreadLocal 생성 시 초기값을 지정할 수 있다. ThreadLocal threadLocal = T..

Java 2024. 2. 28. 21:37

[System Design Interview] 15장 구글 드라이브 설계

구글 드라이브란? 파일 저장 및 동기화 서비스로, 문서, 사진, 비디오, 기타 파일을 클라우드에 보관할 수 있도록 한다. 아울러 보관된 파일은 친구, 가족, 동료 들과 손쉽게 공유할 수 있어야 한다. 1단계 문제 이해 및 설계 범위 확정 설계 범위 파일 업로드/다운로드, 파일 동기화, 알림 기능들을 지원해야 한다. 모바일 앱과 웹 모두 지원해야 한다. 파일 암호화 기능을 지원해야 한다. 파일 크기는 10GB로 제한해야 한다. 일간 능동 사용자 천만명을 지원해야 한다. 이번 장에서 집중할 기능들 파일 추가 가장 쉬운 방법은 파일을 구글 드라이브 안으로 떨구는 것이다. 파일 다운로드 여러 단말에 파일 동기화 한 단말에서 파일을 추가하면 다른 단말에도 자동으로 동기화되어야 한다. 파일 갱신 이력 조회 파일 공..

대규모 설계 기초 2023. 11. 4. 22:39

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 5 6 ··· 10
다음
TISTORY
LUNA's Archive © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바