강사님 안녕하세요 강사님이 남기신 자료를 바탕으로 5~6년간 잘 공부하고 있다가 이번에 강의까지 수강하게 된 열혈 수강생입니다. 강의 내용이 매우 흡족하고 좋습니다. 한가지 궁금한 사항이 있어 글을 남깁니다. vscode에서는 자동완성 기능이 있어 예를 들면 Path. 까지 타이핑하면 뒤에 자동으로 올 함수 등을 제시해 주는데 hwp = win32.gencache.EnsureDispatch('hwpframe.hwpobject') 생성한 hwp 객체에 hwp. 하면 뒤에 올 수 있는 것에 대한 자동완성이 작동하지 않습니다. 혹시 자동완성이 되도록 하는 방법이 있을까요? 매번 레퍼런스 찾기도 어렵고 대강 지식을 갖추고 나서 vscode의 도움으로 코드를 진행하고 싶은데 쉽지 않네요.. ^^
16세구요. 검정고시 마치고 방통대 진학중입니다. 내년 컴퓨터과를 복수전공하려고 하는데, 근처 학원에서 C언어(코딩)수업을 한달 수강하던중 학원이 문을 닫게 되서(지방시골: 학원없음) 대체할 만한 수업을 찾고 있습니다. 강의가 많아서 뭐부터 들어야 될지 모르겠습니다. 컴퓨터 수업은 처음입니다. 어떤 강좌가 맞을지 조언좀 해주세요.
강의 재밌게 잘 보고 있습니다. 궁금한 게 있어 질문드립니다. 인터페이스는 구현체와 같은 모듈에 두는 게 아닌, 사용하는 클래스에 가장 가까이 두는 걸로 이해했습니다. 하지만 그 인터페이스를 사용하는 클라이언트가 많다면 어떻게 해야할까요? 예를 들어 Payment 패키지의 PaymentService 도 ExRateProvider 를 쓰고, XXX 패키지의 XXXService 도 ExRateProvider 를 쓴다면 ExRateProvider 의 모듈 위치는 어디에 존재를 해야할까요? 아니면 다른 방법이 있을 듯 한데, 그 방법은 무엇일까요? ExRateProvider 의 모듈 위치가 클라이언트와 분리되어 있다면, DIP 적용 이전 그러니까 WebApiExRateProvider 와 ExRateProvider 가 한 모듈에 같이 위치한 그림과 별반 다를 것이 없다(모듈 의존성에 따른 변경 가능성) 생각이 들어서요
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 1. ItemController에서 downloadImage함수에서 @ResponseBody를 사용하였는데, 사용하지않게 되면, 예외가 발생합니다. 왜그런가요? ItemController에서 downloadAttach에서는 ResponseEntity<Resource>를 사용하셨는데, 이게 @ResponseBody와 같은거라고 하셨는데,( 다만, header에 추가할 부분이 있어서 ResponseEntity를 사용하셨다고 하는데) 어떤 부분이 같은 건가요?
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
지금 1번째 설치 부분부터 막혔는데 도와주세요 우분투 22.04버전, vivado 2022.2 버전으로 다운받아서 했는데 다운이 다 됐다가 저런식으로 warn이라고 뜨면서 안되는데 뭐가 문제일까요... 사실 처음에 vivado도 2024.1 버전으로 하다가 저런식으로 똑같이 문제돼서 우분투 완전히 삭제했다가 vivado 2022.2 버전으로 낮추고 다시 한거거든요 그리고 강의에서는 20.04로 했는데 22.04로 해도 된다고 해서 그대로 했는데 그게 문제인건가요? 설치하는데 시간이 너무 많이 잡아먹혀서 어떻게 해야될지 모르겠네요
Dockerfile로 이미지가 만들어진 상태에서 docker run --privileged -p 8080:8080 --name mytomcat docker-server:latest 명령어를 입력하면 위와 같은 에러가 발생합니다. 실습 환경은 DinD 방식을 사용하고 있으며, edowon0623/docker-server:m1 이미지를 pull 받아서 컨테이너를 실행시키고 있습니다
import SwiftUI struct ContentView: View { @State private var ToggleCheck: Bool = false // @State 없으면 에러 왜? / 연산자 토글을 누른 후의 숫자 입력인지 체크하기 위한 변수 @State private var isAdditionActive = false // 덧셈 토글 체크 @State private var isSubtractionActive = false // 뺄셈 토글 체크 @State private var isMultiplicationActive = false // 곱셈 토글 체크 @State private var isDivisionActive = false // 나눗셈 토글 체크 @State private var printNumber: String = "0" // 계산식에 사용 or 화면에 출력한 내용을 담은 변수 @State private var totalNumber: Int = 0 // 토탈 계산 값 @State private var op: Character = " " @State private var buttonData: [[String]] = [ // 키패드 모음 2차원 배열 ["AC", "+/-", "%", "÷"], ["7", "8", "9", "X"], ["4", "5", "6", "-"], ["1", "2", "3", "+"], ["0", ".", "="]] var body: some View { ZStack{ Color.black.ignoresSafeArea() // 화면 전체 여백 없이 배경색 지정 VStack { Spacer() HStack{ Spacer() Text("\(Int(printNumber)!)") // 계산기의 숫자 출력 .padding() .font(.system(size: 73)) .foregroundColor(.white) } ButtonPosition() // C, +/-, %를 제외한 버튼을 화면에 추가 } } } func Reset(){ printNumber = "0" // 출력된 계산 숫자 UI 초기화 totalNumber = 0 // 연산의 토탈값을 담고 있는 변수도 당연히 초기화 ToggleCheck = false op = " " buttonData[0][0] = "AC" isAllfalse() // 버튼의 토글값 및 연산자 버튼 토글 UI도 모두 초기화 } func isAllfalse(){ // 연산자의 토글 버튼을 전부 해제 하기 위한 함수 isAdditionActive = false isSubtractionActive = false isMultiplicationActive = false isDivisionActive = false } func opIfSwitch(){ // 실질적인 계산을 위한 switch문 if op == " "{ totalNumber = Int(printNumber)! } else{ switch op{ case "÷": totalNumber /= Int(printNumber)! if printNumber == "0"{ // 비정상 종료.. 왜? printNumber = "오류" } case "X": totalNumber *= Int(printNumber)! case "-": totalNumber -= Int(printNumber)! case "+": totalNumber += Int(printNumber)! default: break } } printNumber = String(totalNumber) } // 내 코드의 계산 방식 작성할 것 이따가 func Division(){ // 나눗셈 opIfSwitch() } func Multiplication(){ // 곱셈 opIfSwitch() } func Minus(){ // 뺄셈 opIfSwitch() } func Plus(){ // 덧셈 opIfSwitch() } func Equal(){ // 등호 opIfSwitch() isAllfalse() ToggleCheck = false // =을 누른 후 결과 값에 추가로 연산을 진행할 때 이 코드 없으면 정상적으로 진행되지 않음 } func ButtonPosition() -> some View{ // 버튼 디자인 및 포지셔닝 함수 ForEach(buttonData, id: \.self){ line in HStack{ ForEach(line, id: \.self){ row in switch row{ case "AC", "C", "+/-", "%": ButtonDesign(row, .gray, .black) case "÷", "X", "-", "+", "=": ButtonDesign(row, .orange, .white) default: ButtonDesign(row, .init("NumberButton"), .white) } } } } } func ButtonDesign(_ value: String, _ backcolor: Color, _ fcolor: Color) -> some View{ // 공통 버튼 디자인 Button { switch value { case "÷": isDivisionActive = true // 나눗셈 버튼 토글 isAdditionActive = false isSubtractionActive = false isMultiplicationActive = false case "X": isMultiplicationActive = true // 곱셈 버튼 토글 isDivisionActive = false isAdditionActive = false isSubtractionActive = false case "-": isSubtractionActive = true // 뺄셈 버튼 토글 isAdditionActive = false isMultiplicationActive = false isDivisionActive = false case "+": isAdditionActive = true // 덧셈 버튼 토글 isSubtractionActive = false isMultiplicationActive = false isDivisionActive = false default: break } ButtonAction(value) } label: { Text(value) .frame(width: value == "0" ? 160 : 80, height: 80, alignment: value == "0" ? .leading : .center) .background((value == "÷" && isDivisionActive) || (value == "X" && isMultiplicationActive) || (value == "-" && isSubtractionActive) || (value == "+" && isAdditionActive) ? Color.white : backcolor) //.background(value == "÷" && isDivisionActive ? Color.white : backcolor) //.background(value == "X" && isMultiplicationActive ? Color.white : backcolor) .foregroundColor(value == "÷" && isDivisionActive || (value == "X" && isMultiplicationActive) || (value == "-" && isSubtractionActive) || (value == "+" && isAdditionActive) ? Color.orange : fcolor) .font(.system(size: 33)) .cornerRadius(40) } } func ButtonAction(_ value: String){ switch value { // 버튼을 누르면 case "AC", "C": // C를 누르면 Reset() // 초기화 버튼을 누르면 각종 상수 및 변수들이 초기화 됨 case "÷": // 나누기를 누르면 Division() // 실질적인 계산을 하는 함수 op = "÷" ToggleCheck = false case "X": // 곱하기를 누르면 Multiplication() // 실질적인 계산을 하는 함수 op = "X" ToggleCheck = false case "-": // 빼기를 누르면 Minus() // 실질적인 계산을 하는 함수 op = "-" ToggleCheck = false case "+": // 더하기를 누르면 Plus() // 실질적인 계산을 하는 함수 op = "+" ToggleCheck = false case "+/-": printNumber = String(Int(printNumber)! * -1) case "=": Equal() // 최종 결과를 출력하기 위한 스위치문 호출 op = " " // 내가 원하는 기능을 구현하기 위해 꼭 필요한 코드 printNumber = String(totalNumber) // 연산의 결과 값을 출력 totalNumber = Int(printNumber)! default: if printNumber == "0"{ printNumber = value // 숫자 첫 입력시 화면에 출력 buttonData[0][0] = "C" } else if (isDivisionActive || isMultiplicationActive || isSubtractionActive || isAdditionActive) && ToggleCheck == false{ printNumber = value ToggleCheck = true // 연산자 버튼이 눌러짐 } else{ if printNumber.count < 9{ printNumber += value } } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } 안녕하세요! 다름이 아니라 강의에 있는 프로젝트 외에 따로 계산기를 하나 만들어보고 있습니다 근데 @State 어노테이션에 대해 이해가 안되는 부분이 있습니다 구글링도 해보고 여러 방면으로 알아봤는데 원하는 답을 얻지 못해서 질문 올립니다 @State는 뷰의 상태 변화를 체크하는 어노테이션이라고 알고 있습니다. 변수 선언부의 주석을 보시면 @State 없으면 에러 왜? 이런 내용의 주석이 달려 있는 변수가 지금 저의 의문점입니다 ToggleCheck 변수와 totalNumber 변수는 뷰의 상태 변경에 직접적인 영향을 미치지 않기 때문에 @State가 필요 없다고 생각합니다. 근데 저 두 변수에 @State를 지우면 에러가 발생합니다. 일단 뷰의 변화는 실질적으로 totalNumber 변수의 값을 대입 받는 printNumber 변수이니 printNumber 변수에만 @State가 필요하다고 생각하는데 왜 에러가 발생하는 걸까요 마찬가지로 ToggleCheck 변수도 마찬가지로 체크용으로 사용하고 저 값이 변한다고 해서 직접적으로 뷰에 미치는 영향이 없는데 왜 @State가 필요한 걸까요... 혹시 알고 계시면 꼭 답변 부탁드리겠습니다...! 감사합니다!
안녕하세요. OAuth 2.0을 배우고 싶어 학습 신청했습니다. 유익한 강의 준비해주셔서 감사합니다. 막연하게 알고 있는 Spring Security 에 대해 강의를 통해 명확하게 알아가고 있습니다. 강의를 들으며 몇가지 궁금한 점이 있어 질문드립니다. 우선은 자체 로그인만 구현할 예정이라면, 소셜 로그인 기능이 없는 경우에는 OAuth 2.0을 도입할 필요가 없는 건가요? Resource Owner Password Credentials Grant Flow 는 Deprecated 된다고 하는데 그럼 어떻게 구현해야하나요? 답변주시면 성장하는데 큰 도움이 될 것 같습니다! 감사합니다!
조건반복문 강의 4분 40초쯤에서 if절 에서 2의약수 또는 3의약수가 참일때, 6의 배수가 아닌것을 세어라. 로 해석되는데요. 1.일단 해당강의에서 ‘약수’로 표현한건 전부 ‘배수’인거죠? 모두 %정수로 표기되는데 약수, 배수 혼용되어서요. ll 연산자는 둘중 하나만 참이어도 전체가 참...으로 배웠는데! 왜 각각의 배수를 함께합쳐서 12개로 풀어야하는지 이해가 안갑니다. 11:51초에서도 &&연산자는 둘다 참이어야 참인데, 위와 마찬가지로 2의배수중 3의배수가 아닌것을 골라야하는대 왜 이렇게 적용되는지 이해가 안갑니다. if문이 계속 괄호안에 반복되면 순차적으로 조건문을 실행하여 참인지 보면 되는건가요? 혹시 강좌에 나오는 예제들만 모아놓은 출력물은 없을까요? 강좌에서 나오는 꼭외워야할부분, 강의 마지막에 나오는 요약문도 출력물이 없을까요? 예제문제를 다시풀어보고싶은데 강의마다 예제나오는 부분을 찾아보기가 시스템이 수월하지않아서요 .
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 저는 왜 다운로드 버튼이 없고 select 버튼만 있을까요? 기존에 JDK8 이 설치되어있긴 한데 JDK8로 수업을 들어도 무관할까요?
안녕하세요. LLM과 RAG와 관련하여 공부할 일이 생겨서 강의를 결제하여 듣게 되었습니다. 우선 좋은 강의 찍어주셔서 감사의 말씀 먼저 드립니다. 강의가 macOS를 사용하여 진행을 하시다보니 제 window 환경에서는 3.1 환경 설정 파트에서 pyenv 명령어와 pyenv virtualenv가 작동을 하지 않습니다... 검색해보니 pyenv-win으로 하면 된다는 말도 있어서 이리저리 따라해봤는데도 잘 작동하지 않습니다. window에서는 어떻게 환경 설정을 해야하는지 질문 드립니다.
안녕하세요 선생님 🙂 덕분에 이분탐색 문제 관련해서 아주 쉽게 익힐 수 있었던 것 같습니다. 감사합니다 ^^ 아래 링크는 강의를 보기 전에 풀이했던 풀이인데요, 선생님과의 차이점은 cnt를 0으로 초기화했다는 것 딱 하나입니다. 강의에서도 cnt를 1로 초기화한 이유는 어차피 한번은 무조건 뽑고 시작하기 때문이라고 설명해주셨는데요, 부끄럽지만 그 말씀이 어떤 의미인지 이해가 가지 않아 질문 드립니다. 자세히 설명해주시면 정말 감사하겠습니다!! http://boj.kr/b66ec43db9944743b4afe1525f8a161b