본문 바로가기

전체 글

(71)
의미 있는 소통이란 ? 서론 : 어떤 소통이 의미 있는 소통일까요 ?개발자 사이에서 가장 어려운 건 소통이라고 생각해요. 특히 말을 잘 못하는 공대생이다 보니, 제 생각을 잘 전하는 게 늘 어렵게 느껴졌어요. 일을 할 때 개발자뿐만 아니라 다른 직군 분들과 이야기할 때 '잘' 전한다는 게 정말 어려웠는데요. 단순한 지식의 전달이 아니라, context를 통해 상대방을 이해시키는 게 꼭 필요하더라고요. 그래서 이번 회차에서는 회사에서 한 달간 '잘' 전달하는 것이란 무엇인지 익혀왔던 과정을 적어보려고 해요. 본론 : 회사에서 배운 소통의 가치 학교에서 여러 프로젝트를 해오면서, 소통이란 본인의 생각을 명료하고 간단하게 전달하는 것이라고 생각해왔어요. 그게 '잘'이라고 여겼고, 공대생답게 긴 글 읽는 걸 별로 좋아하지 않는 성격..
flush 시 재시도 패턴 Flush가 실패하면 어떻게 될까요? — 삭제 정책과 Retry 전략 이야기안녕하세요, 벌써 3회차 글쓰기에 접어들었습니다 이번엔 회사에서 삭제 정책을 설계하면서 맞닥뜨린 고민을 나눠보려 해요. Retry를 어떻게 써야 할까, 라는 주제예요.어떤 상황이었냐면요저희는 3주 이상 요청이 오지 않은 데이터를 soft delete 하는 기능을 구현하고 있었어요.동작 방식은 이랬어요.하루치 요청을 인메모리 캐시에 마지막 조회 시각으로 갱신해두고자정이 되면 flush → DynamoDB에 마지막 사용일자를 일괄 업데이트쿠버네티스 롤링 배포 시 캐시 유실을 막기 위해 배포 시그널 수신 시에도 flush (30초 이내 완료)flush 시 동시성 문제는 스냅샷 복사 방식으로 처리해요. lock을 잠깐 잡고 캐시 전체를 ..
AI 시대에 어떤 개발자로 살아남아야 할까 ? AI 시대에 어떤 개발자로 살아남아야 할까 ? 요즘 링크드인을 보면 정말 모두가 AI를 이야기합니다. 저 역시 이 AI 열풍 속에서, 최근 제가 직접 느낀 변화에 대해 적어보고 싶었습니다.최근 회사에 입사한 뒤 가장 크게 체감한 것은, 생각보다 훨씬 많은 개발이 AI를 중심으로 이루어지고 있다는 점이었습니다. 저는 최근 2주 동안 Claude를 거의 전적으로 사용하면서 개발을 진행했습니다. 그리고 그 과정에서 “개발자는 결국 어떤 일을 하는 사람인가?”라는 질문을 자연스럽게 다시 던지게 되었습니다.저는 Java를 주로 써왔지만, Go를 몰라도, React를 잘 몰라도 기능을 구현하는 데 큰 장벽을 느끼지 않았습니다. 작은 회사에서는 어느 정도 AI 활용이 활발할 거라고 예상했지만, 생각보다 규모가 ..
센츄리 + discord 알림 연동 안녕하세요 ! 서준수의 글쓰기 클럽 1기에 참여하게 된 강민정 입니다 :) 이번 기회에 그동안 노션에 러프하게 정리해두었던 내용을 조금 더 명확한 문장으로 다듬어, 하나씩 블로그에 옮겨보려 합니다 ! 이번 글에서는 Ollestaff 서비스에서 Sentry와 Discord를 연동해 운영 알림을 구성한 경험을 정리해보려고 합니다. 본격적으로 연동 이야기를 하기 전에, 먼저 예외를 어떻게 바라보고 있는지부터 가볍게 정리하고 넘어가겠습니다. 예외란 무었일까요 ? 에러(Error)는 한 번 발생하면 애플리케이션이 정상적으로 복구되기 어려운 문제를 말합니다. 대표적으로 OutOfMemoryError, StackOverflowError 같은 경우가 여기에 해당합니다.반면 예외(Exception)는 애플리케이션 실..
서준수의 글쓰기 클럽 안녕하세요! 오랜만에 돌아 왔습니다! 이제 글을 조금 공적으로 써보려 하는데요 사유는... 최근 좋은 기회로 k-devcon 에서 주최하는 서준수의 글쓰기 클럽 에 참여하게 되었습니다 ! 2주에 한번 기술블로그를 작성하고 해당 내용을 참여자와 공유하는 방식인데 현직자들의 기술 블로그를 보며 블로그가 어떤 방향으로 나아가는지 인사이트를 얻을 수 있을 것 같습니다. 경쟁률이 꽤나 높다고 하던데 .. 어떻게 뽑혔는지 모르겠네요 ... 킥오프는 비대면으로 진행되었어요선발인원이 10명이다 보니, 대면으로 하기에도 애매한 인원이라 모이기는 힘들겠다 라는 생각이 들기도 했지만, 한번쯤 모여서 현시점의 고민들을 나누어 보았으면 좋겠네요 ! https://www.linkedin.com/posts/k-devcon_..
InnoDB 락 동시성 제어Db 동시성 제어방법동시성 문제란 ? : 다수의 사용자가 db 에 동시 접근할때 트렌잭션 간섭 문제Lock based concurrency control디비 접근시 락 걸어서 동시성 제어읽기작업은 공유잠금, 쓰기작업은 배타잠금을 검다수 트렌젝션 동시접근시 성능저하 가능성 있음교착상태 발생 가능성 있음낙관적 락 : 같은데이터 동시수정은 없다고 가정. 읽는 시점이 아니라 수정 시점에 값 변경 검사버전으로 쓰기작업을 관리하는 것으로 알고있음.트랜잭션1의 version필드가 1인데 특정 튜플에 접근해서 쓰기작업 완수하면 version필드를 2로 업데이트. 근데 트랜잭션2의 version값이 1이면 업데이트 안시켜줌이럴때 해결법은 그냥 복구로직 잘 설계하는 것.비관적 락: 데이터 동시수정 가정공유락 :..
통신 : Polling, Long Polling, Streaming , Websocket , SSE 📌 통신클라이언트에서는 서버에 접속하여 데이터를 주고받게 된다.통신방식은 크게 Http 통신과 Socket 통신 2가지 방식이 있다.http 통신은 Client가 요청을 보내는 경우에만 Server가 응답하는 단방향적 통신으로, Server가 Client에 요청을 보낼 수는 없다.때문에 요청시 내용을 기다리는 시간 + 연결하는 시간이 들어가게 된다.다음번 요청에서는 다시 연결을 해야됨그래서 Http 통신은 실시간 연결이 아닌, 필요한 경우에만 Server로 접근할때 용이Web Socket 기술이 나타나기 전에는 실시간 통신을 위해서 Http통신에 약간의 트릭을 사용해서 실시간인 것 처럼 작동하게 하는 기술을 만들었다.실시간 트릭 기술: Polling / Long Polling / Streaming Po..
웹 기본 + nginx https://blog.naver.com/gi_balja/223028077537이블로그 좋은듯 ?Nginx : 웹 서버Apache(아파치) 같은 웹 서버에 비해 빠르고 가벼움, 대규모 애플리케이션 처리에 적합클라이언트클라이언트(Client)란 서비스를 이용하기 위해 네트워크를 통해 요청을 보내는 주체. ex) 웹 브라우저웹 개발 영역에서 보통 클라이언트라 하면 크롬, 사파리, 익스플로러 등 웹 브라우저를 의미웹 서버웹 서버는 클라이언트의 요청에 따라 HTML, CSS, JS, 이미지 파일과 같은 정적 파일을 응답하여 제공하는 소프트웨어. 웹 서버는 HTTP 프로토콜을 사용하여 클라이언트와 통신대표적인 웹 서버로는 Nginx, Apache 등프론트 서버라고 생각WAS (Web Application Serv..