목록전체 글 (288)
개발자는 기록이 답이다

저는 Redis가 싱글 스레드로 동작하는데도 불구하고, 특정 명령어를 사용할때 동시성 제어가 필요있고 없고의 차이점에 명확하게 아하! 모먼트를 가질 수는 없었습니다. 이러한 고민을 해결하기 위해 Redis 명령어들이 어떻게 동작하는지 살펴보았습니다. 이번 포스팅에서는 이 주제에 대해 알아보고자 합니다. 📌 왜 GET과 SET을 같이 사용하는 것은 동시성 이슈가 발생할까?Spring Boot 프로젝트에서 Redis를 사용하다 보면, GET과 SET 명령어를 함께 사용할 때 동시성 이슈가 발생하는 경우가 있습니다. 그 이유는 Redis는 멀티플렉싱 I/O를 활용하여 여러 요청을 받으면서, 실제 요청들은 싱글 스레드로 순차적으로 처리하기 때문입니다.참고: 아래 예시에서는 GET 대신 SCARD를, SET 대..

최근 2달간 면접에서 DDD에 대한 질문을 받고나서, DDD에 대해 알아봐야겠다고 생각했습니다.카카오뱅크, 힐링페이퍼, 뉴플로이 회사에서 총 3번 정도 DDD 질문을 받고 나니 그 필요성을 느끼게 되었습니다.유튜브로 찾아보기도 했는데, 사실 "전략적 설계"와 "전술적 설계"가 무엇인지 와닿지 않았습니다. 그래서 구체적으로 와닿을 만한게 어떤 게 있을까? 고민하면서 주변 개발자분들과 얘기를 나누다 스터디를 진행하기로 했습니다. 제가 DDD 입문서로 추천받은 책은 바로 최범균님의 'DDD Start 도메인 주도 설계 구현과 핵심 개념 익히기' 입니다.추석 연휴 동안 다 읽는 것을 목표로 했는데, 아직 10장, 11장은 읽지 못했지만 바운디드 컨텍스트까지 읽은 내용을 정리해봤습니다. 해당 책은 DDD의 철학..

📌 절대 주소 지정과 상대주소 지정의 차이점은 뭘까요?절대 주소 지정: 메모리의 물리적인 주소를 직접적으로 참조하는 방식입니다. 실행할 프로그램이 특정 메모리 주소에 고정되어 있고, 프로그램 내에서 명령이나 데이터를 참조할 때 그 주소를 그대로 사용합니다.상대 주소 지정: 기준 주소(기본 주소)를 바탕으로 상대적인 위치를 지정하는 방식입니다. 예를 들어, 현재 위치에서 몇 바이트 떨어진 곳을 참조할 수 있으며, 이를 통해 메모리 관리가 유연해집니다.절대 주소는 물리메모리 주소, 상대주소는 논리메모리 주소를 의미논리적 주소프로세스마다 독립적으로 가지는 공간 (=각 프로세스마다 0번지부터 시작하는 공간)프로그램이 컴파일되면 생성되는 주소CPU가 보는 주소물리적 주소프로세스가 실행되면 실제 메모리에 올라가는..

📌 병행성(동시성)(Concurrency)병행성(Concurrency)은 여러 작업을 동시에 실행하는 것처럼 보이도록 처리하는 개념입니다. 실제로는 CPU가 여러 작업을 교대로 처리하는 방식으로, 각 작업이 짧은 시간 동안 번갈아가며 실행되므로, 사용자에게는 동시에 실행되는 것처럼 보입니다.병행성은 단일 CPU 환경에서도 가능하며, 주로 여러 작업이 서로 간섭하지 않도록 동기화 기법을 사용해 제어합니다.📌 병렬성(Parallelism)병렬성(Parallelism)은 여러 작업을 병렬적으로 실제로 동시에 실행하는 개념입니다. 다중 코어 또는 다중 프로세서 환경에서 각 코어가 서로 다른 작업을 병렬로 실행합니다.병렬성은 CPU가 여러 개일 때, 각 CPU가 독립적으로 하나씩 작업을 처리하는 방식으로,..