클로드 코드 개발자 Boris Cherny의 클로드 코드 사용법 (Claude Code)
·
AI/Claude Code
들어가며요즘 클로드 코드(Claude Code)가 정말 빠른 속도로 발전하고 있다고 생각한다. 얼마전에 1000개 이상의 쿼리를 단기간에 마이그레이션 하기위해서 Copilot Agent Mode 를 활용했던거 처럼, 단순 AI 발전 말고도 개발자의 더 명확한 판단 능력, 검증을 설계하는 능력, 작업을 자동화하는 능력 등등이 더 중요해지고 있다고 판단했다. https://huncozyboy.tistory.com/66 AI Copilot Agent Mode로 SQL 쿼리 마이그레이션 (Copilot)들어가며CUBRID 데이터베이스 환경에서 돌아가던 SQL 쿼리들을 MySQL 8.x로 마이그레이션하는 작업을 한 내용으로 포스팅을 해보려고 한다.AI Copilot(Agent Mode)을 활용해 1000개가 넘는..
AI Copilot Agent Mode로 SQL 쿼리 마이그레이션 (Copilot)
·
AI/Copilot
들어가며CUBRID 데이터베이스 환경에서 돌아가던 SQL 쿼리들을 MySQL 8.x로 마이그레이션하는 작업을 한 내용으로 포스팅을 해보려고 한다.AI Copilot(Agent Mode)을 활용해 1000개가 넘는 쿼리 변환을 성공적으로 마칠 수 있었고, 최근 AI 기술 발전에 관심 있는 개발자분들에게 해당 경험 공유가 도움이 되었으면 좋겠다.MySQL 8.x 로 마이그레이션을 결정한 이유먼저 기존의 CUBRID 시스템에서 MySQL 8.x 로 옮기게된 이유부터 설명하려고 한다. 첫번째, 잦은 Lock 발생RANGE 조건이 들어간 쿼리가 특정 시간대에 몰리면, 인덱스 범위 스캔 과정에서 잠금이 생각보다 넓게, 많이 잡히는 순간이 종종 있었다. 특히 업데이트 + 삭제처럼 쓰기 작업이 섞이면, 한 건이 느린 ..
스웨거 typescript-api로 자동화 하는법 (Swagger)
·
Spring/Swagger
들어가며Sopt에서 Lococo를 개발하면서 스웨거가 단순히 문서화 툴일 뿐만 아니라, 클라쪽에서 자동화로 뽑아서 코드를 작성해줄 수 있는 툴이 있음을 알게되었었다. 그래서 NestJS의 공식 문서를 보다가, 흥미로운 내용이 있어서 포스팅을 작성하게 되었다. @nestjs/swagger, FastAPI, Springdoc-openapi 같은 것들이 대표적인데, 이런 프레임워크들은 컨트롤러/라우트 정의를 읽어서 OpenAPI 문서를 뽑아주기까지 할 수 있다.https://docs.nestjs.com/openapi/introduction Documentation | NestJS - A progressive Node.js frameworkNest is a framework for building efficie..
Spring Boot 4.0 RC1 릴리즈 (Spring)
·
Spring/CS 개념
서론링크드인을 살펴보다가 2025년 10월 24일에 Spring Boot 버전이 메이저로 올라간 사실을 알게됐다. 정확히는 Spring Boot 4.0.0‑RC1이 릴리즈 되었다는 소식이었고, LTS(장기지원) 버전은 아니지만 메이저 버전 변경이라는 점에서 관심을 가지고 찾아보게 되었다. 이번 포스팅은 버전 4.0에서 주목할 만한 몇 가지 변경사항을 추려보고 앞으로 프로젝트 진행 시 참고할 만한 기능이 있는지, 그리고 Spring Boot가 어떤 방향으로 나아갈거같은지, 공유하고자 작성하게 되었다. (물론 RC 버전이라 확정이 아님을 감안해주면 좋을거같다본론2025년 10월 23일(미국 기준)에 Spring 공식 블로그에는 “Spring Boot 4.0.0‑RC1 available now”라는 글이 올..
Conflict를 깃허브 웹에서 해결시 주의사항 (Github)
·
Github/Conflict
들어가며요즘 현업에서나 개인, 팀 플젝에서 GitHub를 활용해서 활발하게 PR(Pull Request) 기반 협업을 진행하고있다. 해당 과정에서 작업 브랜치와 동일한 브랜치에서 다른 작업들이 병합이 되면서 충돌(Merge Conflict)이 발생하는 경우가 있다.물론 IntelliJ IDEA나 vs code를 활용하여 개발 환경 도구를 사용할 수도 있지만, 이러한 충돌을 웹 UI 상에서 간편하게 해결할 수 있다는 점이 GitHub의 장점이라고 필자도 생각하고 있다.하지만 이번 포스팅은 해당 GitHub 웹에서 Conflict를 해결할때의 주의사항에 대해서 다루어보려고 한다.이번 글에서는 웹 UI를 통한 충돌 해결 방식이 어떻게 동작하는지, 어떤 주의사항이 있는지, 그리고 충돌 해결 시 권장되는 방식에 ..
Instagram Basic Display API vs Graph API 무슨 차이가 있을까 (OAuth)
·
Spring/OAuth
들어가며글로벌 크리에이터, 브랜드를 연결해주는 서비스 Lococo를 개발하면서, 크리에이터는 브랜드가 올린 "캠페인"이라는 것에 신청하고, 해당 제품에 대한 후기를 SNS에 업로드하는 로직이 있었다. 때문에 업로드한 SNS에 대한 정보를 가져오기 위해서는 SNS 연동이 필수적이였는데, 해당 포스팅은 Instagram 연동을 하면서 고민했었던 내용을 작성해보려한다본문인스타그램 연동을 위해 공식 문서를 봐도 공식문서를 보면, Facebook 로그인을 통한 Instagram API랑 Instagram 로그인을 통한 Instagram API가 별도로 존재하는걸 알 수 있었다. 이 글에서는 내가 겪었던 혼란 포인트들을 공유하면서, 상황에 따라서 어떤 플로우를 선택해야 하는지와 OAuth 차이를 정리해보려고한다로그..
배포 후 구매한 도메인 연결하기 (Route 53)
·
DevOps/Route 53
들어가며EC2로 서버를 배포한 뒤에는 https://***.nip.io/ 라는 무료 도메인인 nip.io를 붙여주면 정상적으로 스웨거가 접속이 되며 테스트가 가능할 순 있다. 하지만 실제 유저를 받기 위해서 고유한 도메인을 구매한 뒤에 라우팅을 시켜줘야하는데, 이번 포스팅은 Route 53을 활용해서 가비아에서 구매한 도메인을 EC2 서버와 호스팅하는 플로우를 다루려고한다Route 53이란 ?AWS에서 지원하는 DNS(Domain Name System) 이라는 뜻을 가진다쉽게 설명하면 도메인을 발급하고 관리해주는 서비스를 의미한다 여기서 DNS는 특정 컴퓨터가 가지는 고유한 IP 주소를 문자로 변환해주는 시스템을 의미하며, 결론적으로 프론트든 백엔드 서버든, 웹에서는 HTTPS를 적용한 도메인을 기반으..
userId를 매번 입력받지않고도 로그인한 유저 정보를 가져올 수 있을까 ? (JWT)
·
Spring/JWT
들어가며스프링 시큐리티는 SecurityContext에 인증 객체(Authentication)를 저장한다public String getCurrentUser() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); // Principal 객체 (UserDetails 구현체) 가져오기 Object principal = authentication.getPrincipal(); if (principal instanceof UserDetails userDetails) { return "현재 로그인한 사용자: " + userDe..
슬랙 웹훅으로 신고하기 기능 구현하기 (Webhook)
·
Spring/Webhook
들어가며먼저 링크 서비스에 기획에 대해서 가볍게 설명하려고 한다Leenk 서비스는, Leets라는 동아리를 운영하는 입장에서 생각했을때 동아리 원들의 커뮤니케이션 수단을 개발해서 제공해준다면 어떨까 ?? 라는 생각이 들어 시작하게된 서비스다예쁜 디자인 + 랜딩 사이트 만들어주셔서 개큰감사 🙇🏻‍♂️ (Shout out to 도연, 한별)https://leets-makers.framer.website/ Leets MakersGachon University IT Collaboration Club, Leets Makers' Landing Page - Made by. Makers' Designer, Doaeng.leets-makers.framer.website동아리원들이 자유롭게 사진을 공유하고, 모각작과 ..
디스코드를 활용한 500 에러 알림 자동화 (Webhook)
·
Spring/Webhook
들어가며지금 해당 API 500 뜨는데 원인 알 수 있을까요지금 오류 로그 한번만 확인해주실래요 ??해당 API 500 뜨는데 원인이 뭘까요백엔드로 다른 파트와 개발을 진행하다보면, 플젝을 진행하면서 위와 비슷한 말들을 수도 없이 들었을 것이라고 생각한다. 물론 500 에러가 최대한 발생하지 않도록 세부적으로 예외처리를 최대한 처리해줘야 되겠지만, 비즈니스 로직단에서 잡을 수 없는 에러나 특수한 상황에서 발생하는 에러들은, 서비스단에서 예외를 던져주기보다는 GlobalExceptionHandler에서 처리되는 것으로 알고있다. 때문에 위처럼 커스텀되지 않은 상황에서의 에러는 500을 뱉게 된다 termius에 들어가서.... 서버 ssh 환경으로 들어간 뒤에.... dokcer 명령어를 입력해서.......