public class _Quiz_05 { public static void main(String[] args) { int size[] = new int[10]; for (int i = 0; i < size.length; i++) { size[i] = 250 + (5 * i); System.out.println("사이즈 " + size[i] + " (재고있음)"); } } } 위 코드가 제가 작성한 코드이고, 아래가 선생님께서 작성하신 코드입니다. public class _Quiz_05_해설 { public static void main(String[] args) { int[] sizeArray = new int[10]; for (int i = 0; i < sizeArray.length; i++) { sizeArray[i] = 250 + (5 * i); } for (int size : sizeArray) { System.out.println("사이즈 " + size + " (재고 있음)"); } } } 배열에 값을 입력해주는 반복문과 배열을 출력하는 반복문을 따로 설정하신 점에 대해 궁금한 점이 있습니다. 수업 내용에 대한 복습과 활용의 다양성을 보여주기 위한 것인지, 실제 활용이나 실무에 있어 효율성이나 활용도가 더 높은 것인지 궁금합니다 !
안녕하세요. 강의를 수강하며 따로 게시판을 만들어보는중에 문제가 발생하여 질문드립니다. 다름이 아니라 테스트 코드 작성중에 em.delete()를 사용하는 부분에서 궁금증이 생겨 질문 남깁니다. 아래는 테스트 코드가 작성 된 부분입니다. 회원을 만들고 게시글을 작성하고 이 게시글을 삭제하도록 하였습니다. PostService의 deletePost, PostRepository의 delete를 사용하여 게시글의 id를 입력받아 삭제하는 구조로 작성하였습니다. 여기서 테스트를 실행 시키면 테스트가 실패합니다. 기대값은 0인데 실제로 1이되어 있다고 나옵니다. 로그를 통해 확인해보면 delete 쿼리가 작동하지 않았습니다. 하지만 테스트 클래스의 @SpringBootTest아래의 @Transactional을 삭제하고 실행 시키면 delete 쿼리가 작동하고 테스트가 정상 동작합니다. @Transactional을 사용하면서 delete문이 제대로 작동하도록 할 수 있을까요? 웹 서핑을 하며 테스트 해본 것입니다. 1. em.flush() 2. @Rollback(value=false)
안녕하세요. 강의 정말 재밌게 보고 있습니다. 딱 두 가지 몇번을 돌려봐도 궁금증이 풀리지 않아 문의드립니다. (* Page Router 를 사용하는 Next 14버전 기준) 1) ISR 질문 ISR은 기본적으로 SSR의 형태라고 생각 되는데(빌드 타임에 페이지를 생성해놓는것이..) 일정 시간을 두고 페이지를 재 생성 한다는 게 이해가 안 갑니다.. 이미 빌드를 마치고 서버에 배포를 했다고 가정하고(제가 원래 백엔드 개발자라..) 그 후에 페이지가 서버에서 재 생성되면 빌드가 다시 한번 이뤄지는건가요..? (빌드가 계속해서 이뤄질수는 없을텐데..) 아니면 처음에는 미리 생성 된 페이지를 전달해주고 이후로는 SSR 형태로 페이지가 생성되는걸까요? 데이터가 계속 최신으로 변경 되니 전체 페이지가 SSG일수는 없을거고(처음 요청에 응답한 페이지만 미리 생성된 페이지일텐데) 초기 SSG에 변경된 데이터만 SSR형식으로 만들어지는 건지.. 상식적으로 리빌드가 계속 될일은 없는데 페이지가 새로 생성이 된다고하니 빌드를 안 했는데 페이지가 생성될수 있나 싶고..제가 너무 틀에 갖혀서.. 2) 동적 페이지 + SSG 방식으로 렌더링하기 이것도 비슷한 결의 질문인 것 같은데요 fallback 옵션을 true로 했을 때 서버에서 필요한 작업을 마치면, 그 이후로는 캐싱이 되어서 없던 요청에 대한 페이지가 반쪽짜리 SSG에서 완전한 SSG로 작동하는건지 궁금합니다. 그리고 만약 캐싱이 되는게 맞다면 서버에서 캐싱이 되는걸까요? 추운 날씨에 감기조심하세요 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 해당 강의 내용중에 @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "hello-template"; } 이와같이 HelloController에 새로운 메서드를 추가하고 @RequestParam 어노테이션을 사용해서 요청 url에서 ?를 사용해서 파라미터를 받게 되는데요. 1)@RequestParam에 command+B를 이용해서 인텔리제이로 소스코드를 보면, RequestParam이 인터페이스로 되어있는데 그렇다면 구현체는 어디에 있다고 보면 될까요? 구현체를 확인할 수 있는 건가요? 2)HelloController에서 @RequestParam("name") 이렇게만 코드를 입력했을 때, RequestParam 인터페이스에서 String name() 값이 "name"이 되었다고 보면 되는 걸까요? 그렇다면 그걸 어떻게 알 수 있는 건가요? 왜냐면 RequestParam 인터페이스에는 모든 메서드가 default값을 가지고 있더라구요. 3)이렇게 @RequestParam을 사용한 파라미터가 "쿼리 파라미터"이고 ?을 사용한다고 생각하면 될까요? 이거말고 path 파라미터 이렇게 2가지라고 알고 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 소스코드 메뉴얼??이라는곳에서 복사붙여넣기 하시는거같은데 저는 강의 옆부분에 구름모양도 없는데 방법이 있을까요??
해당 강좌에서 String str1 = "java"로 선언한 객체와 String str2 = new String("java")로 선언한 객체는, 다른 메모리 공간에 저장된다고 말씀하셨는데요. hashCode()로 확인한 결과 동일한 값이 출력되어 문의드립니다. String str1 = "java"; String str2 = "java"; String str3 = new String("java"); String str4 = new String("java"); 위 코드처럼 선언한 후 hashCode()로 출력하면 str1 ~ str4까지 동일한 값이 출력됩니다. System.out.println("str1 : str2 -> " + str1.hashCode() + " : " + str2.hashCode()); System.out.println("str3 : str4 -> " + str3.hashCode() + " : " + str4.hashCode()); 헌데 동일성 확인을 하면 str1과 str2 는 true 이고, str3과 str4는 false 가 출력되고요. 물론 str1과 str3도 false 가 출력됩니다. 이걸 어떻게 해석해야 하는지 문의 드립니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 설명해주신 예제를 보니 메모리 스트림이나 콘솔 스트림에는 close()를 사용하지 않네요. ByteArrayStream나 PrintStream 같은 경우에는 메모리를 대상으로 하는 스트림이라 GC 대상이 되어서 따로 close() 메서드를 호출하지 않아도 되는 건가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 안녕하세요? 환경 설정 중 org.springframework.boot:spring-boot-starter-aop 폴더가 없어 아래 코드를 build.gradle에 추가했으나 수업에서 다뤄주셨던 의존관계처럼 업데이트되지 않고 있습니다. 어떻게 해결해야 할까요? implementation 'org.springframework.boot:spring-boot-starter-aop' 강의 내용에서 나오는 이 부분과 같지 않습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 저 뿐만 아니라 많은 분들이 gradlew 빌드 시 환경 변수 관련 에러가 발생하여 삽질하다가 해결하여 공유드립니다. 저의 경우 gitBash로 ./gradlew 명령어를 입력했을 때 환경 변수 설정 관련 에러가 발생했는데 아래와 같이 해결했습니다. 해결 과정 환경 변수 설정에서 JAVA_HOME 변수의 값과 Path에 추가해야 하는 %JAVA_HOME%\bin 확인했으나 정상적으로 설정되어 있는 상태 예전에 사용한 zulu jdk과 충돌이 의심되어 모두 제거 했으나 해결되지 않음 InteliJ - File - Project Structure - Platform Settings - SDKs 목록에서 직접 설치한 Oracle JDK만 남기고 zulu jdk 등 제거 후 적용했으나 해결되지 않음 InteliJ - File - Settings - Build, Execution, Deployment - Build Tools - Gradle에서 Gradle JVM을 직접 설치한 Java 버전으로 설정했으나 해결되지 않음 gitBash를 열고 홈 디렉토리에서 .bashrc에 접근하여 환경 변수를 아래와 같이 수정 및 적용하여 문제 해결 export JAVA_HOME="/c/Program Files/Java/jdk-17" export PATH="$JAVA_HOME/bin:$PATH" 결론 내 OS(Windows)의 시스템 환경 변수에서는 JAVA_HOME과 PATH 환경 변수를 정상적으로 설정했으나 gitBash는 Windows의 시스템 환경 변수와는 별개로 자체적인 환경 변수를 관리하기 때문에 gitBash 내부에서 JAVA_HOME과 PATH 환경 변수를 별도로 설정해줘야 했음 저와 같은 문제로 헤매시는 분이 계시다면 도움이 됐으면 좋겠습니다. 혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다!
servlet-context.xml, root-context.xml 아무리 쳐다봐도 web.xml에서 servlet-context.xml 경로 잘못 불러오면(제 경우에는 이랬음) controller가 service클래스를 의존성 주입을 못 해주더라고요. web.xml의 설정이 어떤 영향을 미치는지도 잘 학습해두면 좋습니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요. 강사님께서 for 문에서 i < studentCount; 를 사용하셨는데, studentCount 대신에 scores.length를 사용해도 같은 답이 나옵니다. 마찬가지로 j < 3; 에서 3 대신에 scores[i].length 나 subjects.length를 사용해도 같은 답이 나옵니다. 혹시 코드가 똑같이 실행되더라도 studentCount 를 사용하시는 이유가 있는건가요? 어떤 것을 사용해야 가장 좋은지를 어떻게 판단할 수 있는지 알려주시면 감사하겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 어떤 걸로 강의하시는지는 모르겠는데 강의하시는 자료 화면을 같이 띄워 놓고 수강하고 싶어서요. 혹시 어느 사이트에 들어가야 확인 할 수 있나요?
안녕하세요, 아래와 같은 방식으로 dynamic import 적용하려는데 SEO에 부정적인 영향이 가는지 궁금해서 질문드립니다. 조금 찾아보니 Dynamic Import로 모두 제외해 버렸기 때문에 Google Bot 등의 크롤러가 웹 페이지에 방문했을 때 접속한 document 페이지에 크롤링할만한 정보가 없게 될 것이라는 이야기가 있어서 사실인지 궁금합니다. 사실이라면 dynamic import의 해당 단점을 보완할 수 있는 방법으로 ssr:true 설정 이외에 무엇이 있는지 궁금합니다 import dynamic from "next/dynamic"; const Zerocho = dynamic(() => import("features/Zero/components/templates/Zerocho"), { ssr: false }); export default function Hi() { const seo = getPageSeo("hihi"); return ( <> <NextSeo {...seo} /> <SchemaScript schema={schema} /> <Head> <meta name="hello" content={seo.hh} /> </Head> <Title>{seo.title}</Title> <Body> <Zerocho /> </Body> </> ); } export const getServerSideProps = async (context) => { return { props: { mode: true, modeCont: false, ...(await serverSideTranslations(context.gggg, ["hihi", "dodo"])), }, }; };
if(타이머 === "아직실행안함") 상태에서 스크롤퍼센트가 >= 0.7 이면 타이머 값을 다른 값으로 변경해주어야 타이머 = setTimeout(()=>{타이머="아직실행안함"},1000) 이 코드로 스로틀링 되는게 아닌가요? 영상에서는 타이머 값을 다른 값으로 변경해주지 않는데 이러면 타이머 = setTimeout(()=>{타이머="아직실행안함"},1000) 이 코드를 추가하기 전과 같지 않나요?
[질문 내용] 안녕하세요, 영상에서 영한님이 "메서드를 전달"하라고 하시기에 다음과 같이 풀어봤는데, 영한님 풀이와는 접근 방법이 조금 다른 것 같아 문의드립니다. 제가 봤을 때는 영한님 풀이의 경우 "메서드를 전달" 한다는 느낌보다는 "메서드를 구현해놓은 인스턴스를 전달" 한다는 느낌으로 받아들여져서 질문드립니다. 다음과 같이 풀이해도 익명 클래스의 목적에 부합하는 풀이일까요? 추가로 강의록에 "그런데 지금까지 학습한 내용으로는 메서드를 전달할 수 있는 방법이 없다." 라고 언급되었는데 이는 결국 "(아직 학습하지 않았지만) 메서드를 전달할 수 있는 방법이 존재한다." 라고 해석되고, 이에 해당하는 방법이 아래 풀이와 같은 방법인지 궁금합니다. // my solution-2 package nested.anonymous.ex; import nested.local.Process; import java.util.Random; public class Ex1RefMainSOL2 { public void process(Process process) { System.out.println("프로그램 시작"); process.run(); System.out.println("프로그램 종료"); } public static void main(String[] args) { Ex1RefMainSOL2 main = new Ex1RefMainSOL2(); main.process(new Process() { int randomValue = new Random().nextInt(6) + 1; @Override public void run() { System.out.println("주사위 = " + randomValue); } }); main.process(new Process() { @Override public void run() { for (int i = 1; i <= 3; i++) { System.out.println("i = " + i); } } }); } }
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] (자바 기본 - NullPointerException강의 입니다) 제목 그대로 NullMain3.java파일에서 System.out.println(" bigData.data .value=" + bigData.data .value);코드를 보면요. value라는 필드가 없는데 0이 출력되는 이유가 궁금합니다!
안녕하세요, 비슷한 유형의 질문이 이미 있어 저도 글을 남겨봅니다. 미리 구매해둔 후 이제 듣기 시작하려 하니, 새로운 교육과정으로 리뉴얼 되었다고 하는데, 시기를 놓쳐 쿠폰 혜택을 받지 못했습니다. 해당 강의에 기대를 많이 하고 있었는데, 리뉴얼된 버전으로 듣지 못한다는 사실이 안타까워 혹시 쿠폰을 받을 다른 방법이 없을지 문의드립니다. 감사합니다.