1장당 0.04달러짜리 모델 하다가 1장당 0.025달러짜리 모델로 갔는데 1개 생성하자 마자 바로 그림이 글자가 다 깨져나오네요 그래서 바로 1장당 0.04달러짜리 모델로 복귀했습니다. 뭐든지 돈만큼하네요 근데 사진생성이 돈이 너무 많이 들어서요 혹시 지금의 절반만 생성되게 하려면 어디가서 뭐를 바꿔야 할까요?
토스 개발자와 함께하는 Data Workflow Management 기반의 대용량 데이터 처리 설계 패턴
안녕하세요 섹션6의 강의를 듣다가 질문드릴게 있어 글을 작성하게되었습니다 우선 강의를 너무 잘 듣고 있음에 감사드립니다. 다만 질문이 하나있는데요 섹션 6강의의 실습환경에 기반이 되어지는 python과 airflow 그리고 DB는 버전에 맞게 미리 설치를 하고 강의를 들어야하는게 맞는거죠? 저는 강의에서 최초 환경부터 같이 설치하는 모습을 보여주시나 했는데 없어서 여쭈어봅니다.
[질문 내용] MyUser에서 compareTo를 Override한 뒤 Arrays. sort ( array ); System . out . println(Arrays. toString ( array )); 을 했을때 나이 순으로 정렬이 되는데 이게 어떻게 이렇게 되는건지 잘 이해가 되질 않습니다. sort가 내부에서 compareTo를 호출하고 array가 MyUser타입이기 때문에 MyUser에서 Override한 compareTo를 호출하는건가요?
제가 다익스트라 알고리즘이랑 헷갈려서 질문드립니다. 프림에서는 아무 정점(ex.1번노드)를 시작 정점으로 잡고 pQ.poll하면 선생님 로직은 poll된 노드는 무조건 최소값이다라고 확정짓고 ch배열에 1로 하시는 거에서 혼동이 옵니다. 아직 다른 정점들을 다 방문하지 않았는데 왜 최소값으로 단정짓는지 모르겠습니다. 만약 시작 정점을 1로 하고 1에 연결된 다음 노드들이 1이 아닌 다른 노드들에서 오는 값이 최소일 거라는 가능성은 왜 배제된거죠?
가령 다음과 같이 g etExecutionContextSerializer() 메서드를 오버라이드하면 g에 볼드처리안됨 -- 원시적 침투 예제의 BatchConfig에서 DefaultBatchConfiguration 상속을 제거하고@EnableBatchProcessing을 추가하자. 다음과 같이 말이다. 예제 밑의 예제가 그냥 기존 DefaultBatchConfiguration 방식만 나와있음 아마 기존과 수정을 두개 다 표시하는식으로 하고싶었을거같음 -- JobContext/StepContext: Late-Binding의 최종 무기고 키룩형 JobContext/StepContext가 존재하면 배치 스코프가 활성화된 상태라는 것은 알겠어. 근데 이 JobContext/StepSontext 대체 어디에 써먹는거지? 단순히 활성화를 의미하는게전부인가? 키룩형 -> 갈매기가 되고싶은 내면의 소리일수있음 괜찮음 주변에 돌멩이 지망생도 있고 독수리 지망생,딸기우유 지망생도 있어서 이해할수있음
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 문제와 풀이 정답 코드에서 if (inventoryResult && shippingResult && accountingResult) { log("모든 주문 처리가 성공적으로 완료되었습니다."); } else { log("일부 작업이 실패했습니다."); } else 블록이 실행되는 케이스가 있을까요? future.get() 했을 때의 결과가 모두 true가 나오거나 예외가 터져서 else 블럭은 실행되지 못하는 것으로 이해했습니다. 이렇게 이해한 것이 맞을까요? 예제를 간결하게 하기 위해 예외 처리는 제외하셨다고 적어주셨는데 혹시 이와 관련된 부분일까요?
import java.util.*; public class Main { public static void main(String[] args){ Scanner in = new Scanner(System.in); solution(in.nextInt(), 1, 1, 0); in.close(); } public static void solution(int target, int start, int value, int prevValue) { if (target >= start) { System.out.print(value + " "); solution(target, start + 1, value + prevValue, value); } } } 다음과 같이 풀어보았는데요, 재귀와 메모이제이션을 비슷하게 구현한것 같아서요. 이렇게 작성하면 어떨지 문의드려요!
좋은 추석 보내고 계신가요? 현재 코틀린으로 강의를 따라해 보고 있습니다. class Member private constructor( val email: String, var nickname: String, var passwordHash: String, var status: MemberStatus, ) { fun activate() { check(status == MemberStatus.PENDING) { "회원이 PENDING 상태가 아닙니다" } this.status = MemberStatus.ACTIVATE } fun deactivate() { check(status == MemberStatus.ACTIVATE) { "회원이 ACTIVE 상태가 아닙니다" } this.status = MemberStatus.DEACTIVATED } fun verifyPassword( password: String, passwordEncoder: PasswordEncoder, ): Boolean = passwordEncoder.matches(password, this.passwordHash) fun changeNickname(nickname: String) { this.nickname = nickname } fun changePassword(password: String) { this.passwordHash = password } companion object { fun create( email: String, nickname: String, password: String, passwordEncoder: PasswordEncoder, ): Member = Member( email, nickname, passwordEncoder.encode(password), MemberStatus.PENDING, ) } } 이러한 식으로 작성하였는데 자바에서는 const로 선언한 객체나 변수가 아닌 이상 기본적으로 가변입니다. 그런데 코틀린에서는 val, var 키워드에 따라서 var로 선언해야 가변 타입이 됩니다. Member 도메인 모델 확장 챕터 수강하고 있는데 이 경우는 도메인에서 가변 속성을 미리 정의하고 해당 속성들을 var로 선언하는 것이 맞을지, 혹은 val을 통해 불변성을 확보하고 새 객체를 생성하여 변경을 처리하는 것이 적합할지 궁금합니다. 코틀린에서 도메인 코드를 작성할 때 자바와 다른 문법&개념과 도메인 중심 설계가 종종 난해할 때가 있네요.
태현님, 안녕하세요. 뭔가 하나 더 궁금해져서 질문을 드리게 되었습니다! 아래의 두 클래스가 있다고 가정해보겠습니다. package me.sungbin.lec10 open class Base( open number: String = "100", ) { init { println("Base Class") println(number) } } package me.sungbin.lec10 class Derived( override val number: String, ) : Base() { init { println("Derived Class") } } 그리고 실제로 아래와 같이 Derived 클래스의 생성자를 호출하면 number값으로는 null이 출력됩니다. 여기서 궁금한 것은 number는 non-nullable한 타입인데 null이 왜 출력이 될까? 라는 궁금증이 생겼는데요.. 그래서 GPT한테 물어보니 아래와 같은 답변을 얻을 수 있었습니다. 레퍼런스 타입(예: String ) → JVM 기본값 null 이 출력됩니다. (Kotlin의 Non-null 보장도 생성 중(super 생성자 실행 중) 에는 예외적으로 깨질 수 있습니다.) 이렇게 들으니 뭔가 이해가 된 듯 보이는데 이게 GPT 피셜이다보니 태현님의 의견이 듣고 싶어져서 질문을 남깁니다!
위치: SingleTopic/Chart/ChartCanvas.jsx (39번 라인) 문제: stroke={colors[i].bg} // ❌ 현재 코드 원인: voteColors.js 의 실제 구조는 문자열 배열입니다 예: 2: ["#10B981", "#F43F5E"] .bg 프로퍼티가 존재하지 않아 undefined 반환 해결: stroke={colors[i]} // ✅ 수정 코드 결과: 수정 후 차트 선 색상이 정상적으로 표시됩니다. 제안: 후속 수강생들을 위해 강의 자료 업데이트 부탁드립니다. 강의 노션 코드에 오타가 너무 많아서 도움을 주는 자료인지 강의 진행을 방해하는 자료인지 모를 정도입니다. 솔직히 좀 심각합니다. 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 자바부터 강의를 듣고있는데 언어가 이해가 되는부분이 있고 안되는 부분이있는데 이거는 앞에가서 다시 학습을 하고와야하나요!? 지금 스프링입문은 여기서 다이해하고 다음 강의로 넘어가야 하는 건가요!?
태현님 안녕하세요, 간만에 강의를 듣던 중 해당 개념에 대해 제가 잘 이해하고 있는지에 대해 여쭤보고자 질문을 드립니다. 제가 헷갈리는 부분은 open 에 대한 것과 상속에 대한 주의점인데요. package me.sungbin.lec10 open class Base( open val number: Int = 100, ) { init { println("Base Class") println(number) } } package me.sungbin.lec10 class Derived( override val number: Int, ) : Base() { init { println("Derived Class") } } open 키워드는 기본적으로 상속을 받을 클래스에 붙여주며, abstract 과 같이 반드시 구현해야 하는 클래스에는 따로 명시적으로 붙여주지 않는 것으로 이해가 되었습니다. 예시의 Base 클래스와 Derived 클래스에서 getMember() 호출 시, 초기 값이 나온 부분은 실제 Derived 클래스에서 생성자를 호출하고 그 생성자가 상위 클래스 생성자를 호출하고 그 생성자에서 number를 출력하려고 하는데 해당 number는 오버라이딩 되었으니, 하위 클래스의 number를 출력해야 하나, 해당 하위 클래스 생성자 호출 전이므로 초기 값 0이 나온다?라고 이해하면 좋을까요? 제가 이해한게 잘 맞는지 혹은 잘못되게 생각한 부분이 있는지 확인해주시면 감사드리겠습니다! 🙂 실무에서 이런 케이스를 겪어본 적이 없어서 헷갈리는 것 같아서 이번 기회에 제대로 알아가보려구요!