본문 바로가기 메뉴 바로가기

항해일지

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

항해일지

검색하기 폼
  • 분류 전체보기 (96)
    • Language (2)
      • JavaScript&TypeScript (0)
      • C&C++ (1)
    • BackEnd (40)
      • Java&Kotilin (26)
      • Spring (7)
    • DataBase (12)
      • MySQL (3)
      • MongoDB (2)
      • Redis (0)
    • Infrastructure (18)
      • Docker (1)
      • Git (1)
    • architecture (16)
      • Design Pattern (15)
      • DDD (1)
    • Algorithm (4)
    • 개발기 (2)
    • 생각 (1)
    • 독서 (1)
    • ETC (0)
  • 방명록

분류 전체보기 (96)
[Java] 다이나믹 프록시 (Dynamic Proxy)

다이나믹 프록시 ( Dynamic Proxy ) 💡 목적 Proxy 패턴 디자인 패턴에는 프록시 패턴이라는 것이 있는데 이 프록시 패턴은 어떤 특정 로직 전•후에 부가적인 작업을 진행하기 위한 방법이다. 다만 이 프록시 패턴을 구현을 통해 위 코드에서 문제점을 확인할 수 있다. 다른 구현체가 생성될 때 마다. ProxyHero와 같은 새로운 프록시 클래스가 매번 생성돼야 한다. fight()와 defend() 메서드 모두 같은 기능을 하고 있음에도 불구하고 중복된 코드를 작성해야 한다. 이 문제를 해결하기 위해 JDK에는 java.lang.reflection.Proxy (프록시 팩토리)가 런타임 시점에 Dynamic 하게 인터페이스에 대한 구현체를 생성해주는 기능을 제공한다. 📖  사용 예시 publ..

BackEnd/Java&Kotilin 2022. 7. 29. 12:10
가상화 (Virtualization)

가상화 단일 컴퓨터의 하드웨어 리소스들을 가상머신(VM) 이라고 하는 다수의 가상 컴퓨터로 분할할 수 있도록 하는 기술 운영체제 (Operating System) 하드웨어와 소프트웨어 자원을 운영 관리하는 프로그램 Mac ,Linux ,Window 특권 명령 (privileged instruction) 시스템 요소들과 소통할 수 있는 명령 ( OS 만 가능 ) OS 는 특권명령 때문에 하나의 하드웨어에서 하나만 가능함. 일반 프로그램은 특권 명령이 필요 없기 때문에 많은 프로그램을 동시 사용 가능하다. Bare-Metal ( ↔ 가상화 ) 일반적인 컴퓨터 처럼 하나의 하드웨어에 직접 OS가 설치된 상태 가상화의 역사 1세대 : 완전 가상화 (Fully Emulated) 모든 시스템 리소스가 에뮬레이터 안..

Infrastructure 2022. 7. 28. 06:54
샤딩(Sharding)이란?

샤딩 수평 분할과 수직 분할 수직 분할 이름에 맞게 수직으로 테이블을 나누는 것이다. 특정 컬럼을 다른 테이블로 쪼개서 저장하는 것을 의미한다. 제 3정규화와 다르게 이미 정규화가 된 테이블을 나누는 것이다. 자주 쓰는 특정 컬럼을 분리하여, 성능을 향상할 수 있다. 수평 분할 테이블을 로우를 기준으로 수평으로 분리하는 것을 의미한다. Key 값을 기반으로 여러 곳에 분산하여 저장한다. 샤딩 이란? 위 수평 분할과 같은 개념으로서, 같은 테이블 스키마를 가진 데이터를 다수의 데이터베이스에 분산 저장하는 방법을 의미한다. 장점 로우의 개수가 줄어 스캔 범위가 줄면서 쿼리의 속도가 빨라진다. Scaling Out 이 가능하다. 장애가 샤드 단위로 발생함. 단점 프로그래밍 및 운영적인 복잡도가 높아진다. 데이..

DataBase 2022. 7. 27. 08:24
JVM(Java Virtual Machine) 이란?

JVM( Java Virtual Machine ) 한 문장으로 설명하는 JVM OS에 종속적이지 않은 바이트 코드를 각 OS에 맞게 컴파일하고 실행하는 가상 머신 JVM은 클래스 파일(바이트 코드)을 메모리에 적재하고 실행(네이티브 코드로 컴파일)한다. 자바 언어에는 의존하지 않고 바이트 코드에 의존하는데 그렇기 때문에 바이트 코드로 컴파일될 수 있는 모든 언어(코틀린, 스칼라..)는 JVM위에서 실행될 수 있다. 자바 언어가 OS에 독립적일 수 있는 이유도 이 플랫폼에 종속적인 JVM이 중간단계로 있어 Java언어를 OS에서 분리하기 때문이다. JVM은 Java언어에 대해 알고 있지 않고, 바이트코드인 class 만 알고 있다. 바이트코드로 변환될 수 있는 모든 언어는 JVM위에서 실행 가능하다. j..

BackEnd/Java&Kotilin 2022. 7. 26. 08:04
이전 1 ··· 17 18 19 20 21 22 23 24 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • 메모리 단편화
  • 클린 아키텍처
  • 내부 단편화
  • Sticky Session
  • 메모리 파편화
  • ATDD
  • pass by reference
  • Clean Architecture
  • Session
  • 동적 타입 언어
  • Memory Fragmentation
  • 수평 분할
  • 외부 단편화
  • OOP
  • SpringBoot 2.2
  • RestAssured
  • 뾰족함
  • 객체 풀
  • Object Pool
  • 육각형 아키텍처
  • 정적 타입 언어
  • multimap
  • 세션 불일치
  • 수직 분할
  • pass by value
  • 동적 디스패치
  • 컴포짓 패턴
  • 장애 해결기
  • java
  • pool
more
«   2025/07   »
일 월 화 수 목 금 토
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바