본문 바로가기

전체 글121

이사청소 후기 | 맑음제작소, 구축 아파트도 믿고 맡긴 이유 이번에 맑음제작소에서 이사청소를 맡겼는데, 결론부터 말하면 대만족이라 이렇게 후기 남깁니다. 왜 '프리미엄' 청소를 골랐나저희는 전세라 집이 온전히 제 소유가 아니다 보니, 도배까지 새로 하기엔 아무래도 부담스러웠어요. 그런데 구축 아파트라 사용감도 있고 곳곳에 묵은 때도 꽤 있는 상태였거든요. 도배로 싹 갈아엎는 대신, 청소만큼은 제대로 해서 컨디션을 최대한 끌어올리자는 게 저희 결론이었습니다.그래서 일반 청소보다 프리미엄 청소 옵션까지 있는 맑음제작소가 딱이었어요. 손 많이 가는 구축을 제대로 봐줄 곳이 필요했으니까요. 계약할 때부터 믿음이 갔던 포인트계약 단계에서 사장님이 먼저 이런 말씀을 하셨어요."작업 시간이 꽤 걸리는데, 마지막 점검까지 기다려주실 수 있으세요?" 보통은 "빨리 끝내드릴게요"를.. 2026. 7. 4.
바이브 코딩 첫 실천기: AI와 함께 만든 점심 메뉴 추천 서비스 AI와 함께 만든 점심 메뉴 추천 서비스: What Launch 개발기들어가며이 프로젝트를 시작한 이유는 단순했습니다. 바이브 코딩을 경험해보고 싶었기 때문입니다.AI와 함께 코딩하는 방법을 배워보고 실습하는 시간을 가져보고 싶었고, 그 결과물이 바로 이 프로젝트입니다. "오늘 점심 뭐먹지?" 매일 반복되는 이 고민을 해결하는 간단한 웹 서비스를 만들면서, Cursor의 AI 어시스턴트와 함께 개발했습니다.단순한 프로젝트지만, 바이브 코딩을 알아보고 처음 실천해본 프로젝트입니다.무엇을 만들었나What Launch는 위치와 음식 장르를 입력하면 주변 식당 중 하나를 랜덤으로 추천해주는 간단한 웹 서비스입니다.위치 입력 (주소 또는 장소명)음식 장르 선택 (한식, 일식, 중식, 양식, 기타, 또는 랜덤)주변.. 2025. 11. 15.
[AWS ECR] no basic auth credentials 에러: GitHub Actions 배포 중 발생 문제 상황Github Actions 로 CI/CD 를 구축하고 있었습니다.스프링 부트 프로젝트를 Docker Image 로 만들어서 ECR 에 푸시하고, EC2 는 ECR 에서 pull을 하는 방식이었습니다.EC2 에서 aws-ecr-credential-helper 를 설치해, ECR 접근 시 로그인 과정을 자동화했습니다.| 배포 스크립트...- name: SSH로 EC2에 접속하기 uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.EC2_HOST }} username: ${{ secrets.EC2_USERNAME }} key: ${{ secrets.EC2_PRIVATE_KEY }} script_stop: true scri.. 2025. 8. 12.
QR코드로 시작된 교회 성경학교 웹사이트 이야기 강습회에서 시작된 계기지난 여름, 교회 성경학교 강습회에 참석했을 때의 일입니다.강습회에서 QR코드를 활용한 모습을 보게 되었는데, 간단한 공지등 안내사항을 QR코드를 활용한 모습이 인상적이었습니다.다른 교사분들도 같은 생각을 하셨는지, "우리 교회도 이런 식으로 해보면 어떨까요?"라는 의견이 자연스럽게 나왔습니다.개발자로 일하고 있는 저는 이 제안을 듣고 한번 시도해보기로 했습니다.강습회에서 본 것을 그대로 옮기는 것이 아니라, 커스텀을 해서요! 개발 과정에서의 경험처음에는 단순해 보였던 프로젝트였지만, 실제 개발 과정에서는 삐걱이게 만드는 문제들이 있었습니다.특히 기억에 남는 것은 CORS 문제였습니다.프론트엔드는 HTTPS를 사용하는데 백엔드는 HTTP를 사용하고 있어서 데이터를 가져오지 못하는 상.. 2025. 7. 16.
DB 조회 최적화: Map을 활용한 조회 횟수 줄이기 이번 포스팅에서는 제가 실제 프로젝트에서 겪었던 DB 조회 성능 이슈와 이를 해결한 경험을 적어보고자 합니다.DB (외부 저장소)를 건별로 호출하던 로직을 한 번에 조회하여 Map으로 변환 후 매핑하는 방식으로 전환하면서 얻은 성능 개선 경험을 기록해보고자 합니다.as-is (기존 방식)데이터 10건 조회 시, 각 데이터의 관련 ID마다 외부 저장소(DB/ES/Redis 등)를 개별 호출호출 횟수: 데이터 N건 → 외부 저장소 N회 호출코드 예시// Data 클래스 예시public class Data { private Long id; private String title; private List relatedIds; // 외부 저장소에서 조회할 ID 목록 // getters, set.. 2025. 7. 14.
서버 리소스 절약하면서 데이터 정리하기 - MySQL Event 활용기 들어가며최근 알림 시스템을 개발하면서 알게된 기능을 활용해 조금의 성능을 개선한 경험을 담아보았습니다.문제 상황‼️ 사용된 코드와 MySQL Event 정의 script 는 예시입니다..!알림 시스템을 개발하면서 NotificationHistory 엔티티를 만들어 알림 히스토리를 관리했습니다.@Entity@Table(name = "notification_history")class NotificationHistory( @Column(name = "created_at", nullable = false) val createdAt: Long = System.currentTimeMillis(), // ... 다른 필드들)아래의 상황을 문제로 정의했습니다:의미 없는 오래된 데이터: 1주일이 지난 알.. 2025. 7. 5.