Article - 깊게 탐구하기 73

AI Agent와 객체지향적으로 협업하기

본 글은 AI의 코드 리뷰가 필요하다 라는 관점에서 작성된 글입니다.최근에 AI 코드를 리뷰하지 않고 커밋하는 경우도 많다는 걸 알고 있으며,이러한 개발방식을 선호하시는 분들은 글이 유의미하지 않을 수 있습니다. 본 글은 제가 기본적으로 알고 있는 지식과 적용하던 절차를 바탕으로 작성된 글입니다.이 과정이 만약 비효율적이거나 더 좋은 방법이 있다면, 언제든 수정될 수 있습니다.최신 수정일자: 2026/03/15 요새는 구현 부분을 AI가 많이 대체하고 있다. 과거에는 기존에 TDD/구현을 직접 해보면서 요구사항 분석에 깊이가 깊어지던 시간이 있었다.이 과정은 코드 산출물을 직접 만들면서 요구사항을 이해했기 때문에, 코드 작성 시간 시점에서 효율적이었다. 하지만, 이젠 코드 자체의 작성 시간이 AI로 인해..

토스 결제 API 직접 사용해보기 (FE v2/BE v1 기준)

최신 버전은 아래 구조와 다를 수 있습니다. 공식 문서를 참고하여, 버전이 맞는 지 확인해 주시기 바랍니다. 시작하기 | 토스페이먼츠 개발자센터토스페이먼츠 결제 연동하는 클라이언트, 서버 개발자가 꼭 읽어야할 문서를 추천해드려요. 빠르게 개발을 시작해보세요.docs.tosspayments.com 결제 이해하기온라인 결제: https://docs.tosspayments.com/guides/v2/get-started/online-payment결제 흐름 이해하기: https://docs.tosspayments.com/guides/v2/get-started/payment-flow이 글 보다 당신에게 딱 맞출 수 있는, Toss Payments 공식 문서: https://docs.tosspayments.com/g..

MountainCar - Double DQN, Gradient Clipping, 하이퍼파라미터 다루기

나는 이전에 -120대에서 MountainCar 구현을 마무리 지었지만, 공식 문서에서는 100개 이상의 trials에서 -110 이상의 Reward를 문제 해결의 기준으로 판단한다. MountainCar v0A toolkit for developing and comparing reinforcement learning algorithms. - openai/gymgithub.com 그래서, 이러한 찜찜함을 제거하기 위해, MountainCar 문제에 마저 도전을 수행해보았다.DDQN 적용 Double DQN 최적 행동 선택과 행동 가치 평가(Q값 평가)의 신경망 분리 학습 시의 실시간 모멘텀을 가치 평가와 분리하면, 순간적으로 가치가 높아진 잘못된 행동을 계속 선택하는 현상을 막을 수 ..

[쿠버네티스 튜토리얼] 8. 쿠버네티스 클러스터 구축부터 CNI, Ingress Controller 설정까지 직접 해보기

앞서, k3s로 쿠버네티스에 대한 정보를 대략적으로 이해했다. 'Article - 깊게 탐구하기/kubernetes, k8s 적용기' 카테고리의 글 목록목표: 핀잇 실사용자 1명 이상 달성하기 글은 비정기적으로 7시에 올라옵니다.go-gradually.tistory.com 클러스터 내에 노드 등록각 노드의 적절한 리소스를 할당하는 방식을, "마스터 노드(컨트롤 플레인)"에서 관리쿠버네티스가 어렵다고 하는 가장 큰 이유선점형/비선점형 리소스 할당을 이용해, 직접 관리하는 것이제 k3s 가 자동으로 진행해주던 부분을 직접 해보며, k8s를 좀 더 깊게 써보자.기본 개념 1 - kubeadm, kubectl, kubelet의 구분기본 개념 2 - 목표 상태 설정모든 노드: k8s 설치 준비모든 노드: k8s ..

블러 처리된 데이터, 실무에선 어떻게 처리할까?

최근 다음 동영상을 보면서, 갑자기 나도 궁금해졌다. 블러 처리된 데이터, 실무에선 어떻게 처리할까? 이러한 처리 방식을 최근 잡플래닛에서 많이 봤었는데, 내가 본 이 기능은 실제로 어떻게 구현했는지 궁금해졌다. 그래서 확인해봤다. img 태그를 이용해 보여주고 있는 것을 확인할 수 있었다. https://jpassets.jobplanet.co.kr/production/uploads/material/media/12357/review_blind_desktop.svg 그리고 해당 링크를 들어가보니, SVG 파일이었다. 이 방식이 정답은 아니겠지만, 이런 걸 알아가는게 소소한 재미가 되는 것 같다.

수강 신청 시스템 구축 - 동시성 문제 처리로 인한 성능 문제 해결하기

지난 2월 8일, 무신사에서 3시간 동안 AI 를 활용한 코딩테스트를 진행했다. 문제는 다음과 같다.https://github.com/musinsatech/2026-musinsa-rookie GitHub - musinsatech/2026-musinsa-rookie: 2026 무신사 AI Native 개발자 채용 2차 시험 안내2026 무신사 AI Native 개발자 채용 2차 시험 안내. Contribute to musinsatech/2026-musinsa-rookie development by creating an account on GitHub.github.com 이번 무신사 코테는 "무신사 측"에서 적극적으로 회고를 권장하고 있다...! 사실 나는 더 이상 코테 후기 글은 쓰지 않을 예정이었다.이전..

[오마이픽] 나만의 OPIc 선생님, 오마이픽

이번 설의 목표는 오픽이다. 예전에 오픽 시험을 준비하고 싶다면, "오픽노잼" 동영상을 정주행하는 것을 추천받았다. 여기에 AI를 이용해 대화해보면서 오픽 연습을 하고 싶었는데, 시중에 존재하는 모델들은이미 학습되어, 정해진 대로만 답변받거나자체 학습 데이터를 바탕으로만 공부해야 한다.다들 각자 원하는 선생님을 통해 오픽을 연습하고 싶을텐데,정작 나와 대화하는 대상이 나와 다른 선생님을 통해 공부했다면, 피드백에 대한 신뢰도가 떨어질 것이다. 그래서, 본 서비스 "OMyPIc"을 기획하게 됐다.목차제품 개요주요 기능챗봇학습 룰북질문 리스트 & 학습 모드 지원오답노트API 키 삽입1. 제품 개요사용자는 오픽 학습을 시작하고 대화형으로 빠른 피드백을 원한다.기존 보이스 모델은 커스터마이징이 제한되어, 사용자..

이벤트-루프 모델과 DB 트랜잭션 지원

비동기(Promise, Async, Coroutine, Reactor) 에 대한 깊은 이해를 수행하다보면, 필연적으로 마주치는 어려움이 있다.바로 이벤트 루프 모델은 어떻게 DB I/O 방식을 바꾸는가 이다. 상당히 이해하기 어려운 개념이기 때문에, 읽는 독자 여러분들도 직접 그림을 그려보며 이해하는 것을 권장한다. 자바+스프링의 예시를 바탕으로 이야기를 전개해 나가겠다.목차이벤트 루프(비동기) 모델의 목표DB 드라이버와 DB간의 통신 방식DB 드라이버와 애플리케이션 간에 발생하는 문제점결론1. 이벤트 루프(비동기) 모델의 목표일반적인 HTTP 요청의 처리 흐름을 그려보면 다음과 같다.속이 빈 형태 - 인터페이스속이 채워져있는 형태 - 구현체너무나 당연한 이야기지만, 애플리케이션 코드 플로우는 자체적인 ..

[Pinit] 디스코드 메시지로 예외 알림 받기

실제로 k3s를 이용해 배포한 뒤, 발생한 예외를 바로바로 확인하기 어려운 문제가 있었다. 따라서, 디스코드 웹훅을 이용해 예외를 메시지로 받아보려 한다.목차에러 로그를 디스코드 메시지로 전달할 Appender에 대해 알아보기DiscordWebhookAppender 구현하기logback-spring.xml 정의하기AppenderLogback에서 Appender는 “로그 이벤트(ILoggingEvent)를 받아서, 특정 출력 대상(sink)으로 내보내는 출력 어댑터”이다. 간단하게 Appender가 동작하기까지의 동작 과정을 살펴보면 다음과 같다.SLF4J API: log.info(...), log.error(...) 호출Logback Logger: 로그 이벤트(ILoggingEvent) 생성(선택) Fi..

[Pinit] API-Gateway 핀잇에 적용하기

API 게이트웨이는 프론트와 백엔드 간의 연결 전에, 백엔드 서버를 Production에 올려 테스트할 때 필요하기에 만들게 되었다.1. 인증 로직 번거로움 관점백엔드 기능의 서브 도메인 단위 통합테스트를 하고 싶었는데, 현재 서브 도메인 내에서 자체적으로 인증 기능을 수행해고 있었다.그래서 curl로 간단하게 테스트하기가 어려운 문제가 존재하고 있었다.인증 기능과 같은 공통 로직 관점 기능이 마이크로서비스에 침투해 있으면, 우리가 구현한 기능만 간단하게 테스트하기가 까다로워지는 문제가 발생한다.2. 프론트가 API 버전을 몰랐으면 좋겠다.프론트가 버전을 몰라도, request Body 기반으로 라우팅을 수행할 수 있으면 좋겠다.그런데, request body 파싱->객체 변환->API 재호출은 게이트웨..