본문 바로가기

분류 전체보기

(10)
HR 시스템에 상태 패턴(State Pattern) 적용 아이디어 배경 이번 주 북스터디에서는 "헤드퍼스트 디자인패턴"의 10장 상태패턴을 진행하였다. 상태 패턴은 "내부 상태가 바뀜에 따라 객체의 행동이 바뀔 수 있도록 하는 패턴" 이다. 이번에도 실무에서 어떻게 적용해볼 수 있을까? 하는 브레인 스토밍했다. 나의 경험과 연관지어 고민을 하다보면 머릿속에 오래 남아 실제로 학습에 도움이 크게 된다. 지금 회사 도메인은 HR 시스템이며 직원, 신청서 등의 상태관리가 이뤄지는 상황이다. 신청서는 휴가, 재택, 외근 등의 신청서 폼이 존재한다. 전자 결재 시스템을 통해 진행, 승인, 반려, 취소 등의 상태를 갖을 수 있는데 직접 구현해볼 수 있는 기회가 주어진다면 상당히 도전적인 과제가 될것 같다. 직원들도 상태를 갖는데 우리는 출근하기 전에 Off Duty 상태를 갖는다..
백엔드 개발자의 성장과 이력관리 방법은? 인프런 멘토링 후기 2 "지금 하는 일이 의미가 없어보여도 언젠가 점이 선으로 이어지는 시기가 찾아온다"는 스티브 잡스가 연설 했던 내용이다. 배경 첫 번째 인프런 멘토링에 이어 두 번째 멘토링을 받았다. 두 번째 멘토링을 연이어 했던 이유는 심리적으로 불안했기 때문이다. 나는 왜 불안할까? LLM의 발전과 주변 개발자들이 활용하는 방식에 대한 모습을 보면 두렵다. 회사에서의 느끼는 나의 감정은 정체됨이기 때문이다. 매일 무엇을 공부해야할지 헤매고 있다. 불안감과 지연보상을 기다릴 수 있는 의지력이 많이 약해져있다. 그리고 무엇보다도 첫 번째 멘토링에서 해소되지 않은 무언가가 있다는 신호가 아닐까? 멘토 정보 & 기본 정보일시 : 25년 5월 25일 (일), 12:00 - 13:00요율 : 45,000원 / 시간 멘토님은 ..
넷플릭스의 광고 시스템 설계 : 이벤트 기반 아키텍처의 점진적 발전 원제 : Behind the Scences: Building a Robust Ads Event Processing Pipeline게시 날짜 : 2025년 5월 10일작성자 : Kinesh Satiya 공유하게된 배경이 아티클을 읽으면서 새롭게 알게된 광고 도메인의 용어, 아키텍처 설계 등의 지식들은 상당히 인상 깊었다. 또한, 어떠한 어려움이 있었고 어떠한 의사결정을 통해 이 기술들을 선택하게 되었는지 등 쉽게 알기 어려운 과정들을 엿볼 수 있어서 좋았다. 가장 흥미로웠던 점은 초기 아키텍처를 받아들이는 생각과 문제인식을 통해 개선하고자 하는 방향성 설계, 그리고 비즈니스 관점에서의 접근법들을 이렇게 자세하게 공유를 해준다는 것은 넷플릭스라는 기업만 할 수 있는 고유한 행위라고 생각된 점이었다. 항상 단..
회사에서 무엇을 얻어갈 수 있을까? 인프런 멘토링 후기 배경 방황할때 사람들이 입을 모아 얘기하는 해결책은 멘토를 구하여 조언을 얻는것이었다. 나의 대학원생 경험을 비춰보았을때, 나를 성장시킨 원동력 역시 멘토의 존재였다. 교수님과 1주일에 한 번 1:1 미팅을 하며 방향을 체크하고 조언을 얻는 세션을 항상 가졌다. 그것은 자의에 의한것이 아닌 교수님과 함께 연구를 하며 지켜야 했던 지시사항이었는데, 지금 생각해보니 굉장히 은혜로운 행동이셨다. 개발자로 취업하여 1년을 보냈지만 아직도 무엇을 어떻게 학습을 해야할지 막막하다. 이러한 답답함을 풀어줄 방법은 멘토링이라는 하나의 답으로 귀결됨을 느껴졌고, 인프런을 통해 멘토링을 신청했다. 나는 개발자로 앞으로 어떻게 성장해야할지 궁금했고 좋은 답변들을 얻었다. 나랑 비슷한 고민을 하는 사람들이 이 질문과 답변을 ..
Java 스레드의 메모리 관리와 할당에 대한 이해 배경Spring Boot에서는 Async 어노테이션으로 비동기 메서드를 쉽게 작성할 수 있다. 우리 팀에서 운영 중인 서비스에는 알림 생성 로직을 비동기로 실행하고 있다. 그 알림들 자체는 미래에 발생하기 때문에 동기적으로 작성할 필요가 없고, 유저들에게 응답속도를 높이기 위한 결정으로 보였다. Spring Boot의 코어 기능인 AutoConfiguration 덕분에 ThreadPoolTaskExecutor 빈도 자동으로 등록되지만, 실무에서는 IO-Bound, CPU-Bound 등 목적에 맞는 스레드 풀을 만들어 운영할 필요가 있다. 서로 다른 특성을 가진 작업을 혼합해서 사용하면 비효율이 발생하기 때문이다. CPU 사용이 낮은 IO-Bound 작업은 코어보다 많은 수의 스레드를 풀에 담아 사용하고,..
싱글턴 패턴에서 고려 해야하는 동시성 이슈 배경스프링 프레임워크를 사용하는 개발자라면 싱글턴 패턴에 익숙하다. 스프링의 코어 DI구현 기술로 스프링 빈(Bean)이 싱글턴 스코프를 디폴트로 갖기 때문이다. 싱글턴 패턴은 "단 하나의 인스턴스를 전역에 제공"하기 때문에 인스턴스의 생성과 사용에 아우르는 동시성 이슈가 발생할 수 있다. 동시성 이슈는 하나의 공유자원을 여러 연산 주체가 접근하면서 발생하는 문제로 여겨진다. 헤드 퍼스트 디자인 패턴 책을 통해 싱글턴 패턴을 학습할때 동시성 이슈의 초점은 인스턴스 생성제한에 맞춰져 있음을 알게되었다. 따라서, 이 글에서는 싱글턴 패턴의 개념과 발생할 수 있는 동시성 이슈 및 해결 방법에 대해 서술해보려고 한다. 싱글턴 패턴 먼저 싱글턴(singleton)의 사전적 의미를 살펴본다. 해석해 보면 "고려 중..
백엔드 엔지니어링 학습에 유용한 리소스들 정리 강의 bradkim | 인프런 bradkim님의 소개 - 인프런인프런 bradkim님의 소개 페이지 입니다. - bradkim님 소개 | 인프런www.inflearn.com간단한 수강평 :대체적으로 짧고, 요점이 분명함, 전달력이 좋음동작, 설정 방식에 대한 이해가 명확함루즈하지 않아서 완강률이 높음실무에서 필요한 내용들을 알차게 담아서 전달하는 편구매한 강의 :카카오, 구글 SNS 로그인(springboot3, vue3) | 20250615 구매개발자라면 알아야 할 redis 기본 | 20250513 구매 김영한 | 인프런 김영한님의 소개 - 인프런인프런 김영한님의 소개 페이지 입니다. - 김영한님 소개 | 인프런www.inflearn.com간단한 수강평 : 구매한 강의 : 📚 테크 블로그U..
레디스를 처음 학습하면 이 강의를 추천 배경우리 조직 서비스에 레디스를 같이 운용하는데, 나를 포함한 조직원들의 활용률이 떨어진다고 느꼈다조직이라는 표현을 사용한 이유는 여러 팀들을 포함하기 때문이다대부분의 요구사항들은 간단한 http 동기식 통신의 클라이언트-서버 패턴으로 해결되어왔기 때문이다최근 많은 계열사를 갖는 고객사가 우리 서비스를 구독을 하게 되었는데, 어드민 페이지에 접근할 때 응답속도가 느려졌다는 리포팅을 많이 받았다원인은 고객사 사이즈가 커지면서 조직 복잡도도 높아졌는데, 조직을 조회하는데 비효율적인 로직방식이 적용되어있기 때문이다이에 대한 여러 해결책 (DB, App 레벨)이 제시될 수 있지만, 더 좋은 방법, 여러 시각에 대한 견문을 확보하기 위해 레디스 활용법을 익혀 테스트를 해볼 생각을 갖게 되었다일단 기초부터 빠르게 ..