묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Jenkins를 이용한 CI/CD Pipeline 구축
톰캣 서버를 컨테이너로 구동하려고 합니다.
안녕하세요? 강의 잘 듣고 있습니다. 톰켓 서버 설정 관련해서 질문드립니다. 현재 저는 M1을 사용하는 맥북을 쓰고 있습니다.tomcat:9-jdk21-openjdk 이미지를 통해 컨테이너로 톰캣 서버를 구성중에 있습니다. 외부 8088포트를 내부 8080포트가 응답하게 구동하였고, 컨테이너 주소도 172.17.0.3인것을 확인 했습니다. 다만 말씀하신 경로에 context.xml 파일이 존재하지 않습니다. 아래 보시는 사진과 같습니다.그래서 이 부분은 일단 넘어가고 다른 세팅을 완료 했고 젠킨스로 2강의 세번째 프로젝트를 진행하는데 다음과 같은 오류가 나타납니다. [DeployPublisher][INFO] Attempting to deploy 1 war file(s) [DeployPublisher][INFO] Deploying /var/jenkins_home/workspace/My-Third-Project/target/hello-world.war to container Tomcat 9.x Remote with context null ERROR: Build step failed with exception org.codehaus.cargo.container.ContainerException: Failed to redeploy [/var/jenkins_home/workspace/My-Third-Project/target/hello-world.war] at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:176) at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136) at hudson.FilePath.act(FilePath.java:1198) at hudson.FilePath.act(FilePath.java:1181) at hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133) at hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95) at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80) at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767) at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1925) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) Caused by: java.net.ConnectException: Connection refused (Connection refused) at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) at java.base/java.net.Socket.connect(Socket.java:609) at java.base/java.net.Socket.connect(Socket.java:558) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:507) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:602) at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:275) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:374) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:395) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895) at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161) ... 19 more java.net.ConnectException: Connection refused (Connection refused) at java.base/java.net.PlainSocketImpl.socketConnect(Native Method) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237) at java.base/java.net.Socket.connect(Socket.java:609) at java.base/java.net.Socket.connect(Socket.java:558) at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:507) at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:602) at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:275) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:374) at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:395) at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1253) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1187) at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1081) at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1015) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:567) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:882) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:895) at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:161) at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:81) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:167) at hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:136) at hudson.FilePath.act(FilePath.java:1198) at hudson.FilePath.act(FilePath.java:1181) at hudson.plugins.deploy.CargoContainerAdapter.redeployFile(CargoContainerAdapter.java:133) at hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeployFile(PasswordProtectedAdapterCargo.java:95) at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:113) at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123) at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80) at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:47) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767) at hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.post2(MavenModuleSetBuild.java:1072) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) at hudson.model.Run.execute(Run.java:1925) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) Build step 'Deploy war/ear to a container' marked build as failure Finished: FAILURE 젠킨스 내에서 빌드는 완료가 된것 같고 배포중에 오류가 나는데 여러 시도를 해 봤는데 해결이 안되서 질문드립니다. 로컬에는 톰캣 서버를 설치하기가 좀 그래서 컨테이너 환경으로 실습을 진행하고 싶은데 해결책이 있을까요?
-
미해결Vue.js + TypeScript 완벽 가이드
두번째 프로젝트 권한 요청 드립니다.
이메일 : qkqh34k@gmail.com
-
미해결자바스크립트 : 기초부터 실전까지 올인원
타임즈뉴스 401에러
잘 되고 있다가 카테고리별 검색에 필요한 URL 입력 하면서부터 에러가 났어요. const getNewsByTopic = (event) => { console.log("클릭됨", event.target.textContent); let topic=event.target.textContent.toLowerCase() let url=new URL(`https://api.newscatcherapi.com/v2/latest_headlines?countries=KR&page_size=10&topic=${topic}`); console.log(url) }선생님 왜 에러가 난건가요?
-
해결됨ARM Cortex-M 프로세서 프로그래밍
S520 실습 시, SCB register가 표시되지 않는 문제
강사님, 안녕하세요.S520 실습 시, __NVIC_SetPriorityGrouping에서 breakpoint를 설정하는 부분에서강의와 같이 SFRs -> All register 에서 SCB register가 아예 존재하지 않았습니다.(SCB resigter가 없어서 내부 저장된 값도 확인할 수 없음)그래서, S520 강의의 후반부도 동일한 문제로 실습을 진행할 수 없었는데 혹시 해결방법이 있을까요?참고로, 이전 인터럽트 강의들은 실습 시 문제가 없었고, pinout 설정이나, NVIC 설정도 Enabled 된 것을 확인하였습니다.감사합니다.
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
api 서버 만들기: 도메인주소, 클라이언트비밀키가 화면에 표시되지 않습니다.
무료/프리미엄 고르고 도메인주소 입력하면 밑에 화면에 주소와 타입 비밀키가 표시되지 않습니다. 로그는 계속 이렇게만 뜨고, 워크벤치 들어가보면 키는 보입니다.키가 발급은 되었는데, 브라우저로 못 띄우는 것 같다고 판단했습니다.어떤 부분을 확인해봐야 될까요?
-
미해결프로젝트로 배우는 React.js
페이지네이션 버그 있습니다.
변수 명은 편한대로 변경했습니다.numberOfPageForGroup = currentGroup === lastGroup ? totalPages % limit : limit;처음 알려주신 코드 로직 그대로 사용하면totalPages가 limit으로 나누어 떨어져서 나머지가 0인 경우 버그가 발생합니다. const numberOfPageForGroup = currentGroup === lastGroup && totalPages % limit !== 0 ? totalPages % limit : limit;나누어 떨어지는 경우도 처리해줘야 정상 작동합니다.
-
미해결한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
setState관련
20분경 나온 setState관련해서 미리 코드를 짜보았었는데용 <div className="DiaryEditor"> <h2>오늘의 일기</h2> <div> <input value={state.author} onChange={(e) => { setState(e.target.value); }} /> </div> <div> <textarea value={state.content} onChange={(e) => { setState(e.target.value); }} placeholder="내용을 입력해주세요" /> </div> </div> 이렇게 짜도 정상적으로 작동이 되는데 더 깊이 들어가서 문제가 생기는 경우일까요??
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
DTO를 Result<T> 클래스에 담아서 반환할 때의 예외처리
안녕하세요!영한님 강의를 들으면서 추가적으로 RestTemplate에 대해 알게되어 지금까지 배운 것을 복습할 겸 api와 DTO 통신에 대해 연습하고 있었습니다.DTO를 반환할 때, 그냥 주기보다는 Result<T>의 data같은 속성에 담아서 주는 것이 바람직하다고 하여 그 응용을 연습해 볼겸 Result<T>에 status 속성을 추가해보았습니다.status 속성은 외부 api에서 조건을 충족하는 api를 찾아 와서 반환할 DTO가 있을 경우 "success"를, 조건을 충족하는 api를 찾지 못하여 HttpClientErrorException 예외가 발생할 경우 "fail"을 담아서 반환하고자 하였습니다.아래의 코드를 통해 구현은 성공하였으나, Service 클래스에서 try-catch문을 사용하는게 좀 찜찜하여 혹시 try-catch문 없이 구현하는게 더 좋을지 아니면 그냥 사용해도 좋은지가 궁금하여 질문을 하게 되었습니다.(status가 "fail"이면 data는 null을 반환하게끔 설계해보았습니다) @RestController @RequiredArgsConstructor @RequestMapping("/summoners") public class SummonerController { private final SummonerService summonerService; @GetMapping public ResponseEntity<Result<SummonerDTO>> findSummonerApi(@RequestParam String name) { SummonerDTO summonerDTO = summonerService.findSummonerApi(name); if (summonerDTO == null) { return ResponseEntity.ok().body(new Result<>("fail", null)); } return ResponseEntity.ok().body(new Result<>("success", summonerDTO)); } }@Slf4j @Service @RequiredArgsConstructor public class SummonerService { @Value("${apiKey}") private String apiKey; private final SummonerRepository summonerRepository; private final RestTemplate restTemplate; // riot에서 소환사 정보 api를 받아오는 메서드 public SummonerDTO findSummonerApi(String name) { String url = "https://kr.api.riotgames.com/lol/summoner/v4/summoners/by-name/{summonerName}"; HttpHeaders headers = new HttpHeaders(); headers.set("X-Riot-Token", apiKey); try { return restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(headers), SummonerDTO.class, name).getBody(); } catch (HttpClientErrorException e) { return null; } } }Controller와 Service의 코드는 위와 같습니다. (restTemplate은 별도의 설정파일에 빈으로 구현하였습니다)
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
git 수업 부분 오류 발생했습니다
git remote add origin https://github.com/JIWONKIMS/grab-market-client.git git branch -M main git push -u origin main터미널에 입력했을 때 마지막 git push -u origin main 부분을 실행하면 아래 에러가 뜹니다fatal: failed to load library 'libcurl-4.dll' 에러 해결법이 뭔가요?
-
미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
페이퍼 캐릭터 빙의 관련 질문
1 섹션 수업을 따라가다가 막히는 부분이 있어 질문 드립니다.수업 내용대로 페이퍼 캐릭터를 상속받아 BP_Knight 클래스를 생성하고 스프라이트에 소스 플립북을 적용시켰습니다. 이후 스프링암과 카메라 컴포넌트를 추가 했습니다. 에디터에서는 이런 모습입니다.아직 빙의를 하지 않은 상태에서는 수업 내용대로 중력의 영향을 받아 낙하가 되었습니다. 그런데 BP_Knight 에 플레이어 자동 빙의를 Player 0 으로 설정하고 실행하면 수업 내용대로 라면 실행했을 때 카메라가 BP_Knight에 빙의되어 낙하되는 걸 따라가며 찍어야하는데 왜 인지 원래는 낙하가 되었던 BP_Knight 가 낙하도 되지 않고 카메라가 빙의도 되지 않는 것 같습니다.수업 내용을 그대로 따라하며 진행했는데 제가 실수한 부분이 어디 인지를 모르겠습니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
테스트 실패 후 tryLock waitTime 설정 변경 뒤 테스트 성공에 대한 질문
waitTime을 10초로 설정했어도 leaseTime이 1이기 때문에 테스트는 성공했어야 할 것 같은데 왜 실패하나요?그리고 waitTime을 10초에서 15초로 변경하면 왜 성공하나요?
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
api 호출(mock서버에서) 한 데이터로 bar chart 데이터 전달 문의
vue 공부를 하기 위해 강사님 강의 잘 듣고 있습니다. 정성스러운 준비 알찬 내용에 너무 감사드립니다.코드 작성하다가 아직은 vue 문법이나 전체적인 개념이 잘 잡히지 않아서, 이렇게 저렇게 해보다가 잘 안되어서 강사님께 질문을 드립니다.차트 그리기 위해서 아래 코드를 작성했는데요.차트에 뿌려질 데이터가 js 파일에 명시적으로 있는 것은 props 로 전달하여 잘 뿌려지고 있습니다.BarChart.vue, ChartView.vue, bar.chart.config.js이 데이터를 api 호출하여(실제 데이터가 있는 서버. 지금은 postman. mock 서버) props 전달해서 하려고 합니다. async await 로 api 호출하여 원본자료 받는것 까지는 됐는데, 받아온 자료를 bar.chart.config.js 에 명시된 데이터 처럼 가공하여 BarChart.vue 에 전달하고 싶은데, 방법을 잘 모르겠습니다.아래 CallApiView.vue 에서 this.chartList 부분으로 시도하였는데, 방법이 틀린 것 같습니다.ㅠㅠ(아직 vue 초보이니 너른 마음으로 알려주시길 부탁드립니다) BarChart.vue<script setup> import { ref, watch, computed, onMounted } from "vue"; import Chart from "chart.js/auto"; const props = defineProps({ data: { type: Object, required: true, }, }); const root = ref(null); let chart; onMounted(() => { chart = new Chart(root.value, { type: "bar", data: props.data, options: { responsive: false, maintainAspectRatio: false, scales: { y: { display: true, }, x: { display: true, }, }, plugins: { legend: { display: false, }, }, }, }); }); const chartData = computed(() => props.data); watch(chartData, (data) => { if (chart) { chart.data = data; chart.update(); } }); </script> <template> <canvas ref="root" /> </template> ChartView.vue<script setup> import { computed, ref, onMounted } from "vue"; import BarChart from "@/components/Charts/BarChart.vue"; import * as chartConfig from "@/components/Charts/bar.chart.config.js"; const chartData = ref(null); const fillChartData = () => { chartData.value = chartConfig.sampleBarChartData(); }; onMounted(() => { fillChartData(); }); </script> <template> <div style="width: 800px"> 여기는 대시보드 bar chart <bar-chart :data="chartData" class="h-96" /> </div> <template> bar.chart.config.jsexport const sampleBarChartData = () => { const labels = ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"]; const datasets = [ { label: "# of Votes", data: [12, 19, 33, 5, 2, 3], backgroundColor: [ "rgba(255, 99, 132, 0.2)", "rgba(54, 162, 235, 0.2)", "rgba(255, 206, 86, 0.2)", "rgba(75, 192, 192, 0.2)", "rgba(153, 102, 255, 0.2)", "rgba(255, 159, 64, 0.2)", ], borderColor: [ "rgba(255, 99, 132, 1)", "rgba(54, 162, 235, 1)", "rgba(255, 206, 86, 1)", "rgba(75, 192, 192, 1)", "rgba(153, 102, 255, 1)", "rgba(255, 159, 64, 1)", ], borderWidth: 1, }, ]; const options = { scales: { y: { beginAtZero: true, }, }, }; return { labels, datasets, options, }; }; 보여지는 화면 api 호출(mock서버에서)데이터는 아래와 같이 등록되어 있습니다.https://0604916b-347f-4b44-bb75-60dd4b41d9cb.mock.pstmn.io/test/yeardata[ { "labels": "Red", "vote": 12 }, { "labels": "Blue", "vote": 19 }, { "labels": "Yellow", "vote": 33 }, { "labels": "Green", "vote": 5 }, { "labels": "Purple", "vote": 2 }, { "labels": "Orange", "vote": 3 } ] CallApiView.vue<script setup> import BarChart from "@/components/Charts/BarChart.vue"; </script> <script> import axios from "axios"; import { Chart, registerables } from "chart.js"; Chart.register(...registerables); export default { setup() {}, data() { return { chartList: {}, }; }, mounted() { this.getChartList(); }, methods: { async getChartList() { try { //mock서버에서 호출 const res = await axios.get( "https://0604916b-347f-4b44-bb75-60dd4b41d9cb.mock.pstmn.io/test/yeardata" ); console.log("res ===> ", res.data); const labels = res.data.map((row) => row.labels); const datas = res.data.map((row) => row.vote); console.log("new labels ===> ", labels); console.log("new datas ===> ", datas); //여기에서 자료가공을 하려고 했으나 안됨.. this.chartList = { data: { labels: this.labels, datasets: [ { label: "# of Votes test", data: this.datas, }, ], }, }; console.log("new chartList ===>", this.chartlist.data); } catch (e) { console.error("chart error===>", e); } }, }, }; </script> <template> <div style="width: 800px"> new 여기는 대시보드 bar chart <bar-chart :data="chartList" class="h-96" /> </div> </template>
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 백조 문제 메모리 초과 질문
http://boj.kr/54cbfbf55f6946edbeb3beb93d88f6bc안녕하세요 강사님! 여태 틀린 문제 다시 한번 풀어보고 있습니다. 백조 문제에서 메모리 초과가 나서 제가 생각하기에 의심되는 부분들 (queue에 중복 좌표를 여러번 푸시하는 경우)을 없애고도 메모리 초과가 나길래 어느 부분이 문제일지 한번 봐주시면 감사하겠습니다..로직 자체는 강사님 코드와 거의 비슷하게 떠올린 것 같은데 2차원 배열을 너무 많이 쓴 것이 문제인지.. 특정 케이스에서 queue가 너무 커지는 것이 문제일지 잘 감이 안 옵니다 ㅜ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
복합키에서 시퀀스 컬럼에 대한 질문 드립니다.
[질문 내용]안녕하세요.개인 토이 프로젝트를 JPA를 활용하여 개발하다가 복합키와 관련하여 질문 드립니다.현재 계좌라는 테이블에 1:N 매핑되어 거래 이력을 관리하는 이력 테이블을 설계했습니다. 해당 엔티티에 대한 기본키를 복합키로 설정했는데요. 식별관계 복합키로 계좌번호(FK)+거래날짜+시퀀스로 방향을 잡았습니다.복합키 설정 중, 더 객체지향적인 방식이라는 @EmbeddedId 방식을 채택해서 사용했는데요. 복합키를 정의한 클래스의 필드에 시퀀스 필드에@GeneratedValue를 붙여 db에 저장될 시에 시퀀셜하게 번호가 채번될 거라고 생각했는데 결과는 널값이 들어 가더군요. 구글링을 해보니, 마찬가지 경우를 겪은 분들의 글을 보았고, @EmbeddedId 방식에서는 해당 @GeneratedValue를 사용 못한다는 것을 알게 되었습니다. 이에 대한 대안으로 다른 분들은 아예 복합키를 사용하지 않고, @GeneratedValue를 적용한 ID필드로 하나의 기본키를 두거나, 복합키의 또 다른 방법 중 하나인 @IdClass를 활용하고, @SequenceGenerator를 적용하여 시퀀스를 따로 관리해주는 식으로 하여 제가 처음 원하던대로 복합키에서도 시퀀스를 사용하는 것을 보았습니다.질문은 실무에서는 이런 이력성 엔티티에 대해 어떤 방식은 사용하는지 궁금합니다. 사실 별도의 기본키 하나를 두고, 구현을 하자면.. 결과적으로 나중에 이력을 조회하고자 한다면 기본키가 아닌 값들로 조건을 줘서 쿼리가 나가게 될텐데.. DB 성능적인 부분에서 비효율적이지 않을까 싶고,,, @IdClass로 복합키를 설정하자니 이렇게 하는게 적절한 방법인가 싶습니다.긴 질문 읽어주셔서 감사합니다!! :)
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
confidence score의 정의에 대해
confidence score가 어떤 곳에서는 class score인지 object 인지 아닌지를 판단하는 object score인지 아니면 어떤 곳에서는 저 두개의 곱으로도 나타내더군요.혹시 정의에 대해서 확인해봐도 되겠습니까
-
해결됨[게임 프로그래머 도약반] DirectX11 입문
output.worldPosition 질문드립니다
worldPosition을 따로 저장해야하는 이유는 버텍스 쉐이더로 넘어가게 되면 결국 스크린좌표계로 까지 변환이되어서 원하는 좌표로 남지 않아서 된다는 것은 이해했습니다.강의에서보면 output.worldPosition = input.position;로 저장하게 되는데 이렇게 저장하게되면 로컬 좌표계로 저장이되기 때문에output.position = mul(input.position, W);output.worldPosition = output.position;이렇게 저장해야 해당 모델의 월드좌표계가 저장되는 것이 맞는것 같은데 혹시 제가 잘못 이해한 부분이 있을까요?
-
미해결문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!
jupyterlab가 화면에 열렸어요, 그러면 이 화면으로 앞으로 계속 공부하면 되나요?
아래 화면과 같이 문의드렸던 질문에 대하여답변을 주셔서 감사합니다설명해주신데로 아래의 화면과 같이 Anaconda Prompt 창의 맨 아래줄에 있는 웹 주소를아래 화면과 같이 브라우저 주소란에 복사 후 붙여넣고 엔터를 치니까jupyterlab 화면이 아래와 같이 열렸습니다이제 앞으로 jupyterlab 공부를 하려면, 매번 공부할때마다계속 http://localhost~~~ 주소를 브라우저의 주소란에 입력해서 jupyterlab화면을 열고 공부해야 하나요?
-
미해결실전! 스프링 데이터 JPA
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 성능 테스트를 해보고 QueryHint 를 적용할지 고민하라고 하셨는데 성능 테스트란 정확하게 어떤 걸 의미하나요? 부하 테스트 인지 맞다면 예시가 뭐인지 궁금합니다.그리고 성능 테스트를 하면 QueryHint 를 쓰는게 더 성능이 좋게 나올텐데 그럼 쓰는 게 낫지 않나 하는 궁금증이 듭니다.
-
미해결처음하는 플러터(Flutter) 기초부터 실전까지 [풀스택 Part4] (쉽고 견고하게 단계별로 다양한 프로젝트까지)
챕터별 퀴즈 자료 문의
강의 덕분에 빠르게 언어에 대하여 이해를 하는 중입니다. 감사합니다.혹시 퀴즈에 대한 공유 문서는 제공이 안되는 것인가요? 문제를 한번에 풀고 영상을 보고 싶은데 퀴즈 파일은 따로 공유받은것이 없습니다..!
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
Entity, Dto 관련해서 궁금증이 있습니다! (오류 사항은 아니지만.. 갑자기 궁금해져서 글을 남기게 되었습니다.)
안녕하세요. 해당 강의를 보다가 궁금증이 생겨서 글을 남기게 되었습니다.Entity는 디비 테이블의 컬럼들을 작성(실제 컬럼 및 디비에 없는 컬럼들까지)하고 Dto는 요청에서 받는 타입들을 작성하고 해당 타입들을 Controller 전에 검증해주는 클래스라고 알고 있었습니다. 궁금한건 아래 2가지 인 것 같습니다.Entity는 디비 테이블의 컬럼을 / Dto는 타입 검증을 위한 데코레이터들을 작성하는 클래스로 분리되는 개념으로 생각해왔었는데 잘 못 생각하고 있었던건가요??만약, Dto 클래스에 있는 컬럼들을 생략하면 nickName?: string; 처럼 선택적 옵션들과 @IsString()등 타입 검증을 해주는 데코레이터들을 전부 Entity에 작성해주는 건가요?? 저는 Entity는 건들이지 않고 Dto에서 선택적 옵션과 타입 검증들의 데코레이터를 사용하고 있었어서 궁금해졌습니다..!