더 많은 도움을 드리기 위해

열심히 포스팅 중입니다!


지나가다 📢 광고 한 번 눌러주시면

더 좋은 글로 보답하겠습니다. 🥰

반응형

전체 글 84

5년만에 최저치를 기록한 SW 개발자 채용 공고

👋 안녕하세요~ 평비입니다!오늘은 5년 간의 소프트웨어 엔지니어링 채용 공고의 변화에 대해서 다뤄보려고 합니다.참고로, 이 글은 아래 글을 번역한 것입니다! ✍️ https://blog.pragmaticengineer.com/software-engineer-jobs-five-year-low/ Software engineering job openings hit five-year low?There are 35% fewer software developer job listings on Indeed today, than five years ago. Compared to other industries, job listings for software engineers grew much more in 2021-20..

개발자 2025.06.02

동기/비동기와 블로킹/논블로킹 - 기술 면접 준비

👋 안녕하세요~ 평비입니다!오늘은 많이 혼동하시는 동기/비동기와 블로킹/논블로킹 개념에 대해서 나름(?) 자세하게 준비한 포스팅을 준비해봤습니다! 쉽게 표현하자면 내가 일을 시키는 입장이라고 해볼게요.블로킹/논블로킹은 내 일이 중단되는지동기/비동기는 시킨 일의 상황을 신경쓰는지 1. 블로킹/논블로킹 위의 도식으로 설명드리겠습니다. 왼쪽 동작은 송금, 오른쪽 동작은 비밀번호 찾기 상황입니다. 송금 프로세스는 내부적으로 잔고 확인과 이체 로직이 있습니다. 이 로직들은 블로킹 로직입니다. 송금 프로세스 입장에서, 잔고 확인을 하는 동안 다음 동작이 중단되고, 이체를 하는 동안 다음 동작이 중단됩니다. '송금 프로세스 내부에 블로킹 로직이 있다'고 표현할 수 있습니다. 비밀번호 찾기 프로세스에서 인증 번호 ..

동시성과 병렬성 - 기술 면접 준비

👋 안녕하세요~ 평비입니다!오늘은 많이 혼동하시는 동시성과 병렬성 개념에 대해서 나름(?) 자세하게 준비한 포스팅을 준비해봤습니다! 이 주제에 대해서, 설명을 하기 위해 지난 포스팅에 다뤘던 그림을 가져왔습니다. 백엔드 서버에 동시에 100개의 요청이 들어왔을 때, 이걸 어떻게 처리할까요?이 시스템은 동시성이 보장된 시스템일까요?또, 병렬성이 보장된 시스템일까요? 1. 개념우선, 동시성과 병렬성의 개념부터 짚고 넘어가봅시다. 간단해요!🟨 동시성 (Concurrency)동시에 여러 작업을 “처리 중”인 상태 (꼭 동시에 “수행”되지 않아도 됨)시간 분할 (싱글코어에서도 가능)주로 I/O 바운드 문제에 대응예시 : 하나의 CPU가 요청 A, B, C를 빠르게 번갈아가며 처리 🟦 병렬성 (Paralle..

5월 20일은 세계 꿀벌의 날

👋 🐝 5월 20일은 세계 꿀벌의 날! 안녕하세요~ 평비입니다!오늘은 5월 20일, 세계 꿀벌의 날입니다.여러분의 오늘이 달콤한 이유, 꿀벌 덕분일지도 몰라요! 유엔(UN)이 지정한 이 꿀벌의 날은, 꿀벌을 포함한 꽃가루 매개 곤충들의 생태계 기여를 알리고 보호의 중요성을 상기하기 위해 만들어졌습니다.🍯 꿀벌은 단순히 꿀만 만드는 곤충이 아니에요.지구상의 식물의 75% 이상이 꿀벌의 수분 활동 덕분에 열매를 맺고, 우리가 먹는 식량의 1/3 이상이 꿀벌의 도움을 받아 생산되고 있어요.하지만 안타깝게도…농약, 기후 변화, 도시화 등으로 인해 꿀벌의 수는 점점 줄어들고 있습니다.그래서 오늘만큼은, 우리가 무심코 지나쳤던 꿀벌에게 고마움을 전하고 싶어요 그래서 저는 제 캐릭터인 꿀벌로 이 날을 기념해보..

칼럼 2025.05.20

트랜잭션 락 - 기술 면접 준비

👋 안녕하세요~ 평비입니다!오늘은 지난 시간에 이어 트랜잭션 락 개념에 대해서 나름(?) 자세하게 준비한 포스팅을 준비해봤습니다! 지난 번 트랜잭션 격리 수준은 트랜잭션이 데이터 읽기(조회)를 할 때, 어떻게 할 것인가? 에 대한 개념이었습니다.반면, 이번에 다루는 트랜잭션 락은 트랜잭션이 데이터 쓰기(갱신)를 할 때, 어떻게 할 것인가? 에 대한 개념입니다! https://gatchbee.tistory.com/66 갱신 손실(lost update) 이슈는 어떻게 방지할까요? - 기술 면접 준비면접관 : A 금융 프로젝트에서 송금 기능을 구현하셨는데요.송금과 동시에 자동 이체로 돈이 빠져나가면 잔고 정합성이 맞지 않는 문제가 있을텐데,이 이슈는 어떻게 방지하셨나요? 📢 문제 상gatchbee.tist..

트랜잭션 격리수준 - 기술 면접 준비

👋 안녕하세요~ 평비입니다!오늘은 트랜잭션 격리수준 개념에 대해서 나름(?) 자세하게 포스팅을 준비해봤습니다! 앞서 포스팅한 송금/자동이체 동시성 이슈 예제를 가지고 설명해보겠습니다. 🍼 왕초보는 잔고를 먼저 확인하고 송금하는 식으로 해결하면 된다고 했습니다. 다만, 위와 같이 잔고를 확인 한 후 송금을 하기 전에 이미 자동이체가 되버렸다면? 그러면 안되겠죠?이는 🍼 왕초보가 트랜잭션을 언급하지 않았기 때문인데요. 잔고 확인과 송금이 하나의 트랜잭션으로 묶여 있다면 일단은 가능한 일입니다.위의 예시대로라면, 두 트랜잭션이 충돌하는 상황인데요. 자동이체 트랜잭션이 시작할 때는 아무런 트랜잭션이 없으니 시작하는데 문제가 없었지만, 송금 트랜잭션이 시작할 때는 자동이체 트랜잭션이 이미 데이터베이스를 조..

갱신 손실(lost update) 이슈는 어떻게 방지할까요? - 기술 면접 준비

면접관 : A 금융 프로젝트에서 송금 기능을 구현하셨는데요.송금과 동시에 자동 이체로 돈이 빠져나가면 잔고 정합성이 맞지 않는 문제가 있을텐데,이 이슈는 어떻게 방지하셨나요? 📢 문제 상황문제 발생 전 잔고 상태A 잔고: 50만원B 잔고: 50만원C 잔고: 80만원총 180만원 -> 동시에 A로 자동이체, B로 송금 문제 발생 후A 잔고: 100만원B 잔고: 100만원C 잔고: 30만원총 230만원 전형적인 갱신 손실 문제입니다.읽고 계산하고 쓰는 과정이 분리되어 있는 상황에서 둘 다 같은 값을 읽고 각자의 계산으로 갱신했을 때, 하나의 결과가 다른 하나를 덮어쓰는 현상. 🍼 왕초보송금과 자동이체가 동시에 일어나면, 잔고가 틀어질 수 있습니다. 이걸 방지하기 위해 잔고를 먼저 확인하고 송금하는 ..

B+ tree란? - 기술 면접 준비

💡 B+ tree란?자, B+ tree (Balanced+ tree)가 무엇인지 알아봅시다. 계속 언급되는 것을 아래 처럼 정리해봤습니다.정렬된 구조균형 잡힌 구조하나의 페이지에 많은 키를 담아서, 트리의 높이가 낮은 구조높은 fan-out으로 디스크 I/O 최소화리프 노드가 연결 리스트라 범위 탐색 유리 많은 사람들이 인덱스의 구조 하면 아래와 같은 그림을 떠올립니다. 너무 명쾌한 그림이지만, B+ tree와는 점점 거리가 멀어지게 만드는 그림입니다.저도, 처음에 이렇게 배워서 인덱스가 뭐 한 줄의 정렬된 목차 형태로 있는 줄 알았죠... 🤣 B+ tree 구조인 인덱스의 간략한 형태입니다.최상단 노드가 Root node, 최하단 노드가 Leaf node 혹은 Data node.그 사이는 몇 de..

인덱스는 왜 B+ tree 구조로 설계되었을까요? - 기술 면접 준비

면접관: 많은 자료구조들이 있는데, 데이터베이스의 인덱스는 왜 B+ tree 구조로 설계되었을까요? 🥉 하수데이터를 빠르게 찾기 위해서 인덱스를 사용하는데, 그 구조로 B+ Tree를 사용하는 이유는 정렬된 데이터를 균형 잡힌 구조로 관리할 수 있기 때문입니다.B+ Tree는 항상 균형을 유지하면서 검색, 삽입, 삭제가 빠르게 되기 때문에 인덱스에 적합합니다. 가능한 추가 질문그럼 B Tree와 B+ Tree의 차이는 뭐예요?이진 탐색 트리랑은 뭐가 달라요? 🥈 중수인덱스나 데이터가 주로 디스크에 저장되기 때문에, 디스크 I/O가 적게 발생하는 자료구조가 적합한데,B+ Tree는 노드 하나에 많은 key를 저장할 수 있는 M-진 트리이기 때문에, 트리의 높이가 낮고 디스크 I/O가 적게 발생합니다..

인덱스를 추가하면 조회가 빨라질까? - 기술 면접 준비

면접관: A 프로젝트를 하실 때, 인덱스를 추가해서 조회 성능을 높이셨는데요.인덱스를 추가하면 조회가 왜 빨라질까요? 🍼 왕초보인덱스는 책의 목차처럼, 필요한 데이터를 빠르게 찾을 수 있게 도와주는 기능입니다.인덱스가 없으면 책을 처음부터 끝까지 다 뒤져야 하지만, 인덱스(목차)가 있으면 곧바로 원하는 곳으로 갈 수 있기 때문에 조회가 빨라집니다. 🐣 초보데이터베이스는 인덱스를 별도로 저장해두고, 검색할 때 테이블 전체를 보지 않고, 이 인덱스를 먼저 봅니다.그래서 원하는 데이터 위치를 바로 찾아가기 때문에 빨라집니다.가능한 추가 질문1. 인덱스는 어떤 구조로 저장되어 있나요?2. 오, 그러면 인덱스를 사용하면 반드시 좋을까요? 단점은 없을까요? 🥉 하수인덱스는 단순히 모아둔 게 아니라,..

반응형