7-37번강의에 관련 커밋으로 아래 처럼되어 있는데 delete 예시 url이 잘못연결되어 있는것같습니다. pre_save 예시 : slugify 자동 호출 post_save 예시 : User 생성 시에 Profile 자동 생성 post_delete 예시 : Profile 삭제 시에 관련 이미지 파일 자동 삭제 django-lifecycle 예시 : blog.Post의 content/status 변경 탐지 연결되야할 페이지: https://github.com/pyhub-kr/course-django-complete-guide-v3/commit/563749a5be33f10ec46a166faf29bbaa0e1d7144 현재 연결된 페이지: https://github.com/pyhub-kr/course-django-complete-guide-v3/commit/714c274e0d6f26b68aa5bc75a9bf2a78c924633c 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
안녕하세요, Springboot 관련 프로젝트 진행 중 계속 해결되지 않는 문제가 있어 연락드립니다. 문제가 되는 클래스는 아래와 같은 추상클래스입니다. @Getter @Setter public abstract class A implements B { @Autowired private String proxyUrl; } @Configuration public class proxyUrlConfig { @Value("${environment_variable_name}") String proxyAddress; @Bean public String proxyUrl() { return proxyAddress; } } 해당 추상클래스에서는 위와 같이 @Configuration으로 스프링 컨테이너에 bean으로 등록된 url을 필드 주입으로 관리하도록 구현이 되어 있습니다. IntelliJ IDE에서도 해당 변수 옆에 bean 모양이 생겨 일단 스프링 컨테이너에서 인식은 되고 있는 상황인데, A 클래스에서 proxyUrl을 출력하면 null값이 나옵니다. 다른 클래스에서도 동일한 방식으로 필드주입으로 url을 사용하고 있는데, 다른 클래스에서는 문제없이 환경 변수에 입력된 url이 정상 출력됩니다. 혹시 A 클래스에서 추가적으로 작업해야 할 부분이 있을까요?? (@Service 어노테이션도 추가해보았지만 문제는 해결되지 않았습니다)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의를 듣다가 궁금한 점이 생겼습니다. 인터페이스는 구현 메서드를 가능한 지양해야하므로 default 메서드는 하위 호환 등의 특별한 예외에서 사용해야한다는 말씀에 깊이 공감하고 있습니다. 다만 이런 경우는 어떤 접근 방식이 좋을까요? 프로젝트내 특정 이늄 클래스들 혹은 레코드들에 대해서 공통화된 메서드 처리를 하고 싶을 때 디폴트 메서드가 있는 인터페이스를 상속받아서 공통 기능을 사용하고 있습니다. 이늄과 레코드는 클래스 상속이 안되어서 생긴 편법? 같은 느낌이 드는데요. 이에 대한 정석적인 접근 방식이 있을까요? .. 또한 이늄과 레코드는 상속을 못하게한 객체지향적인? 이유가 있을 것 같은데 혹시 어떻게 이해를 하면 좋을지.. 궁금합니다..!
안녕하세요 모든 리전 알람에 람다.tf 강의 버전으로 배포하면 람다 콘솔에서 코드를 수정하는 경우 테라폼으로 추적이 안되더라구요. 변경점을 추적하는 방법을 찾아보니, 대충 테라폼에서 배포할 때 zip 형태로 말아 배포할때마다 hash값을 비교해서 변경을 감지한다는거 같은데 이도 사실 제가 정확히 이해했는진 모르겠네요. 사실 저는 개인적으로 람다가 워낙 자주 수정되니 그냥 최초 배포할 때 이후로 따로 추적은 안하고 git 같은 곳에서 버전관리를 하면 되지 않을까라고 생각합니다. 아니면, 람다 함수를 git, s3 등에서 버전을 관리하고 테라폼 모듈에서 source를 git or s3와 같이 지정해주면 될 것 같은데 실제 운영하실 땐 어떤 방식으로 테라폼으로 관리하는지 궁금합니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 문제와 풀이 3번문제 선생님 풀이와 다르게 마지막 else 부분을 이렇게 작성했는데 이것도 정답이 될 수 있을까요? public class Ex3 { public static void main(String[] args) { int dollar = 5; if (dollar < 0) { System.out.println("잘못된 금액입니다."); } else if (dollar == 0) { System.out.println("환전할 금액이 없습니다."); } else { System.out.println("환전금액은 " + dollar*1300 + "원입니다." );
java-basic 프로젝트를 생성했을 때 println()이 빨간색으로 되면서 실행이 안되었는데 file-project structure-Modules-Dependencies에 들어가서 openjdk-21을 클릭하고 OK를 클릭하니 실행이 되는데 제가 해결한 방법이 옳은 방법인가요?
해당 영상 문제처럼 LocalOuterV1 클래스 안에 localPrinter 클래스가 지역 클래스?등이 존재해도 main 함수가 아래 나오면 메인 함수로부터 프로그램이 우선으로 실행된다 생각 했는데 그거랑 상관없이 위에서 순서대로 결과가 나오나요? 해당 문제의 동작 순서가 어떻게 될까요..?
안녕하세요~ arr[5] 설명해주실 때 case 1: int arr[5] -> 5개 들고있다고 선언! case 2: arr[5] -> 6번째 값 하면서 case 2 예시로 arr = { 1,2,3,4,5, 6 } 을 들어주셨는데 arr[5] -> 6번째 값이면 6번째에 있는 6이 아닌가요? 7이라고 설명하셨는데 실수하신건지 제가 이해를 잘 못했는지 궁금해서 질문드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 뭐가 문제일까요?
업캐스팅처럼 문제가 발생할 가능성이 없다. 즉, 안전하다 -> 코드를 생략해도 자바가 컴파일과정에서 코드를 추가해준다. 왜? 추가하더라도 안전하니까 다운캐스팅처럼 문제가 발생할 가능성이 조금이라도 있다. 즉 안전하지 않다 -> 코드를 생략하면 자바가 코드를 추가해주지 않는다. 왜? 추가해서 혹시라도 문제가 발생하면 자바 책임이 되니까 -> 즉, 개발자가 직접 명시해야 한다. -> 명시하지 않으면 컴파일 오류, 명시하면 컴파일 성공 -> 컴파일 성공해서 실행중에 런타임 오류가 발생하지 않으면 괜찮지만, 런타임 오류가 발생하면 코드를 직접 명시한 개발자 책임이 된다. 이 부분이 헷갈려서 정리해 봤는데, 이렇게 이해하는게 맞을까요?
안녕하세요 일코님 강의 잘 듣고 있습니다. 한글 찾기를 이용해서 작업을 하고 있습니다. 다른 부분은 모두 잘 작동하는 데 while문 제어가 어려워서 문의 드립니다. 문서에서 직접 ctrl+f로 찾기를 해보면 마지막이 나오는데 파이썬 코드를 이용하면 False값을 뱉지 않고 무한루프에 빠집니다. 작업 내용은 "[1 " 를 찾아서 표 안에 있으면 표 전체를 저장하고, "[1"이 본문에 있으면 본문 내용을 저장해서 다른 문서에 저장하는 작업입니다. import os from tkinter import Tk from tkinter.filedialog import askopenfilename import win32com.client as win32 def 한글_열기(한글파일): hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") hwp.Open(한글파일) return hwp def 한글_찾기(문자열): hwp.HAction.GetDefault("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) hwp.HParameterSet.HFindReplace.FindString = 문자열 hwp.HParameterSet.HFindReplace.Direction = hwp.FindDir("Forward") hwp.HParameterSet.HFindReplace.IgnoreMessage = 1 hwp.HParameterSet.HFindReplace.FindType = 1 cond = hwp.HAction.Execute("RepeatFind", hwp.HParameterSet.HFindReplace.HSet) print(cond) return cond def 문서_처리(): if (hwp.GetPosBySet().Item("List") == 0) : hwp.HAction.Run("MoveParaBegin") spara = hwp.GetPosBySet().Item("Para") spos = hwp.GetPosBySet().Item("Pos") hwp.HAction.Run("MoveParaEnd") epara = hwp.GetPosBySet().Item("Para") epos = hwp.GetPosBySet().Item("Pos") blockSelect(spara, spos, epara, epos) textArr.append(hwp.GetTextFile("HWP", "saveblock")) hwp.HAction.Run("Cancel") else : hwp.HAction.Run("CloseEx") spara = hwp.GetPosBySet().Item("Para") spos = hwp.GetPosBySet().Item("Pos") hwp.HAction.Run("MoveParaEnd") epara = hwp.GetPosBySet().Item("Para") epos = hwp.GetPosBySet().Item("Pos") blockSelect(spara, spos, epara, epos) textArr.append(hwp.GetTextFile("HWP", "saveblock")) hwp.HAction.Run("MoveParaEnd") hwp.HAction.Run("Cancel") def blockSelect(spara, spos, epara, epos): hwp.SelectText(spara, spos, epara, epos) if __name__ == '__main__': os.chdir(os.path.join(os.environ["USERPROFILE"], "desktop")) BASE_DIR = os.getcwd() root = Tk() 한글파일 = askopenfilename(title=" HWPX 파일을 선택해 주세요.", initialdir=BASE_DIR, filetypes=[("아래아한글", "*.hwp *.hwpx")]) root.destroy() hwp = 한글_열기(한글파일) hwp.MovePos(2, 0, 0) textArr = [] while True: # for _ in range(8): if 한글_찾기("[1"): 문서_처리() else: break hwp.Run("FileNew") # 빈 문서 생성 for k in range(len(textArr)): hwp.SetTextFile(textArr[k], "HWP", "insertfile") hwp.HAction.Run("MoveParaEnd") hwp.HAction.Run("BreakPara") hwp.HAction.Run("BreakPara") hwp.HAction.Run("StyleShortcut1") hwp.HAction.Run("StyleShortcut1") hwp.SaveAs(os.path.join(os.getcwd(), "result2.hwpx")) # 현재 위치에 다른이름으로 저장 hwp.Quit() print('모두 완료')