묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
다음과 같이 풀었는데 괜찮은가요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키<html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function solution(arr){ let answer=0 ; let max =0; for(let i=0; i<arr.length; i++){ if(arr[i]>max){ max=arr[i] answer++ } } return answer; } let arr=[130, 135, 148, 140, 145, 150, 150, 153]; console.log(solution(arr)); </script> </body> </html>며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨홍정모의 따라하며 배우는 C언어
11.2강 19:43 질문이 있습니다.
공부한 내용을 테스트해보려고 다음 코드를 작성했습니다.#include <stdio.h> #include <stdlib.h> int var_global_initialized = 1; int var_global_uninitialized; void func_test(); int main(void) { // 값이 저장되는 메모리 영역과 그 주소 // Code 영역 printf("%llu [Code]\n", (unsigned long long)"I am a String."); // Data 영역 printf("%llu [Data]\n", (unsigned long long)&var_global_initialized); // BSS 영역 printf("%llu [BSS]\n", (unsigned long long)&var_global_uninitialized); // Heap 영역 char* var_dynamic = (char*)malloc(sizeof(char) * 100); printf("%llu [Heap]\n", (unsigned long long)var_dynamic); // Stack 영역 func_test(); return 0; } void func_test() { int var_local = 0; printf("%llu [Stack]\n", (unsigned long long)&var_local); }; 메모리 영역 별 간격이 너무 작게 출력되는데 올바르게 작성한게 맞을까요..?? 참조온라인 컴파일러 링크문자열 리터럴이 저장되는 메모리 영역 링크메모리 영역별 예제 코드 링크
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의 자료 부탁드립니다!
안녕하세요! 잘 듣고 있습니다:)강의 자료 부탁드릴게요maria9513@naver.com
-
미해결Next + React Query로 SNS 서비스 만들기
/login 라우팅시 발생하는 컴포넌트 업데이트 오류
Warning: Cannot update a component (`Router`) while rendering a different component (`RedirectLoginPage`). To locate the bad setState() call inside `RedirectLoginPage`, follow the stack trace as described in https://reactjs.org/link/setstate-in-render at RedirectLoginPage (webpack-internal:///(app-pages-browser)/./src/app/(beforeLogin)/login/page.tsx:15:78) at StaticGenerationSearchParamsBailoutProvider (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js:15:11) at InnerLayoutRouter (webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js:240:11)로그인 버튼 클릭시 '/login' 이동하면 이런 Warning 이 발생하는데 빌드시에도 Error occurred prerendering page "/login". Read more: https://nextjs.org/docs/messages/prerender-error ReferenceError: location is not defined위 같은 에러가 발생합니다. location을 사용하는 부분도 없고, useRouter도 'next/navigation' 에 있는 것을 사용중입니다. 해결법으로는 useEffect로 감싸주는 법이 있어 useEffect((router.replace(path)) => []) 이런방식으로 해봤는데 오류는 해결되네요.하지만 오류 내용대로 해석해보면 렌더링 도중 set을 통한 상태변화를 하지 않는데 오류가 나는 이유는 뭔가요? return 으로 Main 컴포넌트를 그려주어야하는데 replace시 LoginModal의 컴포넌트를 그려주어야해서 렌더링해야할 컴포넌트가 겹쳐서 발생하는 문제인가요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_Button 클론이 무한생성
UI_Button 클론이 무한생성됩니다. public class Test : MonoBehaviour { GameObject er; void Update() { if (Input.GetMouseButtonDown(0)) { Managers.UI.ShowPopupUI<UI_Button>(); } } }아래 코드로 문제가 있어서 화면을 클릭했을 때만 팝업이 뜨도록 위의 코드로 Test 스크립트를 일부 바꿔 봤습니다.그러고나서 보니까public static UIManager UI{get{return instance._ui;}} 이 지점에서 계속 다시 Test 파일의if (Input.GetMouseButtonDown(0)) { Managers.UI.ShowPopupUI<UI_Button>(); }이 부분으로 가는 것 같습니다. 늘어나는 갯수로 처음엔 한번 클릭했을 때는 한번으로 잘 늘어나는데 그 다음엔 2개가 생기고 그 다음엔 5개..? 규칙을 알 수 없게 늘어납니다저 요즘 질문 너무 많이하죠..ㅜㅜ 그치만 미워하지 말아주세요 다 기본 3시간은 고민고민하며 노려보다가 보내는거긴해유..하핳..using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour { GameObject er ; void Start() { Managers.UI.ShowPopupUI<UI_Button>(); } void Update() { } } using System.Collections; using System.Collections.Generic; using UnityEngine; public class ResourceManager { public T Load<T>(string path) where T:Object { return Resources.Load<T>(path); } public GameObject Instantiate(string path, Transform parent = null) { GameObject prefab = Load<GameObject>($"Prefabs/{path}"); if (prefab == null) { Debug.Log($"Failed to load prefab : {path}"); return null; } return Object.Instantiate(prefab, parent);//Object붙이는 이유는 리소스메니저에 있는 Instantiate를 또 호출하려고 할까봐. } public void Destroy(GameObject go) { if(go == null) return; Object.Destroy(go); } } using System.Collections; using System.Collections.Generic; using UnityEngine; public class Managers : MonoBehaviour { static Managers s_Instance; //유일성이 보장된다 static Managers instance { get { Init(); return s_Instance; } } // 유일한 매니저를 갖고온다 ResourceManager _resource = new ResourceManager(); UIManager _ui = new UIManager(); public static UIManager UI{get{return instance._ui;}} public static ResourceManager Resource{get{return instance._resource;}} // Start is called before the first frame update void Start() { Init(); } // Update is called once per frame void Update() { } static void Init() { if (s_Instance == null) { GameObject go = GameObject.Find("@Managers"); if (go == null) { go = new GameObject { name = "@Managers" }; go.AddComponent<Managers>(); } DontDestroyOnLoad(go); s_Instance = go.GetComponent<Managers>(); } } }using System.Collections; using System.Collections.Generic; using UnityEngine; public class UIManager { int _order = 0; //팝업 목록을 들고있어야함. 스택 구조으로 관리하기 가장 마지막에 띄운 팝업이 가장 먼저 삭제돼야하니까. Stack<UI_Popup> _popupStack = new Stack<UI_Popup>(); public T ShowPopupUI<T>(string name = null) where T : UI_Popup//T에는 UI버튼이라는 스크립트를 건네고 name에는 팝업프리펩을 건네줄거임. { if(string.IsNullOrEmpty(name))//이름이 비어있으면 T타입의 이름과 똑같은걸로 넣겠다. name = typeof(T).Name; GameObject go = Managers.Resource.Instantiate($"UI/Popup/{name}"); T popup = Util.GetOrAddComponent<T>(go); _popupStack.Push(popup); return popup; } public void ClosePopupUI() { if (_popupStack.Count == 0) //stack을 건드릴 떈 항상 카운트를 체크하는걸 습관화하기 return; UI_Popup popup = _popupStack.Pop(); Managers.Resource.Destroy(popup.gameObject); popup = null; _order--; } } using System.Collections; using System.Collections.Generic; using UnityEngine; public class Util { public static T GetOrAddComponent<T>(GameObject go) where T : UnityEngine.Component { T component = go.GetComponent<T>(); if (component == null) component = go.AddComponent<T>(); return component; } public static GameObject FindChild(GameObject go, string name = null, bool recursive = false) { Transform transform = FindChild<Transform>(go, name, recursive);//<Transform>을 사용하면 FindChild 메서드가 호출될 때 해당 메서드는 Transform 타입의 자식을 찾도록 약속됩니다. 이는 제네릭을 사용하여 메서드를 특정 타입에 제한하는 방법 중 하나입니다. if (transform == null) return null; return transform.gameObject; } public static T FindChild<T>(GameObject go, string name = null, bool recursive = false) where T : UnityEngine.Object { if (go == null) return null; if (recursive == false) { for (int i = 0; i < go.transform.childCount; i++) { Transform childTransform = go.transform.GetChild(i); if (string.IsNullOrEmpty(name) || childTransform.name == name) { T component = childTransform.GetComponent<T>(); if (component != null) return component; } } } else { foreach (T component in go.GetComponentsInChildren<T>(true)) { if (string.IsNullOrEmpty(name) || component.name == name) return component; } } return null; } }
-
해결됨클론코딩에서 알려주지 않는 것들 (보안, DDD, 마이크로서비스) 2편
다음 강의는 언제 나오나요?
학습 내용과는 관련없는 질문이지만...이제 12월이 거의 다 지나가는데 다음 강의는 언제쯤 나오나요?
-
해결됨실전! GitHub Actions으로 CI/CD 시작하기
PR merge 시 test job 미실행 관련 문의
안녕하세요 이상원님 수강생입니다. 다른 분들은 이해하셨겠지만, Job 미실행 관련 의문이 생겨 문의드립니다.'시나리오1 워크플로우 구성하기 1,2'의 흐름과 코드를 보면 test,image-build,deploy job이 있습니다.이해한 내용으로는 test job은 말그대로 테스트를 위한 job(코드에 문제가 없는지 판단하는 job), image-build는 그 코드를 말아서 ECR로 올리는 과정 deploy는 실제 환경에 올리는 배포 과정으로 이해했습니다. 이때, test job과 image build job을 같은 job에 두고 같이 실행하면 안되는 지에 대해서 의문이 생겨 문의드립니다. 감사합니다.
-
미해결Flutter 테스트 기초
GeneratedMocks로 생성한 코드의 위치를 변경하고싶어요
GeneratedMocks로 생성한 코드들이 많아지면 복잡할 것 같아서 생성되는 파일의 위치를 자동으로 변경해주고 싶은데요,예를들면 현재 코드가 있는 디렉토리에 generated라는 디렉토리 안에다가 생성된 파일을 저장해주고싶어요.어떠한 설정을 해야할까요?
-
미해결김영한의 실전 자바 - 기본편
3. 객체 지향 프로그래밍 질문
package oop1.ex; public class Ex1Rectangle { int height; int width; int area; int perimeter; void calculateArea() { area = width * height; System.out.println("넓이: " + area); } void calculatePerimeter() { perimeter = 2 * (width + height); System.out.println("둘레: " + perimeter); } void isSquare() { boolean isSquare = width == height; System.out.println("정사각형 여부: "+ isSquare); } }package oop1.ex; public class Ex1RectangleObjectMain { public static void main(String[] args) { Ex1Rectangle rectangle = new Ex1Rectangle(); rectangle.height = 8; rectangle.width = 5; rectangle.calculateArea(); rectangle.calculatePerimeter(); rectangle.isSquare(); } }[질문 내용]3. 객체지향 프로그래밍 문제 1번의 제공된 정답에서는System.out.println으로 출력하는 부분을 main메서드 안에 남겨두었고,제가 문제를 푸는 과정에서는객체 클래스에 int area와 int perimeter를 선언한 후, 각 메서드를 int와 boolean값을 반환하지 않는 void메서드로 변경하고, 계산된 값을 출력하는 부분을 각 메서드 안에 넣어놓고,main메서드에서는 int width와 int height의 값을 지정하고 객체 클래스의 메서드들을 호출만 했고 같은 결과가 나오는데,둘 중 어느 것이 효율적이고 여러 방면에서 좋은 코드인가요??
-
미해결실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌
일반적으로 로그인 상태 판정을 쿠키로 하나요?
안녕하세요, 강의 잘 듣고 있습니다.본 영상에서는 memberId가 쿠키에 존재하면 로그인이 된 상태라고 간주하는데요실무에서도 이와 같은 방식으로 로그인 여부를 판정하는지 궁금합니다. 만약 쿠키를 사용하여 로그인 여부를 판정하게 된다면사용자 측에서 쿠키를 조작할 수 있기 때문에로그인이 되어 있지 않더라도 loginOk 페이지에 접근할 수 있을 것으로 보입니다. 간단하게 로그인을 성공했는지 여부만 따질때는본 예제처럼 쿠키 값을 이용하여 판별하는 경우도 많은지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
코드 구현력
안녕하세요 영한님. 강의를 보면서 한층 더 발전한 것 같습니다.실제 문제2를 풀면서 변하는 부분은 결제 종류가 추가되는 부분이고 나머지는 수정되지 않는 것을 보면서이게 클린코드인가..? 이런 생각을 했습니다. 이런 식의 코드 구현력을 공부하려면 디자인 패턴을 공부해야 할까요 ? 한마디로 클린코드를 짜기 위해서 디자인 패턴에 대한 내용을 공부하면 어느정도 코드가 보이는 걸까요 ?
-
미해결스프링 시큐리티 OAuth2
Resouce Server에서 JWT 토큰 검증 후 로직추가
Resource Server 에서 JWT 토큰 검증 후 access token 에서 claim 을 추출하여 인증된 사용자의 추가 정보를 DB에 조회 후 SecurityContextHolder 에 저장하는 로직을 추가 하려고 합니다. Resource Server 에서 커스터 마이징이 가능한게 AuthenticationManager와 JwtAuthenticationConverter 등등인데 JwtAuthenticationConverter 은 적합하지 않을거 같아 AuthenticationManager에 JwtAuthenticationProvider 커스터 구현체를 등록해서 진행해야 할거 같은데 더 좋은 방벙이 있을까요?
-
미해결[기초스피치] 14년차 아나운서에게 배우는 말 잘하는 방법!
복식호흡
안녕하세요복식호흡 말은 많이 들어 봤는데 실제 어떤 것인지 잘 감이 안옵니다.그동안 흉부로만 쉼을셔서 그런지 숨을 들어마시면 가슴은 부불어 오르고 배는 들어가는 느낌입니다. 그럼 복식호흡은 이걸 반대로 해야 하는 건가요?인위적으로 배가 나오게 힘을주는게 맞는 연습방법인지요?
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
Cannot read properties of null (reading 'useRef') 오류 질문
강의에서 진행 된 요소 추가 전까진 정상 작동 되는 것 확인 했습니다. Menu 추가 후 아래와 같은 오류가 출력 됩니다. Warning: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:1. You might have mismatching versions of React and the renderer (such as React DOM)2. You might be breaking the Rules of Hooks3. You might have more than one copy of React in the same appSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem. TypeError: Cannot read properties of null (reading 'useRef') at useRef (C:\Users\sion\node_modules\react\cjs\react.development.js:1630:21) at Object.render (C:\Users\sion\node_modules\antd\lib\menu\index.js:19:37) at ReactDOMServerRenderer.render (C:\Users\sion\Documents\prepare\front\node_modules\react-dom\cjs\react-dom-server.node.development.js:3535:44) at ReactDOMServerRenderer.read (C:\Users\sion\Documents\prepare\front\node_modules\react-dom\cjs\react-dom-server.node.development.js:3373:29) at renderToString (C:\Users\sion\Documents\prepare\front\node_modules\react-dom\cjs\react-dom-server.node.development.js:3988:27) at Object.renderPage (C:\Users\sion\Documents\prepare\front\node_modules\next\dist\next-server\server\render.js:50:851) at Document.getInitialProps (C:\Users\sion\Documents\prepare\front\.next\server\pages\_document.js:264:19) at loadGetInitialProps (C:\Users\sion\Documents\prepare\front\node_modules\next\dist\next-server\lib\utils.js:5:101) at renderToHTML (C:\Users\sion\Documents\prepare\front\node_modules\next\dist\next-server\server\render.js:50:1142) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) 터미널에 찍힌 로그입니다.react/react dom 버전은 동일함을 확인했고 16.14.0 버전 사용 중입니다. 구글링 중 react hook form을 인스톨 하라는 검색 결과가 있어 해당 패키지 설치 했습니다. 버전은 7.49.2 사용 중 입니다. 로컬에서 실행 된 화면입니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
expected 옵션이 적용되지 않아 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. junit4 적용된걸 확인했는데도 test에서 적용이 안돼 질문드립니다 orderServiceTest 상품주문_재고수량초과 @TEST에서 expeced 오류로 뜹니다. @Test(expeced = NotEnoughStockException.class); public void 상품주문_재고수량초과() throws Exception{ //given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); int orderCount =11; //when //Assertions.assertThatThrownBy(()->orderService.order(member.getId(), createBook().getId(). orderCount)) // .isInstanceOf(NotEnoughStockException.class); orderService.order(member.getId(), item.getId(), orderCount); //then fail("재고 수량 부족 예외가 발생해야한다"); build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation("com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6") testImplementation 'junit:junit:4.13.1' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } }
-
미해결
docker image 공유하는 방법
안녕하세요 docker 관련 공부를 하는 중에 질문이 생겨서 글 남깁니다 우선 A서버, B서버가 있습니다.B서버에서 따로 image pull 없이 docker의 기본 경로를 A서버를 바라보게 하고A서버의 docker image를 B서버에서도 run이 가능하도록 설정이 가능할까요?그리고 A서버의 image를 B 또는 C에서 commit하고 다른 곳에서 다시 image를 run해도 그 이미지가 그대로 commit 된 채로 남아 있는 것이 가능할까요? 이해를 돕고자 그림 첨부합니다.설정하는 방법 중 tar, local repository 사용 없이 하고자 합니다. /etc/docker/daemon.json 파일도 수정해보면서 시도해봤는데 실패하고 있어제가 모르는 방법이 있는건지 아니면 이렇게 설정을 하는 것이 불가능한 것인지 모르겠네요
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
My-Second-Project 빌드 에러
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요.My-Second-Project 빌드를 하면 아래와 같은 Error 가 발생합니다....[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/3.2.0/maven-clean-plugin-3.2.0.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.993 s [INFO] Finished at: 2023-12-22T06:19:54Z [INFO] ------------------------------------------------------------------------ [ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:3.2.0 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:3.2.0: The following artifacts could not be resolved: org.apache.maven.plugins:maven-clean-plugin:pom:3.2.0 (absent): Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:3.2.0 from/to central (https://repo.maven.apache.org/maven2): repo.maven.apache.org: Name or service not known: Unknown host repo.maven.apache.org: Name or service not known -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginResolutionException [JENKINS] Archiving /var/jenkins_home/workspace/My-Second-Project/pom.xml to com.njonecompany.web/web/1.0/web-1.0.pom Finished: FAILURE해결 할 수 있는 방법이 있을까요 ?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
영속쿠키: 로그아웃 vs 브라우저 닫기
안녕하세요, 김영한 강사님이해한 내용이 맞는지 확인부탁드립니다 ㅎㅎㅎ 만약에 만료날짜를 대충 1년뒤 2024년 12/22 이라고 정해놓은 영속쿠키를 설정한다면 브라우저를 꺼도 1년동안 자동로그인이 된 상태로 유지되는 원리인가요? 그런데 영속쿠키를 설정해놓았더라도 브라우저를 끄는것이 아닌 로그아웃을 누르게 되면 서버측으로 "로그아웃 요청"을 직접적으로 한것이라 서버측에서는 쿠키 max-age 같은 설정을 0으로 초기화하여 로그인이 풀릴수 있는것이죠? 즉, 영속쿠키는 아무리 만료날짜까지 쿠키가 삭제되지 않는다해도 그 날짜 사이에 로그아웃을 하면 로그인이 풀리는것이죠?
-
미해결스프링 핵심 원리 - 기본편
학습 순서 및 방법에 대해 질문있습니다.
이해가 되지 않아도 일단 먼저 듣고 복습을 하는 방식으로 학습을 하고 있습니다. 1.강의 들으며 손코딩 및 필기(이해 안돼도 진도빼는 위주로)2.(강의 전체 한바퀴 돈 후)강의자료 보며 복습3.혼자 해보다가 막히면 강의자료 참고 이런 식으로 학습중인데영한님께서 올려주신 최신 로드맵 영상에서 '실전! 스프링 부트와 JPA 활용 1' 은 복습할 것을 권장해주셨는데문제는 그냥 순서대로 들으라고 하신 강의도1,2 단계까지 해도 이해가 안돼서 3까지 하고있는 중입니다.. 지금처럼 진도 나가는 것이 더디더라도 한 강의(각 챕터 말고 통째로 하나의 강의)를 제대로 이해하고 다음 강의로 넘어가는 식으로 해야할지아니면 이해가 되지 않아도 로드맵의 진도 나가는 것을 우선으로 하는 것이 좋을지 고민입니다
-
미해결스프링 핵심 원리 - 기본편
학습 방법에 관해서 질문드립니다.
영한님 커리큘럼을 타고 있는데 효율적인 학습 방법이 있을까요? 현재 공부하고 있는 방법은 강의를 듣고 난 후 자료를 보면서 복습하고, 모르는 것이 있으면 질문하고 있습니다.강의를 듣거나 복습하는 과정에서 이해는 되는데, 안보고 코드를 치면서 구현을 한다고 하면 못할거 같다는 생각이 들더라고요. 영한님이 설명해주시는 강의 흐름은 이해가 되는데, 회원, 서비스, 주문 도메인 구현 과정이나 그 안에 어떤 메소드를 만들어야 하는지, 또 어떤 자료형을 사용할지에 대한 실력이 많이 부족한거 같습니다. 이 부분들은 강의를 복습한다고 해서 실력이 늘거같지도 않고, 시간이 많이 소요될거 같아서요. 혼자 프로젝트를 진행하면서 많이 써보면 되지 않을까 싶긴한데 이제 기본강의를 듣는 입장이라.. 아직은 부족해보입니다. 어떤식으로 공부하는게 좋을지 조언을 주셨으면 좋겠습니다. 추가로, 혼자 프로젝트를 하기 위해서는 로드맵 어느 강의까지 봐야 할까요? 현재 가지고 있는 지식은 자바 기초문법+스프링 입문+ 스프링 기초강의1 입니다.