inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

Api 관련질문

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

@GetMapping("hello-api") @ResponseBody public Hello helloApi(@RequestParam("name") String name){ Hello hello = new Hello(); hello.setName(name); return hello; } static class Hello{ private String name; public void setName(String name) { this.name = name; } public String getName() { return name; } } 위처럼 APi사용하려는데 이렇게 한국어로 입력 시 문자가 깨지는 현상이 발생합니다 설정은 다음과 같습니다

  • java
  • spring
  • mvc
  • spring-boot
DG Y 댓글 1 좋아요 0 조회수 85

다운로드 소스코드가 계속 안됩니다 ㅠㅠ 도와주세요..

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

[질문 내용] 그냥 나오는대로 다 예 예 누르고 맞게 한 것 같은데 계속 다른 위치에 저장하라고 뜹니다 선생님 ㅠㅠ 프로젝트를 몇 번이나 삭제하고 다시 깔고 실행했는데도 다운로드 소스코드가 실행이 안됩니다 파일 다운로드 위치도 계속 바꿔봤는데 똑같이 뜹니다 이유가 뭘까요? ㅠㅠㅠ...

  • java
  • InteliJ
댓글 1 좋아요 0 조회수 388

<img /> 요소 대신 <Image /> 컴포넌트를 사용해야 하는 이유 (성능 최적화)

미해결

Next.js 시작하기

섹션 11의 이미지 성능 최적화 강의에서 Next.js의 이미지 성능 최적화에 대해 설명하실 때의 강의 코드가 <Image /> 컴포넌트가 아닌 <img /> 요소인데도 이미지 성능 최적화가 잘 되는 것을 보았습니다. 그럼 굳이 <img /> 요소 대신 <Imgae /> 컴포넌트를 사용해야 하는 이유가 있나요?

  • javascript
  • react
  • next.js
  • imgae컴포넌트
  • 성능최적화
  • lazyloading
  • 지연로딩
play _Er 댓글 2 좋아요 0 조회수 277

기본 생성자 사용자 정의 시 null

미해결

김영한의 실전 자바 - 기본편

[질문 내용] 문제 풀이 과정에서 Book 클래스에 기본 생성자를 사용자가 직접 정의해서 만들었는데, 김영한 강사님께서 값을 비워두면 안 된다고 한 말씀이 의아해서 질문 드립니다. 교육 차원으로 문제에서 null값이 아닌 빈 값으로 보여주게 하기 위해서 this("", "", 0);으로 표시한 것인지, 아니면 실무에서도 기본 생성자를 개발자가 정의할 때에도 꼭 값을 비워두면 안 된다는 것인지 궁금합니다.

  • java
  • 객체지향
soojinkimss 댓글 1 좋아요 0 조회수 147

무한 스크롤 시 화면 위치 문제

해결됨

[풀스택 완성] Supabase로 웹사이트 3개 클론하기 (Next.js 14)

무한 스크롤 구현 중에, 스크롤을 내리면 자연스럽게 다음 페이지로 이어지는 게 아니라, 한번 아래로 내려갔다가 다시 스크롤했던 위치로 돌아옵니다. 이 문제는 어떻게 해결할 수 있을까요?

  • firebase
  • next.js
  • tailwindcss
  • react-query
  • supabase
댓글 3 좋아요 0 조회수 375

this 이해가 잘 안돼요..

미해결

김영한의 실전 자바 - 기본편

[질문 내용] 김영한 강사님께서는 this가 예를 들어 nameField에서 먼저 지역변수(매개변수(에서 같은 이름이 있는지 찾고 없으면 멤버 변수에서 찾는다고 애기해주셨고 자바가 자동으로 this를 해준다고도 설명해주셨는데, 자바 입문편에서 배웠을 때 자신의 클래스에 변수를 타입지정하여 선언하면 하위 메소드나 앞으로도 타입 없이 변수명만으로 생존가능한 것으로 알고있습니다. 물론 매개변수의 이름과 멤버변수 이름이 동일하면 왜 this를 써야하는지는 알겠으나, 매개변수명과 멤버변수명이 다르다면 자바가 this를 자동으로 설정하는 설명 전에 일단 멤버변수와 매개변수가 구분을 지을 수 있으니 굳이 this를 설명할 이유가 있나 싶습니다. 애초에 멤버변수를 선언을 했으니 멤버변수를 자유롭게 사용할 수 있는데 거기에 this가 없어도 된다는 내용이 아이러니 하다고 생각이 드네요. 좀 디테일하게 알려주실 수 있을까요?

  • java
  • 객체지향
soojinkimss 댓글 1 좋아요 0 조회수 224

scondTask관련 질문있습니다!

해결됨

실리콘밸리 엔지니어와 함께하는 Gradle

안녕하세요 강사님 task firstTask { println "Hello World" doFirst(){ println "First action!!" } doLast(){ println "Last action!!" } } task secondTask { doFirst(){ println "First action in secondTask" } doLast(){ println "Last action in secondTask" } } 위와 같이 task를 작성하였습니다! secondTask를 작성할 때는 Hello World를 지운 상태로 실행을 했는데도 gradle sT를 이용해서 sT를 실행하는 터미널 명령어를 사용했습니다! > Configure project : Hello World 가 터미널에 출력되는 이유를 알 수 있을까요??

  • java
  • scala
  • gradle
  • scala-3
  • compiler
hong090992 댓글 2 좋아요 0 조회수 189

HashCode override

미해결

김영한의 실전 자바 - 중급 2편

김영한 선생님의 자료의 경우에는 매개변수가 Object value 였는데 만약 제네릭을 K key 라고 할때에도 return Math.abs(Objects.hashCode()) 라고 하는게 맞나요 ? 아니면 Math.abs(key.hashCode()) 가 맞나요? gpt 말로는 Objects 로 해야 NullPointerException 을 방지할 수 있다고 하는데 왜 그런건가요 ?

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
ghuhan18 댓글 1 좋아요 0 조회수 209

gradle 관리 방법에대한 의견이 궁금해 문의남깁니다!

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요! 코프링 대신에 자프링부터 들렀습니다 ㅎㅎ 기존에 maven만 사용해봐서 신규 플젝도 maven으로 생성했는데.. gradle을 이참에 배워보려고 합니다!! gradle이 groovy랑 kotlin 2가지 언어로 나뉜 것 같은데 영상에서 그루비를 선택하신 이유가 있을까요? 혹시 기존 프로젝트도 그루비를 사용하시는거라면 이유가 궁금합니다! 많은 부분을 사용하는건 아니더라도 추후 코프링을 사용한다면 그레이들또한 코틀린으로 관리하는게 더 편하지 않을까 싶어서요!

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
김영욱 댓글 1 좋아요 1 조회수 141

질문) 실무 재고처리 에서 비관적 vs 낙관적 lock

미해결

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

안녕하세요 강사님 재밌게 잘 보고 있습니다. 실무에서 주문 수 증가와 같은 단순 연산의 경우는 낙관적락 이 일반적인데, 인벤토리 ( 재고처리 ) 와 같은 도메인에서도 낙관적 락이 일반적인지가 궁금하여 문의드립니다. 재고는 동시에 여러 사용자가 접근하여 변경할 가능성이 있기 때문에, 충돌이 더 빈번하게 발생할 수 있을것 같아 왠지 강의내용으로만 보아서는 비관적 락을 사용할것 같다는 생각이 들긴하지만 ... 통상적으로 사용하는 락이 궁금하여 질문드립니다 감사합니다

  • java
  • 객체지향
  • 동시성
  • multithread
  • thread
제트브레인 댓글 1 좋아요 0 조회수 303

Shuttle에 많이 태우기 위해 코드를 수정한 후 생긴 사이드 이팩트

미해결

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] ``` package generic.test.ex3; import generic.test.ex3.unit.BioUnit; public class Shuttle<T extends BioUnit> { private BioUnit[] units; private int unitCount; public Shuttle() { units = new BioUnit[10]; } public void in(T unit) { units[unitCount++] = unit; } public T out() { return (T) units[0]; } public void showInfo() { for (int i = 0; i < unitCount; i++) { System.out.println("이름: " + units[i].getName() + " HP: " + units[i].getHp()); } } } package generic.test.ex3; import generic.test.ex3.unit.Marine; import generic.test.ex3.unit.Zealot; import generic.test.ex3.unit.Zergling; public class ShuttleTest { public static void main(String[] args) { Shuttle<Marine> shuttle1 = new Shuttle<>(); shuttle1.in(new Marine("마린", 40)); shuttle1.in(new Marine("마린2", 45)); shuttle1.showInfo(); Shuttle<Zergling> shuttle2 = new Shuttle<>(); shuttle2.in(new Zergling("저글링", 35)); shuttle2.in(new Zergling("저글링2", 35)); shuttle2.in(new Zergling("저글링3", 35)); shuttle2.in(new Zergling("저글링4", 35)); shuttle2.showInfo(); Shuttle<Zealot> shuttle3 = new Shuttle<>(); shuttle3.in(new Zealot("질럿", 100)); shuttle3.in(new Zealot("질럿2", 100)); shuttle3.in(new Zealot("질럿3", 100)); shuttle3.in(new Zealot("질럿4", 100)); shuttle3.showInfo(); UnitPrinter.printV1(shuttle1); UnitPrinter.printV2(shuttle1); } } Shuttle을 생성하고 내부에 많이 태우고 싶어서 코드를 조금 수정해 보았습니다 ! 그런데 코드를 이렇게 수정하니 문제풀이 시간 때 package generic.test.ex3; import generic.test.ex3.unit.BioUnit; public class UnitPrinter { public static <T extends BioUnit> void printV1(Shuttle<T> shuttle) { T out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); } public static void printV2(Shuttle<? extends BioUnit> shuttle) { BioUnit out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); } } 이 코드를 출력하기 위해서 Shuttle 클래스에 out메서드에 unit 1명만 출력하기 위해 (T) units[0]을 반환하였는데요, 이렇게 한 덕분에 문제 요구사항 대로 잘 나왔지만, Shuttle 클래스의 out 메서드에 이러한 린트가 발생합니다. Unchecked cast: 'generic. test. ex3.unit. BioUnit' to 'T' 왜 이러한 문제가 발생하는지 파악을 하지 못했고, 혹시 코드를 이렇게 작성하게 된다면 어떤 문제점이 발생하는지, 어떻게 리팩터링 하면 좋을지 조언을 구하고 싶습니다 !

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
강리눅스 댓글 1 좋아요 0 조회수 160

마지막에 하신 테스트 자체는 실패하는 게 맞는거죠??

미해결

실습으로 배우는 선착순 이벤트 시스템

Producer 에는 제대로 값이 찍히는데 하지만 테스트 자체는 실패했는데요 아마 mysql과 연결이 되지 않아서 생긴 오류라고 봐도 될까요?? 아직 뒷 강의는 진행하지 않았습니다!!

  • java
  • docker
  • spring-boot
  • kafka
  • redis
0515 댓글 2 좋아요 0 조회수 303

와일드 카드는 이미 만들어진 제네릭 타입을 활용할 때 사용한다 ?

미해결

김영한의 실전 자바 - 중급 2편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요 ! 강의를 통해 제네릭에 대해 알 수 있어서 감명깊었습니다. 회사 코드를 보면서 막혔었는데 점차 이해가 되고 있어요 ! 감사 인사 먼저 전합니다 ㅎㅎ Generic2 정리 부분 11:06초에 질문 있습니다 ! 와일드카드는 제네릭 타입이나, 제네릭 메서드를 선언하는 것이 아니다. 와일드 카드는 이미 만들어진 제네릭 타입을 활용할 때 사용한다. 이 부분이 이해가 잘 되지 않습니다 ...! public static void printV2(Shuttle<? extends BioUnit> shuttle) { BioUnit out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); } package generic.test.ex3; import generic.test.ex3.unit.BioUnit; public class UnitPrinter { public static <T extends BioUnit> void printV1(Shuttle<T> shuttle) { T out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); } public static void printV2(Shuttle<? extends BioUnit> shuttle) { BioUnit out = shuttle.out(); System.out.println("이름: " + out.getName() + "HP: " + out.getHp()); } } 강의에서 사용한 와일드카드 메서드 예시입니다 ! printV2가 와일드카드 메서드 인데요, 이 메서드를 구현한 UnitPrinter 클래스는 제네릭 타입을 선언(?)하지 않았는데도 불구하고 사용하고 있는데, 어떤 인스턴스를 기준으로 제네릭이 "이미 만들어진 제네릭 타입"으로 간주하면 될까요? 제가 아직 깊이가 부족하여 이해를 잘 못한 것일 수 있지만, 만약 Shuttle 클래스에서 제네릭 타입을 선언하지 않고, <?>만을 사용하여 메서드를 만든다면 잘못된 사용법인지궁금합니다 ! 와일드카드는 제네릭 타입이나, 제네릭 메서드를 선언하는 것이 아니라 이미 만들어진 제네릭 타입을 활용할 때 사용한다의 예시가 더 있다면 조언 부탁드리겠습니다 ! 감사합니다 ☺

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
강리눅스 댓글 1 좋아요 0 조회수 164

컴포넌트가 렌더링되어 HTML이 생성되는 곳 (getServerSideProps VS useEffect)

미해결

Next.js 시작하기

안녕하세요 :) 섹션 9 부분을 다 듣고 나서 명확히 이해가 가지 않는 부분이 있어 질문드립니다. getServerSideProps를 이용하여 페이지를 로딩할 때 는 "컴포넌트가 렌더링되어 HTML이 생성되는 곳"이 프론트 서버(Next.js 서버) 이고, useEffect를 이용하여 페이지를 로딩할 때 는 "컴포넌트가 렌더링되어 HTML이 생성되는 곳"이 클라이언트(브라우저) 라고 이해하는게 맞을까요?

  • javascript
  • react
  • next.js
play _Er 댓글 1 좋아요 0 조회수 249

클라이언트 컴포넌트로의 전환

해결됨

한 입 크기로 잘라먹는 Next.js

강사님 안녕하세요. 학습을 거의 끝낸 상태라 거의 마지막 질문이 될 것 같기도 한데요^^ 클라이언트 컴포넌트는 서버 컴포넌트를 Import 할 수 없기 떄문에 Next 는 서버 컴포넌트를 클라이언트 컴포넌트로 동작시킨다고 배웠습니다. 그런데 만약 이러한 서버 컴포넌트에 async 방식의 api 코드가 포함되어 있는 경우에는 이런 코드가 클라이언트 방식으로 동작하면 문제가 발생할 것 같은데요. 결국, 이런 상황에서는 서버 컴포넌트를 그대로 두어서는 안되고 강의에서 설명하신 합성 방식으로 변경을 하거나 아니면 해당 서버 컴포넌트의 API 로직을 react-query 나 useEffect 훅을 이용해서 실행될 수 있는 클라이언트 컴포넌트로 리팩토링을 해야만 되는거 같은데 제가 올바로 이해한 게 맞을까요?

  • react
  • typescript
  • next.js
아리마 댓글 2 좋아요 0 조회수 359

리퀘스트 메모이제이션이 동작을 안하는것 같습니다.

미해결

한 입 크기로 잘라먹는 Next.js

/app/(with-searchbar)/page.tsx /app/layout.tsx 터미널 첨부한 사진과 같이 수업내용에 따라 코드를 작성하였고, 선생님의 화면과는 다르게 저렇게 같은 GET 호출이 두번이 나오네요... 옵션을 따로 추가하는것으로 바뀌었을까요?? npm run dev를 껐다가 다시 실행해도 마찬가지의 결과가 나옵니다!

  • react
  • typescript
  • next.js
wjswlgh96 댓글 4 좋아요 8 조회수 825

SessionManagerV6 에서 synchronized 부분이 이해가 잘 안갑니다.

해결됨

김영한의 실전 자바 - 고급 2편, I/O, 네트워크, 리플렉션

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] package network.tcp.v6; import network.tcp.v5.SessionV5; import java.util.ArrayList; import java.util.List; public class SessionManagerV6 { private List<SessionV6> sessions = new ArrayList<>(); public synchronized void add(SessionV6 session) { sessions.add(session); } public synchronized void remove(SessionV6 session) { sessions.remove(session); } public synchronized void closeAll() { for (SessionV6 session : sessions) { session.close(); } sessions.clear(); } } 여기서 closeAll() 에서 스레드가 작업중일때 다른스레드가 remove() 를 호출할 수 없다는 부분이 잘 이해가 안 갑니다. synchronized 는 메서드 단위로 적용이 된다고 알고 있어서 closeAll() 에 스레드가 작업중이더라도 remove() 같은 다른 메서드랑은 관련 없다고 생각했습니다. 뭔가 흐름을 잘못 이해하고 있는 걸까요?

  • java
  • 네트워크
  • 객체지향
물병97 댓글 1 좋아요 0 조회수 304

searchParams 질문있습니다.

미해결

Next + React Query로 SNS 서비스 만들기

const onClickHot = () => { setCurrent('hot'); router.replace(`/search?q=${searchParams.get('q')}`) } 이 코드가 있으면 q=null일때 주소가 http://localhost:3000/search?q=null 이렇게 이동되는데 제로초님은 아무런 검색어가 없는데 어떻게 null로 안나오죠? null체크를해서 주소를 2개 분기해도 될거같긴한데 제로초님은 q가 null일땐 주소창의 쿼리가 안생기더라고요 . 뭐가다른건지 모르겠네요ㅠ

  • react
  • next.js
  • react-query
  • next-auth
  • msw
ChangJun.dev 댓글 2 좋아요 1 조회수 221

h2데이터베이스에 변경사항이 반영이 안됩니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

쿼리문이 다음과 같이 날라가는데도 h2데이터 베이스에 변경사항이 반영되지 않습니다 ㅠㅠ 어떤 문제가 있는 걸까요

  • java
  • jpa
주현 댓글 2 좋아요 0 조회수 208

인기 태그

인프런 TOP Writers

주간 인기글