반응형

코딩 598

⚖️ [1일 1CS] 접속자가 10만 명 폭주하면 서버는 어떻게 버틸까? (로드 밸런서)

1. 서버가 터지기 일보 직전! (두 가지 해결책)트래픽(방문자)이 몰려서 서버가 느려질 때, 백엔드 개발자가 선택할 수 있는 길은 크게 두 가지가 있습니다.① 스케일 업 (Scale-Up) : "서버 컴퓨터를 비싼 걸로 바꾸자!"방식: 기존의 낡은 컴퓨터를 버리고, CPU와 RAM이 엄청나게 빵빵한 슈퍼컴퓨터 한 대로 업그레이드합니다.장점: 설정이 아주 쉽습니다. 그냥 컴퓨터만 바꾸면 끝이니까요.단점: 성능이 2배 좋아진다고 가격이 2배만 비싸지는 게 아닙니다. 10배, 100배로 기하급수적으로 비싸집니다. 게다가 아무리 비싼 컴퓨터라도 물리적인 한계가 존재합니다.② 스케일 아웃 (Scale-Out) : "싸고 평범한 컴퓨터를 여러 대 사자!"방식: 적당한 성능의 컴퓨터를 2대, 3대, 100대로 계속..

🚫 프론트엔드 개발자의 주적: CORS 에러는 왜 생길까?

1. 범인은 서버가 아니라 브라우저다서버는 요청을 정상적으로 받고 응답까지 잘 돌려줍니다. 그런데 브라우저가 중간에서 응답을 가로채고는 이렇게 말합니다."출처가 다르네? 위험해 보여서 안 줄래!" 결국 에러를 내뿜는 건 서버가 아니라 크롬, 사파리 같은 브라우저입니다.2. 왜 차단할까? : SOP (동일 출처 정책)브라우저가 이렇게 까다로운 이유는 바로 보안 때문입니다.브라우저에는 SOP(Same-Origin Policy, 동일 출처 정책)이라는 규칙이 있습니다. "나랑 출처가 같은 곳에서 온 데이터만 믿겠다"는 원칙이죠.끔찍한 상상 (해킹 시나리오)네이버에 로그인해서 인증 쿠키가 남아있는 상태해커가 만든 bad-site.com에 접속SOP가 없다면? → 해커 사이트에서 몰래 네이버 API 호출 → 비밀..

[안녕이라 그랬어] 김애란

홈 파티 007 숲속 작은 집 045 좋은 이웃 097 이물감 143 레몬케이크 189 안녕이라 그랬어 217 빗방울처럼 257 --- 줄거리 --- 1. 파티에 초대받은 이방인 (도입) 상황: 가난한 연극배우인 주인공 '이연'은 지인 성민의 제안("아는 사람 중 가장 유명한 사람이라 데려간다"는 이유)으로 부유한 CEO 과정 동기들이 모이는 '오 대표'의 집(홈 파티)에 가게 됩니다. 갈등의 시작: 오 대표의 집은 부유함과 우아한 미감이 넘치는 공간입니다. 이연은 그곳에서 사람들과 대화를 나누며 보이지 않는 거대한 벽과 묘한 계급적 위화감을 느낍니다. 2. 교양으로 포장된 폭력 (전개) 파티에 모인 사람들은 대놓고 무례하게 굴지는 않습니다. 오히려 교양 있는 척, 예술을 사랑하는 척하며 이연을 환대합..

1달 1독후감 2026.03.09

💸 [1일 1CS] 서버가 터졌다고? DB 트랜잭션과 ACID

1. 끔찍한 상상: 쪼개지면 안 되는 작업증권사 앱에서 미국 주식 ETF를 매수한다고 가정해 봅시다. 내부적으로는 두 단계가 있습니다내 계좌에서 100달러 차감내 포트폴리오에 ETF 1주 추가그런데 1번만 성공하고 서버가 꺼져버리면? 돈은 사라졌는데 주식은 들어오지 않는 대참사가 발생합니다.이런 상황을 막기 위해 데이터베이스는 트랜잭션(Transaction)이라는 개념을 제공합니다.즉, “이 두 작업은 무조건 하나로 묶어서 처리해!”라는 것입니다.2. All or Nothing (모 아니면 도)트랜잭션은 중간이 없습니다.성공 (COMMIT): 모든 작업이 완벽히 끝났을 때만 영구 반영실패 (ROLLBACK): 중간에 오류가 나면 모든 작업을 취소하고 원래 상태로 되돌림덕분에 서버가 중간에 터져도 “돈만 ..

🧂 [1일1CS] DB가 털려도 내 비밀번호는 안전한 이유? (해싱과 솔트)

1. 최악의 방법: 평문(Plain Text) 저장가장 초보적인 실수는 사용자가 입력한 비밀번호(1234)를 DB에 그대로 저장하는 것입니다.예시DB: 아이디: admin, 비밀번호: 1234이 경우 내부 개발자도 비밀번호를 볼 수 있고, 해커가 DB를 털어가는 순간 모든 사용자의 계정이 위험해집니다. (법적으로도 처벌받습니다!)2. 해결책: 단방향 암호화, 해싱(Hashing)그래서 개발자들은 비밀번호를 알아볼 수 없는 복잡한 문자열로 바꿔서 저장합니다. 이때 사용하는 기술이 해시 함수(Hash Function)입니다.🍖 찰떡 비유: 고기 다지기 (소시지 만들기)해시 함수는 '고기 다지는 기계'와 같습니다.돼지고기(비밀번호)를 기계에 넣으면 예쁜 소시지(해시값)가 나옵니다.특징 (단방향): 소시지를 ..

🚀 [1일1CS] 코드가 알아서 서버로 출근한다? CI/CD 자동 배포의 마법

🍳 CI (Continuous Integration) — 지속적 통합CI는 쉽게 말해 “여럿이 짠 코드를 수시로 합치고, 문제없는지 자동으로 검사하는 과정”입니다.비유하자면 식당 주방과 같습니다.요리사 A는 찌개를 끓이고, 요리사 B는 생선을 굽습니다.각자 만든 요리를 하나의 쟁반에 모읍니다. (코드 병합 - Merge)주방장이 맛을 보고 이상이 없는지 확인합니다. (자동화 테스트 - Test)이상이 없으면 손님에게 나갈 준비를 마칩니다. (빌드 - Build)즉, 개발자가 코드를 main 브랜치에 올리면 서버가 알아서 합치고, 테스트를 돌리고, 빌드까지 자동으로 처리해주는 것이 CI입니다.🍽️ CD (Continuous Deployment/Delivery) — 지속적 배포CI로 포장까지 끝난 코드를..

🐧 [1일 1CS] 마우스 없이 서버를 지배하다: 필수 리눅스(Linux) 명령어

1. "나 지금 어디 있지?" (위치 파악과 이동)서버에 접속하면 가장 먼저 해야 할 일은 내 위치를 확인하는 겁니다.pwd : 현재 내가 있는 경로를 알려줍니다. (/home/ubuntu/project 같은 식으로 출력)ls : 현재 폴더 안에 어떤 파일이 있는지 보여줍니다. 실무에서는 ls -al을 많이 쓰는데, 숨김 파일까지 전부 깔끔하게 보여줍니다.cd : 다른 폴더로 이동합니다. 예를 들어 cd /var/log는 로그 폴더로 이동하는 명령어죠. cd ..를 쓰면 상위 폴더로 이동합니다.마우스로 더블클릭해서 들어가는 동작을 키보드로 하는 셈입니다.2. 파일과 폴더 다루기 (생성과 삭제)위치를 잡았다면 이제 무언가를 만들거나 지워야겠죠.mkdir my-app : 새로운 폴더를 만듭니다.rm : 파일..

🐳 [1일 1CS] "내 컴퓨터에선 되는데요?" 도커(Docker)가 해결한 영원한 난제

1. 지옥의 환경 설정 (도커가 없던 시절)개발자가 새로운 프로젝트에 투입되거나, 만든 프로그램을 실제 서버에 올릴 때 가장 고통스러운 작업은 바로 환경 설정입니다.내 컴퓨터 (Windows): Java 11, MySQL 8.0, 톰캣 9 → 정상 작동실제 서버 (Linux): Java 8, MySQL 5.7 → 에러 발생운영체제, 언어 버전, 폴더 경로 차이로 인해 충돌이 발생했고, 이를 해결하기 위해 개발자들은 며칠 밤을 새우곤 했습니다.2. 물류의 혁명, '컨테이너'를 컴퓨터로 가져오다이 문제를 해결한 아이디어가 바로 컨테이너(Container)입니다.과거 물류: 짐마다 모양이 달라 싣기 어려움 → 규격화된 철제 컨테이너 박스 발명으로 혁명도커: 프로그램과 실행 환경(Java, DB, 설정 파일)을..

진짜 일하는 AI를 설계하다: 『AI 에이전트 마스터 클래스』

"한빛미디어 서평단 활동을 위해서 책을 협찬 받아 작성된 서평입니다." antigravity, 그리고 바이브 코딩최근 '바이브 코딩(Vibe Coding)'에 푹 빠져 여러가지 사이트를 만들어봤습니다. 복잡한 타이핑이나 문법의 늪에 빠지지 않고 AI와 직관적인 흐름을 타며 아이디어를 빠르게 실체화하는 경험은 그야말로 재밌더라구요. Cursor나 Copilot 같은 도구들을 든든한 사수 삼아 개발 속도를 높이는 과정은 개발자에게 아이디어만으로 기획을 실현할 수 있는 간편함을 줍니다.하지만 여러 사이드 프로젝트의 백엔드 아키텍처를 고민하다 보니, 자연스럽게 창작자로서의 쾌감을 넘어 엔지니어로서의 깊은 갈증이 찾아왔습니다. "내가 매일 직관적으로 부려먹는(?) 이 똑똑한 AI 비서들은 도대체 내부적으로 어떻..

🔄 [1일 1CS] 컴퓨터가 여러 일을 동시에 하는 척하는 마술: 컨텍스트 스위칭

1. 찰떡 비유: 책 3권 동시에 읽기 📖여러분이 내일 시험을 앞두고 역사, 수학, 영어 책을 동시에 공부해야 한다고 상상해 보세요.눈은 한 번에 한 권만 볼 수 있으니 이렇게 합니다:역사책 10페이지를 읽는다."아, 여기까지 읽었지" 하고 책갈피를 꽂아둔다.수학책을 펴서 책갈피 위치부터 5문제를 푼다.다시 책갈피를 꽂고 덮는다.영어책을 펴서 단어를 외운다...이 과정을 0.01초 단위로 미친 듯이 반복하면, 옆에서 보는 사람은 “와, 세 과목을 동시에 공부하고 있네!”라고 착각합니다.컴퓨터가 여러 프로그램을 동시에 돌리는 것처럼 보이는 원리, 바로 컨텍스트 스위칭입니다.2. Context(문맥)란 무엇인가?컨텍스트는 쉽게 말해 책갈피입니다.프로세스가 지금까지 뭘 하고 있었는지에 대한 현재 상태 정보죠..

반응형