소스파일
미해결
윤재성의 Kotlin(코틀린) 안드로이드 15 앱개발 Part2 - 메뉴와 4대 구성요소
안녕하세요 대시보드에 교안은 자료받기 다운로드가 가능한데 소스는 메뉴는 있으나 내용이 없습니다. 소스파일 다운로드 받고 싶습니다. 감사합니다.
- java
- android
- 웹앱
- kotlin
- mobile
174만명의 커뮤니티!! 함께 토론해봐요.
미해결
윤재성의 Kotlin(코틀린) 안드로이드 15 앱개발 Part2 - 메뉴와 4대 구성요소
안녕하세요 대시보드에 교안은 자료받기 다운로드가 가능한데 소스는 메뉴는 있으나 내용이 없습니다. 소스파일 다운로드 받고 싶습니다. 감사합니다.
해결됨
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
docker실행하여 mySql 컨테이너 생성까지 성공했습니다. 하지만 마지막 부분의 어플리케이션 실행 부분에서 에러가 나오고 있습니다. org.hibernate.exception.AuthException: Unable to obtain isolated JDBC connection [Access denied for user 'coupon'@'localhost' (using password: YES)] [n/a] Caused by: java.sql.SQLException: Access denied for user 'coupon'@'localhost' (using password: YES) org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/hibernate/autoconfigure/HibernateJpaConfiguration.class]: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) Caused by: org.hibernate.HibernateException: Unable to determine Dialect without JDBC metadata (please set 'jakarta.persistence.jdbc.url' for common cases or 'hibernate.dialect' when a custom Dialect implementation must be provided) 어떻게 대응해야 할까요?
해결됨
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
11강 [실습] Docker로 MySQL1 분만에 실행하기 에서 docker-compose up -d 커맨드가 실행이 안되네요. Docker Desktop을 로컬에 설치했는데, IntelliJ랑 연동해야 하는 건가요?
해결됨
AI 시대 주니어를 위한 시스템 설계 실전: 경험치 대신 채워드립니다
안녕하세요. 강사님, 강의 잘 보고 있습니다. 강의를 보면서 궁금증이 생겨서 질문 남겨봅니다! 강의를 진행하시는 방식이 제공해 주신 스켈레톤 코드 베이스로 설명을 하시다가 구현되어 있는 것을 가져다가 붙여넣기 하시는 방식 같은데요! 이럴 때 수강생들의 입장에서는 강사님의 구현을 손으로 구현해 보는 게 좋을까요? 아니면 AI로 구현을 진행해서 강사님의 구현과 비교해 보는 게 좋을까요? 수강생들이 어떻게 강의를 들었으면 좋겠다는 생각을 하시는지 궁금합니다.
해결됨
AI 시대 주니어를 위한 시스템 설계 실전: 경험치 대신 채워드립니다
안녕하세요 강사님 강의 잘 듣고 있습니다! 서비스가 커지면서 MSA로 전환할때 MSA 통신방식에 대해서도 시니어님의 고민이 궁금합니다! 동기식으로 구현하면 하나의 서비스가 다운되면 다른 서비스도 영향을 받기에 바로 EDA 방식으로 가시는걸까요 ?
해결됨
AI 시대 주니어를 위한 시스템 설계 실전: 경험치 대신 채워드립니다
강의 잘 듣고 있습니다 강사님! 큐를 읽는 컨슈머가 DB가 감당할 수 있는 속도 이거이대해서 질문이 있는데요? 1. 수치를 구하기 위해 K6를 활용하여 어떻게 측정해야할지 궁금합니다!!
해결됨
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
안녕하세요 이번 강의에서 @Modifying 이라는 어노테이션을 사용하고 있는데 이 @Modifying을 사용하는 상황이 발생하면 영속성 컨텍스트에 있는 데이터와 차이가 발생하게 되는 것을 알게 되었습니다. 이를 해결하기 위해 clearAutomatically = true, flushAutomatically = true 이런 옵션들이 있는 것으로 알고있는데, 현업에서는 이러한 옵션들을 어떻게 사용하는지 궁금합니다. Modifying을 쓰면 영속성 컨텍스트와 차이가 발생한다는 것을 인지하기 때문에 저런 옵션들을 따로 설정을 안하는지, 아니면 저런 옵션들을 사용하는지 궁금합니다!
해결됨
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
안녕하세요. 강의를 들으며 issuance 테이블에 status, coupon_id로 각각 인덱스를 생성하시면서 조회성능을 향상시키기 위함이라 설명하셨는데요. 특히 status를 이용한 인덱스가 꼭 필요한지 궁금합니다. 현재 status는 3가지 타입으로 (추후에도 늘어날 value가 제한적) 선택도가 약 33% 정도로 보입니다. 이렇게 가짓수가 적은 경우에는 인덱스의 효율을 잘 활용하기 어려워 인덱스를 생성하는 것이 비효율적이라고 학습한적이 있는데 지금과는 다른 상황인가요??
미해결
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
강의에서는 부하 테스트 시 시나리오 작성을 아래와 같이 5000 rps 정도로 부하를 가했을 때와, 1000 rps 수정해서 부하를 가했을 때의 latency(p50, 90, 99) 차이가 있는데, 실무에서는 보통 어떤 기준을 가지고 rps 를 정하는지 궁금합니다! scenarios: { burst: { ... rate: 5000, timeUnit: '1s', duration: '30s', // 1000 req/s × 30s = 총 30,000 요청 }, },
해결됨
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
안녕하세요! 강의 잘 듣고 있습니다. 아래 issue 메서드 관련해서 질문드립니다. @Transactional fun issue(couponId: Long, userId: Long): Issuance { val policy = couponIssuePolicyReader.get(couponId) val now = LocalDateTime.now() if (!policy.isBookingOpen(now)) { throw NotStartedException() } val expiresAt = now.plusDays(policy.validityDays.toLong()) couponIssuer.tryIssue(couponId, userId) issuanceRequestProducer.publish( IssuanceRequested( couponId = couponId, userId = userId, issuedAt = now, expiresAt = expiresAt, ) ) return Issuance( userId = userId, couponId = couponId, issuedAt = now, expiresAt = expiresAt, ) } 해당 코드에서 couponIssuer.tryIssue() (Redis)는 성공했는데 바로 다음 issuanceRequestProducer.publish() (Kafka)가 실패하는 경우 재고는 차감됐는데 이벤트는 유실된 불일치 상태가 될 수 있을 것 같습니다. 만약 재고를 DB로 관리한다면 아웃박스 패턴으로 같은 트랜잭션 안에서 이벤트를 아웃박스 테이블에 적재하고 별도 워커가 Kafka에 발행하는 방식으로 원자성을 보장할 수 있을 것 같습니다. 그런데 지금처럼 재고 자체를 Redis로 관리하는 구조에서는 Redis와 Kafka 각각에 대한 이중 쓰기 문제가 생기고 아웃박스 패턴을 그대로 적용하기는 어려워 보입니다. 만약 해당 구조에서 at-least-once를 보장하려면 어떤 전략을 택해야 하는지 궁금합니다!
해결됨
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
Domain 패키지에 Coupon 같은 @Entity 와 CouponRepository 를 함께 두셨더라고요! 영속성을 storage(또는 Infrastructure) 로 따로 분리하는 구성도 있는데, 여기서는 엔티티와 레파지토리 모두 domain 에 두신게 궁금했습니다. 혹시 이 서비스 규모에서는 db가 바뀔 가능성이 낮고, 엔티티를 밖으로 빼면 도메인 <-> 엔티티 매핑 비용만 늘어난다고 보셔서 의도적으로 domain 안에 함께 두신걸까요? 아니면 다른 기준이 있으셨는지 궁금합니다.
해결됨
카카오 면접관이 알려주는 수백개의 MSA 서비스 아키텍처에서의 분산 추적 시스템
혹시 강의 내용하면서 실습했던 것을 깃에다 올려도 될지 궁금합니다!!!
해결됨
제미니의 개발실무 - 커머스 백엔드 기본편
출간 축하드립니다~~~ 강의로 다 접했지만 책도 예약 구매 걸어서 텍스트로 주는 지식 전달도 한 번 느껴보겠습니다
해결됨
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
MacOs 사용자 분들이시고 cat ~/.docker/config.json 의 결과에 credsStore 필드가 osxkeychain이고 auth 필드의 값이 비어있으신 경우 인증정보가 keychain으로 관리되고 있고 이걸 jib이 가져오지 못하고 있는 겁니다. 방법 1 (가장 추천합니다) jib 내부의 from과 to 블록의 image 선언 다음 credHelper { helper = "osxkeychain" } 해당 코드를 추가해 keychain에 접근할 수 있도록 해주면 좋습니다. + auth {}로 인증정보를 주입하는 방법으로도 대체 가능합니다. 방법 2 (문제 회피) java 25 이미지를 docker pull 받아 로컬에 두고 ./gradlew jibDockerBuild 하시면 됩니다. 나중에 redis를 받던데 그때로 같은 방법으로 해결하면 될 것같습니다. 방법 3 (keychain 필드깨서 강제로 base64쓰게 하기) credsStore 필드를 훼손시켜 강제로 auth에 암호화된 내용을 저장하도록 하는 것같습니다. 정말 추천하지 않으며, 위 방법이 모두 실패하면 시도해보세요.
해결됨
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
안녕하세요 강의 잘 듣고 있습니다! 혹시 강의에서는 스크립트를 많이 사용하시는데 테스트 코드로는 못하는건가요? 실무에서도 스크립트를 많이 사용하시나요?
해결됨
트래픽 급증을 견디는 서버 시스템 설계 - Coupon 발급 서비스
안녕하세요 강의 잘 듣고있습니다 강의를 듣다가 궁금한게 생겨 질문을 드립니다! 같은 사용자가 따닥으로 중복 호출 했을 때 unique 제약 조건에 걸려 예외가 발생할텐데 redis에 있는 쿠폰 재고는 어떻게 되는지 궁금합니다!
미해결
[입문편] 안드로이드를 위한 코틀린(Kotlin) 문법
예전에 결제해두고 다시 용기내어 수강해보려고 하는데요! 입문편-왕초보편-초급편-초중급편 보유하고 있습니다. 이걸 토대로 수강하고 나서 이후에 수강해야 할 강의라던가 현재 공개되어있는 강의 중 로드맵 순서가 어떻게 될 지 알려주실 수 있나요?
해결됨
치킨 + 맥주값으로 SpringAI를 사용해 AI서버 만들어보기 (With ChatGPT)
학습에 관련된 질문만 남겨주세요~ 학습 영상에 대한 피드백도 환영 입니다~!! 초보라서 코틀린을 자바로 따라 하려니 잘 안되는 부분이 있습니다. 전체 소스 코드를 올려 주세요. (변환해서 사용해 보겠습니다.)
해결됨
제미니의 개발실무 - 커머스 백엔드 기본편
안녕하세요 재민님! 좀 오래되긴 했지만, 2년 전쯤에 발표하신 (유튜브에도 자주 언급하신 ㅎㅎ) 개념과 격벽을 통해서 지속 성장 가능한 설계를 만드는 방법에 대해 여쭤보고 싶은 부분이 있어서 질문드립니다! Q1) 발표에서 개념을 코드로 느끼면서 잡아간다고 하셨는데, 이게 개인의 사고에 많이 의존하는 것 같아서요. 실제 팀에서는 한 사람이 발견한 개념(예: 대출 사례의 '연체' 분리 같은)을 팀원들과 어떻게 합의하고 공유하시나요? 코드 리뷰에서 자연스럽게 되는 건지, 별도의 논의 과정이 있는지 궁금합니다. 팀과 협업하는 관점에서는 설계가 결국 합의의 과정이기도 하다 보니, 이 방식이 팀 규모에서는 어떻게 작동하는지가 특히 궁금했습니다 ㅎㅎ Q2) 개발을 하다 보면 "설계"라는 과정을 많이 겪게 되는 것 같습니다. API 설계, ERD 설계, 시스템 아키텍처 설계 등등 참 많네요. 발표에서는 분석·설계 없이 바로 구현하면서 개념과 격벽을 잡아가라고 하셨는데, 실제로 새 기능이나 서비스를 시작하실 때 무엇부터 손대시는지 궁금합니다. 개념(도메인 클래스)부터 코드로 잡고 API나 DB 스키마는 나중에 따라오게 하시는 건지, 아니면 이런 것들 중 일부는 최소한으로 먼저 정해두고 시작하시는지, 재민님의 실제 작업 순서가 궁금합니다. 물론 절대적인 정답은 없고 케바케일 것 같긴 합니다. 예를 들면 프론트엔드나 타 팀이 의존하는지 등등에 따라 달라지겠지만요. 재민님만의 어떤 기준 같은게 있는지 궁금합니다. Q3) AI가 코드를 대신 짜주는 시대가 되다 보니, 회사에서도 코드를 잘 짜는 것 자체의 가치가 점점 낮아지는 분위기인데요. (물론 회사 KPI마다 다르겠지만 ㅎㅎ) 이런 시대에 개념과 격벽을 세우는 역량은 오히려 개발자의 마지막 차별점이 된다고 보시는지, 아니면 이 피드백 루프(구현하며 느끼고 개선하는)마저 AI가 돌게 될 거라고 보시는지, AI 시대에 이 방법론이 가지는 의미를 어떻게 보시는지 궁금합니다.
해결됨
은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스
안녕하세요, 강사님 🙂 덕분에 코프링을 빠르게 배우고 있어 감사드립니다! 영상 8:20 경, JWT 설명 중 withSubject() 의 값으로 email 만 넣는다던가, name 만 넣어서 구현한다고 말씀주셨습니다. 고민을 해봤지만 여러 개의 Subject 를 만드는 이유가 궁금해서 질문드립니다. 상황 예시와 함께 답변해주시면 감사드립니다!!