묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨독하게 되새기는 C 프로그래밍
파일 처리와 UI 분리 #2에서 동기화가 없어도 괜찮은건가요?
File I/O를 위한 thread를 생성했을 때 User Event 받는 thread가 같은 자원에 접근하는데 동기화 없이 진행해도 괜찮은건가요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
exit 해서 root 빠져 나오기
exit 써서 root 나오시라 했는데 아무리 해도 ,, root인데 어떡하죠?...ㅜㅜ
-
해결됨코딩테스트 [ ALL IN ONE ]
longest 사용 이유?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 왜 여기서 longest 변수를 사용하는건지 궁금합니다 그냥 cnt 출력하면 안되는건가요?
-
미해결애플 웹사이트 인터랙션 클론!
load 이벤트시 첫 비디오 이미지가 뜨네요.
window.addEventListener('load' ... 중략sceneInfo[0].objs.context.drawImage(sceneInfo[0].objs.videoImages[0], 0, 0);안녕하세요.작업하다 이상해서, 강의자료도 같이 확인해보니 중간에 새로고침시 videoImages의 첫 이미지가 잠시 뜨는데, 아마 위의 코드 때문이 아닌가 합니다. 저 부분은 첫 scene의 장면임에도 불구하고, 뜬다는 것은 찰나이긴 하지만, 첫영역부터 순간적으로 중간으로 이동하면서 나타나는 현상같기도 한데, 이게 컴퓨터의 성능차이일수도 있다는 생각이 들기도 합니다. 저만 이런건지 모르겠습니다만..저 코드를 제거하고 중간에서 새로고침해보니 안보여서 문제가 없지만, 최상단 첫화면에서 새로고침하면 이미지가 안보이니 또 문제더군요.그래서 위 코드를 제거후, 새로고침시 조금 스크롤되는 코드에서 추가 조건문(else)를 붙여서 아래와 같이 수정해보았습니다. if (tempYOffset > 0) { let siId = setInterval(() => { scrollTo(0, tempYOffset); tempYOffset += 5; if (tempScrollCount > 20) { clearInterval(siId); } tempScrollCount++; }, 20); } else { sceneInfo[0].objs.context.drawImage(sceneInfo[0].objs.videoImages[0], 0, 0); } 이렇게 처리하니 문제가 없는 듯 한데, 이게 저한테만 생기는 문제인지, 아니라면 제가 위와 같이 처리한 방법이 맞는것인지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-T 진짜 무식하게 풀기 테케는 통과되는데 ㅎㅎ
#include<iostream> using namespace std; int n, a[1000004], b[1000004]; int main(){ cin >> n; for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=0;i<n-1;i++){ if(a[i]<a[i+1]){ b[i]=a[i+1]; }else if(a[i]>a[i+1]){ int k=i, temp=i; for(int j=i;j<n-1;j++){ if(a[j]<a[j+1])break; k++; } for(int j=temp;j<=k;j++){ b[j]=a[k+1]; } int flag=1; for(int j=i;j<n-1;j++){ if(a[i]<a[j+1]){ flag=0; break; } } if(flag)b[i]=-1; } } b[n-1]=-1; for(int i=0;i<n;i++){ cout << b[i] << " "; } }
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
GetMapping 에서 @ModelAttribute 사용 이유
영상 8:57 에서 @GetMapping("/add") 에서 파라미터로 @ModelAttribute를 받는 이유가 무엇인가요 ? PostMapping이 아니라 GetMapping일 때는 데이터가 넘어오지 않기 때문에 사용할 이유가 없는 것 아닌가요 ??
-
해결됨코딩은 처음이라 with 웹 퍼블리싱 - CSS
hover했을 때 margin top 설정 시에 왜 hover 전에도 margin top을 써야하죠?
transform강의 4분 13초쯤 보면 hover했을 때 margin top을 50px로 주고 img{} 에도 margin top을 0으로 써주라고 하셨는데 왜 그래야하는거죠? hover 전에 0인거 안 써줘도 잘 작동하던데 이유가 있나요?
-
미해결스프링 기반 REST API 개발
Spring Boot 3.x.x 버전 , gradle 사용 할 때 ASCII 관련 설정 참고하세요
혹여나 Spring Boot 3.x.x. 버전에 gradle 사용할 경우 ASCII 관련 해 설정하는 부분을 정리 해 놓았습니다.혹시 저와 같은 Setting을 진행하시는 분들은 참고해주시면 좋을 것 같아요!설명 바로가기
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
인텔리제이 한글 깨짐
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]localhost:8080/hello-static.html에서 한글이 깨져서 출력됩니다.인코딩 관련된 질문에서 달아주신 글 모두 확인 후 전부 변경했는데 해결이 되지 않습니다..
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
D2 슬라이드 배너 내용이 보이지 않습니다.
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>서울구석구석</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <div class="main-content"> <div class="left"> <header> <div class="header-logo"> <a href="#none"><img src="images/header-logo.jpg" alt="header-logo"></a> </div> <div class="navi"> <ul class="menu"> <li> <a href="#none">지금의 서울</a> <div class="sub-menu"> <a href="#none">이벤트</a> <a href="#none">축제&행사</a> <a href="#none">전시</a> </div> </li> <li> <a href="#none">추천</a> <div class="sub-menu"> <a href="#none">에디터추천</a> <a href="#none">테마코스</a> <a href="#none">도보해설관광</a> <a href="#none">한류관광</a> </div> </li> <li> <a href="#none">여행지</a> <div class="sub-menu"> <a href="#none">명소</a> <a href="#none">엔터테인먼트</a> <a href="#none">음식</a> <a href="#none">게스트하우스</a> </div> </li> <li> <a href="#none">여행정보</a> <div class="sub-menu"> <a href="#none">가이드북&지도</a> <a href="#none">시티투어버스</a> <a href="#none">날씨</a> </div> </li> </ul> </div> </header> </div> <div class="right"> <div class="slide"> <div class="slide-inner"> <div class="slide-items"> <a class="slide-item" href="#none"><img src="images/slide-01.jpg" alt="slide-01"></a> <a class="slide-item" href="#none"><img src="images/slide-02.jpg" alt="slide-02"></a> <a class="slide-item" href="#none"><img src="images/slide-03.jpg" alt="slide-03"></a> </div> </div> <div class="slide-banner"> <a href="#none"><img src="images/slide-banner.png" alt="slide-banner"></a> <h3> 얼리버드 할인, <br> 신규강의 최대 30% 할인 </h3> 12월 개강반을 12월 06일까지 접수하는 분들께는 15%~ 20% 의 얼리버드 할인을 제공합니다. 더불어 소중한 리뷰를 꼼꼼히 남겨주시는 분들을 뽑아 더 큰 적립금을 추가지급! 리뷰도 놓치지 마시고 작성해주세요~^^ <br><br> 기간: 12월 18일~ 12월 25일</p> </div> </div> <div class="news-gallery"> <div class="news"> <div class="btn"> <a href="#none">공지사항</a> </div> <div class="tab1"> <a class="open-modal" href="#none">스트리밍 서버 이전 작업으로 2시간 서비스 중지<b>2022.12.20</b></a> <a href="#none">얼리버드 선착순 할인 이벤트 최대 50% 할인<b>2022.10.13</b></a> <a href="#none">내 집 마련의 꿈을 꿈이 아닌 현실로 만드는 진짜 방법<b>2022.11.31</b></a> <a href="#none">외국인과 영어로 네이티브처럼 대화하는 노하우! <b>2022.08.09</b></a> <a href="#none">외국인과 영어로 네이티브처럼 대화하는 노하우! <b>2022.07.07</b></a> </div> </div> <div class="gallery"> <div class="btn"> <a href="#none">갤러리</a> </div> <div class="tab2"> <a href="#none"><img src="images/gallery-01.jpg" alt="gallery-01"><span>퍼블리셔 <br> 취업 진짜 가이드 </span></a> <a href="#none"><img src="images/gallery-02.jpg" alt="gallery-02"><span>초보자가 전문가가 <br> 되는 사진촬영</span></a> <a href="#none"><img src="images/gallery-03.jpg" alt="gallery-03"><span>탄탄한 라인을 <br> 만드는 필라테스</span></a> </div> </div> </div> </div> </div> <footer> <div class="footer-logo"> <a href="#none"><img src="images/footer-logo.png" alt="footer-logo"></a> </div> <div class="copyright"> <p>상호 : (주)코딩웍스 | 대표자 : 홍길동 | 개인정보관리책임자 : 성춘향 부장 <br> 사업장주소 : 경기도 남양주시 별내동 1234 코딩웍스 빌딩 6층 (주)코딩웍스 </p> </div> <div class="family-site"> <select> <option value="family-site-01">Family Site</option> <option value="family-site-01">Family Site</option> <option value="family-site-01">Family Site</option> <option value="family-site-01">Family Site</option> </select> </div> </footer> <div class="modal"> <div class="modal-content"> <h3>스트리밍 서버 이전으로 서비스 장애</h3> <p> 문자셋의 변경에 따라 기존의 DB, data, 웹사이트 솔루션 등의 커스트마이징 등에 상당한 어려움이 있었고, 이에 따른 일부 접속 오류가 있을 수 있었음에 양해를 구합니다. 특히 인터넷익스플로러 11로 접속하셨을 경우 일부 문제은행 목차가 출력되지 않았을 수도 있습니다. 서버 이전 작업으로 고객님들께 불편을 드려서 대단히 죄송합니다. 정상 운영되도록 최선을 다하겠습니다 <br> 감사합니다.</p> <a class="close-modal" href="#none"> X 닫기</a> </div> </div> </div> <script src="script/jquery-1.12.4.js"></script> <script src="script/custom.js"></script> </body> </html> @charset "utf-8"; body{ background-color: #fff; color: #333; position: relative; margin: 0; } a{ text-decoration: none; color: inherit; } .container{ } .main-content{ display: flex; } .main-content > div{ /* border: 1px solid; */ } .left{ width: 200px; } .right{ flex:1; } /* header */ header{} header > div{ } .header-logo{ height: 100px; } .navi{ height: 400px; } .menu{ list-style: none; padding: 0; } .menu li{ display: flex; flex-direction: column; align-items: center; } .menu li > a{ text-align: center; display: block; border: #333 1px solid; width: 180px; padding: 5px; transition: 0.5s; } .menu li:hover > a{ background-color: #333; color: #fff; } .sub-menu{ border: 1px solid #333; background-color: #fff; display: none; } .sub-menu a{ width: 180px; display: block; padding: 5px; text-align: center; } .sub-menu a:hover{ background-color: #3333336c; color: #fff; } /* slide */ .slide{ display: flex; font-size: 0; height: 400px; } .slide-inner{ overflow: hidden; flex: 1; height: 400px; position: relative; } .slide > div{ height: 400px; border: #333 1px solid; } .slide-banner{ width: 230px; text-align: center; } .slide-items{ flex:1; width: 300%; position: absolute; height: inherit; object-fit: cover; } .slide-items{ } .news-gallery{ display: flex; } .news-gallery > div{ height: 250px; } .news{ flex: 1; } .gallery{ flex: 1; } .btn{} .btn > a{ display: block; border: #333 1px solid; padding: 5px; width: 100px; text-align: center; margin: 0 10px; margin-top: 10px; border-radius: 5px 5px 0 0; background-color: #333; border-bottom: none; color: #fff; } .tab1 , .tab2{ margin: 0 10px; border: #333 1px solid; height: 190px; } .tab1 a{ display: block; padding: 5px 15px; border-bottom: #333 1px dashed; padding-top: 10px; } .tab1 a:last-child{ border-bottom: none; } .tab1 a b { float: right; font-weight: normal; } .tab2{ display: flex; justify-content: center; align-items: center; gap: 30px; } .tab2 a span{ display: block; font-size: 14px; text-align: center; } .tab2 a img{ width: 180px; border-radius: 5px; } footer{ display: flex; text-align: center; } footer > div{ height: 100px; } .footer-logo{ width: 200px; } .copyright{ flex: 1; padding-top: 10px; box-sizing: border-box; } .family-site{ width: 230px; padding-top: 30px; box-sizing: border-box; } .modal{ position: absolute; background-color: #3333332c; top:0; left: 0; width: 100%; height: 100%; display: none; } .madal > div{} .modal-content{ text-align: center; padding: 15px; border-radius: 10px; width: 350px; height: 300px; background-color: #fff; position: absolute; top:50%; left:50%; transform: translate(-50%,-50%); } .close-modal{ float: right; display: block; border: #333 1px solid; padding: 5px 10px; border-radius: 5px; } $('.menu li').mouseenter(function(){ $(this).children('.sub-menu').stop().slideDown() }) $('.menu li').mouseleave(function(){ $(this).children('.sub-menu').stop().slideUp() }) $('.open-modal').click(function(){ $('.modal').fadeIn(500) }) $('.close-modal').click(function(){ $('.modal').fadeOut(500) }) setInterval(function(){ $('.slide-items').animate({left:'-100%'},function(){ $('.slide-items').css({left:0}) $('.slide-item:first-child').appendTo('.slide-items') }) },3500)슬라이드 배너밑에 요소가 보이지 않습니다 ㅠobject-fit 커버도 똑바로 준건지 궁금합니다그외에 또 문제사항은 없을까요??
-
미해결
머그컵 이벤츠
김영한님 강의 다 신청 했는데요.머그컵 관련 메일을 못 받았는데 확인 부탁드려요. guseong0209@gmail.com
-
해결됨RPA로 자동화 천재되기 (UiPath 응용편)
2. 브라우저에서 이미지 가져오기 - 다른이름으로 사진 저장 시 오류
우클릭 메뉴의 세부 타겟 설정이 되지 않습니다. 무엇이 문제 일까요?Studio X 버전입니다.
-
해결됨스프링 핵심 원리 - 기본편
구체 타입?
안녕하세요!findBeanByName2 테스트 케이스를 '구체 타입으로 조회'라고 하셨는데 '구체'라는 의미가 '구현체'인가요? 아니면 '구체적'이라는 의미일까요...?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
HTTP 메서드의 속성 - 멱등
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]GET 요청의 경우 리소스 조회에 주로 사용하며, 멱등해야한다고 이해했습니다.조회수를 구현할 경우, GET요청을 100번 보낸다면 조회수가 100번 올라가니 멱등하지 않은건가요 ?? 아니면 외부요인으로 중간에 리소스가 변경되는것은 고려하지 않는 것처럼 조회수도 따로 봐야하나요 ?? 아니면 애초에 GET요청의 경우 리소스를 변경하지 않으니 조회수도 변경되면 안된다고 보고 POST 요청으로 보내야하나요 ??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안에 있다는 말이 엔진단 안에 있다는 말씀이신가요?
recvBuffer는 안에 있어서 Session마다 고유한 recvBuffer를 갖고 있다고 하실 때 안에 있다는 말은 ServerCore안 즉 엔진단 안에 있다는 말씀이신가요? 설명하실 때 안에 있다 언급하실 떄 마다 엔진단 안이라고 이해하고 있었는데 맞게 이해하고 있는 건가요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
토글 부분에서 리팩토링이 되지 않아 질문드립니다.
저는 getTime() 으로 타임을 받아서 value 부분을 객체로 만들어서 넘기고 있었습니다.store에서 sort 기능을 추가하였고완료된건을 아래로 넘기는 작업을하고 완료되지않은 건은 위로 올려서 나뉘게 작업하였습니다.그런대 이전에 store을 쓰지않을때는 단순하게 토글할때 sort를 함수로 만들어서 호출하였더니 잘되었습니다.store에 함수로 만들고 호출하고 나서는 리팩토링이 되지 않습니다 ㅠㅠ새로고침했을때는 잘 작동합니다. 또한 console창에도 바뀐 로직으로 잘 뜹니다.toggleOneItem 부분 봐주시면 감사합니다fetch부분에서는 잘되어서 리스트 가져올땐 잘되었는대 ㅠㅠ 토글하면서 잘 안돼더라구요!제가 어떤것을 실수 했을까요..? import Vue from "vue"; import Vuex from "vuex"; Vue.use(Vuex); //글로벌하게 Vuex를 쓰겠다는 의미 //해당 라이브러리를 사용하기 위한 초기화 코드를 실행하는 구문 //뷰에 연결해야 vuex를 사용할 수 있다 let sortItem = []; function sortlist(state) { const trueItem = state.filter( (item) => item.completed === true ); const falseItem = state.filter( (item) => item.completed === false ); trueItem.sort(function (a, b) { return b.value.time - a.value.time; //내림차순 }); falseItem.sort(function (a, b) { return b.value.time - a.value.time; //내림차순 }); sortItem = [...falseItem, ...trueItem]; return sortItem; } const storage = { fetch() { //네트워크의 리소스를 쉽게 비동기적으로 가져오기 //app에 있는 created를 store에 붙이기 let arr = []; if (localStorage.length > 0) { for (let i = 0; i < localStorage.length; i++) { if (localStorage.key(i) !== "loglevel:webpack-dev-server") { const item = localStorage.getItem(localStorage.key(i)); arr.push(JSON.parse(item)); //arr배열을 만들어서 푸시해주기 sortlist(arr); } } } return sortItem; // {} 단위밖에서는 arr을 호출할 수 없으므로 return 반환 }, }; // //다른 컴포넌트에서 this.$store 로 사용할 수 있음 export const store = new Vuex.Store({ state: { headText: "TODO it!", //헤더에 들어갈 값 등록하기 //todoItems: [], todoItems: storage.fetch(), //위에 만들어준 값을 넣어준다 }, getters: { getTotalNum(state) { //인자는 state return state.todoItems.length; }, getTrueNum(state) { //인자는 state const trueItem = state.todoItems.filter( (item) => item.completed === true ); return trueItem.length; }, }, mutations:{ addOneItem(state, value) { //console.log(value) const obj = { completed: false, value: value }; //const를 쓰면 재선언할 수 없어 디버깅할 때 충돌을 줄일 수 있음 //오브젝트로 만들어줬기 때문에 obj를 찍게 되면 object object가 찍힘, 따라서 문자열로 변환해 주는것 localStorage.setItem(value.item, JSON.stringify(obj)); //JavaScript 값이나 객체를 JSON 문자열로 변환 if(!state.todoItems.some(element => element.value.item == value.item)){ state.todoItems.unshift(obj); }else{ alert('이미 작성된 내용입니다.'); } }, removeOneItem(state, payload) { //console.log(payload); localStorage.removeItem(payload.todoItem.value.item); //객체일때 로컬스트리지에서 삭제하기 state.todoItems.splice(payload.index, 1); //현재 리스트에서 삭제하기 }, toggleOneItem(state, payload) { //todoItem.completed = !todoItem.completed; //이벤트로 넘어온값을 바꾸는 것을 안티패턴이라고 하며 어짜피 props로 내려준 값이 변경되므로 아래와같이 변경한것 state.todoItems[payload.index].completed = !state.todoItems[payload.index].completed; //localStorage 갱신하기 localStorage.removeItem(payload.todoItem.value.item); //localStorage는 업데이트 기능이 없으므로 삭제 후 localStorage.setItem(payload.todoItem.value.item, JSON.stringify(payload.todoItem)); //새로 추가해준다, 이때 completed 값이 바꼈으므로 바뀐값이 들어오게 된다. sortlist(state.todoItems); //리팩토링이안돼네...추후에 해결할것 ㅠㅠ }, clearAllItems(state) { localStorage.clear(); state.todoItems = []; }, }, });
-
미해결[입문편] 안드로이드를 위한 코틀린(Kotlin) 문법
코틀린은 map int 밸류값에 ++ 안 되나요?
val a = mutableMapOf(1 to 2)일 때a[1]++하려고 하면 에러 나던데방법이 있나요?
-
해결됨[코드캠프] 시작은 프리캠프
실습4 함수작성방법 예제
const sendVerificationCode = () => { const token = String(Math.floor(Math.random() * 1000000)).padStart(6, "0") document.getElementById("verification__code").innerText = token document.getElementById("verification__code").style.color = "#" + token } const sendVerificationCode = () => { document.getElementById("verification__code").innerText = String(Math.floor(Math.random() * 1000000)).padStart(6, "0") document.getElementById("verification__code").style.color = "#" + String(Math.floor(Math.random() * 1000000).padStart(6, "0")) }상단의 코드와 하단의 코드 중 저는 하단의 코드로 작성했었는데, 이 경우 랜덤한 숫자는 나오는데 색은 변화가 없었습니다. 해당 이유를 알고 싶습니다!
-
미해결대세는 쿠버네티스 (Helm편)
prometheus 차트 구성 질문
안녕하세요. 강의 잘 들었습니다:) prometheus 차트 분석 파트를 보다가 궁금한 점이 생겨 질문드립니다.강의에서의 prometheus 차트 버전에서는 kube-state-metrics를 제외한 각 모듈들을 templates/ 내에 개별적으로 디렉토리를 구분하여 sub template 처럼 구성하고 있는데, 최신 버전(v20.0.2)의 prometheus에서는 각 모듈들을 모두 개별 chart로 구성하고 있는 것 같습니다.이런 변경 사항이 이전 버전의 방법 (sub template) 이 더 이상 권장 방법이 아니라서 변경된건지, 아니면 두 가지 방법에 장단점이 있어 선택 사항인지 궁금합니다. 여러 컴포넌트가 필요한 서비스의 경우에는 어떤 방법이 맞는걸까요?(추가로 강의 내용에서, 특정 template만(ex. templates/algertmanager/) helm template 으로 확인해 볼 수 있는 방법이 있는지 궁금합니다. )
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 입문에 대하여 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하십니까, 자주하는 질문 에서 학습방법을 봤는데코드를 쭉 따라하는식 방법이 적혀있었는데, 이렇게 따라만 해도 공부가 되는게 맞을까 혹시나 하는 마음에 따로 질문을 올리게 되었습니다.따로 국비학원 수료 없이 학교 졸업하자마자 취업했는데 백엔드 스프링을 사용한다해서 선생님 강의 커리큘럼을 따라갈려고합니다. 스프링을 배우는데 자바 기본 지식이 필요하다해서 자바의 정석 유튜브를 먼저 보고, 부족하지만 최대한 자바 기본 문법개념 같은걸 숙지한 상태에서 선생님 영상 시청하고있습니다. 선생님의 이론수업이 정말로 재밌고 스프링 입문하는데 좋은걸 알겠는데 이론설명뒤에 선생님이 치시는 코드가 무엇을 의미 해석이 안되고, 코드형식(?) 코드 구조 (문법?) 이게 정말 와닿지 않는 상태이다보니 ,영상을 보고 타이핑하니깐 공부 하는 느낌이 안들어서 걱정이 됩니다. 프로그래밍 능력, 자바기초실력이 부족해서 이런 느낌을 받는 거 같은데 회사 실무에 도움이 될까 걱정이 됩니다.처음 취직한 회사라서 최대한 적응하고 회사에 도움이 되는 개발자가 되어보고싶은데 어떠한 방식으로 공부를 해야할 지 조언이 가능할까요?(혹시 책이나 강의같은걸 추천해주시면 감사하겠습니다.)