전체 글

개발은 좋은데 뭘로 개발할까
CS/분산시스템특론

[분산시스템특론] 6. 해밍 코드

섀넌의 정보이론아날로그 데이터를 전송할 때는 먼저 인코딩 과정을 거쳐 bit 의 형태로 변형한 뒤 변형된 데이터를 채널을 통해 전송한다.이때 채널을 통해 전송되는 데이터에는 잡음이 껴서 데이터가 손상될 수 있다. (패킷 오염)따라서 정보를 수신하는 측에서는 잡음을 제거하고, bit 데이터를 디코딩하여 본래의 아날로그 데이터 형태로 변환하여 데이터를 수신한다. 잡음을 제거하는 방법 중 하나는 비트를 전송할 때 3번씩 전송해서 수신한 3개의 비트중 더 많은 값을 최종 비트로 결정하는 방법이 있다.만약 bit 하나가 뒤바뀔 가능성이 10% 라고 한다면, 3개의 비트중 2개 이상의 비트가 뒤바뀔 가능성은 많이 낮아진다.하지만 결국 0%는 아니기 때문에 이 방법이 완전한 방법은 아니다. 해밍 코드그래서 해밍 코드..

CS/분산시스템특론

[분산시스템특론] 5. CAP 이론 & FLP 정리

CAP 이론두 저장소가 서로 단절된 상태에서는 Consensus 를 유지하는 동시에 Available 을 유지하는 것이 불가능하다는 이론이다.간단히 말하면, 단절된 상태에서는 가용성과 강한 일관성을 동시에 만족할 수 없다.(P = Partition tolerance, 단절 내성, 분할 허용성, 네트워크 장애등으로 노드간 통신이 끊겨도 시스템이 동작 가능해야 한다는 특성.정확하게는 분산시스템에서 CAP 3가지 특성을 모두 만족하는 것은 불가능하다는 이론이다.) 먼저 두 저장소가 서로 단절된 상태에서 각 저장소에 서로 다른 데이터가 업데이트 되었다고 해보자.각 저장소는 상대방 저장소에 어떤 데이터가 들어있는지 알 수 없으므로 일관성을 유지할 수 없다. 만약 일관성을 유지하고자 한다면, 직접 (수동으로) 일관..

CS/분산시스템특론

[분산시스템특론] 4. 시간 동기화 문제와 램포트 시계

이중화된 데이터베이스 문제어떤 큰 대형은행이 있다.이 은행은 서울에 데이터베이스가 하나 있고, 부산에 데이터베이스가 하나 있다.이 은행의 어떤 계좌에는 잔액이 10,000원 들어있다.그리고 서울에 살고 있는 이 계좌의 주인이 계좌에 1,000원을 입금했다.그런데 부산에서는 모든 계좌에 이자를 지급할 시점이 되어 현재 계좌의 잔고를 기준으로 1%의 이자를 지급하였다.그래서 서울에 있는 데이터베이스의 잔액은 11,000원이 되었고, 부산에 있는 데이터베이스의 잔액은 10,100원이 되었다. 그리고 이 두 데이터베이스는 상대방의 상태를 알지 못한 채서울에 있는 데이터베이스는 부산에 있는 데이터베이스에게 잔액을 1,000원 늘리라고 지시하고부산에 있는 데이터베이스는 서울에 있는 데이터베이스에게 잔액을 1% 늘리..

CS/분산시스템특론

[분산시스템특론] 3. 2단계 커밋 프로토콜

계좌 이체 문제은행에서 돈을 다른 계좌로 이체할 때, 안전하게 이체하는 것은 어려운 일이다.단순하게 생각하면 내 통장에서 돈을 2000원 감소시키고, 상대방 통장의 돈을 2000원 증가시키면 될 것 같다.하지만 나와 상대방이 둘 다 같은 액수에 대해 동시에 돈을 감소시키고 증가시켜야 한다는 점을 생각하면 쉽지 않다는 것을 알 수 있다. 온라인으로 돈을 보내는 것은 비동기적인 통신이다.나는 돈을 보냈다고 생각해서 2000원을 감소시켰는데, 상대방은 돈을 받았다는 신호를 못 받아서 돈을 증가시키지 않았다면 나의 잔액만 2000원이 줄어들 뿐이다. 돈의 액수에 대한 원만한 '합의' 를 위해서 사이에 중간자를 두는 방법을 생각할 수 있다.우리나라로 치면 금융결제원 같은 중간자를 두는 것이다. 안전성과 라이브니..

CS/분산시스템특론

[분산시스템특론] 2. 두 장군 이야기

두 장군 이야기어느 중세시대, 적의 부대 Z를 아군부대 A와 B가 동시에 공격하려고 한다.이때 이 두 부대가 동시에 적의 부대를 공격해야만 이길 수 있으며, 두 부대 사이에는 적의 부대가 존재하기 때문에, 전령이 메세지를 전달하기 위해서는 적진을 은밀하게 뚫고 지나가야 한다고 해보자. 과연 A와 B는 동시에 Z를 공격하는 것이 가능할까? 우선 A와 B는 언제 동시에 공격할 지 먼저 공격 시간을 정해야 한다.만약 현대같이 그냥 카톡같은 메신저가 있다면 A가 '10시에 공격하자' 라고 해도 B가 빠르게 이를 확인하여 서로 합의에 다다를 수 있을 것이다.하지만 이 상황에서는 사람이 직접 적진을 뚫고 메세지를 전달해야 하기 때문에 전령이 중간에 잡혀서 죽으면 메세지가 유실될 수도 있다. 만약 전령이 메세지를 전..

CS/분산시스템특론

[분산시스템특론] 1. AI Agents vs. Agentic AI

샘 알트만은 2025년이 agent 의 해가 될 것이라고 했다.즉, AI 가 사람 대신 특정한 일을 수행하는 것이다. (문제 풀이, 영상 제작 등) 그런데 agent 와 관련한 용어로 AI Agent 와 Agentic AI 가 있다.얼핏 비슷해보이지만, 이 둘은 엄밀하게는 다르다. 올해 5월에 이와 관련하여 논문이 하나 나왔다. (https://arxiv.org/pdf/2505.10468)AI Agent 는 하나의 개별 Agent 를 말한다.위 그림으로 보면, 온도를 자동으로 세팅하는 한가지 일만 수행하는 AI 가 AI Agent 이다. 반면, Agentic AI 는 여러 Agent 가 모여서 각자의 역할을 수행하며 하나의 큰 작업을 처리하는 것을 말한다.위 그림으로 보면, 전기 사용량을 체크하는 A..

자기계발/생각 정리

2025년 마지막 여름 방학 회고

7월 회고를 쓰려다 미루고 미뤄져서 여름 방학으로 퉁치는 회고7월 회고를 적었던 내용에 8월 회고를 곁들여서 작성해보았다. 오랜만에 보는 올해 목표하나씩 적당히 묶어서 되돌아보았다. 진로 관련 활동들전공 (졸업프로젝트)4-1 이 끝나서 이제 전공 관련 회고는 졸프만 남았다.이 글을 작성하고 있는 시점을 기준으로 회고를 해보자면 졸업 프로젝트는 순조롭게 진행중이다.방학 초에 '방학 동안 어떤 것을 할 지' 에 대해 논의해서 합의를 봤었다.그래서 개강하기 전까지 적어도 이것까지는 하자는 목표가 생겼고, 그 목표가 있어서 지금도 열심히 달릴 수 있는 원동력이 되고 있다. 이번 졸업 프로젝트를 하면서 그냥 하고 싶은 거, 넣고 싶은 것들을 다 적어보았다.이거를 다 구현하는 건 당연히 욕심이기 때문에, 우선..

WEB(BE)/Spring & Spring Boot

[Redis] READONLY You can't write against a read only replica. 에러 해결기 (feat. 중국)

프로젝트에 적용한 소셜 로그인에서 중간에 에러가 발생하면서 로그인이 되지 않는 현상이 발생했다.20분 전에 성공했던 소셜로그인이 갑자기 실패하는 상황. 프론트에서 소셜로그인 버튼을 클릭하면 이런 에러가 나온다.스프링에서 에러 로그는 다음과 같이 나타났다. 2025-08-06T10:47:45.164Z ERROR 1 --- [becareful-server] [io-8080-exec-12] OAuth2AuthorizationRequestRedirectFilter : Authorization Request failed: org.springframework.data.redis.RedisSystemException: Error in executionorg.springframework.security.oauth2...

자기계발/코딩테스트, 대회

2025 하지톤 (hajithon) 후기

2025년 7월 26일 ~ 27일 양일간 진행된 하지톤 참여 후기를 정리해본다.하지톤은 홍익대 시각디자인과 소모임 '하이픈'과 컴퓨터공학과 개발학회 GDG 가 연합하여 주최한 무박 2일 해커톤이다.막연하게 나가보고 싶다고 생각하고만 있었는데, 지뎃시 개발팀에서 같이 나가보자고 해서 함께 나가게 되었다.개발팀 BE 4명중 3명이 참여했고, 해커톤 4개 팀에 각각 한 명씩 쪼개져서 들어갔다 ㅋㅋ 해커톤은 21일에 먼저 킥오프를 진행해서 해커톤 주제를 발표하고, 팀원과 아이스 브레이킹 이후 기획과 관련된 아이디어를 이야기 하는 시간을 가졌다.이번 해커톤 주제는 probability (확률, 가능성) 로 '우연', '랜덤' 이 주요 주제였다. 킥오프 아이디어 논의 때, 그냥 고민이 있을 때 일기에 적어보내듯이 ..

자기계발/생각 정리

2025년 6월 회고

또 정신없이 6월이 지나가 2025년도 절반이 넘었다.단톡에서 누가 '이제 2000년보다 2050년이 더 가깝다'고 하는 말을 듣고 나니 새삼 충격..시간이 정말 빠르게 흐르는 것 같다. 6월에도 정신없는 하루를 보내고 있다.전에는 그래도 어느 정도 여유는 가지면서 뭔가를 하고 있다고 느꼈었는데, 이번 달에는 스스로 느끼기에도 그 여유마저 없는 느낌이라 뭔가 잘못됨을 감지했다 ㅋㅋ분명 지난 달 회고에서도 일 그만 벌리자고 적었는데, 뭔가 일을 벌리고 정신없이 사는 것에 중독된 것 같기도 하다. 학교전공실질적 막학기가 끝났다. 다음 학기에 정말 듣고 싶은 전공이 안 열린다면 졸업 프로젝트만 들을 생각이다.이번 학기는 패논패 교양 2개, 전공 4개를 들었다.학교에 교수님이 없어 전공이 별로 안 열려 장학금 ..

에버듀
Blog. 에버듀