분류 전체보기 (492) 썸네일형 리스트형 동시성 문제 해결 동시성 문제 해결동시성 문제란 무엇이며, 이를 해결하기 위한 기본적인 전략을 설명해주세요. 실제 운영 환경에 적용한 사례가 있다면 함께 설명해 주어도 좋습니다. 동시성은 다중 사용자/요청이 동시에 자원에 접근할 때 발생합니다. 락(lock), 큐(queue), 트랜잭션 격리 수준 등의 개념을 활용해 본 경험을 떠올려 보세요. 동시성 문제는 스프링에서 서버를 띄어놓고, 여러요청이 왔을때 같은 자원에 대해서 서로 경쟁하게되면 발생하는 데이터 오류입니다.가령 영수와 철수가 각각 100만원씩 통장에 돈이 있는 상태에서 영수가 철수에게 20만원을 보내고, 철수가 영수에 21만원을 동시에 보내면, 우리가 기대하는 값은 영수 101만원, 철수 99만원입니다.그러나 결과가 예사오가 다르게 나오게 됩니다. 영수 입장에.. 실패 경험과 교훈 실패 경험과 교훈최근에 실패했던 경험이 있다면 솔직하게 공유해 주세요. 그 실패로부터 무엇을 배우고, 어떻게 성장했는지도 함께 이야기해 주세요. 결과가 좋지 않아도 괜찮습니다. "실패"는 결과가 안 좋았던 프로젝트, 일정 지연, 기술 선택 실패, 협업 문제 등 다양합니다. 이런 질문의 핵심은 실패 자체보다 그 이후의 성찰과 변화가 무엇이었는지 묻는 거예요! 기술 도입 시 리스크 관리 기술 도입 시 리스크 관리기존 코드베이스에 새로운 기술이나 도구를 도입했던 경험이 있다면, 어떤 리스크를 고려했고, 이를 어떻게 관리했는지 설명해주세요. 실무 경험이 없다면 팀 프로젝트나 사이드 프로젝트에서 고민했던 사례를 공유해 주세요. 도입 기술은 프레임워크, 상태 관리 도구, 빌드 시스템, 배포 도구 등 다양합니다. 기존 시스템과의 충돌, 학습 비용, 유지보수 리스크 등을 고려해 본 경험을 공유하세요. 마이크로서비스 데이터 일관성 마이크로서비스 데이터 일관성 마이크로서비스 혹은 분산 시스템에서 데이터 일관성을 유지하기 위한 전략을 고민하거나 적용한 경험이 있다면 공유해주세요. 규모가 작아도 서비스 간 데이터 처리 흐름을 설계해본 경험이면 충분합니다. 단일 DB 트랜잭션이 아닌, 서비스 간 데이터 일관성을 유지하는 방식을 고민해본 경험을 떠올려 보세요. (예: Eventual Consistency, 이벤트 기반 처리, SAGA 패턴 등) MSA에서는 하나의 application에서 서로 다른 table을 transaction을 사용할 수 없기때문에, 이벤트 방식으로 관리하여, transaction처럼 성공 후, 실패 후 이벤트를 발행하여, 데이터의 일관성을 유지/처리 해야 합니다.제가 설계하고 개발한 것 중에서 MSA에서 데이터 일.. CPU의 내부 구성 - 레지스터 https://www.youtube.com/watch?v=fSCHizcezTs&t=108s 프로그램 카운터메모리에서 가져올 명령어의 주소(메모리에서 읽어 들일 명령어의 주소) 메모리 주소 레지스터메모리의 주소를 저장 메모리 버퍼 레지스터메모리와 주고받을 값(데이터와 명령어)CPU가 정보를 데이터 버스로 주고받을 때 사용 명령어 레지스터해석할 명령어 (방금 메모리에서 읽어 들인 명령어) 가 담긴다 -> 제어장치가 해석할 예정 5. 플래그 레지스터 6. 범용 레지스터 7. 스택 포인터 8. 베이스 레지스터 📘15. 메모리 가상화에 관한 대화 📘메모리 가상화에 관한 대화 🧠 핵심 질문: "메모리 가상화는 뭐고 왜 필요한가요?"✅ 1. 가상 메모리란?사용자 프로그램이 사용하는 모든 주소는 사실 가짜(가상 주소)예요.운영체제는 각 프로세스에게 "너만의 메모리 공간이 있어"라는 **환상(illusion)**을 줌.실제 메모리는 공유하지만, 사용자 입장에서는 자기 전용 메모리처럼 보임.🧙 마치 현실은 공유방인데, 각자 개인룸처럼 보이게 만드는 마법 같은 거예요. ✅ 2. 운영체제가 왜 이런 환상을 주는가?📌 (1) 편리함(Usability)프로그래머가 직접 "이 변수 어디에 둘까?" 고민 안 해도 됨각 프로그램이 연속되고 큰 주소 공간을 쓴다고 믿게 해 줌📌 (2) 고립(Isolation) & 보호(Protection)한 프로그램이 다른 .. 📘18. 주소 변환의 원리 📘 주소 변환의 원리🔍 1. 목적: 효율적이고 안전한 가상 메모리 구현운영체제는 **가상 메모리(Virtual Memory)**를 통해 각 프로그램이 자기만의 메모리 공간을 가진 것처럼 보이게 만들고,효율성: 하드웨어(TLB, 페이지 테이블 등)를 이용해 빠르게 실행되고,제어: 프로그램이 자기 메모리만 접근하게 보호하고,유연성: 프로그래머가 쉽게 메모리를 사용할 수 있게 해줌.➡️ 이 모든 것을 가능하게 해주는 게 바로 **주소 변환(address translation)**입니다. ⚙️ 2. 주소 변환이란?프로그램이 사용하는 가상 주소 → 실제 물리 주소로 변환하는 과정CPU는 메모리에 접근할 때 **가상 주소(Virtual Address)**를 사용하드웨어 + OS는 이를 **물리 주소(Phys.. 📘17. 메모리 관리 1. 메모리 공간의 종류📌 1. 스택 메모리 (Stack Memory)자동 메모리 (automatic memory)함수 안에서 선언된 지역 변수는 자동으로 할당 및 해제됨관리 주체컴파일러가 처리함 – 프로그래머가 직접 신경 쓸 필요 없음사용 예int x; 같은 선언문은 스택에 메모리를 할당메모리 해제함수 호출이 끝나면 자동으로 해제됨주의점함수가 끝나면 사라지므로, 반환 후에도 필요한 값은 스택에 두면 안 됨 📌 2. 힙 메모리 (Heap Memory)동적 메모리 (dynamic memory)실행 중 malloc() 등을 통해 직접 명시적으로 할당관리 주체프로그래머가 직접 할당과 해제를 책임져야 함사용 예int *x = (int *) malloc(sizeof(int)); – 정수를 위한 힙 메모리 할당.. 이전 1 2 3 4 ··· 62 다음 목록 더보기