기술 스텍

String 과 다른 클래스 비교 String, String Builder, String Buffer 모두 String을 사용하기 위해 사용되는 문자열 클래스들입니다. 이렇게 클래스를 분리해서 사용하는 이유에 대해 알아보겠습니다. 우선 문자열을 할당하고, 해당 문자열을 변경해보겠습니다. String str = "Hello"; System.out.println("str : "+System.identityHashCode(str)); StringBuilder sb = new StringBuilder("Hello"); System.out.println("sb : "+System.identityHashCode(sb)); StringBuffer sf = new StringBuffer("Hello"); System...
트랜잭션은 ACID를 통해 설계됩니다. 원자성(Atomicity), 일관성(Consistency), 격리(Isolation) 그리고 영속성(Durability) 그리고 멀티 스레드를 적용할 때 스레드 간 공유자원을 가지고 동작합니다. 이 과정에서 공유자원을 동시에 사용하는 과정에서 문제가 발생하곤 합니다. 이를 동시성 문제라고 합니다. 동시성 문제를 해결하기 위한 해결방법이 락(Lock)입니다. JavaCode를 통한 Lock 락에 대해 천천히 고도화 시켜보겠습니다. public class Product() { private Long productId; private String name; private Long count; // 물건 개수 private Long price; public void buy..
개요가비지 컬렉션(Garbage Collection)은 프로그래밍에서 메모리 관리를 위한 개념입니다. 이는 JVM에서 사용되는 JRE 중에 하나입니다. 프로그램 실행 과정에서 사용하는 메모리 영역 중에서더 이상 사용되지 않는 메모리를 자동으로 찾아내고 해제하는 프로세스를 의미합니다. C언어를 사용하면 malloc() 으로 메모리를 할당하고  free() 함수를 통해 해제하지만Java나 Kotlin의 경우 개발자가 메모리를 직접 해제해주는 일이 없습니다.그 이유는 가비지 컬렉터가 불필요한 메모리를 알아서 정리해주기 때문입니다. 이를 GC(Garbage Collection)라고 부릅니다. Person person = new Person();person.setName("Me");person = null;// ..
Spring에서 MSA를 사용하는 경우 서버는 고가용성을 가질 필요가 있고, 하나의 서버가 터졌을 때 다른 서비스까지 되지 않는 로직은 사이트의 규모가 커질수록 경제적 손해가 큽니다. Netflix에서 개발된 서비스 디스커버리 툴이 공개되고 나서 Eureka는 다음과 같은 장점을 가집니다. 1. 서비스 디스커버리 - 수십, 수백개의 서버의 url을 모두 외워서 적용시키는 것은 개발적 loss가 큽니다. 따라서 서버이름을 통해 lb:severname을 통해 맵핑을 시킨다면 해당 서버의 위치를 조회할 수 있습니다. 2. 로드 벨런싱 - eureka서버는 상태를 주기적으로 체크합니다. 응답하지 않는 서비스에 있어서 장애 서비스에 요청을 보내는 것을 방지할 수 있습니다. 3. 자동 장애 복구 - 서비스가 장애 ..
시이지
'기술 스텍' 카테고리의 글 목록 (5 Page)
상단으로