안녕하세요. JAVA만 꽤 오래 사용하다가, 이번에 이직하면서 코틀린을 하게 되어 강사님 강의를 들으며 공부하고 있습니다. 많이 부족하지만 너무 자세히 설명해주시고 친절하게 설명해주셔서 덕분에 잘 따라가고 있습니다. 궁금한 내용은 아래와 같습니다. Enum과 static (Companion) 의 차이가 무엇일까, 언제 다르게 사용할까 라는 궁금증이 생겼습니다. 자바를 사용하다가 코틀린 강의를들으면서 가장 인상깊었던 부분인 when 부분입니다. enum과 sealed를 어떻게 실무에서 dto와 사용하는지 예시를 알고 싶습니다. Sealed를 어떤 경우에 사용해야할지 감이 안잡히네요. 혹시 조금 만 더 자세하게 설명을 해주실 수 있을까요? 바쁘실텐데 감사합니다. ps. 강사님 발음에 매번 취하고 있습니다.. :)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] cmd에서 h2.bat 입력시 해당 화면만 뜨고 실행되지 않습니다. 자바 11을 쓰고 있으며 환경변수도 확인했고 h2 재설치, 자바 재설치도 해봤습니다 파일탐색기에서 h2.bat 파일을 실행해도 결과는 똑같습니다 뭐가 문제일까요
해당 강의에서 ObjectProvider를 사용하여 DL 방식으로 컨테이너에서 PrototypeBean 객체를 찾고 PrototypeBean은 prototype 스코프이므로 새로운 객체를 생성하고 반환해준다고 이해했습니다. 새로운 객체를 생성하여 반환하는 것이라면 굳이 ObjectProvider를 사용하지 않고 new 객체를 생성하여 사용해도 되지 않을까요? 이 부분이 궁금해서 질문드립니다. 제 생각에는 ObjectProvider를 사용하면 만약 prototype 스코프의 객체가 다른 객체를 자동으로 주입받아야 할 때 new 객체는 사용자가 의존관계를 주입해주어야 하므로 문제가 생깁니다. 따라서 스프링의 DI 기능을 사용하기 위해 사용하는 것 같다고 생각됩니다.<ObjectProvider 사용> @Scope("singleton") static class ClientBean { @Autowired private ObjectProvider<PrototypeBean> prototypeBeanProvider; public int logic() { PrototypeBean prototypeBean = prototypeBeanProvider.getObject(); prototypeBean.addCount(); return prototypeBean.getCount(); } } <new 객체 사용> @Scope("singleton") static class ClientBean { public int logic() { PrototypeBean prototypeBean = new PrototypeBean(); prototypeBean.addCount(); return prototypeBean.getCount(); } }
안녕하십니까! 먼저 항상 좋은 강의 감사드립니다. 특히 이번 강의에서는 Transaction에서 readOnly 옵션을 사용하므로써 JPA 최적화를 통해 성능 향상을 이점을 얻을 수 있다와 함께, CQRS 측면을 말씀해 주셔서 좋았습니다! 저의 경우는 아직 master/slave DB 구조를 다뤄본적이 없어서 몰랐는데, 이렇게 readOnly 옵션을 사용할 경우 DB endpoint를 구분하여 명시하므로써 master/slave DB 구조를 사용할 수 있다는 측면도 알게되어서 좋았습니다. 본론으로 넘어가서, Q1. ProductNumber를 계산하는 로직을 DB에서 최신값을 읽어온 후에 , 그 값을 기반으로 다음 productNumber 값을 계산하는 로직을 저의 경우는 동시성 이슈를 고려하여 , 1.일단 SaveAndFlush()로 Id를 할당받고 2. 그 Id 값으로 만들자 라는 로직을 사용하였습니다. (IDENTITY 전략이므로 테이블당 1부터 Id가 할당되기 때문에 가능) 이러한 저의 로직에 문제가 있는지 피드백 주시면 정말 감사하겠습니다. 특히 calculateProductNumber() 메소드를 저의 경우는 도메인 주도 전략에 기반하여 서비스의 private Method로 정의하지 않고 , Entity 안에 정의하여 사용하는 편인데, 이러한 스타일에 대해서도 문제가 없을지 여쭤보고 싶습니다. Q2.두번째로 저의 경우는 createProduct() 메소드 테스트를 1.처음 생성 일의자리 productNumber로 생성 십의자리 productNumber로 생성 백의자리 productNumber로 생성 1000개를 넘어가면 예외발생 으로 구분하여 테스트 하였습니다. 그런데 이 테스트를 한꺼번에 돌렸을 땐 직전 테스트로 이미 저장된 Product에 의해 다음 테스트에 영향을 미쳐 일부 테스트가 실패하는 상황이 발생하였습니다. 이상황을 어떻게 해결할 수 있을지 질문 드리고 싶고 (sleep() 으로 간격을 주어야 할까요,,) 또한 이 원인이 테스트를 한꺼번에 실행시킬 경우, 각 테스트 메소드가 각 쓰레드로 동시에 실행되기 때문인지 여쭤보고 싶습니다! 감사합니다.
yml파일,mongo 파일,Dockerfile 만들고 docker-compose build docker-compose up 하고 다른 쉘에서 docker ps했는데 아무것도 안뜹니다 파일은 제대로 따라 적었는데도 오류 뜨고 몽고 db는 삭제했고 몽고db 컴패스는 오류걸려서 그냥 삭제했습니다
AssetStore에서 knight를 받을 수 없어서 강사님의 공유 코드에서 Knight 복사해 왔습니다. 그런데, 아래와 같이 애니메이터 컴포넌트를 넣고 실행시키면 나이트가 아래로 떨어집니다. 애니메이터를 끄고 실행하면 knight가 잘 서 있습니다. 어디를 확인해 봐야 할까요? 애니메이션을 확인해보니 애니메이션도 땅으로 꺼져있습니다. 이 애니의 몸체를 올리는 방법이 있을까요?
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
static UserManager* GetInstance()//↗ { static UserManager um;//↗, 전역 객체 선언 return &um; } 이 부분에서 static UserManager um;//↗, 전역 객체 선언 static UserManager* GetInstance()//↗ { return &um; } 이렇게 하니까 1개의 확인할 수 없는 외부 참조입니다. 라는 링크 오류가 발생하네요. 왜 그런지 궁금한데 혹시 알 수 있을까요?
우디쌤 AI 강의 듣고 있어요. 좋은 강의 공유해주셔서 감사합니다^^ 12강에서 도형을 만들고 그 위해 패턴을 얹어놓는데요, 50*50 정사각형으로 만든 도형을 ctrl + 2로 고정합니다. 그걸 다시 원래상태로 돌리려면 어떻게 하나요? ctrl+2를 다시 눌러도 원상태로 돌아오지 않더라고요. 패턴을 만들고, 위치를 좀 바꾸려고 뭔가 만진것 같은데, 동그라미가 정사각형 아래로 내려간것 같아서 찾으려고 보니 layer에서도 찾을 수가 없네요. 없어진 제 동그라미 좀 찾아주세요...............
안녕하세요! 제 6강을 수강하고 탑다운 DP 문제 중 냅색문제를 백준에서 풀었을 때 계속 런타임에러가 나네요 ㅠ 혹시 이유를 알 수 있을까요 ? 제가 작성한 코드는 다음과 같습니다. #물건의 수 n와 배낭의 무게 k n,k = map(int,input().split()) #순서대로 배낭의 무게 w와 가치 v item = [list(map(int,input().split())) for _ in range(n)] dp = [[-1 for _ in range(10*6)] for _ in range(n)] #모든 경우의 수 생각하기 def bag(idx , weight ) : if weight > k : return -999 if idx == n : return 0 if dp[idx][weight] != -1 : return dp[idx][weight] #물건을 넣은 경우와 넣지 않은 경우를 비교해준다 dp[idx][weight] = max( bag(idx+1 , weight + item[idx][0]) + item[idx][1] , bag(idx+1 , weight)) return dp[idx][weight] ans = bag(0,0) ans
2분 36초 부터인데요, .normal(let tvData) 에서 let tvData 면 새롭게 tvData변수를 정의하고, 그 밑밑밑에 줄에 보면 tvData가 name,vote이런 거 처럼 처음에 정의해놨던 거를 갖고있는데 이걸 어떻게 갖고있는건지 모르겠습니다. 다시 말해, tvdata가 그 name,vote 등등 얘네가 모여있는 구조체랑 엮어주는 작업을 어디서 수행되는 지 당최 모르겠네
options = uc.ChromeOptions() 가져와서 아래쪽에 uc.Chrome () 실행할때 options가 안넣어져 있는데 안넣고 실행하는건가요??? 깃허브에 설명에는 driver = uc.Chrome(options=options) 이렇게 되어 있어 보이는데요?