한조각
@apiece
수강생
507
수강평
24
강의 평점
5.0
카카오, SK를 거쳐 개발자로 일하며
실제 서비스 환경에서 다양한 백엔드 시스템을 설계하고 운영해왔습니다.
그 간 겪었던 시행착오와 고민들이
수강생 여러분의 시간과 선택을 조금이라도 아껴줄 수 있기를 바라는 마음으로
지식공유 콘텐츠를 만들고 있습니다.
콘텐츠에 대한 의견이나 개선점이 있다면
아래 메일로 언제든 편하게 말씀해주세요.
여러분의 솔직한 피드백을 기다리고 있습니다. 감사합니다.
apiece.dev.ai@gmail.com
강의
수강평
- 4주 완성 백엔드 설계 챌린지 (SNS Springboot, AI agent)
- AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편
- 4주 완성 백엔드 설계 챌린지 (SNS Springboot, AI agent)
- AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편
- AI 다루는 백엔드 설계 기본 - SpringBoot SNS 편
게시글
질문&답변
영상 안보임
안녕하세요 Nuri Park 님 맥북인데 미러링시 영상이 안보이신다면 에어플레이 / HDMI 연결 이슈인 경우가 많습니다.혹은 간혹 미러링 상태에서 검은화면으로 나올때도 있어서시스템 설정 > 디스플레이에서 ‘미러링’이 아닌 ‘확장 디스플레이’ 로 설정 후 다시 재생해보세요.노트북을 메인디스플레이로하고, 다른 모니터리를 확장 디스플레이로 하시면 됩니다. 혹시 이런 문제가 아니라 제 강의 자체나 특정 영상이 문제가 있다면 말씀해주세요.
- 0
- 1
- 21
질문&답변
중간 결과물을 다운 받을 수 있는 곳이 있나요?
안녕하세요, Sec님 현재는 Github 에 브랜치로 관리되고 있습니다.최종버전: (main 브랜치) https://github.com/apieceofcoding/springboot-twitter필요하신부분: (feature/003-docker 브랜치) https://github.com/apieceofcoding/springboot-twitter/tree/feature/003-docker git switch feature/003-docker여기로 이동하셔서 한번 작업 진행해보시면 좋을 것 같습니다. 본 강의는 하나하나 따라해보면서 진행해보는게 목적이어서, 순서대로 차근차근 진행해보시면 좋을것 같습니다. 감사합니다.
- 1
- 2
- 28
질문&답변
agents와 commands에 대해 궁금한 점이 있습니다!
안녕하세요 insub2004님!좋은 질문 많이주셨네요.1)Agents와 Commands 는 실제로 클로드 코드 공식 문서에 정리되어있고, 각각 다른 기능입니다.Agents는 독립적인 컨텍스트에서 실행되는 전문가 AI로, 작업이 끝나면 결과만 메인 대화로 반환합니다. 참고: https://docs.anthropic.com/en/docs/claude-code/sub-agentsCommands는 메인 대화 안에서 바로 실행되는 지침이나 템플릿입니다. 참고: https://docs.anthropic.com/en/docs/claude-code/skills(AI 생태계 발전이 빠르다고 느끼는것이, 클로드코드에서 commands 개념을 skills 와 합쳤네요. 하지만 기존 구성은 여전히 똑같이 동작한다고 하니 강의에서 구성한 commands 를 그대로 사용하셔도 됩니다.)쉽게 말해 Agents는 별도의 방에서 따로 일하는 전문가이고, Commands는 지금 대화에서 바로 쓸 수 있도록 미리 구성해 놓은 명령 지침이라고 생각하시면 됩니다.2) 코드 리뷰 에이전트, 테스트 작성 에이전트, 쿼리 작성 에이전트처럼 각각의 페르소나를 가진 독립 객체로 생각하시면 맞습니다. 각 에이전트는 자신만의 시스템 프롬프트, 사용 가능한 도구, 심지어 모델까지 별도로 지정할 수 있습니다. 3)Commands는 Agents와 완전히 독립적인 기능이라 에이전트 없이도 단독으로 사용할 수 있습니다. 4)호출 방식의 차이(자연어 vs /슬래시명령어)도 있지만, 핵심 차이는 실행 환경입니다. Agents는 격리된 공간에서 실행되어 메인 대화 컨텍스트를 소비하지 않고, Commands는 메인 대화 안에서 컨텍스트를 함께 사용하며 실행됩니다. 답변이 도움이 되었으면 좋겠습니다.감사합니다.
- 1
- 2
- 41
질문&답변
여러 컨테이너 사용시 사용할 포트 번호는 무엇으로 하면 되나요?
안녕하세요! Sec님 여러 컨테이너를 동시에 사용할 때는 로컬 PC에서 바인딩하는 포트만 서로 다르게 잡아주면 됩니다. 컨테이너 내부에서 MySQL이 사용하는 포트는 모두 3306이어도 전혀 문제 없습니다. -p 로컬포트:컨테이너포트위 규칙을 먼저 인지해주셨다면, 이미 -p 3306:3306으로 실행 중인 컨테이너가 있다면, 다음 컨테이너는 -p 3307:3306, 그다음은 -p 3308:3306처럼 로컬 포트만 바꿔서 실행하시면 됩니다. 이렇게 하면 로컬에서는 3307, 3308로 접속하고, 각 컨테이너 내부에서는 동일하게 3306으로 MySQL이 동작합니다. 컨테이너마다 별도의 네트워크 공간이 있기 때문에같은 포트 번호를 사용해도 다른 컨테이너와 서로 간섭하지 않으며, 실제로 포트 충돌이 발생하는 지점은 컨테이너가 아니라 로컬 PC입니다. 따라서 로컬 포트만 겹치지 않게 설정하면 여러 컨테이너를 동시에 실행할 수 있습니다.답변이 도움되었으면 좋겠습니다. 감사합니다.
- 1
- 1
- 31
질문&답변
URL 오타 방지
안녕하세요 Sec님! IntelliJ에서 URL 오타로 인해 API가 정상적으로 동작하지 않았던 상황으로 이해했습니다.이런 경우, 존재하지 않는 API 경로를 호출하면 기본적으로 404 오류가 발생하기 때문에 Postman 등에서 이를 통해 한 번 확인해볼 수 있을 것 같습니다.URL 오타를 줄이는 방법으로는,클래스 레벨에 @RequestMapping("/api/posts") 와 같이 공통 경로를 지정하고,메서드에서는 @GetMapping, @PostMapping 처럼 경로를 비워두거나 /만 사용하는 방식이 도움이 될 수 있습니다.이렇게 하면 URL을 직접 작성해야 하는 부분이 줄어들어, 오타가 발생할 가능성도 함께 낮출 수 있을 것 같습니다.도움이 되셨기를 바라며, 질문 주셔서 감사합니다 🙂
- 1
- 1
- 25
질문&답변
.claude 폴더 규칙 생성 방법
안녕하세요 형씌님 좋은 질문 주셔서 감사합니다. 1)"추후 ... 프로젝트 특성에 맞게 커스텀해야 할 것 같다고 생각합니다." 말씀해주신 이 부분 정말 잘 캐치하셨습니다!현재 제공된 .claude 폴더는 도메인 성격, 아키텍처 방식, 팀 규모에 따라 반드시 조정해야 합니다. 예를 들어 도메인 분리 기준, 레이어 구조, 네이밍 규칙, 코드 리뷰에서 꼭 봐야할 점, 보안 규칙 등은 프로젝트마다 달라지기 때문에 이 부분은 프로젝트에 맞게 수정해주는 것이 좋습니다. 2)새 프로젝트에서 .claude 폴더가 없는 상태라면 특히 프로젝트 기획과 규칙이 이미 있다면이를 바탕으로 먼저 정해볼 수 있는 부분은 도메인 개념 정리, 코딩 컨벤션, 구체적인 개발 규칙에 대한 설명입니다. 이를 미리 정의해두면, 추가 기능을 구현할 때 이 부분을 미리 참고하여 전체적으로 통일감있고 예측가능한 코드를 만들 수 있게 될 수 있습니다. (물론 AI 를 계속 사용해보시면 알겠지만, AI agent 가 기존 코드를 읽고 이를 자동으로 분석하여 해당 코드베이스 맞는 구조로 새로운 코드를 알아서 만들어주기도 합니다.)이후 실제 개발을 진행하면 반드시 반복해서 AI 에게 요청하는 부분이 생길겁니다. 따라서 “AI가 자주 헷갈리는 부분”이나 “매번 설명하게 되는 내용”을 발견할 때마다 .claude 문서를 보완해 나가면, 점점 프로젝트에 최적화된 형태로 완성됩니다. 정리하면, .claude 폴더는 한 번 만들어두고 끝나는 설정이 아니라 프로젝트와 함께 성장시키는 문서에 가깝습니다. 처음에는 단순하게 시작하고, 개발을 진행하면서 반복되는 의사결정과 규칙을 하나씩 녹여내는 방식이 가장 현실적이고 효과적인 접근이라고 보시면 좋겠습니다. 감사합니다.
- 1
- 2
- 53
질문&답변
강의를 어떻게 보면 좋을 까요?
안녕하세요 토니님! 제 추천으로는 챕터별로 [AI 다루기] 까지 모두 학습한 후, 매 챕터마다 있는 미션을 진행할 때 스스로 구현해보시면 좋을 것 같습니다. 제가 드린 깃헙링크의 코드를 따라치기보다는, 무엇을 만들지 머릿속에 그린 상태에서 AI agent 로 직접 구현해보는 경험을 해보시면 좋을 것 같습니다. 감사합니다.
- 1
- 2
- 62
질문&답변
배포 후 Entity 수정 관련
안녕하세요 석석님. ddl-auto=validate 는 엔티티가 변경되더라도 DB 구조는 자동으로 수정되지 않고 검증만 하는 옵션인데요. 애플리케이션과 DB의 상태를 정말 정확하게 맞출때는 validate를 사용할수도있지만, 실무에서는 none 옵션을 사용하기도 합니다. 이유는 운영 환경에서 애플리케이션 기동 자체가 스키마 검증 실패로 막히는 상황을 피하기 위함입니다. 실제 운영에서는 DB 변경이 마이그레이션 도구(Flyway, Liquibase, 또는 사내 DBA가 만들어놓은 절차)를 통해 이미 관리되고 않을 것이기 때문에, JPA가 추가로 검증까지 수행할 필요가 없는 경우가 많습니다. 오히려 컬럼 하나 차이로 서비스가 아예 올라오지 않는 문제가 더 큰 장애로 이어질 수 있어, JPA의 역할을 명확히 분리하기 위해 none 옵션을 선택하는 경우도 많습니다.운영 DB 의 스키마가 바뀌는 작업은 데이터를 보호함에있어 신중히 이루어져야할 작업입니다. 예를 들어 컬럼이 추가된다면, DB 선 적용후 애플리케이션을 배포해야하며, 컬럼이 삭제된다면 애플리케이션에서 먼저 컬럼삭제 배포후 DB 에 후적용하는게 필요합니다. 이를 통해 배포 과정 중 서비스가 중단되지않고 상위, 하위호환성을 유지할수있게 말이죠.그래서 이 과정을 자동화 하기 보다 개발자가 직접 보면서 배포하는 경우가 많습니다. 신중히 처리하고, 예상치 못한 문제 발생시 즉시 대응할 수 있기 위함이예요. 도움이되셨으면 좋겠습니다.감사합니다.
- 1
- 1
- 47
질문&답변
EC2 HTTPS에 관련하여 질문 드립니다!
안녕하세요 석석님! 실무에서도 Nginx를 사용하는 경우가 많습니다.다만 현재구조처럼 서버 안에서 직접 인증서를 관리하는 방식보다는, 역할을 분리해서 HTTPS를 처리하는 구조를 더 선호합니다. 이유는 보안, 운영 안정성, 인증서 갱신 자동화 등이 있을 것 같아요. 다른 방식으로는 예를 들어 AWS 환경에서는 EC2 앞단에 ALB(Application Load Balancer) 를 두고, HTTPS는 ALB에서 처리할 수 있습니다. 인증서는 ACM(AWS Certificate Manager) 을 사용해 발급받고, 갱신 역시 자동으로 관리합니다.EC2 내부의 애플리케이션은 HTTP로 통신하고, 외부 트래픽만 HTTPS로 보호하는 방식입니다. 트래픽 영역과 애플리케이션 영역을 분리해서 운영한다고 보면 됩니다.(물론, 이와 비슷한 기술이 다른 클라우드 서비스에도 있습니다.) 이번 프로젝트에서 이어서 HTTP 를 구성하시는 것이라면, 처음에는 Nginx, Certbot 등으로 HTTPS를 직접 설정해보는 경험이 충분히 의미 있고, 그 다음 단계로 ALB + ACM 구조까지 함께 경험해보신다면 좋을것같습니다. 감사합니다.
- 1
- 2
- 32
질문&답변
SKILLS.md나 agents 작성 문의
안녕하세요 김수용님!좋은 질문 주셔서 감사합니다. 결론부터 말씀드리면, SKILLS.md나 agents 파일은 반드시 영어로 작성해야 하는 것은 아닙니다. 기술적으로는 한글로 작성해도 전혀 문제없이 동작합니다. 다만 많은 예제나 가이드에서 영어를 사용하는 이유는우선 대부분의 AI 모델이 영어 데이터로 가장 많이 학습되어 있기 때문에, 동일한 내용을 작성하더라도 영어가 의도를 더 안정적으로 이해하는 경우가 많습니다. (하지만 이는 모델이 개선되면서 점점 큰 차이가 없을 수도 있습니다.) 또 하나는 협업과 재사용 관점입니다. SKILLS나 agents 설정은 프로젝트 내부 문서이면서 동시에 AI에게 주는 사용 설명서 역할을 하기 때문에, 이후 다른 사람과 공유하거나 오픈소스로 확장될 가능성을 고려하면 영어가 범용적으로 쓰이기 쉽습니다. 그래서 관례적으로 영어 예제가 많이 사용되고 있는 것입니다. 하지만 상황에 따라 한글로 하셔도 큰 문제는 없습니다.감사합니다.
- 1
- 1
- 51




