백엔드 개발자
9osari의 개발 기록
안녕하세요. 잠실에서 일하는 주니어 백엔드 개발자입니다.
2022년 소프트웨어융합과를 졸업하고, 국비학원을 거쳐 2024년 가산디지털단지에서 풀스택 개발자로 첫 개발 인생을 시작했습니다. 첫 해는 회사 적응과 도메인 지식 습득에 바빴는데, 그 과정에서 개발의 재미를 알게 됐습니다. SI 회사의 레거시 코드와 보수적인 분위기에 답답함을 많이 느껴 2025년부터 이직을 목표로 본격적으로 공부를 시작했고, 2026년 가산을 벗어나 원하던 기술 스택을 쓰는 개방적인 환경으로 이직했습니다. 지금은 잠실에서 그동안 공부한 것들을 마음껏 실무에 녹여보고 있습니다.
기초가 제일 중요하다고 생각해서, 처음 시작하는 마음으로 공부하고 그 기록을 이 블로그에 남깁니다. 요즘은 하네스 엔지니어링과 리팩터링을 공부하고 있습니다.
글에 대한 이야기는 댓글이나 메일로 언제든 환영합니다 (어차피 나만 볼 것 같지만..)
[보안] 취약점 보고서와 인증/인가
회사에서 취약점 보고서를 받았다. 계열사 보안 담당자가 회의실에서 발표를 했다. 어떤 프록시 프로그램으로 API 응답값을 바꿔서 다시 보내면, 관리자 화면이 그냥 열린다. 요청에 들어가는 id를 남의 것으로 바꾸면, 남의 회원정보가 조회된다. 심지어 다른 사람의 비밀번호를 내가 바꿀 수
[리팩토링] 도메인 책임 위치를 잘못 잡았을 때 보이는 신호
사람에 붙인 자격증명을, 연동 채널로 옮긴 이야기 외부 시스템 연동을 위한 OAuth 자격증명(clientId / clientSecret / clientEmail)을 처음엔 Operator라는 "사람" 엔티티에 박았다. 일주일 뒤, 동일한 자격증명을 ExternalChannel이라는 "
[리팩토링] 복잡한 승인 로직, SRP와 DRY 원칙으로 통합하기
공통 모듈 캡슐화로 승인 로직 리팩토링 들어가며 최근 신규 기능을 개발하던 중, 기존 모듈들에 흩어져 있는 승인/반려 로직을 전반적으로 훑어볼 기회가 있었습니다. 처음에는 별다른 위화감이 없었지만, 코드를 하나씩 따라가다 보니 소름 돋을 정도로 익숙한 패턴들이 눈에 들어오기 시작했습니다
[JVM] 메모리 구조와 객체 흐름
도입 남한테 설명할 줄 알아야 진짜 공부가 된거다. JVM에 대해 한번 공부했지만 기억에 남는건 별로 없었다. 이제부턴 모르는 사람에게 이 개념을 설명한다 상상하고 혼자 설명하며 공부해보려한다.. JVM의 역할과 RunTime Data Area 구조, 그리고 객체가 생성되고 GC로 정리
[Thread] 생산자-소비자 패턴
DevBid 프로젝트에서 입찰 동시성 제어를 Redis 분산락으로 구현했지만 자바 기본 동시성 메커니즘을 제대로 이해하고 싶어 김영한 선생님의 자바 고급편 강의를 듣고 있다. 그 중 생산자-소비자 문제를 BlockingQueue 로 이해하고 정리한 포스팅이다. 락의 2단계 대기 상태 s
[Spring Security] 카카오와 구글 소셜로그인 구현하기
도입 이유 기존 DevBid의 로그인 흐름은 세션 기반 인증이었다. 이 구조는 단순하고 안정적이지만, 경매 플랫폼 특성상 몇 가지 한계가 있었다. 회원가입 허들이 높다 경매는 충동적으로 참여가 이루어지는 경우가 많다. 가입 과정에서 이메일 인증, 비밀번호 규칙 등의 절차가 길어지면 이탈
[OS] 프로세스와 스레드
멀티태스킹 CPU가 매우 빠르게 두 프로그램의 코드를 번갈아 수행해 사람이 느낄 때 두 프로그램이 동시에 실행되는 것처럼 느끼는 것. 각 프로그램의 실행 시간을 분할해 마치 동시에 실행되는 것 처럼 하는 기법을 시분할(Time Sharing, 시간공유) 기법이라 한다. 따라서 CPU 코
[Spring] Spring AOP 이해하고 적용하기
AOP란? Aspect-Oriented Programming (관점 지향 프로그래밍) 로깅, 트랜잭션, 보안 같은 공통 기능을 비즈니스 로직에서 분리하는 기법 AOP 없이 구현 비즈니스 로직보다 부가 기능 코드가 더 많다.. 이런 코드가 모든 메서드에 반복된다면..? ~~끔찍~~ AOP
Elsewhere