전체 글(54)
-
what is redis?
레디스란? Redis(Remote Dictionary Server)는 오픈 소스 인메모리 키-값 데이터 저장소로 주로 인메모리 데이터베이스, 캐시, 메시지 브로커, 큐로 사용됩니다. 오늘날 대부분의 최신 애플리케이션은 Redis를 캐시 서버로 사용합니다. 캐싱이 필요한 이유는 무엇입니까? 캐싱은 불필요한 네트워크 호출, 데이터베이스 호출 및 하드 디스크에 대한 반복적인 읽기-쓰기 작업을 방지하여 응용 프로그램 성능을 향상시키는 데 주로 사용됩니다. 예를 들어 애플리케이션이 국가 마스터, 언어 마스터, 애플리케이션 구성 등과 같은 일부 정적 데이터를 자주 사용하고 일부 파일이나 내부적으로 하드 디스크를 사용하는 데이터베이스에 저장되어 있다고 가정해 보겠습니다. 그래서 이들은 가장 자주 사용되는 데이터이므로..
2022.03.30 -
infinispan? redis ?
펀엔씨 프로젝트에서는 infinispan 이라는 로컬캐쉬를 클러스터 모드를 적용이 시켜 글로벌 캐쉬처럼 사용하여 적용되어 있는 상태입니다. 이를 도커 컨테이너 환경에서의 사용이 되도록 알아보던 도중 관련된 캐쉬를 간략하게 알아보고 정리를 했습니다. infinispan 선택적 스키마가 있는 분산 인메모리 키/값 데이터 저장소. https://youtu.be/qA2MGwz8vD4 redis Redis는 선택적 내구성이 있는 분산형 인메모리 키-값 데이터베이스를 구현하는 오픈 소스 인메모리 데이터 구조 프로젝트입니다. Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈 소스(BSD 라이선스), 인메모리 데이터 구조 저장소입니다. 문자열, 해시, 목록, 집합, 범위 쿼리가 있는 정렬된 집합, 비트..
2022.03.30 -
DB트랜잭션의 격리 수준(isolation Level)
ACID란? ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 약어 원자성(Atomicity)은 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. 예를 들어, 자금 이체는 성공할 수도 실패할 수도 있지만 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다. 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것이다. 일관성(Consistency)은 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다. 독립성..
2021.04.07 -
[기술 면접 질문] 기술 면접 예상 질문 대비하기 - Java편
java 프로그래밍이란 Java SE와 Java EE 애플리케이션 차이 https://www.ibm.com/support/knowledgecenter/ko/SSQP76_8.9.1/com.ibm.odm.dserver.rules.res.managing/topics/con_javase_javaee_applis.html java와 c/c++의 차이점 java와 c/c++의 가장 큰 차이점은 실행 환경이다. java에서의 개발: 컴파일 혹은 컴파일 + jar압축 자바는 링크 과정이 없이 컴파일러가 바로 바이트 코드를 생성 c/c++에서의 개발: 컴파일 + 링크 java 언어의 장단점 장점 운영체제에 독립적이다. JVM에서 동작하기 때문에, 특정 운영체제에 종속되지 않는다. 객체지향 언어이다. 객체지향적으로 프로그..
2020.09.24 -
Singleton
Singleton is a creational design pattern that lets you ensure that a class has only one instance, while providing a global access point to this instance. 필요성 Singleton pattern(싱글턴 패턴)이란 애플리케이션에서 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. 커넥션 풀, 스레드 풀, 디바이스 설정 객체 등의 경우, 인스턴스를 여러 개 만들게 되면 자원을 낭비하게 되거나 버그를 발생시킬 수 있으므로 오직 하나만 생성하고 그 인스턴스를 사용하도록 하는 것이 이 패턴의 목적이다. 구현 하나의 인스턴스만을 유지하기 위해 인스턴스 생성에 특별한 제약을 걸어둬야 한다. new ..
2020.09.22 -
문제 해결을 위한 전략적 접근
코딩 테스트의 목적 문제 해결 여부 예외 상황과 경계값 처리 코드 가독성과 중복 제거 여부 등 코드 품질 언어 이해도 효율성 궁극적으로는 문제 해결 능력을 측정하기 위함이며 이는 '어떻게 이 문제를 창의적으로 해결할 것인가'를 측정하기 위함이라고 볼 수 있다. 접근하기 문제를 공격적으로 받아들이고 필요한 정보를 추가적으로 요구하여, 해당 문제에 대해 완벽하게 이해하는게 우선이다. 해당 문제를 익숙한 용어로 재정의하거나 문제를 해결하기 위한 정보를 추출한다. 이 과정을 추상화라고 한다. 추상화된 데이터를 기반으로 이 문제를 어떻게 해결할 지 계획을 세운다. 이 때 사용할 알고리즘과 자료구조를 고민한다. 세운 계획에 대해 검증을 해본다. 수도 코드 작성도 해당될 수 있고 문제 출제자에게 의견을 물어볼 수도 ..
2020.09.22