apiece
@apiece
Học viên
1,039
Đánh giá khóa học
39
Đánh giá khóa học
4.9
카카오, SK를 거쳐 개발자로 일하며
실제 서비스 환경에서 다양한 백엔드 시스템을 설계하고 운영해왔습니다.
그 간 겪었던 시행착오와 고민들이
수강생 여러분의 시간과 선택을 조금이라도 아껴줄 수 있기를 바라는 마음으로
지식공유 콘텐츠를 만들고 있습니다.
콘텐츠에 대한 의견이나 개선점이 있다면
아래 메일로 언제든 편하게 말씀해주세요.
여러분의 솔직한 피드백을 기다리고 있습니다. 감사합니다.
apiece.dev.ai@gmail.com
Khóa học
Đánh giá khóa học
maruhxn
·
Thiết kế hệ thống server chịu được sự gia tăng đột biến của lưu lượng truy cập - Dịch vụ phát hành CouponThiết kế hệ thống server chịu được sự gia tăng đột biến của lưu lượng truy cập - Dịch vụ phát hành Coupon- Cơ bản về thiết kế Backend xử lý AI - Phần SNS với SpringBoot
- Cơ bản về thiết kế Backend xử lý AI - Phần SNS với SpringBoot
- Hoàn thành một chu trình dịch vụ backend với Spring Boot và AWS
- Cơ bản về thiết kế Backend xử lý AI - Phần SNS với SpringBoot
Bài viết
Hỏi & Đáp
Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면
안녕하세요 Wyatt님!정리 공유 감사합니다 👍👍다만 원인만 조금 다시 생각해보자면, 우선 이 강의 설정에서는 인증정보가 필요 없습니다. base image는 public이고, jibDockerBuild는 push를 안 하니까요. 즉 키체인에서 못 가져와서 실패하는 게 아닙니다.원인은 helper 바이너리가 Gradle 데몬의 PATH에 없는 것일 수 있습니다. Jib은 config.json에 credsStore가 있으면 public 이미지라도 일단 helper를 실행해서 물어봅니다. 이때 helper 실행 자체를 못 하면 예외가 나면서 빌드가 중단되는데요.그래서 먼저 아래 명령을 진행해보세요../gradlew --stop ./gradlew jibDockerBuildIntelliJ에서 먼저 빌드하면 데몬이 IDE의 PATH를 캐시해두고 계속 재사용합니다. 이걸로 풀리면 build.gradle.kts는 안 건드리셔도 됩니다.그래도 안 되면 조사해주신 방법 1을 쓰시면 좋을 것 같아요.참고로 helper 바이너리는 Docker Desktop 설치 시 함께 깔리구요. 최근 Docker Desktop은 credsStore가 osxkeychain이 아니라 desktop라서 확인해보시고 맞춰 지정해주시면 좋습니다!좋은 공유 감사드립니다!
- Lượt thích
- 1
- Số bình luận
- 1
- Lượt xem
- 25
Hỏi & Đáp
스크립트에 대해 질문 있습니다.
안녕하세요. 인호님! 좋은질문 감사합니다.테스트 코드로도 가능합니다. 스크립트로 할 수 있는 건 보통 코드로도 할 수 있어요.강의에서 처음 스크립트를 도입한 이유는, k6 같은 툴을 통해 부하테스트를 편하게 사용하기 위함이었어요. k6용 js 파일이 필요하니, 자연스럽게 스크립트 폴더를 만들었고 테스트에 필요한 준비도 스크립트로 같이 준비했습니다.실무에서는 단위 및 통합 검증은 테스트 코드로 작성하고, 대량 요청이나 동시성 검증은 k6 같은 부하 테스트 도구를 활용합니다. (물론 팀마다 다르고 주관적일 수 있습니다)강의에서는 부하테스트와 더불어 장애 발생과 데이터 정합성 확인까지 한 묶음으로 만들기 위해 별도 스크립트가 적합하다고 판단해서 사용했다고 생각하시면 됩니다.감사합니다.
- Lượt thích
- 1
- Số bình luận
- 1
- Lượt xem
- 13
Hỏi & Đáp
같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!
안녕하세요! 케시님,결론부터 말하면 그 시점 코드에서는 Redis 재고가 2장 줄어들게됩니다. (1장만 줄어야 하는데)다만, 현재 강의 시점(섹션3, 브랜치는 part-2)에서는 그렇습니다.바로 다음 강의 (섹션4, 27강, 요청이 몰리면 API가 느려지는 진짜 이유)에서 수정하실 때, 이 부분이 해결됩니다.(part-2 Redis Lua) 1. 남은 재고를 읽는다 2. 0이면 매진으로 반환한다 3. 재고를 1 깎는다 (part-3의 Redis Lua) 1. 이 사용자가 발급받은 사용자 목록(Set)에 이미 있는지 본다. 있으면 여기서 바로 중복으로 리턴 2. 남은 재고를 읽는다 3. 0이면 매진으로 반환한다 4. 재고를 1 깎는다 5. 이 사용자를 발급받은 사용자 목록에 넣는다part-3 에서는 Redis 원자연산에서 스크립트 하나가 통째로 실행되고, 그 사이 다른 요청이 끼어들 수 없습니다. 그래서 두 번째 요청은 1번에서 걸러져 재고 차감을 아예 타지 않습니다.엣지케이스를 잘 생각해서 말씀해주셨네요!좋은 질문감사합니다.
- Lượt thích
- 1
- Số bình luận
- 1
- Lượt xem
- 12
Hỏi & Đáp
aws 관련 질문드립니다.
안녕하세요! 지성조님.프리티어 EC2라면 메모리가 적어서 이런 현상이 발생하는 경우가 있습니다.스왑 메모리를 추가한 뒤 조금 나아졌다면 메모리 부족이 원인이었을 가능성이 높습니다. 스왑 메모리로 부족한 메모리를 보충해 지금처럼 진행해보시고, 그래도 계속 같은 증상이 있다면 free -h와 top으로 메모리 및 CPU 사용량을 한 번 확인해 보시고, 저희 애플리케이션과 관련없는 프로세스는 제거해주시면 도움이 됩니다.감사합니다.
- Lượt thích
- 1
- Số bình luận
- 3
- Lượt xem
- 61
Hỏi & Đáp
twitterdb 연결이 안돼요
안녕하세요 weogle님!docker 에서 MySQL 이 실행중인지 확인부탁드립니다. 아래 명령어로 확인할 수 있어요.docker psMySQL (mysql-twitter) 컨테이너가 떠있어야 하고, 3306 포트가 열려있어야 합니다.잘 떠있다면 그 후 spring boot 애플리케이션을 실행하면 잘 실행이 될 겁니다.docker run --name mysql-twitter \ -e MYSQL_ROOT_PASSWORD=root123 \ -e MYSQL_DATABASE=twitterdb \ -e MYSQL_USER=dev \ -e MYSQL_PASSWORD=dev123 \ -p 3306:3306 \ -d mysql:9.3위 명령어로 도커 컨테이너를 실행할 수 있습니다.감사합니다.☺️
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 51
Hỏi & Đáp
JPA Repository 질문이 있습니다!
안녕하세요 Aurora 님JpaPostRepository 에 findAllPaged 메소드만 재정의한 이유는, PostRepository 에 있는 save, findAll, findById, deleteById 는 JpaRepository 의 기본 구현체가 이 메소드를 지원하는 반면, findAllPaged 는 그렇지 않기 때문에 재정의했습니다.즉, PostRepository 라는 인터페이스를 그대로 사용하고 싶은데, JpaRepository 의 기능 추가하여 사용하고 싶어서 JpaPostRepository 라는 중간 인터페이스를 사용한 형태입니다.PostRepositoryImpl 같은 구현체를 직접 만들어서 사용하셔도 됩니다. 다만 강의의도는 위에서 말씀드린 것처럼 Spring Data Jpa 가 지원하는 JpaRepository 인터페이스를 사용하기 위함이 크다고 생각해주시면 됩니다. 감사합니다.
- Lượt thích
- 1
- Số bình luận
- 2
- Lượt xem
- 82
Hỏi & Đáp
페이지네이션 처리를 쿼리에서 하는 방식 질문
안녕하세요 Aurora 님.섹션2의 'Query String 과 함께 Pagination 해보기' 부분에서는 메모리에 posts 를 저장해놓고, 페이지네이션 조회를 하고 있습니다.네 말씀하신 부분처럼 DB 에서 데이터를 가져온다면 페이징 쿼리를 주로 사용합니다. 섹션6에서 다루고 있으니 확인해보시면 좋을 것 같습니다 감사합니다!
- Lượt thích
- 1
- Số bình luận
- 1
- Lượt xem
- 66
Hỏi & Đáp
EC2 실습 중 docker-compose / docker ps 실행 시 권한 오류 문의
안녕하세요! khs1003k 님. 해당 오류는 말씀하신대로 ec2-user 계정이 Docker 권한이 없어서 발생합니다. Docker는 root 또는 docker 그룹 사용자만 접근할 수 있습니다.해결 방법은 직접 sudo 사용해서 명령하시거나 (질문자님 하신것처럼)또는 ec2-user 계정을 docker 그룹 사용자로 만드시면 됩니다.# 현재 사용자(ec2-user)를 docker 그룹에 추가 (sudo 없이 가능하게) sudo usermod -aG docker ec2-user # 반영을 위해 로그아웃 후 다시 로그인 하거나 아래명령어 실행 newgrp docker제 환경은 docker 그룹 설정이 되어 있었던 경우이고, 현재처럼 sudo를 계속 사용하는 것도 가능하지만 그룹에 추가해서 사용하는 것이 편리할 수 있습니다. AWS EC2 서버에 애플리케이션 배포하기 - 00:46이 부분에 있는 강의자료 내용 한번 확인보시면 좋을것같습니다 감사합니다.
- Lượt thích
- 2
- Số bình luận
- 1
- Lượt xem
- 124
Hỏi & Đáp
gradlew, java -jar 로 애플리케이션 실행시키기에서
안녕하세요 khs1003k 님! 인메모리로 해서 외부 의존성없이 가볍게 java 애플리케이션을 실행하고자 했던 의도였습니다.이전 챕터 강의에서 mysql 을 미리 잘 설정해놓으셨다면, mysql 을 연결하여서 java 애플리케이션을 실행하셔도 됩니다. 질문 감사합니다!좋은하루 보내세요.
- Lượt thích
- 1
- Số bình luận
- 1
- Lượt xem
- 76
Hỏi & Đáp
application.yaml에서 enabled: true 인식 안됨
안녕하세요! 질문자님 그리고, 배상진님 감사합니다.저도 Spring Boot 4.0.0 에서 동일한 현상을 경험했습니다.spring.h2.console.enabled에 노란 밑줄이 뜨고 인식되지 않는 이유는, Spring Boot 4.0부터 자동 설정(auto-configuration)이 모듈별로 분리되면서 H2 Console 관련 설정이 별도 모듈로 빠졌기 때문입니다.스프링부트 기존(3.x)에는 runtimeOnly("com.h2database:h2") 의존성만 추가하면 H2 Console이 자동 설정되었지만, 4.0부터는 implementation("org.springframework.boot:spring-boot-h2console") 모듈을 명시적으로 추가해야 합니다. build.gradle.ktsimplementation("org.springframework.boot:spring-boot-h2console") 이 의존성을 추가하면 spring.h2.console.enabled 속성이 정상 인식되고, /h2-console 경로로 접속할 수 있습니다.runtimeOnly("com.h2database:h2") 는 위 의존성안에 있기 때문에 별도 추가하지 않으셔도 됩니다. 공식 문서 참고: https://docs.spring.io/spring-boot/reference/data/sql.html#data.sql.h2-web-console 질문자분 그리고, 관심을 가지고 추가 답변해주신분 모두 감사드립니다!
- Lượt thích
- 3
- Số bình luận
- 4
- Lượt xem
- 181




